Example #1
0
 public function postProcess()
 {
     global $cookie;
     $this->tabAccess = Profile::getProfileAccess($cookie->profile, $this->id);
     if (Tools::isSubmit('submitAdd' . $this->table)) {
         if ($id_category = intval(Tools::getValue('id_category'))) {
             if (!Category::checkBeforeMove($id_category, intval(Tools::getValue('id_parent')))) {
                 $this->_errors[] = Tools::displayError('category cannot be moved here');
                 return false;
             }
             // Updating customer's group
             if ($this->tabAccess['edit'] !== '1') {
                 $this->_errors[] = Tools::displayError('You do not have permission to edit anything here.');
             } else {
                 $object = new $this->className($id_category);
                 if (Validate::isLoadedObject($object)) {
                     $object->updateGroup(Tools::getValue('groupBox'));
                 } else {
                     $this->_errors[] = Tools::displayError('an error occurred while updating object') . ' <b>' . $this->table . '</b> ' . Tools::displayError('(cannot load object)');
                 }
             }
         }
     }
     parent::postProcess();
 }
 public function processAdd()
 {
     $id_category = (int) Tools::getValue('id_category');
     $id_parent = (int) Tools::getValue('id_parent');
     // if true, we are in a root category creation
     if (!$id_parent && !Tools::isSubmit('is_root_category')) {
         $_POST['is_root_category'] = $_POST['level_depth'] = $_POST['id_parent'] = $id_parent = 1;
     }
     if ($id_category) {
         if ($id_category != $id_parent) {
             if (!Category::checkBeforeMove($id_category, $id_parent)) {
                 $this->errors[] = Tools::displayError($this->l('Category cannot be moved here'));
             }
         } else {
             $this->errors[] = Tools::displayError($this->l('Category cannot be parent of itself.'));
         }
     }
     $object = parent::processAdd();
     //if we create a you root category you have to associate to a shop before to add sub categories in. So we redirect to AdminCategories listing
     if ($object && Tools::getValue('is_root_category')) {
         Tools::redirectAdmin(self::$currentIndex . '&token=' . Tools::getAdminTokenLite('AdminCategories') . '&conf=3');
     }
     return $object;
 }
 public function postProcess($token = NULL)
 {
     global $cookie, $currentIndex;
     $this->tabAccess = Profile::getProfileAccess($cookie->profile, $this->id);
     if (Tools::isSubmit('submitAdd' . $this->table)) {
         if ($id_category = (int) Tools::getValue('id_category')) {
             if (!Category::checkBeforeMove($id_category, (int) Tools::getValue('id_parent'))) {
                 $this->_errors[] = Tools::displayError('Category cannot be moved here');
                 return false;
             }
         }
     } elseif (isset($_GET['status']) and Tools::getValue($this->identifier)) {
         if ($this->tabAccess['edit'] === '1') {
             if (Validate::isLoadedObject($object = $this->loadObject())) {
                 if ($object->toggleStatus()) {
                     $target = '';
                     if ($id_category = (int) Tools::getValue('id_category') and Tools::getValue('id_product')) {
                         $target = '&id_category=' . (int) $id_category;
                     } else {
                         $referrer = Tools::secureReferrer($_SERVER['HTTP_REFERER']);
                         if (preg_match('/id_category=(\\d+)/', $referrer, $matches)) {
                             $target = '&id_category=' . (int) $matches[1];
                         }
                     }
                     Module::hookExec('categoryUpdate');
                     Tools::redirectAdmin($currentIndex . '&conf=5' . $target . '&token=' . Tools::getValue('token'));
                 } else {
                     $this->_errors[] = Tools::displayError('An error occurred while updating status.');
                 }
             } else {
                 $this->_errors[] = Tools::displayError('An error occurred while updating status for object.') . ' <b>' . $this->table . '</b> ' . Tools::displayError('(cannot load object)');
             }
         } else {
             $this->_errors[] = Tools::displayError('You do not have permission to edit here.');
         }
     } elseif (isset($_GET['delete' . $this->table])) {
         if ($this->tabAccess['delete'] === '1') {
             if (Validate::isLoadedObject($object = $this->loadObject()) and isset($this->fieldImageSettings)) {
                 // check if request at least one object with noZeroObject
                 if (isset($object->noZeroObject) and sizeof($taxes = call_user_func(array($this->className, $object->noZeroObject))) <= 1) {
                     $this->_errors[] = Tools::displayError('You need at least one object.') . ' <b>' . $this->table . '</b><br />' . Tools::displayError('You cannot delete all of the items.');
                 } else {
                     if ($this->deleted) {
                         $object->deleteImage();
                         $object->deleted = 1;
                         if ($object->update()) {
                             Tools::redirectAdmin($currentIndex . '&conf=1&token=' . Tools::getValue('token') . '&id_category=' . (int) $object->id_parent);
                         }
                     } elseif ($object->delete()) {
                         Tools::redirectAdmin($currentIndex . '&conf=1&token=' . Tools::getValue('token') . '&id_category=' . (int) $object->id_parent);
                     }
                     $this->_errors[] = Tools::displayError('An error occurred during deletion.');
                 }
             } else {
                 $this->_errors[] = Tools::displayError('An error occurred while deleting object.') . ' <b>' . $this->table . '</b> ' . Tools::displayError('(cannot load object)');
             }
         } else {
             $this->_errors[] = Tools::displayError('You do not have permission to delete here.');
         }
     } elseif (isset($_GET['position'])) {
         if ($this->tabAccess['edit'] !== '1') {
             $this->_errors[] = Tools::displayError('You do not have permission to edit here.');
         } elseif (!Validate::isLoadedObject($object = new Category((int) Tools::getValue($this->identifier, Tools::getValue('id_category_to_move', 1))))) {
             $this->_errors[] = Tools::displayError('An error occurred while updating status for object.') . ' <b>' . $this->table . '</b> ' . Tools::displayError('(cannot load object)');
         }
         if (!$object->updatePosition((int) Tools::getValue('way'), (int) Tools::getValue('position'))) {
             $this->_errors[] = Tools::displayError('Failed to update the position.');
         } else {
             Tools::redirectAdmin($currentIndex . '&' . $this->table . 'Orderby=position&' . $this->table . 'Orderway=asc&conf=5' . (($id_category = (int) Tools::getValue($this->identifier, Tools::getValue('id_category_parent', 1))) ? '&' . $this->identifier . '=' . $id_category : '') . '&token=' . Tools::getAdminTokenLite('AdminCatalog'));
         }
     } elseif (Tools::getValue('submitDel' . $this->table)) {
         if ($this->tabAccess['delete'] === '1') {
             if (isset($_POST[$this->table . 'Box'])) {
                 $category = new Category();
                 $result = true;
                 $result = $category->deleteSelection(Tools::getValue($this->table . 'Box'));
                 if ($result) {
                     $category->cleanPositions((int) Tools::getValue('id_category'));
                     Tools::redirectAdmin($currentIndex . '&conf=2&token=' . Tools::getAdminTokenLite('AdminCatalog') . '&id_category=' . (int) Tools::getValue('id_category'));
                 }
                 $this->_errors[] = Tools::displayError('An error occurred while deleting selection.');
             } else {
                 $this->_errors[] = Tools::displayError('You must select at least one element to delete.');
             }
         } else {
             $this->_errors[] = Tools::displayError('You do not have permission to delete here.');
         }
         return;
     }
     parent::postProcess();
 }
 public function processAdd()
 {
     $id_category = (int) Tools::getValue('id_category');
     $id_parent = (int) Tools::getValue('id_parent');
     // if true, we are in a root category creation
     if (!$id_parent) {
         $_POST['is_root_category'] = $_POST['level_depth'] = 1;
         $_POST['id_parent'] = $id_parent = (int) Configuration::get('PS_ROOT_CATEGORY');
     }
     if ($id_category) {
         if ($id_category != $id_parent) {
             if (!Category::checkBeforeMove($id_category, $id_parent)) {
                 $this->errors[] = $this->trans('The category cannot be moved here.', array(), 'Admin.Catalog.Notification');
             }
         } else {
             $this->errors[] = $this->trans('The category cannot be a parent of itself.', array(), 'Admin.Catalog.Notification');
         }
     }
     $object = parent::processAdd();
     //if we create a you root category you have to associate to a shop before to add sub categories in. So we redirect to AdminCategories listing
     if ($object && Tools::getValue('is_root_category')) {
         Tools::redirectAdmin(self::$currentIndex . '&id_category=' . (int) Configuration::get('PS_ROOT_CATEGORY') . '&token=' . Tools::getAdminTokenLite('AdminCategories') . '&conf=3');
     }
     return $object;
 }
 public function postProcess($token = NULL)
 {
     global $cookie, $currentIndex;
     $this->tabAccess = Profile::getProfileAccess($cookie->profile, $this->id);
     if (Tools::isSubmit('submitAdd' . $this->table)) {
         if ($id_category = intval(Tools::getValue('id_category'))) {
             if (!Category::checkBeforeMove($id_category, intval(Tools::getValue('id_parent')))) {
                 $this->_errors[] = Tools::displayError('category cannot be moved here');
                 return false;
             }
             // Updating customer's group
             if ($this->tabAccess['edit'] !== '1') {
                 $this->_errors[] = Tools::displayError('You do not have permission to edit anything here.');
             } else {
                 $object = new $this->className($id_category);
                 if (Tools::getValue('groupBox') != NULL) {
                     if (Validate::isLoadedObject($object)) {
                         $object->updateGroup(Tools::getValue('groupBox'));
                     } else {
                         $this->_errors[] = Tools::displayError('an error occurred while updating object') . ' <b>' . $this->table . '</b> ' . Tools::displayError('(cannot load object)');
                     }
                 } else {
                     $this->_errors[] = Tools::displayError('you must select at least one group');
                 }
             }
         }
     } elseif (isset($_GET['status']) and Tools::getValue($this->identifier)) {
         if ($this->tabAccess['edit'] === '1') {
             if (Validate::isLoadedObject($object = $this->loadObject())) {
                 if ($object->toggleStatus()) {
                     $target = '';
                     if ($id_category = intval(Tools::getValue('id_category')) and Tools::getValue('id_product')) {
                         $target = '&id_category=' . $id_category;
                     } else {
                         $referrer = Tools::secureReferrer($_SERVER['HTTP_REFERER']);
                         if (preg_match('/id_category=(\\d+)/', $referrer, $matches)) {
                             $target = '&id_category=' . $matches[1];
                         }
                     }
                     Tools::redirectAdmin($currentIndex . '&conf=5' . $target . '&token=' . Tools::getValue('token'));
                 } else {
                     $this->_errors[] = Tools::displayError('an error occurred while updating status');
                 }
             } else {
                 $this->_errors[] = Tools::displayError('an error occurred while updating status for object') . ' <b>' . $this->table . '</b> ' . Tools::displayError('(cannot load object)');
             }
         } else {
             $this->_errors[] = Tools::displayError('You do not have permission to edit anything here.');
         }
     } elseif (isset($_GET['delete' . $this->table])) {
         if ($this->tabAccess['delete'] === '1') {
             if (Validate::isLoadedObject($object = $this->loadObject()) and isset($this->fieldImageSettings)) {
                 // check if request at least one object with noZeroObject
                 if (isset($object->noZeroObject) and sizeof($taxes = call_user_func(array($this->className, $object->noZeroObject))) <= 1) {
                     $this->_errors[] = Tools::displayError('you need at least one object') . ' <b>' . $this->table . '</b>' . Tools::displayError(', you cannot delete all of them');
                 } else {
                     $this->deleteImage($object->id);
                     if ($this->deleted) {
                         $object->deleted = 1;
                         if ($object->update()) {
                             Tools::redirectAdmin($currentIndex . '&conf=1&token=' . Tools::getValue('token') . '&id_category=' . intval($object->id_parent));
                         }
                     } elseif ($object->delete()) {
                         Tools::redirectAdmin($currentIndex . '&conf=1&token=' . Tools::getValue('token') . '&id_category=' . intval($object->id_parent));
                     }
                     $this->_errors[] = Tools::displayError('an error occurred during deletion');
                 }
             } else {
                 $this->_errors[] = Tools::displayError('an error occurred while deleting object') . ' <b>' . $this->table . '</b> ' . Tools::displayError('(cannot load object)');
             }
         } else {
             $this->_errors[] = Tools::displayError('You do not have permission to delete here.');
         }
     } elseif (Tools::getValue('submitDel' . $this->table)) {
         if ($this->tabAccess['delete'] === '1') {
             if (isset($_POST[$this->table . 'Box'])) {
                 $object = new $this->className();
                 if (isset($object->noZeroObject) and (sizeof(call_user_func(array($this->className, $object->noZeroObject))) <= 1 or sizeof($_POST[$this->table . 'Box']) == sizeof(call_user_func(array($this->className, $object->noZeroObject))))) {
                     $this->_errors[] = Tools::displayError('you need at least one object') . ' <b>' . $this->table . '</b>' . Tools::displayError(', you cannot delete all of them');
                 } else {
                     $result = true;
                     if ($this->deleted) {
                         foreach (Tools::getValue($this->table . 'Box') as $id) {
                             $toDelete = new $this->className($id);
                             $toDelete->deleted = 1;
                             $result = $result and $toDelete->update();
                         }
                     } else {
                         $result = $object->deleteSelection(Tools::getValue($this->table . 'Box'));
                     }
                     if ($result) {
                         $target = '';
                         $referrer = Tools::secureReferrer($_SERVER['HTTP_REFERER']);
                         if (preg_match('/id_category=(\\d+)/', $referrer, $matches)) {
                             $target = '&id_category=' . $matches[1];
                         }
                         Tools::redirectAdmin($currentIndex . '&conf=2&token=' . Tools::getValue('token') . $target);
                     }
                     $this->_errors[] = Tools::displayError('an error occurred while deleting selection');
                 }
             } else {
                 $this->_errors[] = Tools::displayError('you must select at least one element to delete');
             }
         } else {
             $this->_errors[] = Tools::displayError('You do not have permission to delete here.');
         }
     }
     parent::postProcess();
 }