diff --git a/classes/AdminController.php b/classes/AdminController.php
index e3b8880fd..e6238c36c 100644
--- a/classes/AdminController.php
+++ b/classes/AdminController.php
@@ -199,20 +199,17 @@ class AdminControllerCore extends Controller
// Sub included tab postProcessing
$this->includeSubTab('postProcess', array('status', 'submitAdd1', 'submitDel', 'delete', 'submitFilter', 'submitReset'));
- /* Delete object image */
- if (isset($_GET['deleteImage']))
+ switch ($this->action)
{
- if (Validate::isLoadedObject($object = $this->loadObject()))
- if (($object->deleteImage()))
- Tools::redirectAdmin(self::$currentIndex.'&add'.$this->table.'&'.$this->identifier.'='.Tools::getValue($this->identifier).'&conf=7&token='.$token);
- $this->_errors[] = Tools::displayError('An error occurred during image deletion (cannot load object).');
- }
-
- /* Delete object */
- elseif (isset($_GET['delete'.$this->table]))
- {
- if ($this->tabAccess['delete'] === '1')
- {
+ /* Delete object image */
+ case 'delete_image':
+ if (Validate::isLoadedObject($object = $this->loadObject()))
+ if (($object->deleteImage()))
+ Tools::redirectAdmin(self::$currentIndex.'&add'.$this->table.'&'.$this->identifier.'='.Tools::getValue($this->identifier).'&conf=7&token='.$token);
+ $this->_errors[] = Tools::displayError('An error occurred during image deletion (cannot load object).');
+ break;
+ /* Delete object */
+ case 'delete':
if (Validate::isLoadedObject($object = $this->loadObject()) AND isset($this->fieldImageSettings))
{
// check if request at least one object with noZeroObject
@@ -238,16 +235,10 @@ class AdminControllerCore extends Controller
}
else
$this->_errors[] = Tools::displayError('An error occurred while deleting object.').' '.$this->table.' '.Tools::displayError('(cannot load object)');
- }
- else
- $this->_errors[] = Tools::displayError('You do not have permission to delete here.');
- }
+ break;
- /* Change object statuts (active, inactive) */
- elseif ((isset($_GET['status'.$this->table]) OR isset($_GET['status'])) AND Tools::getValue($this->identifier))
- {
- if ($this->tabAccess['edit'] === '1')
- {
+ /* Change object statuts (active, inactive) */
+ case 'status':
if (Validate::isLoadedObject($object = $this->loadObject()))
{
if ($object->toggleStatus())
@@ -257,28 +248,21 @@ class AdminControllerCore extends Controller
}
else
$this->_errors[] = Tools::displayError('An error occurred while updating status for object.').' '.$this->table.' '.Tools::displayError('(cannot load object)');
- }
- else
- $this->_errors[] = Tools::displayError('You do not have permission to edit here.');
- }
- /* Move an object */
- 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 = $this->loadObject()))
- $this->_errors[] = Tools::displayError('An error occurred while updating status for object.').' '.$this->table.' '.Tools::displayError('(cannot load object)');
- elseif (!$object->updatePosition((int)(Tools::getValue('way')), (int)(Tools::getValue('position'))))
- $this->_errors[] = Tools::displayError('Failed to update the position.');
- else
- Tools::redirectAdmin(self::$currentIndex.'&'.$this->table.'Orderby=position&'.$this->table.'Orderway=asc&conf=5'.(($id_category = (int)(Tools::getValue($this->identifier))) ? ('&'.$this->identifier.'='.$id_category) : '').'&token='.$token);
- Tools::redirectAdmin(self::$currentIndex.'&'.$this->table.'Orderby=position&'.$this->table.'Orderway=asc&conf=5'.((($id_category = (int)(Tools::getValue('id_category'))) AND Tools::getValue('id_product')) ? '&id_category='.$id_category : '').'&token='.$token);
- }
- /* Delete multiple objects */
- elseif (Tools::getValue('submitDel'.$this->table))
- {
- if ($this->tabAccess['delete'] === '1')
- {
+ break;
+
+ /* Move an object */
+ case 'position':
+ if (!Validate::isLoadedObject($object = $this->loadObject()))
+ $this->_errors[] = Tools::displayError('An error occurred while updating status for object.').' '.$this->table.' '.Tools::displayError('(cannot load object)');
+ elseif (!$object->updatePosition((int)(Tools::getValue('way')), (int)(Tools::getValue('position'))))
+ $this->_errors[] = Tools::displayError('Failed to update the position.');
+ else
+ Tools::redirectAdmin(self::$currentIndex.'&'.$this->table.'Orderby=position&'.$this->table.'Orderway=asc&conf=5'.(($id_category = (int)(Tools::getValue($this->identifier))) ? ('&'.$this->identifier.'='.$id_category) : '').'&token='.$token);
+ Tools::redirectAdmin(self::$currentIndex.'&'.$this->table.'Orderby=position&'.$this->table.'Orderway=asc&conf=5'.((($id_category = (int)(Tools::getValue('id_category'))) AND Tools::getValue('id_product')) ? '&id_category='.$id_category : '').'&token='.$token);
+ break;
+
+ /* Delete multiple objects */
+ case 'multiple_delete':
if (isset($_POST[$this->table.'Box']))
{
$object = new $this->className();
@@ -308,216 +292,210 @@ class AdminControllerCore extends Controller
}
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.');
- }
+ break;
- /* Create or update an object */
- elseif (Tools::getValue('submitAdd'.$this->table))
- {
- /* Checking fields validity */
- $this->validateRules();
- if (!sizeof($this->_errors))
- {
- $id = (int)(Tools::getValue($this->identifier));
-
- /* Object update */
- if (isset($id) AND !empty($id))
+ /* Create or update an object */
+ case 'save':
+ /* Checking fields validity */
+ $this->validateRules();
+ if (!sizeof($this->_errors))
{
- if ($this->tabAccess['edit'] === '1' OR ($this->table == 'employee' AND $this->context->employee->id == Tools::getValue('id_employee') AND Tools::isSubmit('updateemployee')))
+ $id = (int)(Tools::getValue($this->identifier));
+
+ /* Object update */
+ if (isset($id) AND !empty($id))
{
- $object = new $this->className($id);
- if (Validate::isLoadedObject($object))
+ if ($this->tabAccess['edit'] === '1' OR ($this->table == 'employee' AND $this->context->employee->id == Tools::getValue('id_employee') AND Tools::isSubmit('updateemployee')))
{
- /* Specific to objects which must not be deleted */
- if ($this->deleted AND $this->beforeDelete($object))
+ $object = new $this->className($id);
+ if (Validate::isLoadedObject($object))
{
- // Create new one with old objet values
- $objectNew = new $this->className($object->id);
- $objectNew->id = NULL;
- $objectNew->date_add = '';
- $objectNew->date_upd = '';
+ /* Specific to objects which must not be deleted */
+ if ($this->deleted AND $this->beforeDelete($object))
+ {
+ // Create new one with old objet values
+ $objectNew = new $this->className($object->id);
+ $objectNew->id = NULL;
+ $objectNew->date_add = '';
+ $objectNew->date_upd = '';
- // Update old object to deleted
- $object->deleted = 1;
- $object->update();
+ // Update old object to deleted
+ $object->deleted = 1;
+ $object->update();
- // Update new object with post values
- $this->copyFromPost($objectNew, $this->table);
- $result = $objectNew->add();
- if (Validate::isLoadedObject($objectNew))
- $this->afterDelete($objectNew, $object->id);
+ // Update new object with post values
+ $this->copyFromPost($objectNew, $this->table);
+ $result = $objectNew->add();
+ if (Validate::isLoadedObject($objectNew))
+ $this->afterDelete($objectNew, $object->id);
+ }
+ else
+ {
+ $this->copyFromPost($object, $this->table);
+ $result = $object->update();
+ $this->afterUpdate($object);
+ }
+
+ if ($object->id)
+ $this->updateAssoShop($object->id);
+
+ if (!$result)
+ $this->_errors[] = Tools::displayError('An error occurred while updating object.').' '.$this->table.' ('.Db::getInstance()->getMsgError().')';
+ elseif ($this->postImage($object->id) AND !sizeof($this->_errors))
+ {
+ $parent_id = (int)(Tools::getValue('id_parent', 1));
+ // Specific back redirect
+ if ($back = Tools::getValue('back'))
+ Tools::redirectAdmin(urldecode($back).'&conf=4');
+ // Specific scene feature
+ if (Tools::getValue('stay_here') == 'on' || Tools::getValue('stay_here') == 'true' || Tools::getValue('stay_here') == '1')
+ Tools::redirectAdmin(self::$currentIndex.'&'.$this->identifier.'='.$object->id.'&conf=4&updatescene&token='.$token);
+ // Save and stay on same form
+ if (Tools::isSubmit('submitAdd'.$this->table.'AndStay'))
+ Tools::redirectAdmin(self::$currentIndex.'&'.$this->identifier.'='.$object->id.'&conf=4&update'.$this->table.'&token='.$token);
+ // Save and back to parent
+ if (Tools::isSubmit('submitAdd'.$this->table.'AndBackToParent'))
+ Tools::redirectAdmin(self::$currentIndex.'&'.$this->identifier.'='.$parent_id.'&conf=4&token='.$token);
+ // Default behavior (save and back)
+ Tools::redirectAdmin(self::$currentIndex.($parent_id ? '&'.$this->identifier.'='.$object->id : '').'&conf=4&token='.$token);
+ }
}
else
- {
- $this->copyFromPost($object, $this->table);
- $result = $object->update();
- $this->afterUpdate($object);
- }
+ $this->_errors[] = Tools::displayError('An error occurred while updating object.').' '.$this->table.' '.Tools::displayError('(cannot load object)');
+ }
+ else
+ $this->_errors[] = Tools::displayError('You do not have permission to edit here.');
+ }
- if ($object->id)
- $this->updateAssoShop($object->id);
-
- if (!$result)
- $this->_errors[] = Tools::displayError('An error occurred while updating object.').' '.$this->table.' ('.Db::getInstance()->getMsgError().')';
- elseif ($this->postImage($object->id) AND !sizeof($this->_errors))
+ /* Object creation */
+ else
+ {
+ if ($this->tabAccess['add'] === '1')
+ {
+ $object = new $this->className();
+ $this->copyFromPost($object, $this->table);
+ if (!$object->add())
+ $this->_errors[] = Tools::displayError('An error occurred while creating object.').' '.$this->table.' ('.Db::getInstance()->getMsgError().')';
+ elseif (($_POST[$this->identifier] = $object->id /* voluntary */) AND $this->postImage($object->id) AND !sizeof($this->_errors) AND $this->_redirect)
{
$parent_id = (int)(Tools::getValue('id_parent', 1));
- // Specific back redirect
- if ($back = Tools::getValue('back'))
- Tools::redirectAdmin(urldecode($back).'&conf=4');
- // Specific scene feature
- if (Tools::getValue('stay_here') == 'on' || Tools::getValue('stay_here') == 'true' || Tools::getValue('stay_here') == '1')
- Tools::redirectAdmin(self::$currentIndex.'&'.$this->identifier.'='.$object->id.'&conf=4&updatescene&token='.$token);
+ $this->afterAdd($object);
+ $this->updateAssoShop($object->id);
// Save and stay on same form
if (Tools::isSubmit('submitAdd'.$this->table.'AndStay'))
- Tools::redirectAdmin(self::$currentIndex.'&'.$this->identifier.'='.$object->id.'&conf=4&update'.$this->table.'&token='.$token);
+ Tools::redirectAdmin(self::$currentIndex.'&'.$this->identifier.'='.$object->id.'&conf=3&update'.$this->table.'&token='.$token);
// Save and back to parent
if (Tools::isSubmit('submitAdd'.$this->table.'AndBackToParent'))
- Tools::redirectAdmin(self::$currentIndex.'&'.$this->identifier.'='.$parent_id.'&conf=4&token='.$token);
+ Tools::redirectAdmin(self::$currentIndex.'&'.$this->identifier.'='.$parent_id.'&conf=3&token='.$token);
// Default behavior (save and back)
- Tools::redirectAdmin(self::$currentIndex.($parent_id ? '&'.$this->identifier.'='.$object->id : '').'&conf=4&token='.$token);
+ Tools::redirectAdmin(self::$currentIndex.($parent_id ? '&'.$this->identifier.'='.$object->id : '').'&conf=3&token='.$token);
}
}
else
- $this->_errors[] = Tools::displayError('An error occurred while updating object.').' '.$this->table.' '.Tools::displayError('(cannot load object)');
+ $this->_errors[] = Tools::displayError('You do not have permission to add here.');
}
- else
- $this->_errors[] = Tools::displayError('You do not have permission to edit here.');
}
+ $this->_errors = array_unique($this->_errors);
+ break;
- /* Object creation */
- else
- {
- if ($this->tabAccess['add'] === '1')
- {
- $object = new $this->className();
- $this->copyFromPost($object, $this->table);
- if (!$object->add())
- $this->_errors[] = Tools::displayError('An error occurred while creating object.').' '.$this->table.' ('.Db::getInstance()->getMsgError().')';
- elseif (($_POST[$this->identifier] = $object->id /* voluntary */) AND $this->postImage($object->id) AND !sizeof($this->_errors) AND $this->_redirect)
+ /* Cancel all filters for this tab */
+ case 'reset_filters':
+ $filters = $this->context->cookie->getFamily($this->table.'Filter_');
+ foreach ($filters AS $cookieKey => $filter)
+ if (strncmp($cookieKey, $this->table.'Filter_', 7 + Tools::strlen($this->table)) == 0)
{
- $parent_id = (int)(Tools::getValue('id_parent', 1));
- $this->afterAdd($object);
- $this->updateAssoShop($object->id);
- // Save and stay on same form
- if (Tools::isSubmit('submitAdd'.$this->table.'AndStay'))
- Tools::redirectAdmin(self::$currentIndex.'&'.$this->identifier.'='.$object->id.'&conf=3&update'.$this->table.'&token='.$token);
- // Save and back to parent
- if (Tools::isSubmit('submitAdd'.$this->table.'AndBackToParent'))
- Tools::redirectAdmin(self::$currentIndex.'&'.$this->identifier.'='.$parent_id.'&conf=3&token='.$token);
- // Default behavior (save and back)
- Tools::redirectAdmin(self::$currentIndex.($parent_id ? '&'.$this->identifier.'='.$object->id : '').'&conf=3&token='.$token);
+ $key = substr($cookieKey, 7 + Tools::strlen($this->table));
+ /* Table alias could be specified using a ! eg. alias!field */
+ $tmpTab = explode('!', $key);
+ $key = (count($tmpTab) > 1 ? $tmpTab[1] : $tmpTab[0]);
+ if (array_key_exists($key, $this->fieldsDisplay))
+ unset($this->context->cookie->$cookieKey);
}
- }
- else
- $this->_errors[] = Tools::displayError('You do not have permission to add here.');
- }
- }
- $this->_errors = array_unique($this->_errors);
- }
+ if (isset($this->context->cookie->{'submitFilter'.$this->table}))
+ unset($this->context->cookie->{'submitFilter'.$this->table});
+ if (isset($this->context->cookie->{$this->table.'Orderby'}))
+ unset($this->context->cookie->{$this->table.'Orderby'});
+ if (isset($this->context->cookie->{$this->table.'Orderway'}))
+ unset($this->context->cookie->{$this->table.'Orderway'});
+ unset($_POST);
+ break;
- /* Cancel all filters for this tab */
- elseif (isset($_POST['submitReset'.$this->table]))
- {
- $filters = $this->context->cookie->getFamily($this->table.'Filter_');
- foreach ($filters AS $cookieKey => $filter)
- if (strncmp($cookieKey, $this->table.'Filter_', 7 + Tools::strlen($this->table)) == 0)
+ /* Submit options list */
+ case 'update_options':
+ $this->updateOptions($token);
+ break;
+
+ /* Manage list filtering */
+ case 'update_filters':
+ $_POST = array_merge($this->context->cookie->getFamily($this->table.'Filter_'), (isset($_POST) ? $_POST : array()));
+ foreach ($_POST AS $key => $value)
+ {
+ /* Extracting filters from $_POST on key filter_ */
+ if ($value != NULL AND !strncmp($key, $this->table.'Filter_', 7 + Tools::strlen($this->table)))
{
- $key = substr($cookieKey, 7 + Tools::strlen($this->table));
+ $key = Tools::substr($key, 7 + Tools::strlen($this->table));
/* Table alias could be specified using a ! eg. alias!field */
$tmpTab = explode('!', $key);
- $key = (count($tmpTab) > 1 ? $tmpTab[1] : $tmpTab[0]);
- if (array_key_exists($key, $this->fieldsDisplay))
- unset($this->context->cookie->$cookieKey);
- }
- if (isset($this->context->cookie->{'submitFilter'.$this->table}))
- unset($this->context->cookie->{'submitFilter'.$this->table});
- if (isset($this->context->cookie->{$this->table.'Orderby'}))
- unset($this->context->cookie->{$this->table.'Orderby'});
- if (isset($this->context->cookie->{$this->table.'Orderway'}))
- unset($this->context->cookie->{$this->table.'Orderway'});
- unset($_POST);
- }
-
- /* Submit options list */
- elseif (Tools::getValue('submitOptions'.$this->table))
- {
- $this->updateOptions($token);
- }
-
- /* Manage list filtering */
- elseif (Tools::isSubmit('submitFilter'.$this->table) OR $this->context->cookie->{'submitFilter'.$this->table} !== false)
- {
- $_POST = array_merge($this->context->cookie->getFamily($this->table.'Filter_'), (isset($_POST) ? $_POST : array()));
- foreach ($_POST AS $key => $value)
- {
- /* Extracting filters from $_POST on key filter_ */
- if ($value != NULL AND !strncmp($key, $this->table.'Filter_', 7 + Tools::strlen($this->table)))
- {
- $key = Tools::substr($key, 7 + Tools::strlen($this->table));
- /* Table alias could be specified using a ! eg. alias!field */
- $tmpTab = explode('!', $key);
- $filter = count($tmpTab) > 1 ? $tmpTab[1] : $tmpTab[0];
- if ($field = $this->filterToField($key, $filter))
- {
- $type = (array_key_exists('filter_type', $field) ? $field['filter_type'] : (array_key_exists('type', $field) ? $field['type'] : false));
- if (($type == 'date' OR $type == 'datetime') AND is_string($value))
- $value = unserialize($value);
- $key = isset($tmpTab[1]) ? $tmpTab[0].'.`'.$tmpTab[1].'`' : '`'.$tmpTab[0].'`';
- if (array_key_exists('tmpTableFilter', $field))
- $sqlFilter = & $this->_tmpTableFilter;
- elseif (array_key_exists('havingFilter', $field))
- $sqlFilter = & $this->_filterHaving;
- else
- $sqlFilter = & $this->_filter;
-
- /* Only for date filtering (from, to) */
- if (is_array($value))
+ $filter = count($tmpTab) > 1 ? $tmpTab[1] : $tmpTab[0];
+ if ($field = $this->filterToField($key, $filter))
{
- if (isset($value[0]) AND !empty($value[0]))
- {
- if (!Validate::isDate($value[0]))
- $this->_errors[] = Tools::displayError('\'from:\' date format is invalid (YYYY-MM-DD)');
- else
- $sqlFilter .= ' AND `'.bqSQL($key).'` >= \''.pSQL(Tools::dateFrom($value[0])).'\'';
- }
-
- if (isset($value[1]) AND !empty($value[1]))
- {
- if (!Validate::isDate($value[1]))
- $this->_errors[] = Tools::displayError('\'to:\' date format is invalid (YYYY-MM-DD)');
- else
- $sqlFilter .= ' AND `'.bqSQL($key).'` <= \''.pSQL(Tools::dateTo($value[1])).'\'';
- }
- }
- else
- {
- $sqlFilter .= ' AND ';
- if ($type == 'int' OR $type == 'bool')
- $sqlFilter .= (($key == $this->identifier OR $key == '`'.$this->identifier.'`' OR $key == '`active`') ? 'a.' : '').pSQL($key).' = '.(int)($value).' ';
- elseif ($type == 'decimal')
- $sqlFilter .= (($key == $this->identifier OR $key == '`'.$this->identifier.'`') ? 'a.' : '').pSQL($key).' = '.(float)($value).' ';
- elseif ($type == 'select')
- $sqlFilter .= (($key == $this->identifier OR $key == '`'.$this->identifier.'`') ? 'a.' : '').pSQL($key).' = \''.pSQL($value).'\' ';
+ $type = (array_key_exists('filter_type', $field) ? $field['filter_type'] : (array_key_exists('type', $field) ? $field['type'] : false));
+ if (($type == 'date' OR $type == 'datetime') AND is_string($value))
+ $value = unserialize($value);
+ $key = isset($tmpTab[1]) ? $tmpTab[0].'.`'.$tmpTab[1].'`' : '`'.$tmpTab[0].'`';
+ if (array_key_exists('tmpTableFilter', $field))
+ $sqlFilter = & $this->_tmpTableFilter;
+ elseif (array_key_exists('havingFilter', $field))
+ $sqlFilter = & $this->_filterHaving;
else
- $sqlFilter .= (($key == $this->identifier OR $key == '`'.$this->identifier.'`') ? 'a.' : '').pSQL($key).' LIKE \'%'.pSQL($value).'%\' ';
+ $sqlFilter = & $this->_filter;
+
+ /* Only for date filtering (from, to) */
+ if (is_array($value))
+ {
+ if (isset($value[0]) AND !empty($value[0]))
+ {
+ if (!Validate::isDate($value[0]))
+ $this->_errors[] = Tools::displayError('\'from:\' date format is invalid (YYYY-MM-DD)');
+ else
+ $sqlFilter .= ' AND `'.bqSQL($key).'` >= \''.pSQL(Tools::dateFrom($value[0])).'\'';
+ }
+
+ if (isset($value[1]) AND !empty($value[1]))
+ {
+ if (!Validate::isDate($value[1]))
+ $this->_errors[] = Tools::displayError('\'to:\' date format is invalid (YYYY-MM-DD)');
+ else
+ $sqlFilter .= ' AND `'.bqSQL($key).'` <= \''.pSQL(Tools::dateTo($value[1])).'\'';
+ }
+ }
+ else
+ {
+ $sqlFilter .= ' AND ';
+ if ($type == 'int' OR $type == 'bool')
+ $sqlFilter .= (($key == $this->identifier OR $key == '`'.$this->identifier.'`' OR $key == '`active`') ? 'a.' : '').pSQL($key).' = '.(int)($value).' ';
+ elseif ($type == 'decimal')
+ $sqlFilter .= (($key == $this->identifier OR $key == '`'.$this->identifier.'`') ? 'a.' : '').pSQL($key).' = '.(float)($value).' ';
+ elseif ($type == 'select')
+ $sqlFilter .= (($key == $this->identifier OR $key == '`'.$this->identifier.'`') ? 'a.' : '').pSQL($key).' = \''.pSQL($value).'\' ';
+ else
+ $sqlFilter .= (($key == $this->identifier OR $key == '`'.$this->identifier.'`') ? 'a.' : '').pSQL($key).' LIKE \'%'.pSQL($value).'%\' ';
+ }
}
}
}
- }
- }
- elseif(Tools::isSubmit('submitFields') AND $this->requiredDatabase AND $this->tabAccess['add'] === '1' AND $this->tabAccess['delete'] === '1')
- {
- if (!is_array($fields = Tools::getValue('fieldsBox')))
- $fields = array();
+ break;
- $object = new $this->className();
- if (!$object->addFieldsRequiredDatabase($fields))
- $this->_errors[] = Tools::displayError('Error in updating required fields');
- else
- Tools::redirectAdmin(self::$currentIndex.'&conf=4&token='.$token);
+ case 'update_fields':
+ if (!is_array($fields = Tools::getValue('fieldsBox')))
+ $fields = array();
+
+ $object = new $this->className();
+ if (!$object->addFieldsRequiredDatabase($fields))
+ $this->_errors[] = Tools::displayError('Error in updating required fields');
+ else
+ Tools::redirectAdmin(self::$currentIndex.'&conf=4&token='.$token);
+ break;
}
}
}
@@ -590,7 +568,7 @@ class AdminControllerCore extends Controller
else
$this->_errors[] = Tools::displayError('Object cannot be loaded (identifier missing or invalid)');
- $this->displayErrors();
+ $this->content = $this->displayErrors();
}
/**
@@ -761,7 +739,7 @@ class AdminControllerCore extends Controller
$sub_tabs = Tab::getTabs($this->context->language->id, $tab['id_tab']);
foreach ($sub_tabs AS $index2 => $sub_tab)
{
- // class_name is the name of the class controller
+ // class_name is the name of the class controller
if (Tab::checkTabRights($sub_tab) === true)
$sub_tabs[$index2]['href'] = $this->context->link->getAdminLink($sub_tab['class_name']);
else
@@ -1028,7 +1006,60 @@ class AdminControllerCore extends Controller
$this->context->cookie->$key = $value;
// Code from postProcess
- if (isset($_GET['update'.$this->table]) && isset($_GET['id_'.$this->table]))
+ /* Delete object image */
+ if (isset($_GET['deleteImage']))
+ {
+ $this->action = 'delete_image';
+ if (Validate::isLoadedObject($object = $this->loadObject()))
+ if (($object->deleteImage()))
+ Tools::redirectAdmin(self::$currentIndex.'&add'.$this->table.'&'.$this->identifier.'='.Tools::getValue($this->identifier).'&conf=7&token='.$token);
+ $this->_errors[] = Tools::displayError('An error occurred during image deletion (cannot load object).');
+ }
+ /* Delete object */
+ elseif (isset($_GET['delete'.$this->table]))
+ {
+ if ($this->tabAccess['delete'] === '1')
+ $this->action = 'delete';
+ else
+ $this->_errors[] = Tools::displayError('You do not have permission to delete here.');
+ }
+ /* Change object statuts (active, inactive) */
+ elseif ((isset($_GET['status'.$this->table]) OR isset($_GET['status'])) AND Tools::getValue($this->identifier))
+ {
+ if ($this->tabAccess['edit'] === '1')
+ $this->action = 'status';
+ else
+ $this->_errors[] = Tools::displayError('You do not have permission to edit here.');
+ }
+ /* Move an object */
+ elseif (isset($_GET['position']))
+ {
+ if ($this->tabAccess['edit'] == '1')
+ $this->action = 'position';
+ else
+ $this->_errors[] = Tools::displayError('You do not have permission to edit here.');
+ }
+ elseif (Tools::getValue('submitDel'.$this->table))
+ {
+ if ($this->tabAccess['delete'] === '1')
+ $this->action = 'multiple_delete';
+ else
+ $this->_errors[] = Tools::displayError('You do not have permission to delete here.');
+ }
+ elseif (Tools::getValue('submitAdd'.$this->table))
+ $this->action = 'save';
+ /* Cancel all filters for this tab */
+ elseif (isset($_POST['submitReset'.$this->table]))
+ $this->action = 'reset_filters';
+ /* Submit options list */
+ elseif (Tools::getValue('submitOptions'.$this->table))
+ $this->action = 'update_options';
+ /* Manage list filtering */
+ elseif (Tools::isSubmit('submitFilter'.$this->table) OR $this->context->cookie->{'submitFilter'.$this->table} !== false)
+ $this->action = 'update_filters';
+ elseif(Tools::isSubmit('submitFields') AND $this->requiredDatabase AND $this->tabAccess['add'] === '1' AND $this->tabAccess['delete'] === '1')
+ $this->action = 'update_fields';
+ elseif (isset($_GET['update'.$this->table]) && isset($_GET['id_'.$this->table]))
{
if ($this->tabAccess['edit'] === '1' OR ($this->table == 'employee' AND $this->context->employee->id == Tools::getValue('id_employee')))
{