Neu LEXIKON mit HTML erstellen auf eigener Seite

MAJP

Aktives Mitglied
18. März 2021
74
9
hier mal was anderes ein Lexikon als Standard HTML Seite VLT ist es für euch was... nachdem das Plugin doch ein bissle was kostet und man da nicht Massen Importe machen kann... hier kann man mit excel und ein paar formeln arbeiten:
zum Aufbau es nimmt den ersten Buchstaben und ordnet es automatisch den swatches zu. also wenn man eine "1" am Anfang stehen hat muss man die Swatches maunuell hinzufügen

ich hoffe es kann jemanden weiterhelfen

die Formel ist dazu da den Inhalt zu füllen.
EXCEL FORMEL:
Code:
= "<li><strong>"&A218&":</strong> "&B218&" </li>"


HTML CODE:

Code:
<title></title>
<style type="text/css">ul {
      list-style-type: none;
    }
    
    li {
      margin-bottom: 1em;
    }
    
    .swatch {
      display: inline-flex;
        align-items: center;
        justify-content: center;
      width: 2em;
      height: 2em;
      border: 0.1em solid #000;
      margin-right: 0.25em;
      margin-bottom: 0.25em;
      cursor: pointer;
      font-size: 1.5em
    }
    .swatch.selected {
      border-width: 0.2em;
    }
</style>
<div><span class="swatch selected" data-letter="all">ALL</span>
<span class="swatch" data-letter="a">A</span>
<span class="swatch" data-letter="b">B</span>
<span class="swatch" data-letter="c">C</span>
<span class="swatch" data-letter="d">D</span>
<span class="swatch" data-letter="e">E</span>
<span class="swatch" data-letter="f">F</span>
<span class="swatch" data-letter="g">G</span>
<span class="swatch" data-letter="h">H</span>
<span class="swatch" data-letter="i">I</span>
<span class="swatch" data-letter="j">J</span>
<span class="swatch" data-letter="k">K</span>
<span class="swatch" data-letter="l">L</span>
<span class="swatch" data-letter="m">M</span>
<span class="swatch" data-letter="n">N</span>
<span class="swatch" data-letter="o">O</span>
<span class="swatch" data-letter="p">P</span>
<span class="swatch" data-letter="q">Q</span>
<span class="swatch" data-letter="r">R</span>
<span class="swatch" data-letter="s">S</span>
<span class="swatch" data-letter="t">T</span>
<span class="swatch" data-letter="u">U</span>
<span class="swatch" data-letter="v">V</span>
<span class="swatch" data-letter="w">W</span>
<span class="swatch" data-letter="x">X</span>
<span class="swatch" data-letter="y">Y</span>
<span class="swatch" data-letter="z">Z</span>
<!-- Füge hier weitere Swatches hinzu --></div>

<p></p>

<ul id="entries">
    <li><strong>Abseilen:</strong> hier die beschreibung balabalalbla.</li>
    <li><strong>Abspannleinen:</strong> hier die beschreibung balabalalbla.</li>
    <li><strong>Alpineschuhe:</strong> Ahier die beschreibung balabalalbla.</li>
    <li><strong>Zwischensohle:</strong> hier die beschreibung balabalalbla.</li>
    <!-- Füge hier weitere Einträge hinzu -->
</ul>
<script>
    var swatches = document.getElementsByClassName("swatch");
    var entries = document.getElementById("entries").getElementsByTagName("li");

 
    for (var i = 0; i < swatches.length; i++) {
      swatches[i].addEventListener("click", function() {
        var selectedLetter = this.getAttribute("data-letter");
        
        for (var j = 0; j < swatches.length; j++) {
          swatches[j].classList.remove("selected");
        }
        
        this.classList.add("selected");
        
        for (var k = 0; k < entries.length; k++) {
          var entry = entries[k];
          var firstLetter = entry.getElementsByTagName("strong")[0].textContent.charAt(0).toLowerCase();
          
          if (selectedLetter === "all" || firstLetter === selectedLetter) {
            entry.style.display = "block";
          } else {
            entry.style.display = "none";
          }
        }
      });
    }
  </script>
 

