Heim > Backend-Entwicklung > PHP-Tutorial > Verwenden von Solarium mit Solr zur Suche - Fortgeschrittene

Verwenden von Solarium mit Solr zur Suche - Fortgeschrittene

William Shakespeare
Freigeben: 2025-02-21 10:20:13
Original
444 Leute haben es durchsucht

Verwenden von Solarium mit Solr zur Suche - Fortgeschrittene

Dies ist der vierte und letzte Teil einer Serie zur Verwendung von Apache Solr -Suchimplementierung zusammen mit Solarium, einer PHP -Bibliothek, um sie in Ihre Anwendung zu integrieren, als ob sie nativ wäre.

In den ersten drei Teilen haben wir Solr und Solarium installiert und konfiguriert und begannen, eine Beispielanwendung für die Suche nach Filmen zu erstellen. Wir haben uns auch auf Facettensuche angesehen.

Wir werden die Serie abschließen, indem wir einige fortgeschrittenere Funktionen von Solr ansehen und wie man sie mit Solarium verwendet.

Key Takeaways

  • Verwenden Sie die Hervorhebungsfunktion in Solr mit Solarium, um die Sichtbarkeit des Suchergebnisses zu verbessern, indem übereinstimmende Wörter oder Phrasen in Dokumenten markiert werden und sowohl vollständige als auch Snippet-basierte Hervorhebungsoptionen angeboten werden.
  • in Ihren Suchanwendungen mit der SELR-Sugester-Komponente von SolR in Ihre Suchanwendungen in Ihre Suchanwendungen integrieren, wodurch die Indexfelder für die Muster-Matching analysiert werden, um Abfragen dynamisch vorzuschlagen.
  • Array-basierte Konfiguration zum Einrichten von Abfragen in Solarium verwenden, sodass eine detaillierte Anpassung von Suchparametern und Ergebnisbehandlungen ermöglicht wird.
  • Erweitern Sie die Funktionen von Solr, indem Sie zusätzliche Kerne hinzufügen, bei denen bestimmte Verzeichnisse und Konfigurationsdateien erstellt werden, um verschiedene Datensätze oder Suchkriterien effizient zu verarbeiten.
  • Anpassen von Solr-Verhalten mit zusätzlichen Konfigurationsdateien wie Synonyms.txt und Stopwords.txt, um das Verständnis und die Verarbeitung von Suchmaschinen der Suchmaschinen-Sprache durch die Suchmaschine zu optimieren, die Suchrelevanz und -genauigkeit verbessern.

Hervorhebung der Ergebnisse mit Solr

Mit der Hervorhebungskomponente können Sie die Teile eines Dokuments hervorheben, die mit Ihrer Suche übereinstimmen. Sein Verhalten um das, was gezeigt wird Wörter aber mit Ausschnitten; Ähnlich wie die Suchergebnisse von Google.

Um hervorzuheben, müssen Sie zunächst die Felder angeben. Anschließend können Sie ein Präfix und ein entsprechendes Postfix für die hervorgehobenen Wörter oder Phrasen festlegen. Also zum Beispiel, um hervorgehobene Wörter und Phrasen mutig zu machen:

$hl = $query->getHighlighting();
$hl->setFields(array('title', 'synopsis'));
$hl->setSimplePrefix('<strong>');
$hl->setSimplePostfix('</strong>');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Alternativ eine Hintergrundfarbe hinzufügen:

$hl = $query->getHighlighting();
$hl->setFields(array('title', 'synopsis'));
$hl->setSimplePrefix('<span style="background:yellow;">');
$hl->setSimplePostfix('</span>');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Oder Sie können sogar pro Feldeinstellungen verwenden:

$hl = $query->getHighlighting();
$hl->getField('title')->setSimplePrefix('<strong>')->setSimplePostfix('</strong>');
$hl->getField('synopsis')->setSimplePrefix('<span style="background:yellow;">')->setSimplePostfix('</span>');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Sobald Sie die Hervorhebungskomponente in Ihrer Suchimplementierung konfiguriert haben, müssen sie in Ihrer Suchergebnisansicht etwas mehr Arbeit beteiligen.

