Einfaches HTML-Modul zur Integration einer externen Suchmaschine
Hallo zusammen,
ich denke, die Frage passt doch am besten hier her. Ich hatte das Thema schonmal hier angeschnitten, aber vermutlich ist es eher eine Frage an Entwickler.
Wir würden gerne eine externe Suchmaschine in unser Contao-System einbetten, die in der Lage ist PDF-Dokumente zu indizieren. Diese ist Sphider-Plus. Wir konnten Sie schon erfolgreich auf unserem Shared-Webhosting installieren.
Um das entsprechende Suchfeld auf allen gewünschten Seiten zugänglich zu machen haben wir ein HTML-Modul mit einem Suchformular für diese Suchmaschine erstellt. Die Ergebnisseite wird erstmal als neues Fenster dargestellt. Später wäre es denkbar den Suchindex von Contao mit dem Index von Sphider-Plus zu befüllen. Aber das soll noch kein Thema sein. Damit werden wir uns an einen Mysql-Spezialisten wenden.
Sphider-Plus bringt eine Auto-Suggest-Funktion (Suchvorschläge) mit, die wir auch gerne einbauen würden. Zu diesem Zweck habe ich die Autosuggest-Funktion wie in Sphider-Plus vorgegeben in den <head> via zusätzliche Head-Tags bei dem entsprechenden Seitenlayout eingebettet. Leider funktioniert das nicht.
Die Suchvorschläge werden nicht eingeblendet. Kann das an dem externen PHP-Skript "suggest.php" liegen?
Der Quellcode des HTML-Moduls sieht nun so aus:
HTML-Code:
<form action="http://search.domain.com/search.php" method="get" id="search_form">
<div>
<label class="invisible" for="ctrl_keywords_33">Suchbegriffe</label>
<input type="text" value="" size="35" placeholder="Suchbegriff" id="query_t" name="query_t" class="ui-autocomplete-input" autocomplete="off" />
<input type="submit" value="Suche" id="t_search" class="sbmt submit" name="smt_button">
<input type="hidden" name="search" value="1" />
</div>
<input type="hidden" value="" name="up_advanced">
<input type="hidden" value="0" name="category">
<input type="hidden" value="0" name="catid">
<input type="hidden" value="" name="cat_sel0">
<input type="hidden" value="" name="cat_sel1">
<input type="hidden" value="" name="cat_sel2">
<input type="hidden" value="" name="cat_sel3">
<input type="hidden" value="" name="cat_sel4">
</form>
Javascripts für den Head des zuständigen Seiten-Layouts (eventuell haben wir nun manche Jquery-Bestandteile doppelt geladen):
HTML-Code:
<link rel="stylesheet" href="http://search.domain.com/templates/Sphider-plus/jquery-ui-1.10.2.custom.css" type="text/css">
<script type="text/javascript" src="http://search.domain.com/include/jQuery/jquery-2.1.4.js"></script>
<script type="text/javascript" src="http://search.domain.com/include/jQuery/jquery-ui-1.11.4.js"></script>
<script>
$(function() {
$("#query_t").autocomplete({
source: "http://search.domain.com/include/suggest.php?media_only=0&amp;amp;type=and&amp;amp;catid=0&amp;amp;category=0&amp;amp;db=0&amp;amp;prefix=0",
minLength: 1,
select: function(event, ui) {
var item = ui.item;
console.log(item,ui)
if(item) {
$(this).val(item.value);
$(this.form).submit();
}
}
})
})
</script>
<script>
$(function() {
$("#query_m").autocomplete({
source: "http://search.domain.com/include/suggest.php?media_only=1&amp;amp;type=and&amp;amp;catid=0&amp;amp;category=0&amp;amp;db=0&amp;amp;prefix=0",
minLength: 1,
select: function(event, ui) {
var item = ui.item;
console.log(item,ui)
if(item) {
$(this).val(item.value);
$(this.form).submit();
}
}
})
})
</script>
Ich nehme an, da fehlt nicht mehr viel. Hoffe ich zumindest. Hat jemand einen Tipp?