Suche |
Tutorial: Exportmodul erstellenAus xtc-wiki(by Hendrik Koch, 08.2009) Dieser Text behandelt wie man ein einfaches Exportmodul erstellen kann am Beispiel einer Kundenliste. Dieser Text bezieht sich auf xtcommerce304sp21
[Bearbeiten] ModulnameJedes Exportmodul hat einen eindeutigen Namen. Das Modul soll heißen ex_artikel_export [Bearbeiten] Kopieren eines beispielhaften Modulsadmin/includes/modules/export/froogle.php kopieren in admin/includes/modules/export/ex_cust_export.php [Bearbeiten] Löschen von nicht benötigtemDas Frooglemodul hat einige Routinen die wir nicht benötigen. Diese komplett löschen. function getparent() function buildCat() Ebenso folgende Define-Zeilen: define('MODULE_FROOGLE_CURRENCY_TITLE','Währung'); define('MODULE_FROOGLE_CURRENCY_DESC','Welche Währung soll exportiert werden?'); define('CURRENCY','<hr noshade><b>Währung:</b>'); define('CURRENCY_DESC','Währung in der Exportdatei'); define('EXPORT_STATUS_TYPE','<hr noshade><b>Kundengruppe:</b>'); define('EXPORT_STATUS','Bitte wählen Sie die Kundengruppe, ....<i>Gast</i>):</b>'); define('CAMPAIGNS','<hr noshade><b>Kampagnen:</b>'); define('CAMPAIGNS_DESC','Mit Kampagne zur Nachverfolgung verbinden.');
[Bearbeiten] Bezeichner und Texte anpassenAlle Vorkommen von MODULE_FROOGLE ändern zu MODULE_EX_CUST_EXPORT. Die Texte am Beginn der Datei anpassen. Klassenname und Konstruktor anpassen. class froogle() zu class ex_cust_export() function froogle() zu function ex_cust_export() function ex_cust_export() $this->code = 'froogle'; ändern zu $this->code = 'ex_cust_export'; [Bearbeiten] Anzeige und KonfigurationWir passen die Funktion display() an. Diese enthält Code den wir nicht benötigen. Wir löschen den gesamten Inhalt und lassen nur dies stehen. Den Ausdruck ..module=froogle.. ersetzen gegen ..module=ex_cust_export.. return array('text' => EXPORT_TYPE.'<br>'. EXPORT.'<br>'. xtc_draw_radio_field('export', 'no',false).EXPORT_NO.'<br>'. xtc_draw_radio_field('export', 'yes',true).EXPORT_YES.'<br>'. '<br>' . xtc_button(BUTTON_EXPORT) . xtc_button_link(BUTTON_CANCEL, xtc_href_link(FILENAME_MODULE_EXPORT, 'set=' . $_GET['set'] . '&module=ex_cust_export')));
[Bearbeiten] Default DateinameDen Default Dateinamen froogle.txt ersetzen wir gegen customers.txt function install(). Das Vorkommen von 'froogle.txt' ersetzen gegen 'orders.txt'.
[Bearbeiten] ProzessZuletzt die Hauptfunktion: function process() Deren Inhalt können wir löschen wir bis Zeile: // create File $fp = fopen(DIR_FS_DOCUMENT_ROOT.'export/' . $file, "w+"); so: function process($file) { // alles gelöscht // create File $fp = fopen(DIR_FS_DOCUMENT_ROOT.'export/' . $file, "w+"); fputs($fp, $schema); fclose($fp); switch ($_POST['export']) { case 'yes': // send File to Browser $extension = substr($file, -3); $fp = fopen(DIR_FS_DOCUMENT_ROOT.'export/' . $file,"rb"); $buffer = fread($fp, filesize(DIR_FS_DOCUMENT_ROOT.'export/' . $file)); fclose($fp); header('Content-type: application/x-octet-stream'); header('Content-disposition: attachment; filename=' . $file); echo $buffer; exit; break; } } Den gelöschten Code ersetzen wir durch eigenen Code. Der Code muß nur ein Kriterium erfüllen. Die Kundenliste muß am Ende in der Variable $schema stehen. function process($file) { // Anfang neuer Code --------------- $sql = "select customers_lastname from ".TABLE_CUSTOMERS." order by customers_lastname"; $res = xtc_db_query($sql); $schema=''; while( $data=xtc_db_fetch_array($res) ) { $schema .= $data['customers_lastname']."\n"; } // Ende neuer Code --------------- // create File $fp = fopen(DIR_FS_DOCUMENT_ROOT.'export/' . $file, "w+"); fputs($fp, $schema); fclose($fp); switch ($_POST['export']) { case 'yes': // send File to Browser $extension = substr($file, -3); $fp = fopen(DIR_FS_DOCUMENT_ROOT.'export/' . $file,"rb"); $buffer = fread($fp, filesize(DIR_FS_DOCUMENT_ROOT.'export/' . $file)); fclose($fp); header('Content-type: application/x-octet-stream'); header('Content-disposition: attachment; filename=' . $file); echo $buffer; exit; break; } } |
![[Hauptseite]](/skins/common/images/wiki.png)