Stoppt die Vorratsdatenspeicherung! Jetzt klicken &handeln! Willst du auch an der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien:

Navigation:

Besucherzähler:

  • Derzeit online: 6
  • Insgesamt: 67972

Spamfresser:

  • Spams: 12427

Suchmaschinendienst für Firefox und IE erstellen

Kategorie Sonstiges

Datum: 17.03.2008, 21:16 - Autor: Manko10

Hier mal ein Tutorial ganz anderer Art.
Wer den Firefox oder den Internet Explorer (ab Version 7) benutzt, wird sicherlich schon das Suchfeld oben rechts bemerkt haben. Außerdem, dass der Dropdown-Button daneben auf manchen Seiten farbig hervorgehoben wird. Das signalisiert dann immer, dass diese Seite einen Suchdienst auf Basis von OpenSearch anbietet.
Das ist an sich nichts Wildes. Nur ein standardisiertes XML-Dokument (nach dem OpenSearch-Standard), das bestimmte Angaben zu einem Suchdienst macht. In diesem Tutorial wollen wir zusammen einen Suchdienst erstellen.

Dazu zuerst die grobe Struktur dieser Datei:
Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
    <ShortName>Name</ShortName>
    <Description>Beschreibung</Description>
    <Image width="16" height="16">data:image/x-icon,serialisiertes Icon</Image>
    <Url type="text/html" method="Methode" template="URL">
        <Param name="Parametername" value="Parameterwert" />
        <!-- Weitere Parameter -->
    </Url>
    <moz:SearchForm>Seite, auf der das Formular zu finden ist</moz:SearchForm>
</OpenSearchDescription>


Das ist im Grunde auch schon alles, es fehlen nur noch die direkten Daten zu einer Search-Engine. Nehmen wir dazu die von OpenWebBoard. Zuerst geben wir Name, Beschreibung und Pfad zur Seite, auf der das Formular zu finden ist an (dieser wird aufgerufen, wenn der User eine Suche startet, ohne etwas eingegeben zu haben).
Code:
1:
2:
3:
<ShortName>OpenWebBoard-Suche</ShortName>
<Description>Beiträge im OpenWebBoard-Forum finden.</Description>
<moz:SearchForm>http://forum.openwebboard.org/search.php</moz:SearchForm>

Soweit so schön. Nun müssen wir noch den Suchbegriff übermitteln. Dazu müssen wir wissen, über welche Methode (GET oder POST) die Daten gesendet werden. In unserem Fall ist das POST.
Hierzu noch, welche Parameter übergeben werden müssen. Ich schreibe diese jetzt einfach ohne Erklärung hier auf. Das einzige, was ich erkläre ist, dass das Attribut template="..." den aufzurufenden URL angibt und jedes Param-Element eine zu übergebende Variable und deren Wert enthält. Der Platzhalter {searchTerms} steht dabei für den vom User eingegebenen Suchbegriff.
Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
<Url type="text/html" method="post" template="http://forum.openwebboard.org/search.php">
    <Param name="search_string" value="{searchTerms}" />
    <Param name="email_address" value="" />
    <Param name="search_opts" value="post" />
    <Param name="search_in_forums[]" value="all" />
    <Param name="order_by" value="title" />
    <Param name="order_dir" value="ASC" />
    <Param name="items_per_page" value="20" />
    <Param name="search" value="1" />
</Url>

Hiermit kann man nun schon eine vollwertige Suche ausführen. Was jetzt aber noch ein wenig fehlt, ist ein hübsches Icon.
Dazu ist das übrig gebliebene Element
Code:
1:
<Image width="16" height="16">data:image/x-icon,serialisiertes Icon</Image>
Bloß wofür steht serialisiertes Icon?
Das heißt einfach, dass hier das Icon angegeben wird, jedoch nicht als Pfad, wie gewohnt, sondern als Zeichenfolge. Um diese Zeichenfolge zu erstellen, benötigen wir zwei Dinge:
  1. Ein Icon in der Größe 16x16 Pixel
  2. Ein sehr kurzes PHP-Skript, welches das Icon serialisiert

