Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Einleitung
2 Installation
3 Frontend
4 Backend
5 Eine erste Webseite
6 Inhalte erstellen und verändern
7 Module, Mambots, Komponenten
8 Konfiguration von Joomla!
9 Eine Site aufbauen
10 Der Joomla!-Baukasten
11 Formulare: Facile Forms
12 Benutzer und Bereiche
13 Joomla! als Community-Treff
14 Forum: Simpleboard
15 Blog: WordPress
16 Wiki: MamboWiki
17 Noch mehr Kommunikation
18 Systemwartung
19 Weiterführende Themen
20 Eigene Erweiterungen schreiben
21 Mambots erstellen
22 Eine eigene Komponente
23 Troubleshooting
A Die Joomla!-API
B Glossar
C Inhalt der CD
Index
Index
Download: - ZIP, ca. 19,6 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> / Joomla! | vor >>
Joomla! von Anja Ebersbach, Markus Glaser, Radovan Kubani Das Handbuch für Einsteiger
Joomla! 496 S., mit CD, 29,90 Euro Galileo Computing ISBN 3-89842-632-7 |
| Kapitel 21 Mambots erstellen
|  | 21.1 Mambots für den Inhalt
|  | 21.2 Ein passender Button
|  | 21.3 Mambots für die Suche
## 21.3 Mambots f ü r die Suche Wenn Sie im Suchfeld des Search-Moduls etwas eingeben, wird das Ereignis onSearch ausgelöst. Die Anfrage wird der Reihe nach an die Such-Mambots weitergeleitet, die für ihren Bereich jeweils eine SQL-Anfrage an die Datenbank richten und das Ergebnis dann mit standardisierten Spaltenbezeichnern zurückliefern. Der Vorteil dieses Mechanismus liegt auf der Hand. Wenn Sie als Entwickler eigene Daten in Joomla! verwalten, beispielsweise über eine Komponente, dann können Sie diese auch sehr einfach durchsuchbar machen. Wir wollen uns eine Suche schreiben, die nur in den Titeln der Artikel sucht. Das zugehörige XML-File, wieder auf das Nötigste reduziert, sieht dann so aus:
    1   <?xml version="1.0" encoding="iso-8859–1"?>
    2   <mosinstall type="mambot" group="search"
    3               version="1.1">
    4      <name>Title Searchbot</name>
    5      <files>
    6         <filename mambot="title.searchbot">ð
    7             title.searchbot.phpð
    8         </filename>
    9      </files>
    10     <params />
    11  </mosinstall>
Listing 21.6 title.searchbot.xml Sie sehen, dass als Gruppe search angegeben wurde. Unser Suchroboter hat der Einfachheit halber nur eine Datei und keine Parameter. Die PHP-Datei ist eigentlich ebenfalls sehr leicht zu verstehen, schwierig daran ist nur das SQL-Statement. Für die Weiterverarbeitung des Suchergebnisses müssen die Spalten aus Tabelle 21.2 angegeben werden.

Tabelle 21.2 Mögliche Spalten bei der Rückgabe von Suchergebnissen

Spalte | Beschreibung
title | Der Titel des Suchergebnisses
created | Das Erstellungsdatum
text | Ein Text, der den Inhalt beschreibt
section | Ein Bereich, zu dem der Inhalt gehört
href | Eine URL, über die der Inhalt verlinkt werden kann
browsernav | Die Art und Weise, wie der Inhalt geöffnet werden soll. Wird standardmäßig auf 2 gestellt.
Sie müssen nicht alle Spalten ausgeben. Wir werden der Übersichtlichkeit halber die Angabe des Bereiches weglassen. Sehen wir uns die PHP-Datei einmal an:
    1   <?php
    2   defined( '_VALID_MOS' ) or die( 'Direct Access to this
    3      script is not allowed');
    4   $_MAMBOTS->registerFunction( 'onSearch',
    5                                'botSearchTitles' );
    6   function botSearchTitles( $text )
    7   {
    8      global $database;
    9      $text = trim( $text );
    10     if ($text == '') { return array(); }
    11     $query = "SELECT con.title AS title,"
    12              ." con.created AS created,"
    13              ." con.introtext AS text,"
    14              ." CONCAT( 'index.php?option=com_content"
    15                 ."&task=view&id=', con.id ) AS href,"
    16              ." '2' AS browsernav"
    17              ." FROM #__content AS con"
    18              ." WHERE con.title LIKE '%$text%'"
    19              ." ORDER BY con.title";
    20     $database->setQuery( $query );
    21     return $database->loadObjectList();
    22  }
    23  ?>
Listing 21.7 title.searchbot.php Die einleitenden Zeilen des Skripts dürften mittlerweile kein Problem mehr sein. In Zeile 9 wird der Suchstring bereinigt, indem führende und folgende Leerzeichen entfernt werden. Zeile 10 ist eine Sicherheitsabfrage, falls kein Suchwort eingegeben wurde. Als Nächstes wird das SQL-Statement erstellt (Zeilen 11–19); dazu gleich mehr. Die Punkte am Anfang jeder Zeile in diesem Abschnitt sind eine PHP-Notation, die es erlaubt, längere Zeichenketten über mehrere Zeilen zu verteilen. Die Abfrage wird in Zeile 20 ausgeführt, und in der folgenden Zeile wird das Ergebnis als Objekt zurückgeliefert. Lassen Sie sich von der Datenbankabfrage nicht einschüchtern, sie sieht wilder aus, als sie ist. Beginnen wir in Zeile 17. Hier wird festgelegt, dass die Tabelle, die zu durchsuchen ist, content sein soll. Wir verwenden für die Tabelle in der weiteren Abfrage die Abkürzung con. Diese ist wichtig, um die Spalten zu referenzieren. In Zeile 18 wird das Suchkriterium formuliert. Das Wort der Suchabfrage, das in $text gespeichert ist, soll irgendwo im Titel vorkommen. Zeile 19 legt die Sortierung fest. Sortiert wird alphabetisch aufsteigend nach dem Titel. Die Zeilen 11–16 bestimmen, welche Spalten des Ergebnisses zurückgegeben werden und, nach AS, unter welchem Namen. Also soll der Titel aus content als title zurückgegeben werden (Zeile 11), created einfach als created (Zeile 12) und introtext als text (Zeile 13). Der Link unter dem Namen href wird aus einer Zeichenkette und der id mit dem SQL-Befehl CONCAT zusammengesetzt (Zeilen 14 und 15). Für die Spalte browsernav legen wir einfach den Wert 2 fest (Zeile 16). Wie man beispielsweise an text oder href sieht, erlaubt es uns dieser Mechanismus, Daten aus der Datenbank umzubenennen und somit in der Suchausgabe an die richtige Stelle zu bringen. Um unsere Suche zu testen, müssen Sie den Mambot jetzt installieren. Damit Sie auch sicher gehen können, dass die Treffer von Ihrem Mambot kommen, sollten Sie die anderen Suchbots im Mambot Manager deaktivieren. Gehen Sie dann ins Frontend, und geben Sie einen Begriff ins Suchfeld ein, von dem Sie wissen, dass er in mindestens einem Titel vorkommt. Dann sollten Sie ein Ergebnis sehen.
<< zurück | <top> | vor >>
Zum Katalog
Joomla! bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchtipps
| NEU: Joomla! 1.5 - für Einsteiger
| Einstieg in Joomla! - Das Video-Training
| CSS-Layouts
| Webseiten erstellen für Einsteiger
| Suchmaschinen-Optimierung für Webentwickler
| Professionelles Webdesign mit (X)HTML und CSS
| Einstieg in osCommerce/xt:Commerce
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de