Another Blog about the Wide Web World
Header image

Ich erinnere mich grad an mein anderen Kampf mit der recht schönen, aber doch sehr unwilligen Extension Glossary Extended v. 1.0.200 (EXT: sg_glossary) im Zusammenspiel mit RealURL v. 1.5.3 (EXT: realurl) bei Typo3 (4.2.6).

1. Tipp: Um eine Meldung auf Seiten auszuwerfen, die noch keine Einträge besitzen muss man ein Teil der Datei glossary_list.tmpl (typo3conf/ext/sg_glossary/pi1/) ändern. Zum Beispiel so:

[...]
<!-- ###EMPTYRESULT_PART### -->
<p>Noch keine Eintr&auml;ge vorhanden</p>
<!-- ###EMPTYRESULT_PART### -->
[...] 

Und im TS:

plugin.tx_sgglossary_pi1.search.emptyResultAsSubpart = 1

2. Tipp: Im gleichen Ordner ist auch die locallang.php zu finden. Hier man kann man andere Ausgaben ändern. Grundsätzlich wird deutsch genutzt, wenn auch die Lokalisierung deutsch ist. Leider tauchte bei mir ein Problem mit den Umlauten auf. Denn in den url’s waren auf einmal bei den Einträgen A, O und U Umlaute mitdabei. Wie man sich vorstellen kann hat RealURL bzw. die Konfiguration diese nicht richtig aufgelöst. Dies scheint meiner Meinung nach ein noch immer ungelöstet Problem bei der Glossary zu sein. Mir hat bisher nur dies geholfen: Ich habe in der Datei ext_typoscript_setup.txt in Zeile 187 den index geändert. Dies würde dann so aussehen: (mehr …)

Beim update von Typo3 (4.2.2 -> 4.2.6) tauchte mein bereits gelöstet erneut Problem auf. Hätte ich keine Sicherung der alten Version gemacht, wäre das Problem nicht so schnell behoben. Ich nutze mit meiner Typo3 Installation RealURL v. 1.5.3 (EXT: realurl) und die Extended Glossary v. 1.0.200 (EXT: sg_glossary). Beim erstmaligen Aufruf einer Seite der Glossary tauchte ein Mysql Fehler auf:

Warning: mysql_free_result(): supplied argument is not a valid
MySQL result resource in /.../t3lib/class.t3lib_db.php on line 836
Warning: mysql_fetch_assoc(): supplied argument is not a valid
MySQL result resource in /.../t3lib/class.t3lib_db.php on line 809

Eine Notlösung habe ich bereits gefunden: In der genannten Zeile einfach eine if-Schleife um das Problemkind bauen. Das würde dann so aussehen:

function sql_fetch_assoc($res) {
     if ($res) {
        $this->debug_check_recordset($res);
        return mysql_fetch_assoc($res);
     }
}

Genau das selbe dann in der Funktion sql_free_result.

Wenn jemand eine schönere Lösung gefunden hat, möge er sie mir bitte mitteilen!