Anlage 3: Benutzerhandbuch

Content Syndication für nightloop.de
Handbuch für den Benutzer
Version 1.0, März 2003

Inhaltsverzeichnis

1. Einleitung
1.1 Zielgruppe
1.2 Glossar
2. Technische Vorraussetzungen
2.1 Vorraussetzungen für den Einsatz der Beispielprogramme
2.1.1 PHP
2.1.2 Perl
3. Das Web-Interface
3.1 Allgemeines
3.2 Bedeutung der Elemente
3.2.1 Kategorie
3.2.2 Anzahl der Schlagzeilen
3.2.3 Titel
3.2.4 Titelhintergrund
3.2.5 Text
3.2.6 Hintergrund
3.2.7 Neuer Link
3.2.8 Hover Link
3.2.9 Besuchter Link
3.2.10 Tabellenrand
3.2.11 Stärke Tabellenrandes
3.2.12 Textausrichtung
3.2.13 Sprachen
4. Die Schnittstellen
4.1 Grundlagen
4.2 Daten anfordern
4.2.1 Datenanforderung über eine URL
4.2.2 Datenanforderung über ein SOAP-Interface
4.2.2.1. PHP
4.2.2.2. Perl
4.3 Daten verarbeiten
4.3.1 Das XML-Format
4.3.2 Das RDF-Format
4.4 Das nightloop-Tool für Perl und PHP
4.4.1 Perl
4.4.2 PHP
5. Glossar

1. Einleitung

1.1 Zielgruppe

Diese Handbuch wendet sich Betreiber einer Web-Präsenz, die Teile der Schlagzeilen von nightloop.de in das eigene Angebot übernehmen wollen. Es wendet sich sowohl an erfahrene Programmierer als auch an Webbetreiber mit geringeren Kenntnissen über die Programmeirung dynamischer Webseiten.

1.2 Glossar

Die wichtigsten Abkürzungen und Begriffe werden am Schluss dieses Handbuchs in einem Glossar erläutert. Verweise auf dieses Glossar werden im Text mit „“ gekennzeichnet.

2. Technische Vorraussetzungen

Das nightloop.de-Interface ist weitestgehend programmiersprachen-unabhängig und kann mit jeder Programmiersprache genutzt werden, die  HTTP und/oder  SOAP unterstützt. Die HTTP-Unterstützung ist in den meisten Programmiersprachen bereits implementiert, die SOAP-Unterstützung wird, wenn nicht vorhanden, häufig von externen Bibliotheken zur Verfügung gestellt.
Soll eines der mitgelieferten Beispiele genutzt werden, so muss Ihr Webserver entweder PHP ab der Version 4.3.0 mit  DOM-Unterstützung oder Perl ab der Version 5.8.0 unterstützen. Sie müssen außerdem die Berechtigung besitzen, auf Ihrem Webserver Skripte ausführen zu dürfen.
Sollten Sie sich nicht sicher sein, ob diese Vorraussetzungen auf Ihrem Server gegeben sind, so wenden Sie sich bitte an Ihren Administrator oder Provider.

2.1 Vorraussetzungen für den Einsatz der Beispielprogramme

Die eingesetzten Softwareprodukte sollten mindestens in den angebenenn Versionsnummern installiert sein.

2.1.1 PHP

  • PHP v4.3.0
  • DOM/XML mit libxml v2.4.30
  • Expat 1.95.2

2.1.2 Perl

  • LWP
  • XML::Parser v2.31
  • XML::XPath v1.13
  • Encode v1.86
  • SOAP::Lite v0.55

3. Das Web-Interface

3.1 Allgemeines

