* @copyright 2007-2011 PrestaShop SA * @version Release: $Revision: 7504 $ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ include_once(PS_ADMIN_DIR.'/../classes/AdminTab.php'); include(PS_ADMIN_DIR.'/tabs/AdminCategories.php'); include(PS_ADMIN_DIR.'/tabs/AdminProducts.php'); class AdminCatalog extends AdminTab { /** @var object AdminCategories() instance */ private $adminCategories; /** @var object AdminProducts() instance */ private $adminProducts; /** @var object AttributeGenerator() instance */ private $attributeGenerator; /** @var object imageResize() instance */ private $imageResize; /** @var object Category() instance for navigation*/ private static $_category = NULL; public function __construct() { /* Get current category */ $id_category = abs((int)(Tools::getValue('id_category'))); if (!$id_category) $id_category = 1; self::$_category = new Category($id_category); if (!Validate::isLoadedObject(self::$_category)) die('Category cannot be loaded'); $this->table = array('category', 'product'); $this->adminCategories = new AdminCategories(); $this->adminProducts = new AdminProducts(); parent::__construct(); } /** * Return current category * * @return object */ public static function getCurrentCategory() { return self::$_category; } public function viewAccess($disable = false) { $result = parent::viewAccess($disable); $this->adminCategories->tabAccess = $this->tabAccess; $this->adminProducts->tabAccess = $this->tabAccess; return $result; } public function postProcess() { if (!Tools::getValue('id_product')) $this->adminCategories->postProcess(); elseif (isset($_GET['attributegenerator'])) { if (!isset($this->attributeGenerator)) { include_once(PS_ADMIN_DIR.'/tabs/AdminAttributeGenerator.php'); $this->attributeGenerator = new AdminAttributeGenerator(); } $this->attributeGenerator->postProcess(); } $this->adminProducts->postProcess($this->token); } public function displayErrors() { parent::displayErrors(); $this->adminProducts->displayErrors(); $this->adminCategories->displayErrors(); if (Validate::isLoadedObject($this->attributeGenerator)) $this->attributeGenerator->displayErrors(); if (Validate::isLoadedObject($this->imageResize)) $this->imageResize->displayErrors(); } public function display() { global $currentIndex; if (((Tools::isSubmit('submitAddcategory') OR Tools::isSubmit('submitAddcategoryAndStay')) AND sizeof($this->adminCategories->_errors)) OR isset($_GET['updatecategory']) OR isset($_GET['addcategory'])) { $this->adminCategories->displayForm($this->token); echo '

'.$this->l('Back to list').'
'; } elseif (((Tools::isSubmit('submitAddproduct') OR Tools::isSubmit('submitAddproductAndPreview') OR Tools::isSubmit('submitAddproductAndStay') OR Tools::isSubmit('submitSpecificPricePriorities') OR Tools::isSubmit('submitPriceAddition') OR Tools::isSubmit('submitPricesModification')) AND sizeof($this->adminProducts->_errors)) OR Tools::isSubmit('updateproduct') OR Tools::isSubmit('addproduct')) { $this->adminProducts->displayForm($this->token); if (Tools::getValue('id_category') > 1) echo '

'.$this->l('Back to home').'
'; else echo '

'.$this->l('Back to catalog').'
'; } elseif (isset($_GET['attributegenerator'])) { if (!isset($this->attributeGenerator)) { include_once(PS_ADMIN_DIR.'/tabs/AdminAttributeGenerator.php'); $this->attributeGenerator = new AdminAttributeGenerator(); } $this->attributeGenerator->displayForm(); } elseif (!isset($_GET['editImage'])) { $id_category = (int)(Tools::getValue('id_category')); if (!$id_category) $id_category = 1; $catalog_tabs = array('category', 'product'); // Cleaning links $catBarIndex = $currentIndex; foreach ($catalog_tabs AS $tab) if (Tools::getValue($tab.'Orderby') && Tools::getValue($tab.'Orderway')) $catBarIndex = preg_replace('/&'.$tab.'Orderby=([a-z _]*)&'.$tab.'Orderway=([a-z]*)/i', '', $currentIndex); echo '
'.$this->l('Current category').' :   '.getPath($catBarIndex, $id_category).'
'; echo '

'.$this->l('Categories').'

'; $this->adminCategories->display($this->token); echo '
 
'; echo '

'.$this->l('Products in this category').'

'; $this->adminProducts->display($this->token); } } }