/** * ============================================ * DOSYA 2: /plugins/smartwizard/version/100/SmartGroup.php * ============================================ */ declare(strict_types=1); namespace Plugin\smartwizard; use JTL\Extensions\SelectionWizard\Group as OriginalGroup; use JTL\Extensions\SelectionWizard\Location; use JTL\Shop; use stdClass; class SmartGroup extends OriginalGroup { /** * Override: saveGroup - Location kontrollerini bypass et */ public function saveGroup(array $params, bool $primary = false) { // Sadece grup için validation yap, location check'i ATLA $checks = $this->checkGroupOnly($params); if (\count($checks) !== 0) { return $checks; } $data = new stdClass(); $data->kSprache = $this->kSprache; $data->cName = $this->cName; $data->cBeschreibung = $this->cBeschreibung; $data->nAktiv = $this->nAktiv; $db = Shop::Container()->getDB(); $groupID = $db->insert('tauswahlassistentgruppe', $data); if ($groupID < 1) { return false; } // Location'ları kaydet - ama check yapmadan $location = new SmartLocation(); $location->saveLocation($params, $groupID); return $primary ? $groupID : true; } /** * Override: updateGroup - Location kontrollerini bypass et */ public function updateGroup(array $params): array|bool { // Sadece grup için validation yap, location check'i ATLA $validation = $this->checkGroupOnly($params, true); if (\count($validation) !== 0) { return $validation; } $upd = new stdClass(); $upd->kSprache = $this->kSprache; $upd->cName = $this->cName; $upd->cBeschreibung = $this->cBeschreibung; $upd->nAktiv = $this->nAktiv; $db = Shop::Container()->getDB(); $db->update( 'tauswahlassistentgruppe', 'kAuswahlAssistentGruppe', $this->kAuswahlAssistentGruppe, $upd ); // Location'ları güncelle - ama check yapmadan $location = new SmartLocation(); $location->updateLocation($params, $this->kAuswahlAssistentGruppe); return true; } /** * checkGroup'tan location check kısmını çıkardık */ private function checkGroupOnly(array $params, bool $update = false): array { $validation = []; if (empty($this->cName)) { $validation['cName'] = 1; } if ($this->kSprache === 0) { $validation['kSprache'] = 1; } if ($this->nAktiv !== 0 && $this->nAktiv !== 1) { $validation['nAktiv'] = 1; } // ÖNEMLI: Location::checkLocation() çağrısını YAPMA! // Böylece isCategoryTaken, isLinkTaken, isStartPageTaken kontrolleri atlanır return $validation; } }
Fatal error: Uncaught Error: Call to undefined method Plugin\smartwizard\Bootstrap::getPath() in /www/htdocs/w01db191/partsell.de/shop/plugins/smartwizard/Bootstrap.php:31 Stack trace: #0 /www/htdocs/w01db191/partsell.de/shop/plugins/smartwizard/Bootstrap.php(24): Plugin\smartwizard\Bootstrap->hookGroupSave() #1 /www/htdocs/w01db191/partsell.de/shop/includes/src/Shop.php(338): Plugin\smartwizard\Bootstrap->boot(Object(JTL\Events\Dispatcher)) #2 /www/htdocs/w01db191/partsell.de/shop/includes/globalinclude.php(70): JTL\Shop::bootstrap(true, Object(JTL\DB\NiceDB), Object(JTL\Cache\JTLCache)) #3 /www/htdocs/w01db191/partsell.de/shop/index.php(7): require('/www/htdocs/w01...') #4 {main} thrown in /www/htdocs/w01db191/partsell.de/shop/plugins/smartwizard/Bootstrap.php on line 31