Auch wenn Sie sich nicht in die Tiefen von PHP, Perl und HTML begeben wollen, ist es Ihnen möglich, die Schlagzeilen von nightloop.de in Ihre Web.Präsenz zu integrieren.
Mit Hilfe der webbasierten Benutzerschnittstelle können Sie alle notwendigen Parameter für eine individuelle Darstellung des nightloop.Panels einstellen.
Die Farben können direkt eingegeben werden (z.B. „#000000“ oder „black“) oder aber aus einem Menü („Color Chooser“) ausgewählt werden. Dazu müssen Sie hinter dem gewünschten Element auf den Knopf „Farben“ drücken. Daraufhin öffnet sich ein weiteres Fenster, das Ihnen eine Auswahl der Farben anbietet. Klicken Sie auf einer dieser Farben so schließt sich das fenster, der Wert der Farbe wird in das entsprechende Feld eingetragen und die Beispieltabelle auf der rechten Seite passt sich den neuen Parametern an.

3.2 Bedeutung der Elemente

3.2.1 Kategorie

Die anzuzeigende Kategorie. Es kann nur eine Kategorie ausgewählt werden.

3.2.2 Anzahl der Schlagzeilen

Anzahl der höchstens dargestellten Schlagzeilen. Die Schlagzeilen werden in absteigender chronologischer Reihenfolge dargestellt.

3.2.3 Titel

Farbe der Titelzeile („nightloop.de“). Diese Farbe sollte sich gut vom Hintergrund abheben.

3.2.4 Titelhintergrund

Farbe des Hintergrundes der Titelzeie. Diese Farbe sollte sich vom der Farbe der Titelzeile abheben.

3.2.5 Text

Farbe des Textes der Schlagzeilen. Diese Farbe sollte sich gut vom Hintergrund abheben.

3.2.6 Hintergrund

Farbe des Hintergrundes der Schlagzeile. Diese Farbe sollte sich gut vom Text abheben.

3.2.7 Neuer Link

Farbe eines Links, der vom Benutzer noch nicht angewählt wurde.

3.2.8 Hover Link

Farbe des Links, den der Benutzer momentan anwählt.

3.2.9 Besuchter Link

Farbe eines Links, den der Benutzer bereits angewählt hat.

3.2.10 Tabellenrand

Farbe des Tabellenrandes.

3.2.11 Stärke Tabellenrandes

Stärke des Tabellenrandes in Pixel. Der Tabellenrand umschließt die gesamte Tabelle und unterteilt die Schlagzeilen.

3.2.12 Textausrichtung

Der Text der Schlagzeilen kann linksbündig, rechtsbündig oder zentriert ausgerichtet werden.

3.2.13 Sprachen

Programmiersprache, für die das Programmskript erstellt werden soll. Zur Zeit stehen die Sprachen PHP und Perl zur Verfügung.

4. Die Schnittstellen

4.1 Grundlagen

Die Schlagzeilen von nightloop.de können auf verschiedene Weise überrtagen werden. Die Daten können entweder über eine URL vom Server abgefragt werden, oder es kann ein SOAP-Interface genutzt werden. Die Rückgabe der Daten erfolgt im  XML- oder  RDF Format. Das  RSS-Format wird noch nicht unterstützt.
Welches Format soll ich benutzen?
Wenn Sie einen Client speziell für nightloop.de schreiben, ist das XML-Format einfacher zu implementieren. Soll der Client allerdings auch für andere Datenquellen genutzt werden, so ist das RDF-Format flexibler.

4.2 Daten anfordern

Bei beiden Arten der Datenanforderung über eine URL oder SOAP werden die gleichen Parameter zur Definition der gewünschten Daten benutzt. Es stehen foglende Parameter zur Verfügung:
cat (Defaultwert: keiner)
Dieser Parameter bestimmt die Kategorie, aus der die Schlagzeilen ausgewählt werden. Es muss genau eine Kategorie angegeben werden, bei der Angabe mehrerer Kategorien wird nur die erste Angabe ausgewertet. Das Fehlen dieses Parameters erzeugt eine Fehlermeldung.
items (Defaultwert: 10)
Dieser Parameter bestimmt die Anzahl der zu übertragenden Schlagzeilen. Sind weniger Schlagzeilen als angefordert vorhande, so werden ohne Fehlermeldung alle vorhandenen Schlagzeilen übertragen. Wird kein Wert angegeben, so werden maximal zehn Schlagzeilen übertragen. Die Angabe eines Wertes kleiner Null oder eines nicht-numerischen Wertes erzeugt keine Fehlermeldung.
format (Defaultwert: XML)
Dieser Parameter bestimmt das Format, mit dem die Daten übertragen werden. Wird kein Wert oder ein anderer Wert als „RDF“ übergeben, so werden die Daten im ⇒ proprietärem XML-Format übertragen. Das Format der Daten wird in Kapitel XXX und XXX erläutert.

4.2.1 Datenanforderung über eine URL

Die Daten können über die URL „http://www.nightloop.de/backend.php“ mit Angabe der gewünschten Parameter vom Server angefordert werden. Die Parameter werden von der Adress durch eine Fragezeichen getrennt, die einzelnen Parameter untereinander wiederum durch ein „&“ („Ampersand“, „Kaufmanns-Und“).

Im folgenden Beispiel werden aus der Kategorie „magazin_stars“ elf Schlagzeilen im RDF-Format angefordert:

http://www.nightloop.de/backend.php?cat=magazin_stars&items=11&format=rdf

Die Groß- und Kleinschreibung und die Reihenfolge der Parameter ist nicht relevant. Wird diese Zeile aus einem Programm oder einem Browser an den Server geschickt, sendet dieser ein XML/RDF-Dokument mit den angeforderten Daten zurück.
Diese Art der Datenanforderung ist sprachenunabhängig und kann mit jeder mordernenProgrammeirsprache verwendet werden.

4.2.2 Datenanforderung über ein SOAP-Interface

Die Datenanforderung über ein SOAP-Interface unterscheidet sich bei den verschiedenen prorammiersprachen stark. Aus diesem Grund wird in diesem Handbuch beispielhaft für die Sprachen PHP und Perl vorgestellt.

4.2.2.1. PHP

Für die Programmierung eines SOAP-Interfaces für PHP gibt es eine Reiher verschiedener Bibliotheken. Eine einfache, objektorientierte Variante ist „nusoap“ („http://dietrich.ganx4.com/nusoap“). Im folgenden Beispiel werden aus der Kategorie „magazin_stars“ zehn Schlagzeilen im RDF-Format angefordert.

# URL des Nightloop-SOAP-Backends.
$url = "http://www.nightloop.de/backend_soap.php";

# Wir brauchen das SOAP-Modul
require_once("include/nusoap.php");

# einen neuen Client erzeugen und mit dem SOAP-backend verbinden.
$soap_client = new soapclient($url);

# Die notwendigen Parameter erstellen
$parameters = array("cat"=>“magazin_stars“, "items"=>10);

# Den SOAP-Server abfragen und den XML-String zurueckgeben.
$xml $soap_client->call('backend', $parameters);
    Erläuterungen:

  • Zeile 2:
    Die Variable $url beinhaltet die Internetadresse des Programms, das für die Erstellung des XML-Dokuments über SOAP zuständig ist.
  • Zeile 5:
    Das nusoap-Modul wird in das Programm eingebunden.
  • Zeile 8:
    Es wird ein neues SOAP-Client-Objekt erzeugt.
  • Zeile 11:
    In der Variablen $parameters werden die Parameter angegeben, die an den Server übertragen weredn sollen. Der Parameter format wurde nicht angegeben, so das der Server maximal zehn Schlagzeile zurückgeben wird.
  • Zeile 14:
    Die Anfrage wird mit den vorher definierten parametern an den Server übergeben. Gleichzeitig wird die Rückgabe des Servers in der Variablen $xml gespeichert und kann anschließend weiterverarbeitet werden.

4.2.2.2. Perl

Für Perl gibt es verschiedene Implementierungen für des SOAP-Protokolls. Die am häufigsten verwendete und am einfachsten einzusetzende Bibliothek ist „SOAP::Lite“, die unter anderem über das CPAN-Netzwerk zu beziehen ist (http://cpan.org“).
Im folgenden Beispiel werden aus der Kategorie „magazin_stars“ elf Schlagzeilen im XML-Format angefordert.

use SOAP::Lite;   # Das notwendige SOAP-Modul einbinden.

# URI des SOAP-Backend-Skriptes
$url = "http://www.nightloop.de/backend_soap.php";

# Das SOAP-Modul mit den entprechenden Parametern aufrufen und das
# XML Dokument als String an den Aufrufer zurueckgeben.
$xml = SOAP::Lite
   -> uri('http://nightloop.de/Backend/')
   -> proxy($url)
   -> backend('magazin_stars', 11)
   -> result;

Erläuterungen:

  • Zeile 1:
    Das SOAP::Lite-Modul wird in das Programm eingebunden.
  • Zeile 4:
    Die Variable $url beinhaltet die Internetadresse des Programms, das für die Erstellung des XML-Dokuments über SOAP zuständig ist.
  • Zeile 8 bis 12:
    Dem SOAP::Lite-Objekt werden die Parameter übergeben und es übergibt die SOAP-Anforderung an den Server. Gleichzeitig wird die Rückgabe des Servers in der Variablen $xml gespeichert und kann anschließend weiterverarbeitet werden.

4.3 Daten verarbeiten

4.3.1 Das XML-Format

Das XML-Format hat folgende Struktur:

Darstellung als Quellcode (variable Werte sind als „…“ angegeben):

http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
  http://www.nightloop.de">
    nightloop.de
    http://www.nightloop.de/
    die party community des nordwest-net
    de-DE
    2003-04-02T10:29:27+01:00
    Lutz Schroeer (Lutz.Schroeer@team.nwn.de)
    nordwest.net GmbH & CO. KG, 26122 Oldenburg, Germany
    World Wide Web Home Page
    
      
        
        
      
      
        ...
        ...
        ...
      
      
      ...
      
      ...
    
  

Die Elemente unterhalb des -Elements haben folgende Bedeutung:

  • <title>
    Der Titel des Nachrichtenkanals.
  • <link>
    Der Link zur Website des Nachrichtenanbieters.
  • <descripion>
    Eine kurze Beschreibung des Inhalts des Nachrichtenkanals.
  • <language>
    Die Sprache, in der die Nachrichten verfasst sind (nach ISO 639).
  • <creator>
    Der Ansprechpartner.

  • <rights>
    Urheberrechtsinhaber des angebotenen Materials.
  • <image>
    Ein Link, der auf ein Logo des Anbieters verweist.
  • <item>
    Elternelement für die Schlagzeilen.

Die Elemente unterhalb des -Elements haben folgende Bedeutung:
<br /> Titel der Schlagzeile. <link> Link zum entsprechenden Webangebot von nightloop.de.<br /> <description><br /> Anreißer für die Schlagzeile.</p> <p>Das XML-Dokument ist mit  UTF-8 kodiert. Wie es vom XML-Standard in Kapitel 4.3.3 gefordert wird.<br /> 4.3.2 Das RDF-Format<br /> Das RDF-Format hat folgende Struktur:</p> <p>Darstellung als Quellcode (variable Werte sind als „…“ angegeben):<br /> <?xml version=”1.0″ encoding=”utf-8″?<><br /> <rdf:RDF xmlns:rdf=”<a class=”linkificator-ext” href=”http://www.w3.org/1999/02/22-rdf-syntax-ns#” title=”Linkificator: http://www.w3.org/1999/02/22-rdf-syntax-ns#”>http://www.w3.org/1999/02/22-rdf-syntax-ns#</a>” xmlns:dc=”<a class=”linkificator-ext” href=”http://purl.org/dc/elements/1.1/” title=”Linkificator: http://purl.org/dc/elements/1.1/”>http://purl.org/dc/elements/1.1/</a>”><br /> <channel rdf:about=”<a class=”linkificator-ext” href=”http://www.nightloop.de” title=”Linkificator: http://www.nightloop.de”>http://www.nightloop.de</a>”><br /> <dc:title>nightloop.de</dc:title><br /> <dc:link><a class=”linkificator-ext” href=”http://www.nightloop.de” title=”Linkificator: http://www.nightloop.de”>http://www.nightloop.de</a>/</dc:link><br /> <dc:description>die party community des nordwest-net</dc:description><br /> <dc:language>de-DE</dc:language><br /> <dc:date>2003-04-02T10:29:27+01:00</dc:date><br /> <dc:creator>Lutz Schroeer (<a class=”linkificator-ext” href=”mailto:Lutz.Schroeer@team.nwn.de” title=”Linkificator: mailto:Lutz.Schroeer@team.nwn.de”>Lutz.Schroeer@team.nwn.de</a>)</dc:creator><br /> <dc:publisher>nordwest.net GmbH & CO. KG, 26122 Oldenburg, Germany</dc:publisher><br /> <dc:type>World Wide Web Home Page</dc:type><br /> <items><br /> <rdf:Seq><br /> <rdf:li rdf:resource=”…”/><br /> <rdf:li rdf:resource=”…”/><br /> </rdf:Seq><br /> <item><br /> <title>…</title><br /> <link>…</link><br /> <description>…</description><br /> </item><br /> <item><br /> …<br /> </item><br /> …<br /> <items><br /> </channel><br /> </rdf:RDF></p> <p>Die Elemente entsprechem dem Namsraum, der unt „<a class="linkificator-ext" href="http://purl.org/dc/elements/1.1/" title="Linkificator: http://purl.org/dc/elements/1.1/">http://purl.org/dc/elements/1.1/</a>“ definiert ist. Das RDF-Format ist wie das XML-Format mit UTF-8 kodiert, um Umlaute, Ligature u.ä. Zu ermöglichen.<br /> Die Elemente entsprechen dem Vorschlag der „Dublin Core Metadata Initiative“, einem weit verbreitetem Format für Content-Syndication im Internet.</p> <p>4.4 Das nightloop-Tool für Perl und PHP<br /> Für die Programmeirsprachen Perl und PHP existieren Tools, die das XML-Format in zwei assoziative Felder (Hash-Arrays) kopieren, die sich anschließend mit programmierspracheneigenen Mitteln verarbeiten lassen.<br /> 4.4.1 Perl<br /> Das Perl-Tool nightloop.pm beinhaltet eine Funktion zur Konvertierung der XML-daten in ein assoziatives Feld. Das Tool wird wie folgt aufgerufen (Beispiel):<br /> ($channeldata, $items) = nightloop::getNightloop( channel => ‘magazin_stars’,<br /> protocol => ‘SOAP’,<br /> items => 2<br /> );</p> <p>4.4.2 PHP<br /> Die Dateien include/inc_client_hhtp.php und include/inc_client_soap.php enthalten eine Funktion zur Konvertierung des XML-Formats in zwei assoziative Felder. Das Tool wird folgendermaßen aufgerufen:</p> <p>list($channel_data, $schlagzeilen) = getNightloop(“magazin_stars”, 10);</p> <p>5. Glossar<br /> DOM<br /> HTTP<br /> proprietär<br /> RDF<br /> RSS<br /> SOAP<br /> URL<br /> UTF-8<br /> UTF-8 (Abk. für 8-bit Unicode Transformation Format) ist ein Kodierung für Unicode-Zeichen; dabei besteht der Code aus Byte-Ketten von variabler Länge. UTF-8 ist gegenwärtig als RFC 2279 standardisiert (UTF-8, a transformation format of ISO 10646). Hat ein Byte in UTF-8 einen Wert zwischen 0 und 127, so entspricht es exakt dem ASCII-Zeichen mit demselben Wert. In allen anderen Fällen sind mehr Bytes erforderlich.<br /> XML</p> </div> </main> <footer class="wp-block-template-part"> <div class="wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained" style="padding-top:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50)"> <div class="wp-block-columns alignwide is-layout-flex wp-container-core-columns-layout-1 wp-block-columns-is-layout-flex"> <div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:30%"> <div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-layout-7 wp-block-group-is-layout-flex"> <p class="wp-block-site-title has-medium-font-size"><a href="https://elektroelch.de/drafts" target="_self" rel="home">Drafts</a></p> <p class="wp-block-site-tagline has-small-font-size">Eine weitere elektroelch Sites Seite</p> </div> </div> <div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:20%"> </div> <div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%"> <div class="wp-block-group is-content-justification-space-between is-layout-flex wp-container-core-group-layout-14 wp-block-group-is-layout-flex"> <div class="wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-layout-9 wp-block-group-is-layout-flex"> <h2 class="wp-block-heading has-medium-font-size has-body-font-family" style="font-style:normal;font-weight:600">About</h2> <div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-layout-8 wp-block-group-is-layout-flex"> <nav style="font-style:normal;font-weight:400;" class="has-small-font-size is-vertical wp-block-navigation has-small-font-size is-layout-flex wp-container-core-navigation-layout-2 wp-block-navigation-is-layout-flex" aria-label="About"><ul style="font-style:normal;font-weight:400;" class="wp-block-navigation__container has-small-font-size is-vertical wp-block-navigation has-small-font-size"><li class="has-small-font-size wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="#"><span class="wp-block-navigation-item__label">Team</span></a></li><li class="has-small-font-size wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="#"><span class="wp-block-navigation-item__label">History</span></a></li><li class="has-small-font-size wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="#"><span class="wp-block-navigation-item__label">Careers</span></a></li></ul></nav> </div> </div> <div class="wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-layout-11 wp-block-group-is-layout-flex"> <h2 class="wp-block-heading has-medium-font-size has-body-font-family" style="font-style:normal;font-weight:600">Privacy</h2> <div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-layout-10 wp-block-group-is-layout-flex"> <nav style="font-style:normal;font-weight:400;" class="has-small-font-size is-vertical wp-block-navigation has-small-font-size is-layout-flex wp-container-core-navigation-layout-3 wp-block-navigation-is-layout-flex" aria-label="Privacy"><ul style="font-style:normal;font-weight:400;" class="wp-block-navigation__container has-small-font-size is-vertical wp-block-navigation has-small-font-size"><li class="has-small-font-size wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="#"><span class="wp-block-navigation-item__label">Privacy Policy</span></a></li><li class="has-small-font-size wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="#"><span class="wp-block-navigation-item__label">Terms and Conditions</span></a></li><li class="has-small-font-size wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="#"><span class="wp-block-navigation-item__label">Contact Us</span></a></li></ul></nav> </div> </div> <div class="wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-layout-13 wp-block-group-is-layout-flex"> <h2 class="wp-block-heading has-medium-font-size has-body-font-family" style="font-style:normal;font-weight:600">Social</h2> <div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-layout-12 wp-block-group-is-layout-flex"> <nav style="font-style:normal;font-weight:400;" class="has-small-font-size is-vertical wp-block-navigation has-small-font-size is-layout-flex wp-container-core-navigation-layout-4 wp-block-navigation-is-layout-flex" aria-label="Social Media"><ul style="font-style:normal;font-weight:400;" class="wp-block-navigation__container has-small-font-size is-vertical wp-block-navigation has-small-font-size"><li class="has-small-font-size wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="#"><span class="wp-block-navigation-item__label">Facebook</span></a></li><li class="has-small-font-size wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="#"><span class="wp-block-navigation-item__label">Instagram</span></a></li><li class="has-small-font-size wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="#"><span class="wp-block-navigation-item__label">Twitter/X</span></a></li></ul></nav> </div> </div> </div> </div> </div> <div class="wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow" style="padding-top:var(--wp--preset--spacing--50);padding-bottom:0"> <p class="has-contrast-2-color has-text-color has-link-color has-small-font-size wp-elements-69a005592d8de9c85f5c3744bd9a4e03"> Designed with <a href="https://wordpress.org" rel="nofollow">WordPress</a> </p> </div> </div> </footer> </div> <script id="wp-block-template-skip-link-js-after"> ( function() { var skipLinkTarget = document.querySelector( 'main' ), sibling, skipLinkTargetID, skipLink; // Early exit if a skip-link target can't be located. if ( ! skipLinkTarget ) { return; } /* * Get the site wrapper. * The skip-link will be injected in the beginning of it. */ sibling = document.querySelector( '.wp-site-blocks' ); // Early exit if the root element was not found. if ( ! sibling ) { return; } // Get the skip-link target's ID, and generate one if it doesn't exist. skipLinkTargetID = skipLinkTarget.id; if ( ! skipLinkTargetID ) { skipLinkTargetID = 'wp--skip-link--target'; skipLinkTarget.id = skipLinkTargetID; } // Create the skip link. skipLink = document.createElement( 'a' ); skipLink.classList.add( 'skip-link', 'screen-reader-text' ); skipLink.href = '#' + skipLinkTargetID; skipLink.innerHTML = 'Skip to content'; // Inject the skip link. sibling.parentElement.insertBefore( skipLink, sibling ); }() ); </script> <script src="https://elektroelch.de/drafts/wp-content/plugins/wp-syntax/js/wp-syntax.js?ver=1.1" id="wp-syntax-js-js"></script> <script src="https://elektroelch.de/drafts/wp-content/plugins/enlighter/cache/X6_enlighterjs.min.js?ver=PPyWQD1gb9+LxH/" id="enlighterjs-js"></script> <script id="enlighterjs-js-after"> !function(e,n){if("undefined"!=typeof EnlighterJS){var o={"selectors":{"block":"pre.EnlighterJSRAW","inline":"code.EnlighterJSRAW"},"options":{"indent":4,"ampersandCleanup":true,"linehover":true,"rawcodeDbclick":false,"textOverflow":"break","linenumbers":true,"theme":"enlighter","language":"generic","retainCssClasses":false,"collapse":false,"toolbarOuter":"","toolbarTop":"{BTN_RAW}{BTN_COPY}{BTN_WINDOW}{BTN_WEBSITE}","toolbarBottom":""}};(e.EnlighterJSINIT=function(){EnlighterJS.init(o.selectors.block,o.selectors.inline,o.options)})()}else{(n&&(n.error||n.log)||function(){})("Error: EnlighterJS resources not loaded yet!")}}(window,console); </script> <!--[if lt IE 9]><link rel="stylesheet" href="https://elektroelch.de/drafts/wp-content/plugins/gallery-lightbox-slider '/css/photobox/photobox.ie.css'.'"><![endif]--> <style type="text/css"> #pbOverlay { background:rgba(0,0,0,.90) none repeat scroll 0% 0% !important; } .gallery-caption, .blocks-gallery-item figcaption { display: none !important; } .pbWrapper > img{display: inline;} #pbThumbsToggler {display: none !important;} </style> <script type="text/javascript">// <![CDATA[ jQuery(document).ready(function($) { /* START --- Gallery Lightbox Lite --- */ // Gutenberg Adaptive $('.blocks-gallery-item, .wp-block-image').each(function(i) { var $blck = $(this).find('img'), $isSrc = $blck.attr('src'); if (! $blck.closest('a').length) { $blck.wrap('<a class="glg-a-custom-wrap" href="'+$isSrc+'"></a>'); } else { $blck.closest('a').addClass('glg-a-custom-wrap'); } }); // Initialize! // .glg-a-custom-wrap (Block Gallery) // .carousel-item:not(".bx-clone") > a:not(".icp_custom_link") (Image Carousel) // .gallery-item > dt > a (Native Gallery) $('.gallery, .ghozylab-gallery, .wp-block-gallery') .photobox('.carousel-item > a:not(".icp_custom_link"),a.glg-a-custom-wrap, .gallery-item > dt > a, .gallery-item > div > a',{ autoplay: true, time: 3000, thumbs: true, counter: '' }, callback); function callback(){ }; }); /* END --- Gallery Lightbox Lite --- */ // ]]></script> </body> </html> <!-- Cachify | https://cachify.pluginkollektiv.org Generated @ 12.11.2023 13:30:00 -->