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 eBay Angebotsimport : Fehler bei der Kommunikation mit dem eA-Server eBay-Anbindung - Fehler und Bugs 0
S/MIME mit veraltetem Standard? JTL-Wawi 1.11 2
Neu JTL Wawi auf Windows Server 2025 mit SQL 2025? Installation von JTL-Wawi 6
Seit Update auf 1.11.4 Workflow für Kartonauswahl gibt error JTL Das Objekt mit Nullwert muss einen Wert haben. BrowsePk: 152325 WorkflowAktionId: 155 JTL-Wawi 1.11 1
Neu Ich möchte konfigurieren, dass Artikel mit einem Lagerbestand von 0 nicht mehr zu einer Bestellung hinzugefügt werden dürfen Eigene Übersichten in der JTL-Wawi 1
Neu "Eine Zeile mit doppeltem Schlüssel" im Assistent zur Einrichtung Installation von JTL-Wawi 1
Neu Konfigurator-Produkt wird mit 0 € in den Warenkorb gelegt JTL-Shop - Fehler und Bugs 2
Neu Probleme mit dem erstellen eines Profils in der Datenbankverwaltung JTL-Wawi - Fehler und Bugs 1
Neu Neues E-Commerce Business mit JTL Wawi - Jtl Shop - Lexware Office (online) - Fragen Starten mit JTL: Projektabwicklung & Migration 2
Neu Kein Abgleich mit Amazon mehr möglich - IP Sperre? Amazon-Anbindung - Fehler und Bugs 2
Neu Eine Amazon-Abrechnung wurde mit Verspätung generiert und fehlt jetzt in WAWI Amazon-Anbindung - Fehler und Bugs 3
Neu Salepix Techniktemplate mit Downloadfehler Templates für JTL-Shop 2
Bestand anderer Kinderartikel wird in Artikelstammdaten mit angezeigt – wie kann man das deaktivieren? JTL-Wawi 1.11 2
Monatsabschluss Amazon FBA UK / CH mit JTL2Datev WaWi 1.10 bei IDU Nutzung und Zwangs VCS für GB / Schweiz JTL-Wawi 1.10 0
Neu Habt ihr auch Probleme mit dem Google Merchant Center? Allgemeine Fragen zu JTL-Shop 6
Neu Mediendateien nicht mit Shopware synchronisiert Shopware-Connector 0
Neu Lieferantenbestellung mit Stückliste User helfen Usern - Fragen zu JTL-Wawi 3
Neu Zahlungsziel mit unterschiedlichen Valutas erstellen User helfen Usern - Fragen zu JTL-Wawi 6
In Diskussion Pos mit 1.11.4 nicht kompatibel Einrichtung / Updates von JTL-POS 10
Neu JTL-MeetUp mit eBay in Berlin Messen, Stammtische und interessante Events 0
Neu Barcodescanner - Artikel mit # wird nicht übergeben Allgemeine Fragen zu JTL-POS 2
Neu Staffelpreise wird mit Sternchen angezeigt - wie ändere ich das Allgemeine Fragen zu JTL-Shop 0
Neu 0,1% an der Kasse erstellte Kunden nicht synchronisiert mit JTL Wawi Allgemeine Fragen zu JTL-POS 0
Neu Probleme mit WMS-Inventur JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Neu GPSR Produktsicherheitsblatt mit Amazon Lister übergeben? Amazon-Lister - Fehler und Bugs 5
Neu Varianten Artikel erstellen mit Lister 2.0 nur für Amazon Amazon-Lister - Ideen, Lob und Kritik 0
Lagerbestände mit der Ameise korrigieren JTL-Wawi 1.6 3
Probleme mit dem Ebay-Abgleich JTL-Wawi 1.11 1
Aktuelle Erfahrungen mit 1.11 JTL-Wawi 1.11 2
Neu Zufällige Preisanpassungen beim Abgleich mit Woocommerce User helfen Usern - Fragen zu JTL-Wawi 9
Amazon-ASIN mit mehreren SKU für Chargenverfolgung JTL-Wawi 1.10 0
Neu Kundenkonto mit mehreren Shop-eMail-Adressen User helfen Usern - Fragen zu JTL-Wawi 0
Neu Ist es korrekt, dass Belegdaten von Amazon (VCS) mit einer etwa 7-tägigen Verzögerung in WAWI landen? Amazon-Anbindung - Fehler und Bugs 8
Neu Ärger mit CountX: Verzögerung bei der Bearbeitung von VCS-Daten in WAWI führt zu unvollständigen Steuerdaten User helfen Usern - Fragen zu JTL-Wawi 0
Neu Rechnung als pdf. speichern mit Rechnungsnummer und Kundennummer im Namen klappt nicht User helfen Usern - Fragen zu JTL-Wawi 4
Neu Was passiert beim Shop Update mit den Mailvorlagen? Installation / Updates von JTL-Shop 2
Neu Platzhalter für GPSR werden mit angezeigt PrestaShop-Connector 1
Liste exportieren mit Kategorien und Anzahl der Artikel in der jeweiligen Kategorie JTL Ameise - Eigene Exporte 3
Neu Umlagerung mit mehreren Positionen JTL-Ameise - Fehler und Bugs 7
Bild auf Rechnung bewegt sich nicht mit den Positionen JTL-Wawi 1.11 8
Neu Utopische Lieferzeiten mit der Post User helfen Usern - Fragen zu JTL-Wawi 1
Am eigenen Lager Bestand = 0, bei FBA = 170, Probleme mit dem eigenen Shop und Otto.de JTL-Wawi 1.10 3
Fehler beim Verknüpfen von JTL-FFN mit Wawi – „Anmeldung nicht möglich“ JTL-Wawi 1.11 1
Neu Adressetiketten für Briefe mit Etikettendrucker erstellen / Formatierungsproblem Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 4
Neu JTL-Wawi Aufträge die mit JTL-POS bezahlt wurde tauchen im Tagenabschluss auf JTL-POS - Fehler und Bugs 7
Neu FBA-Artikel lässt sich nicht mit Stücklistenartikel verknüpfen – Workaround? Arbeitsabläufe in JTL-Wawi 0
Neu Kartenzahlung mit Zettle / Wo finde ich einen Transaktionscode in der Datenbank? Allgemeine Fragen zu JTL-POS 0
Neu Probleme mit Pixel-Code eines Drittanbieters in Templatedatei Betrieb / Pflege von JTL-Shop 1
Neu Wer hat 2025 mit Xentral Erfahrungen gesammelt? Wechsel von JTL‑Wawi in Sicht Smalltalk 17
Funktion mit welchem Konnektor? JTL-Wawi 1.11 0

Ähnliche Themen