Das Skript lautet wie folgt:
PHP-Code:
1:
2:
3:
<?php
echo rawurlencode(file_get_contents("icon.ico"));
?>
Es liest die Icon-Datei ein und kodiert deren Inhalt, sodass er URL-tauglich wird. Der Wert, der ausgegeben wird, ist das serialisierte Icon (nicht erschrecken, die Zeichenfolge ist ziemlich lang).

Jetzt nochmal das ganze Listing (das Icon deute ich nur an):
Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
    <ShortName>OpenWebBoard-Suche</ShortName>
    <Description>Beiträge im OpenWebBoard-Forum finden.</Description>
    <Image width="16" height="16">data:image/x-icon,%00%00%01%00%01 ...</Image>
    <Url type="text/html" method="post" template="http://forum.openwebboard.org/search.php">
        <Param name="search_string" value="{searchTerms}" />
        <Param name="email_address" value="" />
        <Param name="search_opts" value="post" />
        <Param name="search_in_forums[]" value="all" />
        <Param name="order_by" value="title" />
        <Param name="order_dir" value="ASC" />
        <Param name="items_per_page" value="20" />
        <Param name="search" value="1" />
    </Url>
    <moz:SearchForm>http://forum.openwebboard.org/search.php</moz:SearchForm>
</OpenSearchDescription>


Damit der Browser nun auch weiß, dass die Seite einen Suchdienst anbietet, musst du das ganze als XML-Datei mit der Endung .xml speichern.
Dann gibst du im HEAD-Bereich der Seite folgendes an:
Code:
1:
<link rel="search" type="application/opensearchdescription+xml" title="OpenWebBoard-Suche" href="suchdienst.xml" />

Den Dateinamen kannst du natürlich anpassen.

That's it!
Ich hoffe, es war informativ. Schreib doch mal einen Kommentar... :)

Seiten: (1/1) 1


War dieses Tutorial hilfreich?

25 Kommentare:

Top

Datum: 14.01.2009, 11:20 - Autor: Gast

Gut und einleuchtend erklärt.
Es ist ohne große Programmierkenntnisse anwendbar und detailiert.

mhmm

Datum: 26.10.2009, 23:27 - Autor: OnlineSpion

Bin wohl zu doof.

Wenn ich die xml Datei im ordner searchplugins speicher, was muss ich tun das die suche mir auch im ff angezeigt wird.?

mfg

Datum: 27.10.2009, 13:36 - Autor: Manko10

Hallo OnlineSpion,

wie geschrieben, musst du im Kopf-Bereich deiner HTML-Seite noch die folgende (von dir natürlich angepasste) Zeile angeben:
Code:
1:
<link rel="search" type="application/opensearchdescription+xml" title="Ein beliebiger Name für das Suchplugin" href="pfad/zu/deiner/datei.xml" />
Gruß
Manko10

Datum: 24.01.2010, 22:09 - Autor: Gerda

Klasse sache.. danke

Frage, kann ich das irgendwie machen, dass die Suche automatisch hinzugefühgt wird!?
oder kann ich irgendwie ne Downloaddatei erstellen, damit man die suche per installation oder ähnlichem eingefühgt wird?!

Gruß und danke im vorraus

Datum: 24.01.2010, 22:16 - Autor: Manko10

Hallo,

es ist (Gottseidank) nicht möglich, die Search-Plugins automatisch zu installieren, immerhin soll der Benutzer ja über seinen Browser selbst verfügen können.
Wenn du die Installation aber über einen Link anbieten willst, könntest du die XML-Datei verlinken, die du dann mit dem Content-Type application/opensearchdescription+xml auslieferst (beim Apache via AddType). Keine Ahnung, ob das funktioniert, aber die Chance besteht zumindest.
Weitere Informationen zu Search-Plugins findest du auch hier: https://developer.mozilla.org/en/Creating_OpenSearch_plugins_for_Firefox

Datum: 24.01.2010, 22:36 - Autor: Gerda