.

Zunächst müssen Sie das hervorgehobene Dokument aus der Hervorhebungskomponente durch ID extrahieren:
$highlightedDoc = $highlighting->getResult($document->id);
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Jetzt können Sie auf alle hervorgehobenen Felder zugreifen, indem Sie sie durch sie als Eigenschaften des hervorgehobenen Dokuments iteriert:
if($highlightedDoc){
    foreach($highlightedDoc as $field => $highlight) {
        echo implode(' (...) ', $highlight) . '<br/>';
    }
}
Nach dem Login kopieren
Nach dem Login kopieren

Oder Sie können Getfield (): verwenden
$hl = $query->getHighlighting();
$hl->setFields(array('title', 'synopsis'));
$hl->setSimplePrefix('<strong>');
$hl->setSimplePostfix('</strong>');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

hervorgehobene Felder geben nicht einfach den Text zurück, sondern geben jedoch eine Reihe von "Snippets" von Text zurück. Wenn es keine Übereinstimmungen für dieses bestimmte Feld gibt - zum Beispiel, wenn Ihre Suche auf dem Titel, jedoch keine Zusammenfassung -, ist dieses Array leer.

Der obige Code gibt maximal ein Snippet zurück. Um dieses Verhalten zu ändern, können Sie die Methode setSnippets () verwenden:

$hl = $query->getHighlighting();
$hl->setFields(array('title', 'synopsis'));
$hl->setSimplePrefix('<span style="background:yellow;">');
$hl->setSimplePostfix('</span>');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Angenommen, Sie suchen nach dem Wort "Stern". Eines der Ergebnisse hat eine Zusammenfassung, die wie folgt liest:

Dieses nicht zu verpasste Kino -Event wird einen der denkwürdigsten Momente in der TV -Geschichte und exklusive Clips über die Herstellung des Besten von Welten und Star Trek: The Next Generation Staffel 3. im 24. Jahrhundert zeigen. Die nächste Generation wurde über 20 Jahre nach der ursprünglichen Star Trek -Serie von Gene Roddenberry erstellt. Die nächste Generation wurde zur längsten laufenden Serie des Star Trek -Franchise, bestehend aus 178 Folgen über 7 Spielzeiten. Star Trek: Die nächste Generation-Das Beste aus beiden Welten ist die erste Gelegenheit, um das Beste aus beiden Welten zu sehen, eine der größten TV-Episoden aller Zeiten, als ein herrlich remasteredes Feature in voller Länge in ausgewählten Kinos im ganzen Land. >

Das Synopsis -Array des hervorgehobenen Dokuments enthält drei Elemente:

    Geschichte und exklusive Clips über die Herstellung der Besten von Welten und Star Trek: Die nächste Generation
  • nach der ursprünglichen Star Trek -Serie. Die nächste Generation wurde die längste laufende Serie des Sterns
  • Trek -Franchise, bestehend aus 178 Folgen über 7 Spielzeiten. Star Trek: Die nächste Generation - das Beste von
Eine Möglichkeit, mehrere Snippets anzuzeigen, besteht darin, sie zu implodieren, zum Beispiel:

$hl = $query->getHighlighting();
$hl->getField('title')->setSimplePrefix('<strong>')->setSimplePostfix('</strong>');
$hl->getField('synopsis')->setSimplePrefix('<span style="background:yellow;">')->setSimplePostfix('</span>');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Dies führt im Folgenden:

Geschichte und exklusive Clips über die Herstellung der Besten von Welten und Star Trek: Die nächste Generation… nach der ursprünglichen Star Trek -Serie. Die nächste Generation wurde zur längsten laufenden Serie des Stars… Trek -Franchise, bestehend aus 178 Folgen über 7 Spielzeiten. Star Trek: Die nächste Generation - das Beste von