MAJP

Aktives Mitglied
18. März 2021
74
9
HIER WÄRE DIE Version 2.

was hat sich geändert man kann jetzt themen hinzufügen und danach filtern zudem funktioniert die suche viel besser und das einpflegen neuer daten ist viel leichter

EXCEL FUNKTION WÄRE DANN
Code:
="{ term: '"&B1&"', definition: '"&C1&"', topic: '"&A1&"' },"

wobei spalte B die Bezeichnung ist C die Definition und A das Thema


Code:
<title></title>
<style type="text/css">.swatch {
      display: inline-block;
      padding: 0em 0.5em 2em 0.5em;
      min-width: 2em;
      height: 2em;
      border-radius: 2em;
      margin-right: 0.25em;
      margin-bottom: 0.25em;
      border: 0.1em solid #4D6F39;
      text-align: center;
      line-height: 2em;
      font-size: 1.5em;
      cursor: pointer; /* Hinzugefügt: Mauszeiger als Zeiger ändern */
    }

    .swatch.active {
      background-color: #4D6F39;
      color: #fff;
    }
 
    h3 {
      font-size: 1.5em;
      margin-bottom: 0.1em;
    }
    h4 {
      font-size: 1.5em;
      margin-top: 1em;
      margin-bottom: 0.5em;
    }
    p {
      margin-bottom: 1em;
    }
 
      #searchInput {
          border-radius: 2em;
          padding: 0.5em 1.5em;
          margin-bottom: 1em;
        margin-top: 1em;
          height: 2em;
        text-align: center;
        border-block-color: #F09200;
        border-inline-color: #F09200;
  }
</style>
<h3>Sotierung nach</h3>

<h4>Alpahbet</h4>

<div id="letterList"></div>

<h4>Themen</h4>

<div id="topicList"></div>
<input id="searchInput" placeholder="Suche nach einem Begriff" type="text" />
<h2 id="currentFilter"></h2>

