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) { $module_class = 'osC_OrderTotal_' . $module; if (class_exists($module_class) === false) { include('includes/modules/order_total/' . $module . '.' . substr(basename(__FILE__), (strrpos(basename(__FILE__), '.')+1))); } $GLOBALS[$module_class] = new $module_class(); } usort($this->_modules, array('osC_OrderTotal', '_usortModules')); } // class methods function getCode() { return $this->_code; } function getTitle() { return $this->_title; } function getDescription() { return $this->_description; } function isEnabled() { return $this->_status; } function getSortOrder() { return $this->_sort_order; } function &getResult() { global $osC_ShoppingCart; $this->_data = array(); foreach ($this->_modules as $module) { $module = 'osC_OrderTotal_' . $module; if ($GLOBALS[$module]->isEnabled() === true) { $GLOBALS[$module]->process(); foreach ($GLOBALS[$module]->output as $output) { if (tep_not_null($output['title']) && tep_not_null($output['text'])) { $this->_data[] = array('code' => $GLOBALS[$module]->getCode(), 'title' => $output['title'], 'text' => $output['text'], 'value' => $output['value'], 'sort_order' => $GLOBALS[$module]->getSortOrder()); } } } } return $this->_data; } function hasActive() { static $has_active; if (isset($has_active) === false) { $has_active = false; foreach ($this->_modules as $module) { if ($GLOBALS['osC_OrderTotal_' . $module]->isEnabled() === true) { $has_active = true; break; } } } return $has_active; } function _usortModules($a, $b) { if ($GLOBALS['osC_OrderTotal_' . $a]->getSortOrder() == $GLOBALS['osC_OrderTotal_' . $b]->getSortOrder()) { return strnatcasecmp($GLOBALS['osC_OrderTotal_' . $a]->getTitle(), $GLOBALS['osC_OrderTotal_' . $a]->getTitle()); } return ($GLOBALS['osC_OrderTotal_' . $a]->getSortOrder() < $GLOBALS['osC_OrderTotal_' . $b]->getSortOrder()) ? -1 : 1; } } ?>