Es gibt eine Reihe anderer Parameter, mit denen Sie das Verhalten der hier erklärenden Komponente ändern können.

Integrieren Sie das Hervorheben in unsere Filmsuche

Jetzt, da wir über das Hervorheben der Nutzung der Filmsuche behandelt werden, sollte es unkompliziert sein.

Das erste, was Sie tun müssen, ist die Änderung von App/Controllern/homecontroller.php, indem Sie Folgendes hinzufügen, kurz bevor wir die Suche ausführen:

$highlightedDoc = $highlighting->getResult($document->id);
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
dann die Suchergebnisse - an die Sie sich erinnern werden, sind in App/Ansichten/home/index.blade.php - werden:

$hl = $query->getHighlighting();
$hl->setFields(array('title', 'synopsis'));
$hl->setSimplePrefix('<strong>');
$hl->setSimplePostfix('</strong>');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Beachten Sie, wie jedes Suchergebnis im Wesentlichen Felder zwischen dem Suchergebnisdokument und dem hervorgehobenen Dokument mischt und übereinstimmt - letzteres ist effektiv eine Untergruppe der ersteren. Abhängig von Ihrem Schema haben Sie möglicherweise alle Ihre Felder in der hervorgehobenen Version verfügbar.

Vorschlag - Autokaponete

Hinzufügen

Mit der Sugchester -Komponente werden Abfragebedingungen basierend auf unvollständigen Abfrageneingaben vorgeschlagen. Im Wesentlichen untersucht es den Index in einem bestimmten Feld und extrahiert Suchbegriffe, die einem bestimmten Muster entsprechen. Sie können diese Vorschläge dann nach Frequenz bestellen, um die Relevanz der Suche zu erhöhen.

Um den Vorschlag einzurichten, müssen wir ihn in Ihrer Datei eLrconfig.xml konfigurieren. Öffnen Sie es an den folgenden Ausschnitten von XML in der Nähe des anderen Deklarationen:
$hl = $query->getHighlighting();
$hl->setFields(array('title', 'synopsis'));
$hl->setSimplePrefix('<span style="background:yellow;">');
$hl->setSimplePostfix('</span>');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Sie werden eine Reihe von Verweisen auf "Rechtschreibprüfung" bemerken, aber dies liegt einfach daran, dass die Sughtester -Komponente in interner Funktionen wiederverwendet.

Das wichtige Bit ist das i -Element , das der Komponente mitteilt, dass wir das Titelfeld verwenden möchten, auf dem unsere Vorschläge gestützt werden sollen.

Solr neu starten, und Sie können jetzt versuchen, eine Vorschlag -Abfrage durch Ihren Webbrowser auszuführen:
$hl = $query->getHighlighting();
$hl->getField('title')->setSimplePrefix('<strong>')->setSimplePostfix('</strong>');
$hl->getField('synopsis')->setSimplePrefix('<span style="background:yellow;">')->setSimplePostfix('</span>');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

(Möglicherweise müssen Sie die Portnummer ändern, je nachdem, wie Sie Solr einrichten)

Die Ausgabe sollte ein wenig so aussehen:
$highlightedDoc = $highlighting->getResult($document->id);
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wie Sie sehen können, hat Solr vier mögliche Übereinstimmungen für „Ho“ - *ho ** verwendet, ** ho ** verwendet, ** ho ** rror und ** ho ** me. Trotz *zu Hause und Horror vor House im Alphabet erscheint House

, weil er zuerst einer der häufigsten Suchbegriffe in unserem Index ist .

Verwenden wir diese Komponente, um eine automatische Vervollständigung für unser Suchfeld zu erstellen. Dies schließt gemeinsame Suchbegriffe vor, wenn der Benutzer ihre Abfrage eingibt.

Definieren Sie zuerst die Route:
if($highlightedDoc){
    foreach($highlightedDoc as $field => $highlight) {
        echo implode(' (...) ', $highlight) . '<br/>';
    }
}
Nach dem Login kopieren
Nach dem Login kopieren

