Zum Inhalt springen

Indexed Search Plugin kann nicht eingefügt werden

Erstellt am 24. Mai 2005 · 7 Antworten · letzte Antwort am 6. Juni 2005

Tags: Suche, Frage

bernie66 ·

Hallo,
ich habe folgendes Problem: ich habe mir das Plugin "Indexed Search Engine" runtergeladen und lokal unter "typo3conf\ext\indexed_search" installiert.
Wenn ich jetzt einen neuen Seiteninhalt vom Typ Plugin einfügen will, kommt unter der Erweiterungs-Combobox keine Auswahlmöglichkeit "Indexed Search".
Wenn ich mir die Detailliste im Extension Manager anschaue, wird mir unter error folgender Fehler ausgegeben:

No XCLASS inclusion code found in file 'mod/index.php'
-----------------------------------------------
No XCLASS inclusion code found in file 'modfunc1/class.tx_indexedsearch_modfunc1.php'
------------------------------------------------
No XCLASS inclusion code found in file 'pi/class.tx_indexedsearch.php'

Was hat das zu sagen und hängt das damit zusammen, dass ich die indexed search nicht auswählen kann???

Ein weiteres Problem ist, wenn ich z.B. die normale Suche als neuen Seiteninhalt auf einer Seite integrieren will, bekomme ich sie im FE nicht angezeigt.
Ich habe im Forum jetzt schon einige Zeit gesucht, aber keine Antwort darauf gefunden.
Ich hoffe ihr könnt mir da helfen...
Danke schonmal.
Micha

bernie66 ·

Also nach einigem rumprobieren, habe ich jetzt einen ersten Teilerfolg erreicht. Ich hatte vielleicht noch vergessen zu sagen, dass ich die Typo3 3.6.0RC1 Version installiert habe. Bei meinem 1. Post hatte ich versucht die Indexed Search Version 2.1.3 zu verwenden. Jetzt habe ich die Version 2.1.2 installiert und kann nun beim einfügen eines neuen Seiteninhalts (Typ Plugin) unter der Erweiterungs-Kombobox die "Indexed Search" auswählen.
Die Fehlermeldung im Extension Manager zur Extension: Indexed Search Engine (indexed_search)/Installation status gibt mir aber immer noch den Fehler:

No XCLASS inclusion code found in file 'mod/index.php'
No XCLASS inclusion code found in file 'modfunc1/class.tx_indexedsearch_modfunc1.php'
No XCLASS inclusion code found in file 'pi/class.tx_indexedsearch.php'

aus.
Ich habe mir die betreffenden Dateien jetzt mal angeschaut und in allen die gleiche Stelle gefunden, in der eine Inclusion einer XCLASS erfolgt. (Sorry wenn ich hier gerade blödsinn erzähle, da ich mich eher in Java auskenne und mit PHP noch nie was zu tun hatte) Hier der Code:

// Script Classes
class SC_mod_tools_isearch_index {
        ....
    // Hier folgen die function Aufrufe usw.    
}

/* am Schluss diese IF Abfrage, die in keiner Function eingebaut ist und auch auserhalb der Class Klammerung erfolgt */
if (defined("TYPO3_MODE") && $TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/indexed_search/pi/class.tx_indexedsearch.php"])	
{
include_once($TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/indexed_search/pi/class.tx_indexedsearch.php"]);
}

Naja jedenfalls sieht das für mich so aus, wie wenn diese 'IF' Verzweigung völlig zusammenhanglos in der Luft hängt und niemals abgefragt wird.
Kommt diese Fehlermeldung daher, oder hat es damit nichts zu tun?
Helft mir bitte...

bernie66 ·

Ach ja was ich noch vergessen hatte, wenn ich jetzt die Seite mit dem Suchformular aufrufen will, wird mir ein Fehler angezeigt.
Hier der Text:
"Fatal error: Call to a member function on a non-object in E:\apache\htdocs\quickstart\typo3conf\ext\indexed_search\pi\class.tx_indexedsearch.php on line 192".

Wenn ich mir dazu die Funktion anschaue folgt dieser Code, der mir nicht wirklich was sagt:

// Add search languages:
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'sys_language', '1'.$this->cObj->enableFields('sys_language'));
	while($lR = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))	{
		$optValues["lang"][$lR["uid"]]=$lR["title"];
	}

