hallo beisammen, ich habe gerade die alte anleitung unter https://developers.gambio.de/tutorials.html?v=3.1.1.0&p=das-extender-system befolgt und in einer gambio 4.3.3.0 unter GXUserComponents/overloads/AdminOrderOverviewTableExtenderComponent die datei EmailColumn.php angelegt. Inhalt: PHP: <?phpclass EmailColumn extends EmailColumn_parent{ private $columnName = 'EmailColumn'; public function __construct() { $this->setHeadCell($this->columnName, 'Email'); $this->setWidth($this->columnName, '50px'); $this->setHeadClasses($this->columnName, 'link-style email-style'); parent::__construct(); } public function proceed() { $this->setClasses($this->columnName, 'sample_class_2'); $this->setContent($this->columnName, $this->getContent()); parent::proceed(); } private function getContent() { $orderReadService = StaticGXCoreLoader::getService('OrderRead'); $order = $orderReadService->getOrderById($this->orderId); $email = $order->getCustomerEmail(); $content = '<a href="mailto:' . $email . '">' . $email . '</a>'; return $content; }} es tut sich aber auch nach leeren aller caches rein gar nichts. stimmt da irgendein z.b. klassenname nicht mehr unter 4.3.3.0?
Der Pfad passt nicht. GXUserComponents wird in einem GX 4x gar nicht mehr genutzt. Das müsste jetzt so aufgebaut sein (ich schreibe es mal mit Abständen, damit man das besser sieht, die Leerzeichen müssen aber natürlich weg): GXModules / Name oder Kürzel / Modul oder Anpassung / Admin / Overloads /.... oder wenn es auf Kundenseite sein soll: GXModules / Name oder Kürzel / Modul oder Anpassung / Shop / Overloads /....
ouch. danke barbara! ok, den fehler hab ich behoben. jedoch unter \GXModules\ff-webdesigner\AMZ_order_ID\Admin\overloads\OrdersOverviewColumns mit allen relevanten dateien unten angepasst erscheint zwar eine neue spalte kundennummer, aber es werden keinerlei daten mehr geladen. https://www.gambio.de/forum/threads...-spalte-kundennummer.34116/page-2#post-279832 \GXModules\ff-webdesigner\AMZ_order_ID\Admin\overloads\OrderListGenerator\CustomersIdOrderListGenerator.inc.php PHP: <?phpclass CustomersIdOrderListGenerator extends CustomersIdOrderListGenerator_parent{ protected function _setFilterArguments(array $filterParameters, IntType $startIndex = null, IntType $maxCount = null, StringType $orderBy = null) { parent::_setFilterArguments($filterParameters,$startIndex,$maxCount,$orderBy); // Filter by customer. if(!empty($filterParameters['KdNr'])) { $this->db->group_start(); if(strpos($filterParameters['KdNr'], '#') === 0) { $this->db->where('orders.customers_id', substr($filterParameters['KdNr'], 1)) ->or_where('orders.customers_cid', substr($filterParameters['KdNr'], 1)); } else { $this->db->where('orders.customers_id', $filterParameters['KdNr']) ->or_like('orders.customers_cid', $filterParameters['KdNr']) ->or_like('orders.customers_id', $filterParameters['KdNr']); } $this->db->group_end(); } return $this; }} \GXModules\ff-webdesigner\AMZ_order_ID\Admin\overloads\OrdersOverviewAjaxController\CustomColumnOrdersOverviewAjaxController.inc.php PHP: <?phpclass CustomColumnOrdersOverviewAjaxController extends CustomColumnOrdersOverviewAjaxController_parent{ protected function _getTableData() { $tableData = parent::_getTableData(); foreach($tableData as $row=>$values) { $tableData[$row]['KdNr'] = $values['DT_RowData']['customerId']; } return $tableData; }} \GXModules\ff-webdesigner\AMZ_order_ID\Admin\overloads\OrdersOverviewColumns\CustomColumnOrdersOverviewColumns.inc.php PHP: <?phpclass CustomColumnOrdersOverviewColumns extends CustomColumnOrdersOverviewColumns_parent{ public function __construct() { parent::__construct(); // Custom $this->columns[] = MainFactory::create('DataTableColumn') ->setTitle(new StringType('KdNr')) ->setName(new StringType('KdNr')) ->setType(new DataTableColumnType(DataTableColumnType::NUMBER)); }} \GXModules\ff-webdesigner\AMZ_order_ID\Admin\overloads\OrdersOverviewController\CustomColumnOrdersOverviewController.inc.php PHP: <?phpclass CustomColumnOrdersOverviewController extends CustomColumnOrdersOverviewController_parent{ protected function _getAssetsArray() { $assetsArray = parent::_getAssetsArray(); $assetsArray[] = MainFactory::create('Asset', DIR_WS_CATALOG.'GXModules/ff-webdesigner/Admin/add_custom_column.js'); return $assetsArray; }} \GXModules\ff-webdesigner\AMZ_order_ID\Admin\add_custom_column.js Code: $(function() { 'use strict'; // Be careful to not overwrite existing object definitions. jse.libs.orders_overview_columns = jse.libs.orders_overview_columns || {}; // Custom column definition. jse.libs.orders_overview_columns.KdNr = { data: 'KdNr', minWidth: '75px', widthFactor: 0.9 }; }); was auffällt ist schon mal dass das js keinen alert ausgibt....
@ff-webdesigner Hier ist das bereits für GXModules angepasst (Link nur für registrierte Nutzer sichtbar.) Bitte prüfe ob das so unverändert erstmal funktioniert. Wenn ja, kannst du anfangen Anpassungen vorzunehmen.
hi till, danke! hatte ich nicht selbst gefunden. eingebaut, caches geleert. leider keinerlei neue spalte unter 4.3.3.0. zumindest auch keine fehlermeldungen und bestellungen werden weiterhin angezeigt.
@ff-webdesigner Du musst die neue Spalte erst aktivieren, dazu auf das Zahnrad klicken und die neue Spalte aus der Liste wählen. Dann speichern und nach einen Reload der Seite sollte die Spalte dann sichtbar sein.
hi till, das hatte ich schon probiert...aber nicht genau genug geschrieben: auch hier erscheint die kundennummer nicht als spalte zur auswahl.
@ff-webdesigner mach mal ein Ticket auf und sende uns entsprechende Daten, damit wir uns das direkt in deinem Testshop ansehen können. Aus dem Thread kann ich keine Probleme ableiten, weil es bei mir im Testshop ohne Probleme funktioniert.