AW: Wie setze ich get_product_list als Plugin um
Ich habe den Fehler gefunden. Ich habe nochmal ein wenig mit der Firebug Console gespielt und irgendwo tief versteckt folgendes gefunden:
Fatal error: Cannot redeclare holeMeineProdukte() (previously declared in /var/customers/webs/jtl/testshop2/drichter/includes/plugins/danielrichter_css3slider/version/100/frontend/css3slider.php:5) in /var/customers/webs/jtl/testshop2/drichter/includes/plugins/danielrichter_css3slider/version/100/frontend/css3slider.php on line 5
Ich interpretiere es mal so: Ich habe im PHP File die Funktion holeMeineProdukte() deklariert und beim Laden der Seite wird die Definition über den Aufruf von Hook 140 in die Seite reingeschrieben. Das liefert noch keinen Fehler. Nun wähle ich eine
Varkombi und die Seite wird dabei nicht neu geladen, sondern es passiert irgendwelches Magic mit Ajax. Dabei wird offensichtlich auch der Hook 140 getriggert und über die registrierten Listener mein Plugin. Nun wird die definierte Funktion ein zweites mal in die Seite geschrieben, was verständlicherweise zu einem Fehler führt.
Sollte ich bis hierher Unsinn geschrieben haben korrigiert mich bitte...wie gesagt, ich komme aus der Java Welt und PHP ist neu für mich.
Gelöst habe ich es so: Ich habe die Funktion in eine eigene Klasse ausgelagert:
Code:
class CSS3SliderFunctions
{
function holeMeineProdukte()
{
}
}
Diese Klasse lade ich dann mit require_once in meiner Plugin PHP Datei die vom Hook 140 aufgerufen wird:
Code:
<?php
require_once(dirname(__FILE__) . "/classes/class.CSS3SliderFunctions.php");
if(class_exists("CSS3SliderFunctions"))
{
$functions = new CSS3SliderFunctions();
$artikelliste = $functions->holeMeineProdukte();
}
?>
Voila, es funktioniert nun alles so wie es soll.
Hat mich auch nur einen halben Tag gekostet das rauszufinden...für einen PHP Newbie nicht so schlecht oder