mulix Posted June 11, 2010 Report Share Posted June 11, 2010 Hi Leute, ich arbeite an einem plugin welches details über bestellungen ausgibt. Zwar sollte im backend der punkt bestellungen und die seite bestellung bearbeiten ausreichen, aber wie immer gibt es hier nur sonderlösungen bei uns. Ich habe zwar unter templates/__xtAdmin/xtCore/pages/order.html das template gefunden aber wo kommen die daten her. Welche php-dateien stellen die daten zusammen und übergibt diese dann an die methoden für die backend-darstellung. Ich hab mir xtFramework/classes/class.order.php[/code] angeschaut, aber den punkt an dem etwas für die seite bestellung bearbeiten ausgeführt wird, hab ich nicht gefunden. Nur haufen zeugs was die bestellungen angeht (macht ja aus sinn). Ganz gern würde ich eine liste ähnlich der liste mit den bestellstatus anlegen. Also hatt jemand ne idee welche hookpoints da für mich interessant wären. In der oop mit php bin ich fitt, also ist mir das thema plugins schon klar. bis dann Michael Link to comment Share on other sites More sharing options...
mulix Posted June 12, 2010 Author Report Share Posted June 12, 2010 Hi Leute, hab jetzt in der listenansicht der bestellungen mir einfach nur ein rowAction über den hook class.order.php:_getParams_row_actions eingefügt. Als rowActionsFunctions nutze ich <phpcode> <![CDATA[ $rowActions[] = array('iconCls' => 'plg_msbill', 'qtipIndex' => 'qtip1', 'tooltip' => TEXT_PLG_MSBILL); $plg_msbill_js = "var edit_id = record.id;"; $plg_msbill_js .= "addTab('adminHandler.php?load_section=order_bill&plugin=ms_bill&pg=overview&products_id='+edit_id,'".TEXT_PLG_MSBILL." ('+edit_name+')', 'ms_bill'+edit_id)"; $rowActionsFunctions['plg_msbill'] = $plg_msbill_js; ]]> </phpcode> also rufe ich die funktion addTab auf, die leider nicht dokumentiert ist. Daher muste ich mit hilfe der doku aus dem veyton buch bissel interpretieren. Die funktion addTab sucht die datei (sie sollte das wohl) plugins/ms_bill/classes/class.order_bill.php. Nur leider kann ich das nicht prüfen, wenn ich auf den link mit meiner rowAction klicke passiert nichts. Mein ziel ist es nach dem klicken der rowAction bissel was aus der datenbank zu holen und ein smarty-template zu parsen. Der code dafür muss ja dann in der class.order_bill.php stehen. Bis jetzt sieht die datei so aus <?php /*the file is only open into the backend*/ defined('_VALID_CALL') or die('Direct Access is not allowed.'); class order_bill { protected $_table = orders; protected $_table_lang = null; protected $_table_seo = null; protected $_master_key = 'orders_id'; } ?> [/PHP] also lehr, jemand ne idee oder nen ansatz... so long... Link to comment Share on other sites More sharing options...
wirverbindenwelten.de Posted April 18, 2012 Report Share Posted April 18, 2012 schon uralt, aber ich finde es schlimm dass solch wichtige Fragen fast immer unbeantwortet bleiben... grundsätzlich müssen noch folgende funktionen rein: public function setPosition( $position ) { $this->position = $position; } public function _getParams( ) { // hier werden u.a. die Parameter übergeben, was für Buttons und // Funktionen ausführbar sein sollen } public function _get( $ID = 0 ) { // hier wird u.a. die Ausgabe einer eigenen Tabelle festgelegt } Link to comment Share on other sites More sharing options...
knitzie Posted September 20, 2012 Report Share Posted September 20, 2012 Hallo zusammen, ich bin froh endlich mal auf einen thread zu stoßen, der mir zumindest ansatzweise weiterhilft. Auch ich will die JS Funktion addTab() verwenden um besondere Details zu einem Kunden darzustellen. Ich habe es nun zumindest hinbekommen, dass sich der Tab öffnet und eine Testausgabe stattfindet. Dank einem Denkanstoß aus dem ersten post hier. Kurz zur Dokumentation: installer.xml <![CDATA[ $rowActions[] = array('iconCls' => 'customClassName', 'qtipIndex' => 'qtip1', 'tooltip' => 'MyPluginIconTooltip'); if ($this->url_data['edit_id']) $js = "var edit_id = ".$this->url_data['edit_id']."; var edit_name = '".htmlentities($customers_id)."'; "; else $js = "var edit_id = record.id; var edit_name=record.get('customers_id'); "; $js .= "addTab('adminHandler.php?load_section=my_class_name&plugin=xt_my_plugin&customerId='+edit_id,'"."TabTitle"." ('+edit_name+')', 'xt_my_plugin'+edit_id)"; $rowActionsFunctions['customClassName'] = $js; ]]> [/HTML] Damit wird der adminHandler aufgerufen, welcher wiederum die Klasse veyton\xtFramework\classes\class.my_class_name.php aufruft. class.my_class_name.php [PHP] defined('_VALID_CALL') or die('Direct Access is not allowed.'); class my_class_name { public function setPosition( $position ) { $this->position = $position; } public function _getParams( ) { // hier werden u.a. die Parameter übergeben, was für Buttons und // Funktionen ausführbar sein sollen } public function _get( $ID = 0 ) { echo '<pre>'; var_dump('TEST'); echo '</pre>'; // hier wird u.a. die Ausgabe einer eigenen Tabelle festgelegt } } [/PHP] Ergebnis ist ok. Aber was mich verwirrt ist die Tatsache, dass ich meine für das Plugin erstellte Klasse in einen existierenden Veyton Ordner verschieben muss, damit der adminHandler diese findet. Das ist doch nicht Sinn eines Plugins. Stehe ich gerade nur auf dem Schlauch? Es wäre super, wenn jemand kurz erklären könnte wie ich meinen Klassenaufruf abändern muss, damit meine Datei auch in meinem Modulordner liegen kann und trotzdem gefunden wird. Da ich nicht weiß wie der adminHandler aussehen muss, kann ich spontan auch keinen eigenen schreiben. So far Link to comment Share on other sites More sharing options...
mzanier Posted September 20, 2012 Report Share Posted September 20, 2012 Die klasse muss auch my_class_name heißen, und muss unter plugins/xt_my_plugin/class.my_class_name.php zu finden sein. ein beispiel findest du zb im xt_serials plugin. Link to comment Share on other sites More sharing options...
knitzie Posted September 21, 2012 Report Share Posted September 21, 2012 Ah super, vielen Dank. Die falsche Benamung habe ich oben schon abgeändert. Aktuell funktioniert alles wie ich erwarte. Viele Grüße Knitzie Link to comment Share on other sites More sharing options...
esho.de Posted September 21, 2012 Report Share Posted September 21, 2012 Hallo, ich habe gerade eine weitere Frage im Forum zu diesen Thema erstellt. http://www.xt-commerce.com/forum/allgemeine-diskussionen/89949-erkl-rung-der-hookpoints-im-xtc.html Vielleicht kann mir jemand hierzu auch ein paar Tipps geben? Danke, Stefan Link to comment Share on other sites More sharing options...
Muralireddy Posted October 23, 2012 Report Share Posted October 23, 2012 wirklich interessante Frage. Weitere Antworten würden mich auch interessieren. Link to comment Share on other sites More sharing options...
knitzie Posted October 23, 2012 Report Share Posted October 23, 2012 Mal kurz zum aktuellen Status meinerseits: Ich habe den Beitrag nicht vergessen, mir kamen nur andere Pflichten dazwischen weshalb das Projekt kurz auf Eis liegt. Ich werde mich aber relativ bald wieder damit beschäftigen können/dürfen/müssen. Link to comment Share on other sites More sharing options...
Lennetawilliams Posted October 26, 2012 Report Share Posted October 26, 2012 wirklich interessante Frage. Weitere Antworten würden mich auch interessieren. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.