'quick_access', 'primary' => 'id_quick_access', 'multilang' => true, 'fields' => [ 'link' => ['type' => self::TYPE_STRING, 'validate' => 'isUrl', 'required' => true, 'size' => 255], 'new_window' => ['type' => self::TYPE_BOOL, 'validate' => 'isBool', 'required' => true], /* Lang fields */ 'name' => ['type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCleanHtml', 'required' => true, 'size' => 32], ], ]; /** * Get all available quick_accesses. * * @return array QuickAccesses */ public static function getQuickAccesses($idLang) { return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT * FROM `' . _DB_PREFIX_ . 'quick_access` qa LEFT JOIN `' . _DB_PREFIX_ . 'quick_access_lang` qal ON (qa.`id_quick_access` = qal.`id_quick_access` AND qal.`id_lang` = ' . (int) $idLang . ') ORDER BY `name` ASC'); } /** * Get all available quick_accesses with token. * * @return bool|array QuickAccesses */ public static function getQuickAccessesWithToken($idLang, $idEmployee) { $quickAccess = self::getQuickAccesses($idLang); if (empty($quickAccess)) { return false; } $container = PrestaShop\PrestaShop\Adapter\SymfonyContainer::getInstance(); if (!$container) { return false; } $quickAccessGenerator = $container->get(PrestaShop\PrestaShop\Core\QuickAccess\QuickAccessGenerator::class); return $quickAccessGenerator->getTokenizedQuickAccesses(); } /** * Toggle new window. * * @return bool * * @throws PrestaShopException */ public function toggleNewWindow() { if (!array_key_exists('new_window', get_object_vars($this))) { throw new PrestaShopException('property "new_window" is missing in object ' . get_class($this)); } $this->setFieldsToUpdate(['new_window' => true]); $this->new_window = !(int) $this->new_window; return $this->update(false); } }