[TYPO3-german] Frage zur EXT yatse

Daniel Klopfer daniel.klopfer at me.com
Tue Mar 9 08:33:03 CET 2010


Michael Meurer wrote:
> Am 25.02.2010 14:33, schrieb Daniel Klopfer:
>
>> Jetzt schreibt er in die DB rein, aber das fe-plugin findet
>> nichts.... aber das kriege ich hoffentlich hin!
>>
>> Danke für die Hilfe!
>> Daniel
>>
>>
>
> Guten Morgen zusammen.
>
> Hast du die Ausgabe hinbekommen, Daniel?
>
> Die Tabelle yatse_content wird zwar gefüllt, aber der erfasste Inhalt
> bricht mit dem ersten Sonderzeichen (ä, ö, ß usw.) ab.
> Datenbank ist utf-8 und die Sonderzeichen werden in der Datenbank auch
> korrekt angezeigt.
>
> Begriffe aus dem erfassten Bereich bekomme ich ebenfalls nicht
> angezeigt, weder mit der Standard-Template-Datei oder meiner eigenen
> Datei ...
>

Bei mir läurt das jetzt, aber ich musste einiges im Quellcode ändern:

Diese Zeile z.B.

  $pids = 
$this->cObj->getTreeList($start,$depth='999',$begin=0,$dontCheckEnableFields=FALSE,$addSelectFields='',$moreWhereClauses, 
$prevId_array=array(), $recursionLevel=0);

liefert eine kommegetrennte Liste von Seiten-IDs zurück, in der mehrere 
Kommatas hintereinderstehen, z.B. 10,11,,12,13,,,14 usw. Da steigt Mysql 
beim select aus:

$query = 'SELECT *, MATCH (content) AGAINST 
(\''.utf8_decode($GLOBALS['TYPO3_DB']->fullQuoteStr($this->piVars['sword'],'')).'\' 
IN BOOLEAN MODE) AS data FROM tx_yatse_content WHERE MATCH (content) AGAINST 
(\''.utf8_decode($GLOBALS['TYPO3_DB']->fullQuoteStr($this->piVars['sword'],'')).'\' 
IN BOOLEAN MODE)';

switch($mode) {
   case 0: // select from all pages in pagetree
    $query .= ' AND page IN ('.$pids.'-1)';
   break;
   case 1: // select from individual page
    $query .= ' AND page = '.intval($id);
   break;

Die Zeile ...AND page IN ('.$pids.'-1) ... funktioniert nur, wenn man vorher 
die mehrfachen Kommatas entfernt.

Der select-Befehl funktioniert bei mir in obiger Schreibweise auch nicht, 
nur wenn ich die Backslashes entferne, läuft es fehlerfrei:

$query = 'SELECT *, MATCH (content) AGAINST 
('.utf8_decode($GLOBALS['TYPO3_DB']->fullQuoteStr($this->piVars['sword'])).' 
IN BOOLEAN MODE) AS data FROM tx_yatse_content WHERE MATCH (content) AGAINST 
('.utf8_decode($GLOBALS['TYPO3_DB']->fullQuoteStr($this->piVars['sword'])).' 
IN BOOLEAN MODE)';


Mit diesen Änderungen funktionierts dann auch so wie es soll.

Grüße
Daniel




More information about the TYPO3-german mailing list