Die Tabelle sys_language gibt es, sie ist aber nicht gefüllt. Wird hier versucht auf einen nicht vorhandenen Datensatz zuzugreifen und dann wegen einem NULL Wert ein Fehler verursacht?
Ich muss mich wohl langsam mal mit PHP auseinandersetzen... :o

nullzeit ·

hi bernie.
haste mal geschaut, ob eine de und neuinstallation der extension abhilfe schafft?
Ansonsten würde ich dir mal empfehlen auf nen neueres typo3 upzugraden oder ne ältere version der suche aus dem repository zu laden.

LG Chris

bernie66 ·

Ja ich hab die extension schon 3 mal de- und neuinstalliert. Und ich habe eben nochmal eine ältere Version der indexed Search (2.1.1) versucht. Hat leider auch nichts gebracht. 😢
Wegen den "XCLASS inclusion" Fehlern habe ich jetzt entdeckt, dass dieser Fehler in mehreren Extensions bemängelt wird (z.B. in der News und der CSS styled content Extension). Die funktionieren aber soweit eigentlich ganz normal.
Also scheint das dann wohl nicht da dran zu liegen?
Ich bin gerade am testen, inwiefern die "sys_language" Tabelle meinen Fehler verursacht.
Sonst noch irgendwelche Ideen? Denn sonst werd ich echt mal versuchen eine andere Typo3 Version zu installieren.

bernie66 ·

Was ich noch gerne wissen würde ist, was der Fehler
"Fatal error: Call to a member function on a non-object in E:\apache\htdocs\quickstart\typo3conf\ext\indexed_search\pi\class.tx_indexedsearch.php on line 192"
zu bedeuten hat.
"Call to a member function on a non-object..." Sagt das aus, dass eine PHP Funktion mit einer nicht gültigen Variablen aufgerufen wurde?
Ich hoffe ihr könnt mir da weiterhelfen...

bernie66 ·

Hi,

ich habe nochmal eine Frage zu dem Code, der den Fehler verursacht.

// Add search languages:
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'sys_language', '1'.$this->cObj->enableFields('sys_language'));
	while($lR = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))	{
		$optValues["lang"][$lR["uid"]]=$lR["title"];
	}

Und zwar geht es um die Codestelle "$GLOBALS['TYPO3_DB']->...".
Ich habe jetzt herausgefunden, dass man in PHP Arrays auch mit Strings anstatt mit einem Index ansprechen kann. Über dieses Array wird mit dem String 'TYPO3_DB' auf meinen tatsächlichen DB Namen zugegriffen? Wird das Array beim Start von Typo irgendwo gefüllt und es wird Global verwendet? Wenn ja wie wird eine globale Variable /Array in PHP4 definiert? Aus Java kenne ich ja die Definition als public Variable, aber ich habe jetzt gelesen, dass das erst mit PHP5 zur Verfügung stehen soll?
Aber ihr könnt mir vielleicht sagen ob ich da komplett falsch liege?
Wie muss ich denn Variablen oder Arrays global definieren?
Gruss Bernie

bernie66 ·

Endlich hat es geklappt. Alle Probleme waren auf einen Schlag nicht mehr da, als ich ein Typo Upgrade auf 3.8.0 durchgeführt hatte....
Die Indexed Search Extension funktioniert wunderbar.
Da kann ich nur raten, dass da irgendwas mit meiner alten Typo Version (TYPO3 3.6.0RC1) nicht gestimmt hat und Chris recht geben mit dem Upgrade.
Man sollte nur aufpassen, da man das alte Projekt nicht 1:1 als Dump in das neue einspielen kann und man muss an den installierten Extensions was verändern. Geholfen hat mir die Anleitung:
http://www.jweiland.org/typo3cms/typo3-update/.