* @copyright 2007-2011 PrestaShop SA * @version Release: $Revision: 7307 $ * @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() { $shopID = Context::getContext()->shop->getID(true); /* 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.' AND `id_shop`='.$shopID); 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.' AND `id_shop`='.$shopID); 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.' AND `id_shop`='.$shopID); 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) { Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.'module_'.$type.' WHERE id_shop = '.Context::getContext()->shop->getID(true)); 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.', '.Context::getContext()->shop->getID(true).', '.(int)$selected.')'; if (sizeof($values)) Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'module_'.$type.' (`id_module`, `id_shop`, `id_'.$type.'`) VALUES '.implode(',', $values)); Tools::redirectAdmin(self::$currentIndex.'&conf=4'.'&token='.$this->token); } public function display() { $this->context = Context::getContext(); $displayRestrictions = false; $currencies = Currency::getCurrencies(); $countries = Country::getCountries($this->context->language->id); $groups = Group::getGroups($this->context->language->id); $tokenModules = Tools::getAdminToken('AdminModules'.(int)(Tab::getIdFromClassName('AdminModules')).(int)$this->context->employee->id); echo '