* @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 '