Integrieren Sie die JQuery UI (und JQuery selbst) in Ihr Layout:
if($highlightedDoc){
    $highlightedTitle = $highlightedDoc->getField('title');
}
Nach dem Login kopieren

Fügen Sie ein JQuery UI -Thema ein:
$hl = $query->getHighlighting();
$hl->setSnippets(5);
// . . . as before . . .
Nach dem Login kopieren

und schließlich einige JS hinzufügen, um die automatische Vervollständigung zu initialisieren:
implode(' ... ', $highlightedDoc->getField('synopsis'))
Nach dem Login kopieren

Das ist alles, was es gibt - probieren Sie es aus, indem Sie ein paar Suchvorgänge ausführen.

Array-basierte Konfiguration

Wenn Sie es vorziehen, können Sie mit einem Array Ihre Abfrage einrichten - zum Beispiel:
// Get highlighting component, and apply settings
$hl = $query->getHighlighting();
$hl->setSnippets(5);
$hl->setFields(array('title', 'synopsis'));

$hl->setSimplePrefix('<span style="background:yellow;">');
$hl->setSimplePostfix('</span>');

// Execute the query and return the result
$resultset = $this->client->select($query);
Nach dem Login kopieren

zusätzliche Kerne addieren

Beim Start durchquert Solr das angegebene Heimverzeichnis, das nach Kernen sucht, die identifiziert, wenn es eine Datei namens Core.Propeties lokalisiert. Bisher haben wir einen Kern namens Collection1 verwendet und Sie werden sehen, dass er drei Schlüsselelemente enthält:

Die Datei core.Propertes. Im grundlegendsten enthält es einfach den Namen der Instanz.

Das Conf -Verzeichnis enthält die Konfigurationsdateien für die Instanz. Dieses Verzeichnis muss mindestens ein Schema.xml und eine Solrconfig.xml -Datei enthalten.

Das Datenverzeichnis enthält die Indizes. Der Ort dieses Verzeichnisses kann überschrieben werden, und wenn es nicht vorhanden ist, wird es für Sie erstellt.

Befolgen Sie also eine neue Instanz:

  1. Erstellen Sie ein neues Verzeichnis in Ihrem Heimverzeichnis - Filme in der Beispielanwendung
  2. Erstellen Sie ein Conf -Verzeichnis in diesem
  3. Erstellen oder kopieren Sie eine Datei schema.xml und solrconfig.xml im Conf -Verzeichnis und passen Sie entsprechend
  4. an.
  5. Erstellen Sie eine Textdatei namens core.properties im Home -Verzeichnis mit folgenden Inhalten:

name = instacnaName

… wo InstalcaNAname der Name Ihres neuen Verzeichnisses ist.

Beachten Sie, dass die Schema.xml -Konfiguration, die im Beispielverzeichnis geliefert wird, Verweise auf eine Reihe von Textdateien enthält - z.

dann Solr.

neu starten

Sie können auch über die administrative Webschnittstelle in Ihrem Webbrowser einen neuen Kern hinzufügen. Klicken Sie auf der linken Seite auf den Kernadministrator und fügen Sie dann Kern hinzu.

zusätzliche Konfiguration

Es gibt einige zusätzliche Konfigurationsdateien, die eine Erwähnung wert sind.

Die stoppwords.txt-Datei-oder genauer gesagt, die sprachspezifischen Dateien wie Lang/Stopwords_en.txt-enthalten Wörter, die vom Suchindexer wie "A", "The" und "At" ignoriert werden sollten . In den meisten Fällen müssen Sie diese Datei wahrscheinlich nicht ändern.

