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
ändern von Servernamen nach Neuinstallation von SQL und Verbindung mit neuem Server in der Wawi JTL-Wawi 2.0 2
Probleme mit Artikelansicht oder Verkauf, etc. JTL-Wawi 2.0 0
Fehler mit Zahlungsabgleich JTL-Wawi 1.11 9
Eigener Drittshop-Connector (jtl/connector 5.3): valide Variationskombinationen werden mit „besitzt keine Variationen" nicht gesendet JTL-Wawi 1.11 1
Neu Problem mit dem JTL-Connector – Invalid Shopify connection credentials. Shopify-Connector 3
Neu Arbeiten mit Lieferanten EKs - Workflows und SQL User helfen Usern - Fragen zu JTL-Wawi 6
Neu JTL Artikelanlage mit KI beschleunigen User helfen Usern - Fragen zu JTL-Wawi 2
Neu DHL 4.0 mit JTL-ShippingLabels funktioniert nicht JTL-ShippingLabels - Fehler und Bugs 2
Neu Amazon FBA Bestellungen doppelt mit _1 Amazon-Anbindung - Fehler und Bugs 3
Fehler beim Abgleich mit Amazon JTL-Wawi 2.0 10
Abgleich Amazon mit Fehlern beendet 1.11.08 JTL-Wawi 1.11 14
Rabatt Coupons in Verbindung mit Staffelpreisen - JTL 1.11.9, JTL Shop JTL-Wawi 1.11 0
Worker 2.0 starten mit deak. Abgleichen? JTL-Wawi 2.0 3
Fehler beim Abgleich mit dem JTL-Shop JTL-Wawi 2.0 12
Neu OnFinds: KI-Suche für JTL-Shop mit fairer Abrechnung nach Artikelanzahl. 30 Tage kostenlos testen Plugins für JTL-Shop 0
Neu Abrechnung / Auslieferung von Aufträgen mit Gutschriftverfahren Arbeitsabläufe in JTL-Wawi 3
Neu Dummy-ID oder Freiposition für Angebot mit mehrzeiliger Beschreibung JTL-Wawi - Ideen, Lob und Kritik 7
Neu JTL Shop 5.7.1 mit Fehlern - versandarten zahlungsarten nicht änderbar, leere weiße Seite JTL-Shop - Fehler und Bugs 5
JTL Ameise Lieferantenbestellung mit VPE importieren oder umrechnen JTL-Wawi 1.11 0
Jtl pos Einstellungen mit wiwa 2.02 JTL-Wawi 1.11 0
Anmeldung mit OAuth bei Versanddienstleister notwendig JTL-Wawi 1.10 5
Problem mit Hermes Österreich Sendungsnummern – Fehler beim Amazon-Abgleich in JTL-Wawi JTL-Wawi 1.10 0
Bestellabgleich mit JTL Wawi und WooCommerce 1h verzögert JTL-Wawi 2.0 0
Neu PayPal Käufername stimme nicht mit Liederadresse überein! Business Jungle 0
Neu 1.11.8 Auftagsimport mit Artikelnummern mapping JTL-Ameise - Fehler und Bugs 0
Neu Neuerdings E-Mail benachrichtigung bei "Pick up in Store", allerdings mit E-Mail "Bestellung wurde abgeholt" Shopify-Connector 0
Neu Abgleich mit Amazon Sendungsnummer / Rechnung Arbeitsabläufe in JTL-Wawi 0
Neu JTL-Wawi mit Claude, ChatGPT, Openclaw/Hermes oder CRM System verbinden User helfen Usern 2
Neu Custom Checkout - Conversion optimiert mit Speicherung von Standard-Versandart und Zahlungsart am Kunden JTL-Shop - Ideen, Lob und Kritik 1
Neu Auftrag - Lieferstatus mit Workflow exportieren Arbeitsabläufe in JTL-Wawi 3
In Diskussion Workflow mit UND / ODER - Bedingung erstellen JTL-Workflows - Ideen, Lob und Kritik 7
Ameise-Export: Umsatzsteuer stimmt nicht mit Differenz aus Netto und Brutto überein (insbesondere bei mehreren Steuersätzen) JTL-Wawi 1.11 0
Neu Klarna konnte mit den angegebenen Daten keine Sitzung erstellen. Einige Feldbedingungen wurden verletzt. Betrieb / Pflege von JTL-Shop 0
Neu Funktioniert Shop 5.7 mit MariaDB 10.5.29? Installation / Updates von JTL-Shop 1
Sanktionsprüfung mit JTL JTL-Wawi 1.10 0
Versandart Standartpaketversand mit Express JTL-Wawi 1.10 2
Artikeletiketten mit Angabe des Herstellers+Adresse JTL-Wawi 1.10 1
Neu Versandkostenersparnis mit JTL-Shipping: Vergünstigte Versandlabels ohne individuelle Rahmenverträge mit Versanddienstleistern User helfen Usern - Fragen zu JTL-Wawi 1
Probleme mit Worker und JTL-App JTL-Wawi 2.0 5
Neu Probleme mit Import Datenbank vom Server auf lokal JTL-Wawi 2.0 User helfen Usern - Fragen zu JTL-Wawi 4
Neu Angeblich noch keine Verknüpfung mit DPD Meta ??? JTL-ShippingLabels - Fehler und Bugs 1
Neu fEKNetto - zwei Einträge je LiefArtikel mit gleichem Lieferant - nur einer aktualisiert User helfen Usern - Fragen zu JTL-Wawi 1
Neu JTL-Verknüpfung mit EC-Gerät fehlerhaft JTL-POS - Fehler und Bugs 0
Neu Problem mit Dantezeile und fehlerhafte Angebotsgültigkeit. Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
DHL 4.0 mit JTL Wawi 1.7.13.0 JTL-Wawi 1.7 2
Neu Google Shopping: g:product_type mit Attribut befüllen ist immer DE, obwohl mehrsprachig angelegt Plugins für JTL-Shop 0
Neu Listung mit Varianten - nicht alle Varianten sind vorhanden Amazon-Lister - Fehler und Bugs 0
Häufiges Aufhängen - vermutlich Probleme mit der Datenbank JTL-Wawi 2.0 13
Neu Kein permanenter Dataflow mit Kern FCB Waage JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 2
Neu DRIGEND HILFE!!! Ebay Abgleich endet mit Arithmetischer Überlauffehler für tinyint-Datentyp, Wert = -1. Die Anweisung wurde beendet. eBay-Anbindung - Fehler und Bugs 4

Ähnliche Themen