* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ if (!defined('_PS_VERSION_')) { exit; } require_once dirname(__FILE__) . '/AdminStEasyVideoListController.php'; class AdminStEasyVideoCategoryController extends AdminStEasyVideoListController { protected $contr = 'category'; public function addWhere($where = '') { return $where.' AND id_product=\'\' AND id_category!=0 AND id_manufacturer=0 '; } public function filterFormFields(&$fileds, $obj) { array_splice($fileds['input'], 1, 0, array( array( 'type' => 'select', 'label' => $this->l('Select a category:'), 'required' => true, 'name' => 'id_category', 'class' => 'fixed-width-xxl', 'options' => array( 'query' => $this->getApplyCategory(), 'id' => 'id', 'name' => 'name', 'default' => array( 'value' => '', 'label' => $this->l('Please select') ) ), ), array( 'type' => 'switch', 'label' => $this->l('Apply to subcategories:'), 'name' => 'sub_category', 'is_bool' => true, 'default_value' => 0, 'values' => array( array( 'id' => 'sub_category_on', 'value' => 1, 'label' => $this->l('Enabled') ), array( 'id' => 'sub_category_off', 'value' => 0, 'label' => $this->l('Disabled') ) ), ), )); } public function getApplyCategory() { $category_arr = array(); $this->getCategoryOption($category_arr, Category::getRootCategory()->id, (int)$this->context->language->id, (int)Shop::getContextShopID(), true); return $category_arr; } public function getCategoryOption(&$category_arr, $id_category = 1, $id_lang = false, $id_shop = false, $recursive = true) { $id_lang = $id_lang ? (int)$id_lang : (int)Context::getContext()->language->id; $category = new Category((int)$id_category, (int)$id_lang, (int)$id_shop); if (is_null($category->id)) { return; } if ($recursive) { $children = Category::getChildren((int)$id_category, (int)$id_lang, true, (int)$id_shop); $spacer = str_repeat(' ', $this->spacer_size * (int)$category->level_depth); } $shop = (object) Shop::getShop((int)$category->getShopID()); $category_arr[] = array('id' => (int)$category->id,'name' => (isset($spacer) ? $spacer : '').$category->name.' ('.$shop->name.')'); if (isset($children) && is_array($children) && count($children)) { foreach ($children as $child) { $this->getCategoryOption($category_arr, (int)$child['id_category'], (int)$id_lang, (int)$child['id_shop'], $recursive); } } } }