Abhängig von Ihrer Anwendung finden Sie möglicherweise, dass Sie protords.txt Wörter hinzufügen müssen. Diese Datei enthält eine Liste geschützter Wörter, die nicht "eingebildet" sind - dh auf ihre Grundform reduziert. Zum Beispiel wird "gefragt" "fragen", "Arbeiten" wird zu "Arbeit". Manchmal stammenden Versuche, Wörter zu „korrigieren“ und vielleicht das zu entfernen, was es hält, sind fehlerhafte Zahlenbuchstaben am Ende. Möglicherweise haben Sie mit geografischen Gebieten zu tun und feststellen, dass „Maine“ auf „Maine“ zurückzuführen ist.

Sie können Synonyme - Wörter mit der gleichen Bedeutung - in Synonyms.txt angeben. Separate Synonyme mit Kommas pro Line. Zum Beispiel:

$hl = $query->getHighlighting();
$hl->setFields(array('title', 'synopsis'));
$hl->setSimplePrefix('<strong>');
$hl->setSimplePostfix('</strong>');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Sie können auch Synoyms.txt verwenden, um gemeinsame Rechtschreibfehler mithilfe von Synonym -Zuordnungen zu korrigieren, z. B.

$hl = $query->getHighlighting();
$hl->setFields(array('title', 'synopsis'));
$hl->setSimplePrefix('<span style="background:yellow;">');
$hl->setSimplePostfix('</span>');
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Wenn Sie Währungsfelder verwenden, möchten Sie möglicherweise aktualisieren und im Auge auf Currency.xml im Auge behalten, was einige Beispielwechselkurse angibt - was natürlich sehr volatil ist.

Zusammenfassung

In dieser Serie haben wir uns die SolR -Implementierung von Apache für die Suche angesehen und die PHP Solarium Library verwendet, um damit zu interagieren. Wir haben SolR zusammen mit einem Beispielschema installiert und konfiguriert und eine Anwendung erstellt, die zum Durchsuchen einer Reihe von Filmen entwickelt wurde, die eine Reihe von Funktionen von Solr belegen. Wir haben uns mit Facettensuche befasst, die Ergebnisse und die Dismax -Komponente hervorheben. Hoffentlich gibt dies Ihnen genügend Grundlagen, um es anzupassen, um Solr für die Suche in Ihren Anwendungen zu verwenden.

Zum weiteren Lesen möchten Sie den Solr -Referenzhandbuch als PDF herunterladen oder die Solarium -Dokumentation konsultieren.

häufig gestellte Fragen (FAQs) zur Verwendung von Solarium mit Solr für erweiterte Suche

Wie kann ich automatisch mit Solr und Solarium implementieren? Dieser Vorschlag wird verwendet, um Vorschläge für Benutzeranfragen vorzulegen. Sobald der Vorschlag eingerichtet ist, können Sie die Vorschläge von Solarium verwenden, um Vorschläge zu erhalten. Die Abfrage vor Schlucken gibt eine Liste von Vorschlägen zurück, die auf der Eingabe des Benutzers basieren, die Sie dann dem Benutzer anzeigen können.

Was ist der Unterschied zwischen Solarium und Stellarium? Andere Software. Solarium ist eine PHP -Bibliothek, die eine API für die Interaktion mit Solr, einer leistungsstarken Suchplattform, bereitstellt. Andererseits ist Stellarium ein kostenloses Open -Source -Planetarium für Ihren Computer. Es zeigt einen realistischen Himmel in 3D, genau wie das, was Sie mit bloßem Auge, Fernglas oder einem Teleskop sehen. Sie müssen zunächst eine Client -Instanz mit der Konfiguration Ihres Solr -Servers erstellen. Anschließend können Sie eine ausgewählte Abfrage mit der Client CreateSelect -Funktion erstellen. Sie können verschiedene Parameter für die Abfrage festlegen, z. B. die Felder, die zur Rückgabe, die Abfragezeichenfolge und alle Filter. Sobald die Abfrage eingerichtet ist, können Sie sie mit der Ausführungsfunktion des Clients ausführen, die ein Ergebnissatz zurückgibt, das Sie iterieren können, um auf die einzelnen Dokumente zuzugreifen.

