Ich gebe unter Setup > SQL-Install folgende Anweisung ein… CREATE TABLE `rdx_plugin_kick_events` ( `id` INT NOT NULL AUTO\_INCREMENT PRIMARY KEY , `type` VARCHAR( 25 ) NOT NULL , `name` VARCHAR( 255 ) NOT NULL , `file` VARCHAR( 255 ) NOT NULL , `path` VARCHAR( 255 ) NOT NULL , `code` TEXT NOT NULL , `description` TEXT NOT NULL , `node` VARCHAR( 25 ) NOT NULL , `sample` TEXT NOT NULL ) ENGINE = MYISAM;
Darauf erhalte ich folgenden Code: public function sqlInstall() { Shopware()-\>Db()-\>query("CREATE TABLE `rdx_plugin_kick_events` ( `id` INT NOT NULL AUTO\_INCREMENT PRIMARY KEY , `type` VARCHAR( 25 ) NOT NULL , `name` VARCHAR( 255 ) NOT NULL , `file` VARCHAR( 255 ) NOT NULL , `path` VARCHAR( 255 ) NOT NULL , `code` TEXT NOT NULL , `description` TEXT NOT NULL , `node` VARCHAR( 25 ) NOT NULL , `sample` TEXT NOT NULL ) ENGINE = MYISAM "); Shopware()-\>Db()-\>query(""); }
PS: Es wird auch ein zusätzlicher, leerer Eintrag bei den Konfigurationsfeldern erzeugt. Schau mir jetzt noch mal die Bootstrap-Datei der ersten Version an. Nicht, dass das auch mit alten DB-Einträgen zu tun hat?!
Stell am besten mal den kompletten generierten Code ein. Der trennt mehrere SQL-Anweisungen durch Semikolon - sprich, du kannst in der Install-SQL auch mehrere SQl-Befehle durch ; getrennt definieren. Also einfach das Semikolon hinter dem Befehl entfernen, dann sollte das bereits passen!
Die Tabellen ‘s_plugin_kick_events’ und ‘s_plugin_kick_hooks’ sind leer. Ein Eintrag findet sich in ‘s_core_menu’. Gibt’s sonst noch DB-Einträge? Hab noch mal ein Projekt mit anderem Namen angelegt, da ich den vorgehenden Projektnamen auch beim Test der beta 1 verwendet habe. Ergebnis - das leere Kofigurationsfeld ist im Code verschwunden, der Eintrag unter SQL-Install bleibt.
Die werden erst befüllt, wenn du in den Tab-Reitern Events bzw. Hooks, die indizieren Funktion ausführst! Die Einträge kommen also dynamisch dazu!
[quote=„Stefan Hamann“]Stell am besten mal den kompletten generierten Code ein. Der trennt mehrere SQL-Anweisungen durch Semikolon - sprich, du kannst in der Install-SQL auch mehrere SQl-Befehle durch ; getrennt definieren. Also einfach das Semikolon hinter dem Befehl entfernen, dann sollte das bereits passen![/quote] Das hatte ich bereits probiert. Hat aber am Ergebnis nichts geändert. Hier der Code vom ersten Test: [code]<?php /**
-
Bootstrap for Plugin Bezeichnung
-
This file was automaticly generated by Shopware Kickstarter.
-
@version Version
-
@author Autor
*/
class Shopware_Plugins_Frontend_Plugin Key_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{public function install()
{
//Creating controller event for Frontend - rdxTestController
$event = $this->createEvent(‚Enlight_Controller_Dispatcher_ControllerPath_Frontend_rdxTestController‘,‚onGetControllerPathFrontendRdxTestControllerListener‘); $this->subscribeEvent($event); $this->sqlInstall(); $form = $this->Form(); $form->setElement(‚text‘, ‚rdx_test‘, array(‚label‘=>‚rdx_test_bezeichnung‘,‚value‘=>‚1‘)); $form->setElement(’’, ‚RDX‘, array(‚label‘=>’’,‚value‘=>’’)); $form->save(); return true; } public function uninstall() { $this->sqlUninstall(); return true; } public static function onGetControllerPathFrontendRdxTestControllerListener(Enlight_Event_EventArgs $args) { return dirname(__FILE__).’/Controllers/Frontend/rdxTestController.php’; } public function sqlInstall() { Shopware()->Db()->query("CREATE TABLErdx_plugin_kick_events
(id
INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,type
VARCHAR( 25 ) NOT NULL ,name
VARCHAR( 255 ) NOT NULL ,file
VARCHAR( 255 ) NOT NULL ,path
VARCHAR( 255 ) NOT NULL ,code
TEXT NOT NULL ,description
TEXT NOT NULL ,node
VARCHAR( 25 ) NOT NULL ,sample
TEXT NOT NULL ) ENGINE = MYISAM "); } public function SqlUninstall() { Shopware()->Db()->query("DROP TABLErdx_plugin_kick_events
"); } public function getInfo() { return include(dirname(__FILE__).’/Meta.php’); } }[/code] Das letzte Konfigurationsfeld hab ich in der Beta 1, in einem gleichnamigen Projekt angelegt. Dieses Feld erscheint nicht mehr, wenn ich den Projektnamen ändere. Die doppelte Anweisung in SQL-Install bleibt.
Die doppelte SQL_Anweisung ist doch in deinem Code-Sample bereits weg? Eventuell in der alten Datei geguckt?
[quote=„Stefan Hamann“]Die werden erst befüllt, wenn du in den Tab-Reitern Events bzw. Hooks, die indizieren Funktion ausführst! Die Einträge kommen also dynamisch dazu![/quote] Hab ich mir gedacht. Ich hab nur aufgezählt, was ich an DB-Tabellen/-Einträgen in der Bootstrap finde.
[quote=„Stefan Hamann“]Die doppelte SQL_Anweisung ist doch in deinem Code-Sample bereits weg? Eventuell in der alten Datei geguckt?[/quote] Moment, muss die Testprojekte erst mal sortieren. PS.: Hast natürlich recht. Es lag an dem ‚;‘ am Ende der SQL-Anweisung. Hab beim Test nicht beachtet, dass die Tags absteigend sortiert werden und so auf einen älteren geklickt.
Habe das identische Problem wie taaucher. Wenn ich unter “Events” und “Hooks” auf indizieren klicke, kommt ein Popup mit der Meldung “Fehler”.
Kannst du mir mal den Backend-Zugang an forum@shopware.de schicken
Habe Events angelegt: Ausschnitt aus der project.xml: <events>
<postdispatch>
<name>postdispatch</name>
<id>357</id>
<listenername>onPostDispatch</listenername>
<listenerposition>0</listenerposition>
</postdispatch>
<postdispatch_shopware_controllers_frontend_detail_>
<name>postdispatch_Shopware_Controllers_Frontend_Detail_$PostDispatch</name>
<id>290</id>
<listenername>onPostDispatchDetail</listenername>
<listenerposition>0</listenerposition>
</postdispatch_shopware_controllers_frontend_detail_>
</events>
Danach konnte ich das Project nicht mehr laden. Erst als ich diesen Abschnitt aus der project.xml gelöscht habe, hats wieder geklappt. Beim Laden, oder z.B. bei Auswahl eines Controllers gabs folgende Fehlermeldung: Noch auf die Schnelle aufgefallen: Wenn man mehr als 10 Versionen anlegt, stimmt die Reihenfolge der Tags nicht mehr (Tag 9,8,7,6,5,4,3,2,10,1).
Naja, interessant wäre der PArt „Antwort“ - da siehst du aber nur etwas, wenn du die Option throwExceptions in der Application.php aktivierst!
Du könntest auch mal testweise das $PostDispatch in PostDispatch ändern - vielen Dank erstmal für das viele Feedback
Antwort gabs keine. Werde es mal mit der Option probieren.
War ein Fehler vom XML-Parser - ohne die ‚$‘-Zeichen funktionierts. <events>
<postdispatch>
<name>postdispatch</name>
<id>357</id>
<listenername>onPostDispatch</listenername>
<listenerposition>0</listenerposition>
</postdispatch>
<postdispatch_shopware_controllers_frontend_detail_postdispatch>
<name>postdispatch_Shopware_Controllers_Frontend_Detail_PostDispatch</name>
<id>290</id>
<listenername>onPostDispatchDetail</listenername>
<listenerposition>0</listenerposition>
</postdispatch_shopware_controllers_frontend_detail_postdispatch>
</events>
Okay, super! Wenn dir noch mehr auffällt, ruhig her damit. Ich wollte jetzt noch ein paar Tage sammeln und mache mich dann an die finale Version
Also ich habe es bis jetzt auch noch nicht geschafft, den ezeugten Code bzw. die Bootstrap.php zu installieren. Immer noch der numeric Fehler.
Ist das noch der Code von Seite 2?
[quote=“radox”]Ist das noch der Code von Seite 2?[/quote] Inzwischen habe ich den Fehler gefunden. Der Positionswert wurde nicht übernommen. Ich habe aber definitv im Backend bei den letzte Versuchen einen Wert eingetragen. Könnt ihr dies mal überprüfen? $this->createEvent(‘Enlight_Controller_Action_PostDispatch’,‘onEventOttschoTest’,’’);
Kannst du mal einen Screenshot von der Event-Detailmaske (Dort, wo du die Position einträgst) und dem generierten XML-Ausschnitt schicken?