Danke für die schnelle Hilfe!!

Serialisieren???

Datum: 30.03.2010, 16:08 - Autor: Gast

Ich verstehen das mit dem serialisieren leider nicht. Wie geht das? Was soll ich mit dem PHP-Fetzen machen?

Datum: 31.03.2010, 16:04 - Autor: Manko10

Hallo,

Serialisieren heißt hier, dass die binären Bildinformationen in ASCII-Textinformationen umgewandelt werden. Das Ergebnis ist hier ein sehr langer hexadezimal kodierter String. Das PHP-Skript, das musst du auf einem Webserver oder über die Konsole ausführen (wobei das Copy&Paste des erzeugten Strings dann meist etwas mühsam ist). Wenn du keinen bei dir installiert hast (z.B. per XAMPP), dann führe es z.B. auf einem Webspace aus. Das Skript dient nur einmal dazu, dir das Icon zu serialisieren. Den erzeugten Text (also die Ausgabe des Skripts) kopierst du an der angegebenen Stelle in dein OpenSearch-XML-File wie oben in der Anleitung beschrieben. Das PHP-Skript brauchst du dann nicht mehr. Es ist nur ein Hilfsmittel bei der Erstellung deiner XML-Datei. Du kannst das natürlich auch mit anderen Mitteln erreichen. Du kannst sogar per Hand die Bildinformationen serialisieren, aber das ist eher umständlich aus praktisch.. Von daher ist die Lösung per PHP meist die einfachste.

Plugin für mich erstellen

Datum: 11.07.2010, 15:20 - Autor: Kisu189

Hallo!
Leider kann ich das mit dem selber erstellen nicht. Vielleicht kann mir einer für die Webseite:
www.vertippdich.de eins erstellen und auch
den Programmierungstext geben, damit ich das
mal verstehe. Das wäre toll!
Lg
Sille

Datum: 11.07.2010, 16:11 - Autor: Manko10

Hi,
das sollte funktionieren:
PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
    <
ShortName>VertippDich.de-Suche</ShortName>
    <
Description>Schnäppchen finden durch Vertipper.</Description>
    <
Image width="16" height="16">data:image/x-icon,%00%00%01%00%01%00%10%10%00%00%01%00%08%00h%05%00%00%16%00%00%00%28%00%00%00%10%00%00%00%20%00%00%00%01%00%08%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%01%00%00%00%00%00%00%109R%00%28%8A%C9%00%17Or%00%2F%A3%ED%00%03%0B%10%00%1Eg%95%00L%B5%F8%000%A5%F0%002%AA%F7%00%0D.C%00%2F%A4%EE%00%40%B0%F8%00i%C1%F9%00_%BD%F9%00%0D%2C%40%00%21s%A8%00%21q%A5%00.%9E%E7%00%2F%A1%EA%00%06%16%20%00%29%8F%D0%00%26%85%C2%00-%9D%E5%00%22u%AA%00k%C2%F9%00S%B8%F8%00%3B%AE%F7%007%AC%F7%00%2C%97%DC%00I%B4%F8%00%20p%A3%00%2B%95%D8%00%20m%9F%00%23z%B1%00g%C0%F9%00p%C4%F9%00%25%7F%B9%00%5D%BC%F9%00%28%89%C8%00%2B%94%D7%00%2F%A2%EB%00%26%84%C0%00%14Dc%00%13A_%00H%B3%F8%00%2C%99%DF%00%1Fk%9C%00%24%7D%B6%00X%BA%F9%00C%B1%F8%00%2B%95%D9%004%AB%F7%00%27%86%C3%00T%B8%F8%00r%C5%FA%00%2A%93%D6%001%A9%F6%00%3D%AF%F7%00%1APr%00%1B%5C%86%00j%C1%F9%00%2B%96%DA%00%21r%A6%00E%B2%F8%00%24%7D%B5%008%AD%F7%00%27%87%C5%00%3E%AF%F8%00O%B6%F8%00U%B9%F8%00%27%88%C6%00.%9F%E8%001%AA%F7%00%00%00%00%00%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00JF%21%0F%3E%3E%3E%3E%3E%3E%3E%3E%1E%20.J%07-%14%26FFFFFFFF4%24%17%0F%0B3%0AGGGGGGGGG%162B%2F%061A8HHHH%01%40%40%40%11%127%15D%3FAHHHHH%3BI%2A%02%04%29%3DBD%3FAH%3B%02HHHI%40H%00%0E%3DBD%3FAH%13IGHHI%40H%3B%0E%3DBD%3FA%1FI%00%05HHI%01H%02%2B%3DBD%3FA%3B%09%10%00H%05I%3B%40%00%03%3DBD%3FA%00%05G%04H%40%3B%3B%40G%03%3DBD%3F%3AI%02%01%04%09HHHHH%03%3DBD%3FAHHHHHHHHHH%03%3DB%19%2C%1A%08HHHHHHHH%08%0A%1C%01%25E%1D%0BCCCCCCCCC%1B%28%27%0C%0C%0D0EEEEEEEE5%069%07J6%23%18%3C%3C%3C%3C%3C%3C%3C%3C%22%0DDJ%80%01%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%80%01%00%00</Image>
    <