Um mit Solarium Dokumente zum Solr hinzuzufügen, müssen Sie zunächst eine Client -Instanz mit der Konfiguration Ihres Solr -Servers erstellen. Anschließend können Sie eine Update -Abfrage mit der CreateUpDate -Funktion des Clients erstellen. Sie können dieser Abfrage mit der AddDocument -Funktion Dokumente hinzufügen, die eine Dokumentinstanz als Argument nimmt. Die Dokumentinstanz sollte alle Felder und Werte haben, die Sie dem Dokument hinzufügen möchten. Sobald alle Dokumente zur Abfrage hinzugefügt wurden, können Sie sie mit der Ausführungsfunktion des Clients ausführen. Müssen zunächst eine Client -Instanz mit der Konfiguration Ihres Solr -Servers erstellen. Anschließend können Sie eine Update -Abfrage mit der CreateUpDate -Funktion des Clients erstellen. Mit den Funktionen von AddDeleteById oder AddDeleteByQuery können Sie diese Abfrage zu dieser Abfrage hinzufügen. Sobald alle Löschbefehle zur Abfrage hinzugefügt werden, können Sie sie mit der Ausführungsfunktion des Clients ausführen.

Wie kann ich meinen Solr -Index mit Solarium optimieren? Anschließend können Sie eine Update -Abfrage mit der CreateUpDate -Funktion des Clients erstellen. Sie können dieser Abfrage einen Befehl optimieren, indem Sie die Funktion addoptimize -Funktion haben. Sobald der Befehl optimieren zur Abfrage hinzugefügt wurde, können Sie ihn mit der Ausführungsfunktion des Clients ausführen. Kann behandelt werden, indem die von der Ausführungsfunktion des Clients geworfene Solarium_Exception erfasst werden. Diese Ausnahme enthält Informationen über den Fehler wie die Fehlermeldung und die Solr -Antwort.

Wie kann ich Facetten mit Solarium und Solr? Müssen zunächst eine ausgewählte Abfrage mit der Erstellungsfunktion des Clients erstellen. Anschließend können Sie mit der AddfacetSet -Funktion eine Facette zur Abfrage hinzufügen. Sie können dem Facettensatz verschiedene Arten von Facetten hinzufügen, z. B. Feldfacetten, Abfragefacetten und Bereichsfacetten. Sobald die Facetten eingerichtet sind, können Sie die Abfrage mit der Ausführungsfunktion des Clients ausführen, wodurch ein Ergebnissatz zurückgegeben wird, das die Facettenergebnisse enthält. 🎜> Um das Hervorheben mit Solarium und Solr zu verwenden, müssen Sie zunächst eine Select -Abfrage mit der Erstellungsfunktion des Clients erstellen. Anschließend können Sie der Abfrage einen Textmarker mit der AddHighlighting -Funktion hinzufügen. Sie können verschiedene Parameter auf dem Textmarker festlegen, z. Sobald der Highlighter eingerichtet ist, können Sie die Abfrage mit der Ausführungsfunktion des Clients ausführen, wodurch ein Ergebnissatz zurückgegeben wird, das die Hervorhebungsergebnisse enthält.

Wie kann ich Pagination mit Solarium und Solr? 🎜> Um die Pagination mit Solarium und Solr zu verwenden, müssen Sie zunächst eine Auswahlabfrage mit der Erstellungsfunktion des Clients erstellen. Anschließend können Sie die Parameter für Start- und Zeilen in der Abfrage festlegen, um den zu rendatenden Ergebnisbereich anzugeben. Der Startparameter gibt den Index des ersten Ergebniss an, und der Parameter von Zeilen gibt die Anzahl der zurückgegebenen Ergebnisse an. Sobald die Paginierung eingerichtet ist, können Sie die Abfrage mit der Ausführungsfunktion des Clients ausführen, die einen Ergebnissatz zurückgibt, das den angegebenen Ergebnisbereich enthält.

Das obige ist der detaillierte Inhalt vonVerwenden von Solarium mit Solr zur Suche - Fortgeschrittene. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage