query('select code from :table_templates_boxes where modules_group = "order_total"'); $Qmodules->bindTable(':table_templates_boxes', TABLE_TEMPLATES_BOXES); $Qmodules->setCache('modules-order_total'); $Qmodules->execute(); while ($Qmodules->next()) { $this->modules[] = $Qmodules->value('code'); } $Qmodules->freeResult(); $osC_Language->load('modules-order_total'); foreach ($this->modules as $module) { include('includes/modules/order_total/' . $module . '.' . substr(basename(__FILE__), (strrpos(basename(__FILE__), '.')+1))); $module_class = 'osC_OrderTotal_' . $module; $GLOBALS[$module_class] = new $module_class(); } } function process() { $order_total_array = array(); foreach ($this->modules as $module) { $module = 'osC_OrderTotal_' . $module; if ($GLOBALS[$module]->enabled) { $GLOBALS[$module]->process(); foreach ($GLOBALS[$module]->output as $output) { if (tep_not_null($output['title']) && tep_not_null($output['text'])) { $order_total_array[] = array('code' => $GLOBALS[$module]->code, 'title' => $output['title'], 'text' => $output['text'], 'value' => $output['value'], 'sort_order' => $GLOBALS[$module]->sort_order); } } } } return $order_total_array; } function output() { $output_string = ''; foreach ($this->modules as $module) { $module = 'osC_OrderTotal_' . $module; if ($GLOBALS[$module]->enabled) { foreach ($GLOBALS[$module]->output as $output) { $output_string .= ' ' . "\n" . ' ' . $output['title'] . '' . "\n" . ' ' . $output['text'] . '' . "\n" . ' '; } } } return $output_string; } function hasActive() { static $has_active; if (isset($has_active) === false) { $has_active = false; foreach ($this->modules as $module) { if ($GLOBALS['osC_OrderTotal_' . $module]->enabled) { $has_active = true; break; } } } return $has_active; } function hasKeys() { static $has_keys; if (isset($has_keys) === false) { $has_keys = (sizeof($this->getKeys()) > 0) ? true : false; } return $has_keys; } function install() { global $osC_Database, $osC_Language; $Qinstall = $osC_Database->query('insert into :table_templates_boxes (title, code, author_name, author_www, modules_group) values (:title, :code, :author_name, :author_www, :modules_group)'); $Qinstall->bindTable(':table_templates_boxes', TABLE_TEMPLATES_BOXES); $Qinstall->bindValue(':title', $this->_title); $Qinstall->bindValue(':code', $this->_code); $Qinstall->bindValue(':author_name', $this->_author_name); $Qinstall->bindValue(':author_www', $this->_author_www); $Qinstall->bindValue(':modules_group', $this->_group); $Qinstall->execute(); foreach ($osC_Language->getAll() as $key => $value) { if (file_exists(dirname(__FILE__) . '/../languages/' . $key . '/modules/' . $this->_group . '/' . $this->_code . '.xml')) { foreach ($osC_Language->extractDefinitions($key . '/modules/' . $this->_group . '/' . $this->_code . '.xml') as $def) { $Qcheck = $osC_Database->query('select id from :table_languages_definitions where definition_key = :definition_key and content_group = :content_group and languages_id = :languages_id limit 1'); $Qcheck->bindTable(':table_languages_definitions', TABLE_LANGUAGES_DEFINITIONS); $Qcheck->bindValue(':definition_key', $def['key']); $Qcheck->bindValue(':content_group', $def['group']); $Qcheck->bindInt(':languages_id', $value['id']); $Qcheck->execute(); if ($Qcheck->numberOfRows() === 1) { $Qdef = $osC_Database->query('update :table_languages_definitions set definition_value = :definition_value where definition_key = :definition_key and content_group = :content_group and languages_id = :languages_id'); } else { $Qdef = $osC_Database->query('insert into :table_languages_definitions (languages_id, content_group, definition_key, definition_value) values (:languages_id, :content_group, :definition_key, :definition_value)'); } $Qdef->bindTable(':table_languages_definitions', TABLE_LANGUAGES_DEFINITIONS); $Qdef->bindInt(':languages_id', $value['id']); $Qdef->bindValue(':content_group', $def['group']); $Qdef->bindValue(':definition_key', $def['key']); $Qdef->bindValue(':definition_value', $def['value']); $Qdef->execute(); } } } osC_Cache::clear('languages'); } function remove() { global $osC_Database, $osC_Language; $Qdel = $osC_Database->query('delete from :table_templates_boxes where code = :code and modules_group = :modules_group'); $Qdel->bindTable(':table_templates_boxes', TABLE_TEMPLATES_BOXES); $Qdel->bindValue(':code', $this->_code); $Qdel->bindValue(':modules_group', $this->_group); $Qdel->execute(); if ($this->hasKeys()) { $Qdel = $osC_Database->query('delete from :table_configuration where configuration_key in (":configuration_key")'); $Qdel->bindTable(':table_configuration', TABLE_CONFIGURATION); $Qdel->bindRaw(':configuration_key', implode('", "', $this->getKeys())); $Qdel->execute(); } if (file_exists(dirname(__FILE__) . '/../languages/' . $osC_Language->getCode() . '/modules/' . $this->_group . '/' . $this->_code . '.xml')) { foreach ($osC_Language->extractDefinitions($osC_Language->getCode() . '/modules/' . $this->_group . '/' . $this->_code . '.xml') as $def) { $Qdel = $osC_Database->query('delete from :table_languages_definitions where definition_key = :definition_key and content_group = :content_group'); $Qdel->bindTable(':table_languages_definitions', TABLE_LANGUAGES_DEFINITIONS); $Qdel->bindValue(':definition_key', $def['key']); $Qdel->bindValue(':content_group', $def['group']); $Qdel->execute(); } osC_Cache::clear('languages'); } } function _usortModules($a, $b) { if ($GLOBALS['osC_Shipping_' . $a]->sort_order == $GLOBALS['osC_Shipping_' . $b]->sort_order) { return strnatcasecmp($GLOBALS['osC_Shipping_' . $a]->title, $GLOBALS['osC_Shipping_' . $a]->title); } return ($GLOBALS['osC_Shipping_' . $a]->sort_order < $GLOBALS['osC_Shipping_' . $b]->sort_order) ? -1 : 1; } } ?>