Url type="text/html" method="post" template="http://www.vertippdich.de/">
        <
Param name="searchword" value="{searchTerms}" />
    </
Url>
    <
moz:SearchForm>http://www.vertippdich.de/</moz:SearchForm>
</OpenSearchDescription>


Grüße
Janek

Brauche nochmal Hilfe...

Datum: 12.07.2010, 17:17 - Autor: Kisu189

Ich dachte, ich weiß wie ich den PHP-Code weiter verwende, aber wo gebeich den den in Firefox ein...
Bin in Sachen "programmieren" noch ein echter
Weisenknabe....

Datum: 12.07.2010, 17:26 - Autor: Manko10

Du erstellst dir eine HTML-Seite uns schreibst in den Kopf-Bereich die Zeile, die am Ende des Artikel steht (habe ich im Kommentar Nr. 3 sogar noch einmal wiederholt). Die rufst du im Firefox auf und dann kannst du den Suchdienst über das Dropdown links neben dem Suchfeld hinzufügen. Die HTML-Datei brauchst du danach nicht mehr.

Ich schaffe es nicht :-(

Datum: 12.07.2010, 21:39 - Autor: Kisu189

Also ich kopiere das ganze in Word, oben wie in Kommentar 3 und passe die Zeile an sprich name und wo die datei liegt und speicher das ganze unter webseite! diese läßt sich natürlich dann in firefox öffnen, aber ich kann sie nicht über den suchdienst speichern! wenn ich rechtsklick rein mache, zeigt er mir zwar im Kontextmenü "Diese Suche zur Suchleiste hinzufügen", aber dabei passiert nichts. Hmm...

Datum: 12.07.2010, 21:49 - Autor: Manko10

Du sollst auch nichts in Word speichern, sondern mit einem Texteditor. Wenn du keinen richtigen installiert hast, nimm einfach Notepad, den Windows-Standardeditor.
Da gibst du dann folgenden Code ein:
Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <title>Suchdienst hinzufügen</title>
    <link rel="search" type="application/opensearchdescription+xml" title="VertippDich.de-Suche" href="vertippdich.xml">
</head>
<body>
</body>
</html>
Das speicherst du in der Datei mit der Endung .html. Im selben Ordner speicherst du das Suchplugin ebenfalls mit Notepad unter dem Namen vertippdich.xml. Dann sollte alles funktionieren.
Merke aber, dass du dafür im Speichern-Dialog von Notepad den Dateityp unten ändern musst. Sonst hat deine HTML-Datei am Ende die Endung .html.txt und die XML-Datei die Endung .xml.txt.

klappt nicht...

Datum: 12.07.2010, 22:20 - Autor: Kisu189

habe beide dateien in notepad erstellt (text reinkopiert), bei xml angepasst (Zeile von kommentar 3). aber es geht nicht. bei html zeigt er zwar im tabreiter an: suchmaschine hinzufügen, aber mit der xml datei zeigt er fehlermeldung im browser...

Datum: 13.07.2010, 00:19 - Autor: Manko10

Du sollst auch bei der XML-Datei nichts anpassen. Ich habe dir den XML-Code jetzt schon so weit aufbereitet, dass du ihn nur noch 1:1 übernehmen musst. Ebenso den HTML-Code.
Wichtig ist nur, dass du den XML-Code als vertippdich.xml im selben Ordner wie die HTML-Datei abspeicherst.

Achso

Datum: 13.07.2010, 18:30 - Autor: Kisu189

Also den html text von 21:49
und den xml text von 16:11

Datum: 13.07.2010, 18:34 - Autor: Manko10

Nein, umgekehrt. Den HTML-Code aus 21:49 und den XML-Code aus 16:11. Letzteren unter vertippdich.xml im selben Verzeichnis wie den HTML-Code abspeichern. Anschließend die HTML-Datei im Browser aufrufen und über das Dropdown die Suche hinzufügen.

Es klappt nicht...

Datum: 13.07.2010, 18:35 - Autor: Kisu

XML-Verarbeitungsfehler: nicht wohlgeformt
Adresse: file:///C:/Dokumente%20und%20Einstellungen/Sille/Desktop/vertippdich.de/vertippdich.xml
Zeile Nr. 3, Spalte 22: <Description>Schn?ppchen finden durch Vertipper.</Description>
---------------------^

Zeigt er mir an. Ich speichere beide in einem Ordner. Wenn ich die html datei öffne (in firefox) öffnet sich eine leere seite mit: Suchdienst hinzufügen. dann öffne ich die xml datei, wo er das oben anzeigt....

???

Datum: 13.07.2010, 18:37 - Autor: Kisu189

Nein, umgekehrt. Den HTML-Code aus 21:49 und den XML-Code aus 16:11???
Das habe ich doch geschrieben!

Datum: 13.07.2010, 18:41 - Autor: Manko10

Jap, sorry, habe das verkehrt gelesen. ja, der in 21:49 ist der HTML-Code und der in 16:11 der XML-Code.
Der von mir geschriebene XML-Code ist aber definitiv korrekt. Speichere die Datei doch bitte noch einmal neu und wähle dabei im Speichern-Unter-Dialog von Notepad beim Zeichensatz statt UTF-8 mal ISO-8859-1 oder ISO-8859-15 aus.

Es klappt nicht...

Datum: 13.07.2010, 19:01 - Autor: Kisu189

Trotzdem danke für die Mühe... Ich kann UTF-8 nicht auf ISO umstellen. Habe mir notepad geladen, aber ich kann es dort nicht einstellen.

Datum: 13.07.2010, 19:04 - Autor: Manko10

Wieso Notepad laden? Ich meine nicht Notepad2 oder Notepad++, sondern einfach den ganz normalen Windows-Editor, der mit jedem Windows mitgeliefert wird. Oftmals heißt der auch einfach nur Editor.
Bei dem musst du nur aufpassen, dass du im Speichern-unter-Dialog beim Dateityp immer Alle Dateien auswählst, bevor du speicherst, sonst fügt Notepad/Editor dir immer .txt an deinen Dateinamen.

frage

Datum: 02.10.2010, 00:00 - Autor: wolf

hallo,
wie und wo hast du das php script eingefügt
<?php
echo rawurlencode(file_get_contents("icon.ico" ;) );
?>

Datum: 03.10.2010, 17:28 - Autor: Manko10

Das wird nirgendwo eingefügt, das ist einfach ein Skript, das einmal ausgeführt werden muss. Du kannst das Icon auch von Hand oder mithilfe jedes anderen Tools oder jeder anderen Programmiersprache serialisieren.
Den dann generierten String kannst du dann in dein XML-File nehmen und das PHP-Skript dann wegschmeißen.

Kommentar schreiben: