Files
interblue.pl/modules/pshowimporter/system/classes/PShowHookController.php
2024-10-25 14:16:28 +02:00

161 lines
4.6 KiB
PHP

<?php
/**
* File from http://PrestaShow.pl
*
* DISCLAIMER
* Do not edit or add to this file if you wish to upgrade this module to newer
* versions in the future.
*
* @authors PrestaShow.pl <kontakt@prestashow.pl>
* @copyright 2015 PrestaShow.pl
* @license http://PrestaShow.pl/license
*/
class PShowHookController extends PShowAdminController
{
public $default_action = 'index';
public $filepath = null;
public function __construct()
{
$reflection = new ReflectionClass($this);
$this->filepath = $reflection->getFileName();
require_once dirname($this->filepath) . "/../../config.php";
parent::__construct();
$this->id_shop = (int) $this->context->shop->id;
$this->id_lang = (int) $this->context->cookie->id_lang;
$this->controller_displayName = $this->l('Hooks');
}
public function indexAction()
{
$this->action_displayName = $this->l('List');
$hooks = PShowHook::getHooks();
$hooksCount = PShowHook::countHooks();
$this->context->smarty->assign('hooks', $hooks);
$this->context->smarty->assign('hooksCount', $hooksCount);
}
public function removeAction()
{
$this->action_displayName = $this->l('List');
$id_hook = Tools::getValue('id_hook');
if (!$id_hook) {
$this->action = 'index';
$this->indexAction();
return;
}
$hook = new PShowHook($id_hook);
if (!is_object($hook)) {
$this->action = 'index';
$this->indexAction();
return;
}
PShowHook::unregisterHook('skeleton', $hook->hook_name, $this->id_shop);
$hook->delete();
$this->alerts[] = array('success', $this->l('Hook removed'));
$this->action = 'index';
$this->indexAction();
return;
}
public function editAction()
{
$this->action_displayName = $this->l('Edit hook');
$id_hook = Tools::getValue('id_hook');
if (!$id_hook) {
$this->action = 'index';
$this->indexAction();
return;
}
$h = new PShowHook($id_hook);
if (!is_object($h)) {
$this->action = 'index';
$this->indexAction();
return;
}
if (Tools::isSubmit('submit')) {
$hook_name = pSQL(Tools::getValue('hook_name'));
if (!empty($hook_name)) {
try {
PShowHook::unregisterHook('skeleton', $h->hook_name, $this->id_shop);
$presta_id_hook = PShowHook::registerHook('skeleton', $hook_name, $this->id_shop);
$h->hook_name = $hook_name;
$h->presta_id_hook = $presta_id_hook;
$h->update();
$this->alerts[] = array('success', $this->l('Hook updated'));
$this->action = 'index';
$this->indexAction();
return;
} catch (PrestaShopException $e) {
$this->alerts[] = array('warning', $this->l('Hook update error, try again'));
}
} else {
$this->alerts[] = array('warning', $this->l('Hook update error, try again'));
}
}
$hooks = Hook::getHooks();
$this->context->smarty->assign('h', $h);
$this->context->smarty->assign('hooks', $hooks);
}
public function addAction()
{
$this->action_displayName = $this->l('Add hook');
$hooks = PShowHook::getAvailableHooks('skeleton', $this->id_shop, false);
if (Tools::isSubmit('submit')) {
$hook_name = pSQL(Tools::getValue('hook_name'));
if (!empty($hook_name)) {
$hook = new PShowHook();
$hook->hook_name = $hook_name;
try {
$presta_id_hook = PShowHook::registerHook('skeleton', $hook_name, $this->id_shop);
$hook->presta_id_hook = (int) $presta_id_hook;
$hook->add();
$this->alerts[] = array('success', $this->l('Hook added'));
$this->action = 'index';
$this->indexAction();
return;
} catch (PrestaShopException $e) {
$this->alerts[] = array('warning', $this->l('Hook add error, try again'));
}
} else {
$this->alerts[] = array('warning', $this->l('Hook add error, try again'));
}
}
$this->context->smarty->assign('hooks', $hooks);
}
}