Ich habe ein Problem mit einem selbst geschriebenen Content – Plugin an dem ich mir echt die Zähne ausbeiße. :-(
Mein Plugin hat folgende einfache Aufgabe: Es durchsucht einen Beitrag nach einem Tag „{ldap_staff_table}“ und ersetzt diesen Tag durch eine Tabelle mit Informationen über unsere Mitarbeiter. Name, Telefon- und Raumnummer und E-Mail-Adresse werden in dieser Tabelle dargestellt. Die Daten für diese Tabelle bezieht das Plugin von einen LDAP-Server.
Ist das Plugin aktiv und klicke ich im Frontend auf einen Beitrag der das Tag enthält, führt das zu einer weißen b.z.w. leeren Seite. Auch der Quellcode ist leer, wenn ich ihn im Browser anzeigen lasse.
Im Joomla!-Backend ist der Punkt „System debuggen“ auf „ja“ und „Fehler berichten“ auf „Maximum“ eingestellt. PHP ist so konfiguriert, dass Fehler geloggt werden. Doch in der Error-Log (in meinem Falle /var/log/apache2/error.log) tut sich nichts. :-/
Selbstverständlich habe ich schon Google gequält, doch nichts gefunden. :-(
Bevor ich meinen gesamten Code poste, hier mal meinen kurzen Testcode, der aber zum selben Ergebnis führt:
Code: Select all
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.plugin.plugin' );
class plgContentLDAP_Staff_Table extends JPlugin {
public function onPrepareContent(&$row, &$params, $page=0)
{
//Get the plugin parameters.
$plugin = &JPluginHelper::getPlugin('content', 'ldap_staff_table');
$plgParams = new JParameter($plugin->params);
unset($plugin);
//Replace "{ldap_staff_table}" by staff table.
if (JString::strpos($row->text, "{ldap_staff_table}", 0)) {
//$html = $this->genTable($plgParams);
//$row->text = str_replace("{ldap_staff_table}", $html, $row->text);
//Testcode
for ($i=0; $i<2000; $i++)
$row->text .= "<span style=\"color:green\";>Der Inhalt wurde ersetzt.</span><br />";
}
return true;
}
...
Hochkommas statt Anführungszeichen führen zum selben Ergebnis:
Code: Select all
//Testcode
for ($i=0; $i<2000; $i++)
$row->text .= "<span style='color:green';>Der Inhalt wurde ersetzt.</span><br />";
Er mag also die Hochkommas und Anführungszeichen nicht, aber was stört ihn daran?
Vielleicht sehe ich den Wald für lauter Bäumen nicht.
Zum System:
Debian Lenny 5
PHP 5.2.6-1+lenny4
Apache 2.2.9-10+lenny6
Übrigens habe ich das Plugin mal auf einem etwas anderen System, mit den selben Ergebnis getestet.
Anderes System:
Open SUSE Linux 10.3
PHP 5.2.11
Apache 2.2.4
Ich weiß echt nicht mehr weiter. :-(
Wäre cool, wenn mir hier jemand helfen könnte.
Vielen Dank!