Jump to content
xt:Commerce Community Forum

*_image feld in Plugin-Klasse


mlueft

Recommended Posts

Hi!

Ich arbeite gerade an einem Plugin, dass eine eigene Listen- und Detailansicht besitzen soll. Deren Einträge Besitzen auch jeweile ein Bild.

Ich habe in der Tabelle eine Spalte frames_image hinzugefügt und sofort war in der Detailansicht das Element um Bilder hinzuzufügen vorhanden. Super praktisch!!

Leider funktionierte dieses Element nicht und es hat mich einen ganzen Tag gekostet um es zum laufen zu bringen.

1. Im Veyton-Buch ist nur die Rede davon dass das Plugin funktionen wie _get, _set, _getParams usw. besitzen muss. Es gehört jedoch nicht zu meinem Programmierstil Klassenmember mit einem Unterstrich zu benennen, deshalb habe ich das auch nicht gemacht. Die MediaImages-Klasse(funktion:setMainFile) erstellt jedoch eine Instanz meiner Klasse und greift auf die Member _table, _master_key und _image_key zu. Es sollte unbedingt kommuniziert werden, dass diese Member Teil einer Interfacedefinition sind und nicht umbenannt werden dürfen bzw. vorhanden sein müssen.

2. Trotzdem hat mein Plugin noch nicht funktioniert. In der Zeile, in der die Instanz erzeugt erstellt wird, wurde die ausführung des PHP-Codes einfach beendet. Try-Catch hatte nicht gebracht. Keine Fehlermeldung, nichts. Nach zwei Stunden hatte ich die Idee, dass ich meine Klasse mit require_once in der Klasse MediaImages einbinde. Nun hat alles funktioniert.

Ich halte es für keine gute Vorgehensweise, eine Veytonklasse ändern zu müssen, damit ein Plugin funktioniert. Nach dem nächsten Veytonupdate wird das Plugin nicht mehr funktionieren. Gibt es eine Möglichkeit auf require_once verzichten zu können?

lg,

michael

Link to comment
Share on other sites

Hi!

Ich glaube, ich habe die Antwort selber gefunden:

<code>
<hook>page_registry.php:bottom</hook>
<order>1</order>
<active>1</active>
<phpcode><![CDATA[

require _SVR_WEBROOT.'plugins/mlr_racers/classes/class.mlr_frames.php';

]]></phpcode>
</code>[/HTML]

Leider konnte ich es noch nicht testen, sollte aber trotzdem eine Hilfestellung für andere Neulinge sein.

lg,

michael

Link to comment
Share on other sites

  • 2 months later...

Hallo Michael

Herzlichen Dank für deinen Forum-Beitrag!

Ich habe einen ganzen Tag damit verbracht herauszufinden, weshalb immer der Fehler "Class xxx not found in ../xtFramework/classes/class.MediaImages.php" kommt, wenn ich in meinem Plugin ein Bild hinzufügen möchte. Irgendwann wurde mir dann klar, dass die Klasse nicht geladen wird, obwohl ich diese gemäss Buch als Hookpoint eingebunden hatte. Zum Glück bin ich dann doch noch auf diesen Eintrag gestossen ;-)

Gemäss Buch bindet man die Klasse über den Hookpoint "store_main.php:bottom" ein. Damit steht die Klasse aber logischerweise nur im Frontend zur Verfügung nicht aber im Backend.

Ein kleiner Nachtrag zu deiner Lösung. Falls jemand die Klasse bereits über "store_main.php:bottom" eingebunden hat, diesen Hookpoint wieder löschen, da sonst die Klasse 2x eingebunden wird -> weisse Seite im Frontend.

LG

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...