* @copyright 2007-2011 PrestaShop SA * @version Release: $Revision: 7739 $ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ class AdminPayment extends AdminTab { public $paymentModules = array(); public function __construct() { /* Get all modules then select only payment ones*/ $modules = Module::getModulesOnDisk(); foreach ($modules AS $module) if ($module->tab == 'payments_gateways') { if ($module->id) { if (!get_class($module) == 'SimpleXMLElement') $module->country = array(); $countries = DB::getInstance()->ExecuteS('SELECT id_country FROM '._DB_PREFIX_.'module_country WHERE id_module = '.(int)($module->id)); foreach ($countries as $country) $module->country[] = $country['id_country']; if (!get_class($module) == 'SimpleXMLElement') $module->currency = array(); $currencies = DB::getInstance()->ExecuteS('SELECT id_currency FROM '._DB_PREFIX_.'module_currency WHERE id_module = '.(int)($module->id)); foreach ($currencies as $currency) $module->currency[] = $currency['id_currency']; if (!get_class($module) == 'SimpleXMLElement') $module->group = array(); $groups = DB::getInstance()->ExecuteS('SELECT id_group FROM '._DB_PREFIX_.'module_group WHERE id_module = '.(int)($module->id)); foreach ($groups as $group) $module->group[] = $group['id_group']; } else { $module->country = NULL; $module->currency = NULL; $module->group = NULL; } $this->paymentModules[] = $module; } parent::__construct(); } public function postProcess() { if (Tools::isSubmit('submitModulecountry')) $this->saveRestrictions('country'); elseif (Tools::isSubmit('submitModulecurrency')) $this->saveRestrictions('currency'); elseif (Tools::isSubmit('submitModulegroup')) $this->saveRestrictions('group'); } private function saveRestrictions($type) { global $currentIndex; Db::getInstance()->Execute('TRUNCATE '._DB_PREFIX_.'module_'.$type.''); foreach ($this->paymentModules as $module) if ($module->active AND isset($_POST[$module->name.'_'.$type.''])) foreach ($_POST[$module->name.'_'.$type.''] as $selected) $values[] = '('.(int)($module->id).', '.(int)($selected).')'; if (sizeof($values)) Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'module_'.$type.' (`id_module`, `id_'.$type.'`) VALUES '.implode(',', $values)); Tools::redirectAdmin($currentIndex.'&conf=4'.'&token='.$this->token); } public function display() { global $cookie; $displayRestrictions = false; $currencies = Currency::getCurrencies(); $countries = Country::getCountries((int)($cookie->id_lang)); $groups = Group::getGroups((int)($cookie->id_lang)); $tokenModules = Tools::getAdminToken('AdminModules'.(int)(Tab::getIdFromClassName('AdminModules')).(int)($cookie->id_employee)); echo '