aschieferbein Posted July 4, 2013 Report Share Posted July 4, 2013 Hallo Leute, ich bin ein wenig am Verzweifeln. Ich bin dabei mir ein Plugin (Warenkorb) zu schreiben und möchte nun, das im Standarttemplate nicht mehr der Standart Warenkorb geladen wird sondern mein eigenener. Ich habe versuch über die cart.php einen Hookpoint zu nutzen und einfach die Variable $tpl auf mein Template verweisen zu lassen. <plugin_code> <code> <hook>module_cart.php:tpl_data</hook> <phpcode><![CDATA[ $tpl = 'ajax_cart.html'; ]]> </phpcode> <order>1</order> <active>1</active> </code> </plugin_code> Meine Installer.xml habe ich bereits wieder auf das Minimum redziert weil ich den Fehler einfach nicht finde. <?xml version="1.0" encoding="utf8"?> <xtcommerceplugin> <title>Ajax Warenkorb</title> <!-- <> Adminbereich </> --> <version>0.0.1</version> <!-- <> Adminbereich </> --> <code>ajax_cart</code> <!-- <>Systembezeichnung muss gleich Ordnername sein</> --> <url>irgend eine URL</url> <!-- <> Adminbereich </> --> <description>Warenkorb mit Ajax, JQUery</description> <icon>logo.gif</icon> <type>payment</type> <!-- <>Kategorie des Plugins / Adminbereich vor der Install</> --> <!-- <>macht das Cart.html Template und http://localhost/shop2/index.php?page=ajax_cart verfügbar</> --> <plugin_code> <code> <hook>page_registry.php:bottom</hook> <phpcode><![CDATA[ define('PAGE_AJAX_CART', _SRV_WEB_PLUGINS.'ajax_cart/pages/ajax_cart.php'); ]]></phpcode> <order>1</order> <active>1</active> </code> </plugin_code> <plugin_code> <code> <hook>module_cart.php:tpl_data</hook> <!-- <>Page = Name der Seite, danach folgt der Pfad</> --> <phpcode><![CDATA[ $tpl = 'ajax_cart.html'; ]]> </phpcode> <order>1</order> <active>1</active> </code> </plugin_code> </xtcommerceplugin> Unter http://localhost/shop/index.php?page=ajax_cart ist mein Warenkorb auch erreichbar.. Aber eben nicht wenn ich ganz normal über das Box Elemen {box_cart.html} z.B. einen Click Event auslöse und dieser mich eben zum Warenkorb bringen soll.. Meine ajax_cart.php im Minimalzustand / FUnktionalität kommt dann noch <?php // schützt die Datei vor direktem Aufruf im Browser defined('_VALID_CALL') or die('Direct Access is not allowed.'); // Das $tpl_data array beinhaltet alle Variablen die später an das Template übergeben werden. // hier werden Werte definiert welche an das Template übergeben werden können. // Aufrugf im Template via Smarty mgl. {$_hello_world} z.B. $tpl_data = array( '_hello_world'=>'Hallo Welt, ich bin eine Seite.', ); // neue Template Instanz $template = new Template(); // ajax_cart.html => Template Datei welche von dieser Page verwendet wird, datei wird in // templates/vinnello/plugins/ajax_cart/ in Ihrem Template und im Pluginverzeichnis // plugins/ajax_cart/templates/ vom System gesucht. $tpl = 'ajax_cart.html'; // 1. Parameter => 'ajax_cart' => um welches Plugin es sich handelt // 2. Parameter => '' => falls Template in einem weiteren Unterordner von Template liegt // 3. Parameter => gibt an das es sich um ein Plg handel, damit das System im korrekten Pfad (Plugins) suchen kann $template->getTemplatePath($tpl, 'ajax_cart', '', 'plugin'); /* Hiermit rendern Sie das Template und übergeben auch unser Array $tpl_data mit den Variablen an unser Template. Die Funktion liefert den fertigen Output welcher dann über die Variable $page_data vom Shopsystem weiter verarbeitet wird. */ $page_data = $template->getTemplate('smarty_ajax_cart', '/'.$tpl, $tpl_data); ?> Ich habe mich an das Beispiel im Buch gehalten, Install verläuft ohne Probleme aber wie gesagt, mit dem Hook auf die cart.php in der eigentlich festgelegt wird, welches Template für den Warenkorb verantwortlich ist erreiche ich garnichts... Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.