* @copyright PrestaShop
* @license http://www.opensource.org/licenses/osl-3.0.php Open-source licence 3.0
* @version 1.3
*
*/
include_once(PS_ADMIN_DIR.'/../classes/AdminTab.php');
class AdminModulesPositions extends AdminTab{
private $displayKey = 0;
public function postProcess(){
global $currentIndex;
// Getting key value for display
if (Tools::getValue('show_modules') AND strval(Tools::getValue('show_modules')) != 'all'){
$this->displayKey = intval(Tools::getValue('show_modules'));
}
// Change position in hook
if (array_key_exists('changePosition', $_GET)){
if ($this->tabAccess['edit'] === '1'){
$id_module = intval(Tools::getValue('id_module'));
$id_hook = intval(Tools::getValue('id_hook'));
$module = Module::getInstanceById($id_module);
if (Validate::isLoadedObject($module)){
$module->updatePosition($id_hook, intval(Tools::getValue('direction')));
Tools::redirectAdmin($currentIndex.($this->displayKey ? '&show_modules='.$this->displayKey : '').'&token='.$this->token);
}else{
$this->_errors[] = Tools::displayError('module cannot be loaded');
}
}else{
$this->_errors[] = Tools::displayError('You do not have permission to edit anything here.');
}
}elseif (Tools::isSubmit('submitAddToHook')){// Add new module in hook
if ($this->tabAccess['add'] === '1'){
// Getting vars...
$id_module = intval(Tools::getValue('id_module'));
$module = Module::getInstanceById($id_module);
$id_hook = intval(Tools::getValue('id_hook'));
$hook = new Hook($id_hook);
$excepts = explode(',', str_replace(' ', '', Tools::getValue('exceptions')));
// Checking vars...
foreach ($excepts AS $except)
if (!Validate::isFileName($except))
$this->_errors[] = Tools::displayError('no valid value for field exceptions');
if (!$id_module OR !Validate::isLoadedObject($module))
$this->_errors[] = Tools::displayError('module cannot be loaded');
elseif (!$id_hook OR !Validate::isLoadedObject($hook))
$this->_errors[] = Tools::displayError('hook cannot be loaded');
elseif (Hook::getModuleFromHook($id_hook, $id_module))
$this->_errors[] = Tools::displayError('this module is already transplanted to this hook');
// Adding vars...
elseif (!$module->registerHook($hook->name))
$this->_errors[] = Tools::displayError('an error occurred while transplanting module to hook');
elseif (!$module->registerExceptions($id_hook, $excepts))
$this->_errors[] = Tools::displayError('an error occurred while transplanting module to hook');
else
Tools::redirectAdmin($currentIndex.'&conf=16'.($this->displayKey ? '&show_modules='.$this->displayKey : '').'&token='.$this->token);
}else{
$this->_errors[] = Tools::displayError('You do not have permission to add anything here.');
}
}elseif (Tools::isSubmit('submitEditGraft')){// Edit module from hook
if ($this->tabAccess['add'] === '1'){
// Getting vars...
$id_module = intval(Tools::getValue('id_module'));
$module = Module::getInstanceById($id_module);
$id_hook = intval(Tools::getValue('id_hook'));
$id_hook_old = intval(Tools::getValue('id_hook_old'));
$hook = new Hook($id_hook);
$excepts = explode(',', str_replace(' ', '', Tools::getValue('exceptions')));
// Checking vars...
foreach ($excepts AS $except)
if (!Validate::isFileName($except))
$this->_errors[] = Tools::displayError('no valid value for field exceptions');
if (!$id_module OR !Validate::isLoadedObject($module))
$this->_errors[] = Tools::displayError('module cannot be loaded');
elseif (!$id_hook OR !Validate::isLoadedObject($hook))
$this->_errors[] = Tools::displayError('hook cannot be loaded');
if (!$module->editHook($hook->name, $id_hook_old, $id_hook)){
$this->_errors[] = Tools::displayError('an error occurred while transplanting module to hook');
}
// Adding vars...
if (!$module->editExceptions($id_hook, $excepts)){
$this->_errors[] = Tools::displayError('an error occurred while transplanting module to hook');
}else{
Tools::redirectAdmin($currentIndex.'&conf=16'.($this->displayKey ? '&show_modules='.$this->displayKey : '').'&token='.$this->token);
}
}else{
$this->_errors[] = Tools::displayError('You do not have permission to add anything here.');
}
}
// Delete module from hook
elseif (array_key_exists('deleteGraft', $_GET))
{
if ($this->tabAccess['delete'] === '1')
{
$id_module = intval(Tools::getValue('id_module'));
$module = Module::getInstanceById($id_module);
$id_hook = intval(Tools::getValue('id_hook'));
$hook = new Hook($id_hook);
if (!Validate::isLoadedObject($module))
$this->_errors[] = Tools::displayError('module cannot be loaded');
elseif (!$id_hook OR !Validate::isLoadedObject($hook))
$this->_errors[] = Tools::displayError('hook cannot be loaded');
else
{
if (!$module->unregisterHook($id_hook) OR !$module->unregisterExceptions($id_hook))
$this->_errors[] = Tools::displayError('an error occurred while deleting module from hook');
else
Tools::redirectAdmin($currentIndex.'&conf=17'.($this->displayKey ? '&show_modules='.$this->displayKey : '').'&token='.$this->token);
}
}
else
$this->_errors[] = Tools::displayError('You do not have permission to delete here.');
}
}
public function display()
{
if (array_key_exists('addToHook', $_GET) OR array_key_exists('editGraft', $_GET) OR (Tools::isSubmit('submitAddToHook') AND $this->_errors))
$this->displayForm();
else
$this->displayList();
}
public function displayList()
{
global $currentIndex;
echo '
';
echo ' '.$this->l('Transplant a module').'
';
// Print select list
echo '