<ul id="termList">
</ul>
<script>
  // Beispieldaten für das Lexikon
  var lexicon = [
{ term: '2,5-Lagen-Konstruktion', definition: ' Eine 2,5-Lagen-Konstruktion bei Regenjacken bedeutet, dass sie aus einer äußeren wasserdichten Schicht, einer halbdurchlässigen Membran und einem Schutzfilm auf der Innenseite besteht. Diese Konstruktion ermöglicht eine gute Wasserdichtigkeit und Atmungsaktivität bei leichtem Gewicht.', topic: 'Bekleidung' },
{ term: '3-Lagen-Konstruktion', definition: ' Eine 3-Lagen-Konstruktion bei Regenjacken bedeutet, dass sie aus einer äußeren wasserdichten Schicht, einer Membran und einem Innenfutter besteht. Diese Konstruktion bietet eine höhere Strapazierfähigkeit, bessere Atmungsaktivität und eignet sich gut für anspruchsvolle Aktivitäten und raue Wetterbedingungen.', topic: 'Bekleidung' },
{ term: 'Atmungsaktivität', definition: ' Die Atmungsaktivität einer Regenjacke bezieht sich auf ihre Fähigkeit, Feuchtigkeit von innen nach außen abzuleiten. Eine gute Atmungsaktivität verhindert ein Überhitzen und Schweißbildung im Inneren der Jacke. Atmungsaktive Regenjacken ermöglichen einen effizienten Feuchtigkeitstransport und bieten Komfort während körperlicher Aktivitäten.', topic: 'Bekleidung' },
{ term: 'Belüftungsöffnungen', definition: ' Belüftungsöffnungen sind strategisch platzierte Reißverschlüsse oder Mesh-Einsätze in einer Regenjacke, die eine verbesserte Luftzirkulation ermöglichen. Sie helfen, die Körperwärme und Feuchtigkeit zu regulieren und verhindern ein Überhitzen während intensiver Aktivitäten. Belüftungsöffnungen sind besonders bei längeren Wanderungen oder sportlichen Aktivitäten wichtig.', topic: 'Bekleidung' },

  // Ihr weitere Daten einfügen
  ];

  // Lexikon-Einträge alphabetisch sortieren
  lexicon.sort(function (a, b) {
    return a.term.localeCompare(b.term);
  });

  // Funktion zum Erstellen der Swatches für die alphabetische Übersicht
  function createLetterSwatches() {
    var letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    var letterList = document.getElementById('letterList');

    for (var i = 0; i < letters.length; i++) {
      var swatch = document.createElement('span');
      swatch.className = 'swatch';
      swatch.textContent = letters[i];
      letterList.appendChild(swatch);
    }

    // Swatch für alle Einträge hinzufügen
    var allEntriesSwatch = document.createElement('span');
    allEntriesSwatch.className = 'swatch';
    allEntriesSwatch.textContent = 'All';
    letterList.appendChild(allEntriesSwatch);

    // Event Listener hinzufügen, um auf Swatch-Klicks zu reagieren
    var swatches = document.getElementsByClassName('swatch');
    for (var i = 0; i < swatches.length; i++) {
      swatches[i].addEventListener('click', handleSwatchClick);
    }

    // Standardmäßig "All" auswählen
    allEntriesSwatch.classList.add('active');
  }

  // Funktion zum Erstellen der Swatches für die verschiedenen Themen
  function createTopicSwatches() {
    var topics = [];
    for (var i = 0; i < lexicon.length; i++) {
      if (!topics.includes(lexicon[i].topic)) {
        topics.push(lexicon[i].topic);
      }
    }

    var topicList = document.getElementById('topicList');
    for (var i = 0; i < topics.length; i++) {
      var swatch = document.createElement('span');
      swatch.className = 'swatch';
      swatch.textContent = topics[i];
      topicList.appendChild(swatch);
    }

    // Event Listener hinzufügen, um auf Swatch-Klicks zu reagieren
    var swatches = document.getElementsByClassName('swatch');
    for (var i = 0; i < swatches.length; i++) {
      swatches[i].addEventListener('click', handleSwatchClick);
    }
  }

  // Funktion zum Behandeln von Swatch-Klicks
  function handleSwatchClick(event) {
    var swatch = event.target;
    var isActive = swatch.classList.contains('active');

    // Wenn die Swatch bereits aktiv ist, nichts tun
    if (isActive) {
      return;
    }

    // Alle aktiven Swatches deaktivieren
    var activeSwatches = document.getElementsByClassName('swatch active');
    for (var i = 0; i < activeSwatches.length; i++) {
      activeSwatches[i].classList.remove('active');
    }

    // Klickte Swatch als aktiv markieren
    swatch.classList.add('active');

    // Filter aktualisieren
    var currentFilter = document.getElementById('currentFilter');
    currentFilter.textContent = swatch.textContent;

    // Begriffsliste aktualisieren
    var filter = swatch.textContent;
    createTermList(filter);
  }

  // Funktion zum Erstellen der Begriffsliste basierend auf dem ausgewählten Filter
  function createTermList(filter) {
    var termList = document.getElementById('termList');
    termList.innerHTML = '';

    if (filter === 'All') {
      // Alle Einträge anzeigen
      for (var i = 0; i < lexicon.length; i++) {
        var termItem = document.createElement('li');
        var termTitle = document.createElement('h3');
        termTitle.textContent = lexicon[i].term;
        termItem.appendChild(termTitle);
        var termDefinition = document.createElement('p');
        termDefinition.textContent = lexicon[i].definition;
        termItem.appendChild(termDefinition);
        termList.appendChild(termItem);
      }
    } else {
      // Einträge nach Buchstabe oder Thema filtern
      for (var i = 0; i < lexicon.length; i++) {
        if (lexicon[i].term.charAt(0) === filter || lexicon[i].topic === filter) {
          var termItem = document.createElement('li');
          var termTitle = document.createElement('h3');
          termTitle.textContent = lexicon[i].term;
          termItem.appendChild(termTitle);
          var termDefinition = document.createElement('p');
          termDefinition.textContent = lexicon[i].definition;
          termItem.appendChild(termDefinition);
          termList.appendChild(termItem);
        }
      }
    }
  }

  // Funktion zum Initialisieren der Filter- und Begriffsliste
  function initialize() {
    createLetterSwatches();
    createTopicSwatches();
    createTermList('All');

    // Event Listener hinzufügen, um auf Sucheingaben zu reagieren
    var searchInput = document.getElementById('searchInput');
    searchInput.addEventListener('input', handleSearchInput);
  }

  // Funktion zum Behandeln der Sucheingaben
  function handleSearchInput(event) {
    var searchTerm = event.target.value.toLowerCase();
    var termList = document.getElementById('termList');
    termList.innerHTML = '';

    for (var i = 0; i < lexicon.length; i++) {
      var term = lexicon[i].term.toLowerCase();
      var definition = lexicon[i].definition.toLowerCase();

      if (term.includes(searchTerm) || definition.includes(searchTerm)) {
        var termItem = document.createElement('li');
        var termTitle = document.createElement('h3');
        termTitle.textContent = lexicon[i].term;
        termItem.appendChild(termTitle);
        var termDefinition = document.createElement('p');
        termDefinition.textContent = lexicon[i].definition;
        termItem.appendChild(termDefinition);
        termList.appendChild(termItem);
      }
    }
  }

  // Lexikon initialisieren
  initialize();
