/**
* ============================================
* 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