</script>
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Gastkunde registriert sich bei zweiter Bestellung - und die Wawi bekommt es nicht mit! Shopware-Connector 0
Neu FEHLER mit JTL Shipping und DHL - Empfängerunterschrift wird nicht gebucht JTL-ShippingLabels - Fehler und Bugs 0
Beantwortet Bei "Paket hinzufügen" sofortiger Labeldruck mit neuer Sendungsnummer Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Benutzer Rechte - Versand Mitarbeiter soll Menge von Freipositionen mit der Lieferscheinerstellung ändern dürfen Arbeitsabläufe in JTL-Wawi 4
Chatbot mit JTL verwenden JTL-Wawi 1.9 3
Keine Verbindung Mit JTL Shop 5 obwohl sync PW und Sync Benutzer in php identisch mit Wawi Einrichtung JTL-Shop5 5
Neu Übernahme JTL Wawi mit Onlineshop und JTL-POS Starten mit JTL: Projektabwicklung & Migration 3
Neu Problem mit der Anleitung bei der Vergabe der Rechte. Installation / Updates von JTL-Shop 1
Rechnungen an ausländischen Lieferanten werden mit 19 % Mwst erstellt JTL-Wawi 1.9 5
Neu Probleme mit Klarna und PayPal Plugins für JTL-Shop 0
Neu ++ Ebay Artikel mit Menge 1 und versch. Variationen ++ Arbeitsabläufe in JTL-Wawi 0
Neu Einrichtung von Versandarten in JTL-Shop und Verknüpfung mit JTL-Wawi Installation / Updates von JTL-Shop 12
Neu Fehlermeldung: Dein Gerät ist nicht mit dieser Version kompatibel Einrichtung / Updates von JTL-POS 0
In Diskussion Übersetzungen mit DeepL JTL-Workflows - Ideen, Lob und Kritik 0
Neu SOFORT Überweisung Classic mit JTL Shop 5.4 - Kompatible? Plugins für JTL-Shop 0
Neu Nachlieferungen des Kunden mit neuem Auftrag automatisch versenden Arbeitsabläufe in JTL-Wawi 0
Neu Mollie mit 2 Monaten Guthabeneinbehalt bis zur Auszahlung Smalltalk 1
Neu Artikel erstellen mit einem Lagerplatz User helfen Usern - Fragen zu JTL-Wawi 3
Neu Track&Trace Abgleich funktioniert nicht mit Worker als Dienst? JTL-Track&Trace - Fehler und Bugs 0
Neu Trackingdaten nicht mit Advanced shipment tracking PRO plugin synchronisiert WooCommerce-Connector 3
Neu Retourenübersicht mit Seriennummern über Ameise "Eigene Exporte" erstellen JTL Ameise - Eigene Exporte 1
Neu Sprachauswahl mit Flaggen Shop 5.4 Nova Template Templates für JTL-Shop 5
Neu Ausliefern in WAWI mit Seriennummern JTL-Wawi - Fehler und Bugs 2
Neu Seit JTL Update verbindet sich MDE Gerät nicht mehr mit WMS-Mobile Server User helfen Usern - Fragen zu JTL-Wawi 1
Neu Eigenes Plugin erstellen (Versandkostenfrei mit Optionen) Plugins für JTL-Shop 1
Neu JTL Ameise-Import – Problem mit Datumsformat JTL-Ameise - Fehler und Bugs 2
Neu Tracking Daten werden erst mit LINK und dann gar nicht mehr überrtragen Shopware-Connector 0
Neu Lange Stücklisten mit der Ameise einspielen dauert lange. User helfen Usern - Fragen zu JTL-Wawi 2
Neu Artikelseite mit Variation, direktes zurück nicht möglich? Allgemeine Fragen zu JTL-Shop 0
Wawi auf Notebook mit 4k Display JTL-Wawi 1.9 4
Neu Bestellbestätigung aus JTL SHOP mit Lieferadresse Dienstleistung, Jobs und Ähnliches 0
Neu Preis mit Steuern zur Anzeige Amazon-Lister - Fehler und Bugs 2
In Diskussion SKU / EAN - Code Scan in JTL-WMS Mobile – Artikelpreis anzeigen mit Workflows JTL-Workflows - Ideen, Lob und Kritik 0
Neu Bilder Komplettabgleich mit 100'000 Bildern Onlineshop-Anbindung 0
Onlineshop Suchbegriffe Such-Schlagwörter mit Shopware 6 JTL-Wawi 1.9 0
Neu Mitarbeiter mit schlechten Kundenumgang Starten mit JTL: Projektabwicklung & Migration 9
Neu Falsche Preisübermittlung von Brutto/Netto Preisen mit JTL Connector zu Shopify Onlineshop-Anbindung 0
Neu Mehrere DHL Versenden 3.0 Instanzen mit unterschiedlichen Accounts möglich? JTL-ShippingLabels - Ideen, Lob und Kritik 3
Neu Einem Kunden eine Rechnung mit individuellem Betreff per E-Mail zusenden User helfen Usern - Fragen zu JTL-Wawi 2
Artikelzustand wird doppelt und mit doppeltem Suffix erzeugt JTL-Wawi 1.9 3
Neu Abgleich Probleme mit Woocommerce und Jtl-Conncetor WooCommerce-Connector 1
Neu Google Search Console: 5xx-Fehler für nicht indexierte Seiten mit URL-Parametern – Warum? Betrieb / Pflege von JTL-Shop 3
Neu Megamenü mit Bilder der eigenen Seiten Technische Fragen zu Plugins und Templates 2
Neu Verknüpfung mit Hornbach eBay-Anbindung - Ideen, Lob und Kritik 1
Neu Artikel Upload Probleme mit Wawi Version 1.9.6.5 und B2B Market Plugin WooCommerce-Connector 6
Beantwortet Wunschzettel buggy - doppelt und überlappt mit Footer JTL-Shop - Fehler und Bugs 3
Artikel mit Unterstrich werden nicht angezeigt JTL-Wawi 1.9 7
Neu Reparaturen mit Berechnung von Ersatzteilen Arbeitsabläufe in JTL-Wawi 5
Neu Fehler: Eine Bestellung wird nicht mit Wawi synchronisiert JTL-Shop - Fehler und Bugs 2
In Bearbeitung Gesucht: EC Kartenlesegerät welches stabil mit der JTL POS App funktioniert JTL-POS - Fragen zu Hardware 5

Ähnliche Themen