Quick Search:

View

Revision:

Diff

Diff from 439 to:

Annotations

Annotate by Age | Author | Mixed | None
/fisheye/browse/osCommerce/branches/hpdl/oscommerce/includes/classes/order_total.php

Annotated File View

hpdl
1
1 <?php
2 /*
hpdl
153
3   $Id: order_total.php 439 2006-02-19 16:33:18Z hpdl $
hpdl
1
4
5   osCommerce, Open Source E-Commerce Solutions
6   http://www.oscommerce.com
7
hpdl
404
8   Copyright (c) 2006 osCommerce
hpdl
1
9
10   Released under the GNU General Public License
11 */
12
hpdl
428
13   class osC_OrderTotal {
hpdl
434
14     var $_modules = array(),
hpdl
439
15         $_data = array(),
hpdl
434
16         $_group = 'order_total';
hpdl
1
17
18 // class constructor
hpdl
428
19     function osC_OrderTotal() {
20       global $osC_Database, $osC_Language;
hpdl
377
21
hpdl
428
22       $Qmodules = $osC_Database->query('select code from :table_templates_boxes where modules_group = "order_total"');
23       $Qmodules->bindTable(':table_templates_boxes', TABLE_TEMPLATES_BOXES);
24       $Qmodules->setCache('modules-order_total');
25       $Qmodules->execute();
hpdl
1
26
hpdl
428
27       while ($Qmodules->next()) {
hpdl
434
28         $this->_modules[] = $Qmodules->value('code');
hpdl
428
29       }
hpdl
404
30
hpdl
428
31       $Qmodules->freeResult();
hpdl
1
32
hpdl
428
33       $osC_Language->load('modules-order_total');
34
hpdl
434
35       foreach ($this->_modules as $module) {
hpdl
428
36         $module_class = 'osC_OrderTotal_' . $module;
37
hpdl
439
38         if (class_exists($module_class) === false) {
39           include('includes/modules/order_total/' . $module . '.' . substr(basename(__FILE__), (strrpos(basename(__FILE__), '.')+1)));
40         }
41
hpdl
428
42         $GLOBALS[$module_class] = new $module_class();
hpdl
1
43       }
hpdl
437
44
45       usort($this->_modules, array('osC_OrderTotal', '_usortModules'));
hpdl
1
46     }
47
hpdl
432
48 // class methods
49     function getCode() {
50       return $this->_code;
51     }
52
53     function getTitle() {
54       return $this->_title;
55     }
56
57     function getDescription() {
58       return $this->_description;
59     }
60
61     function getStatus() {
62       return $this->_status;
63     }
64
65     function getSortOrder() {
66       return $this->_sort_order;
67     }
68
hpdl
439
69     function &getResult() {
hpdl
435
70       global $osC_ShoppingCart;
hpdl
1
71
hpdl
439
72       $this->_data = array();
hpdl
428
73
hpdl
439
74       foreach ($this->_modules as $module) {
75         $module = 'osC_OrderTotal_' . $module;
hpdl
428
76
hpdl
439
77         if ($GLOBALS[$module]->getStatus() === true) {
78           $GLOBALS[$module]->process();
hpdl
435
79
hpdl
439
80           foreach ($GLOBALS[$module]->output as $output) {
81             if (tep_not_null($output['title']) && tep_not_null($output['text'])) {
82               $this->_data[] = array('code' => $GLOBALS[$module]->getCode(),
83                                      'title' => $output['title'],
84                                      'text' => $output['text'],
85                                      'value' => $output['value'],
86                                      'sort_order' => $GLOBALS[$module]->getSortOrder());
hpdl
1
87             }
88           }
89         }
90       }
91
hpdl
439
92       return $this->_data;
hpdl
1
93     }
94
hpdl
431
95     function hasActive() {
96       static $has_active;
97
98       if (isset($has_active) === false) {
99         $has_active = false;
100
hpdl
434
101         foreach ($this->_modules as $module) {
hpdl
432
102           if ($GLOBALS['osC_OrderTotal_' . $module]->getStatus() === true) {
hpdl
431
103             $has_active = true;
104             break;
105           }
106         }
107       }
108
109       return $has_active;
110     }
111
hpdl
428
112     function hasKeys() {
113       static $has_keys;
114
115       if (isset($has_keys) === false) {
116         $has_keys = (sizeof($this->getKeys()) > 0) ? true : false;
117       }
118
119       return $has_keys;
120     }
121
122     function install() {
123       global $osC_Database, $osC_Language;
124
125       $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)');
126       $Qinstall->bindTable(':table_templates_boxes', TABLE_TEMPLATES_BOXES);
127       $Qinstall->bindValue(':title', $this->_title);
128       $Qinstall->bindValue(':code', $this->_code);
129       $Qinstall->bindValue(':author_name', $this->_author_name);
130       $Qinstall->bindValue(':author_www', $this->_author_www);
131       $Qinstall->bindValue(':modules_group', $this->_group);
132       $Qinstall->execute();
133
134       foreach ($osC_Language->getAll() as $key => $value) {
135         if (file_exists(dirname(__FILE__) . '/../languages/' . $key . '/modules/' . $this->_group . '/' . $this->_code . '.xml')) {
136           foreach ($osC_Language->extractDefinitions($key . '/modules/' . $this->_group . '/' . $this->_code . '.xml') as $def) {
137             $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');
138             $Qcheck->bindTable(':table_languages_definitions', TABLE_LANGUAGES_DEFINITIONS);
139             $Qcheck->bindValue(':definition_key', $def['key']);
140             $Qcheck->bindValue(':content_group', $def['group']);
141             $Qcheck->bindInt(':languages_id', $value['id']);
142             $Qcheck->execute();
143
144             if ($Qcheck->numberOfRows() === 1) {
145               $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');
146             } else {
147               $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)');
148             }
149             $Qdef->bindTable(':table_languages_definitions', TABLE_LANGUAGES_DEFINITIONS);
150             $Qdef->bindInt(':languages_id', $value['id']);
151             $Qdef->bindValue(':content_group', $def['group']);
152             $Qdef->bindValue(':definition_key', $def['key']);
153             $Qdef->bindValue(':definition_value', $def['value']);
154             $Qdef->execute();
155           }
156         }
157       }
158
159       osC_Cache::clear('languages');
160     }
161
162     function remove() {
163       global $osC_Database, $osC_Language;
164
165       $Qdel = $osC_Database->query('delete from :table_templates_boxes where code = :code and modules_group = :modules_group');
166       $Qdel->bindTable(':table_templates_boxes', TABLE_TEMPLATES_BOXES);
167       $Qdel->bindValue(':code', $this->_code);
168       $Qdel->bindValue(':modules_group', $this->_group);
169       $Qdel->execute();
170
171       if ($this->hasKeys()) {
172         $Qdel = $osC_Database->query('delete from :table_configuration where configuration_key in (":configuration_key")');
173         $Qdel->bindTable(':table_configuration', TABLE_CONFIGURATION);
174         $Qdel->bindRaw(':configuration_key', implode('", "', $this->getKeys()));
175         $Qdel->execute();
176       }
177
178       if (file_exists(dirname(__FILE__) . '/../languages/' . $osC_Language->getCode() . '/modules/' . $this->_group . '/' . $this->_code . '.xml')) {
179         foreach ($osC_Language->extractDefinitions($osC_Language->getCode() . '/modules/' . $this->_group . '/' . $this->_code . '.xml') as $def) {
180           $Qdel = $osC_Database->query('delete from :table_languages_definitions where definition_key = :definition_key and content_group = :content_group');
181           $Qdel->bindTable(':table_languages_definitions', TABLE_LANGUAGES_DEFINITIONS);
182           $Qdel->bindValue(':definition_key', $def['key']);
183           $Qdel->bindValue(':content_group', $def['group']);
184           $Qdel->execute();
185         }
186
187         osC_Cache::clear('languages');
188       }
189     }
190
191     function _usortModules($a, $b) {
hpdl
432
192       if ($GLOBALS['osC_OrderTotal_' . $a]->getSortOrder() == $GLOBALS['osC_OrderTotal_' . $b]->getSortOrder()) {
193         return strnatcasecmp($GLOBALS['osC_OrderTotal_' . $a]->getTitle(), $GLOBALS['osC_OrderTotal_' . $a]->getTitle());
hpdl
428
194       }
195
hpdl
432
196       return ($GLOBALS['osC_OrderTotal_' . $a]->getSortOrder() < $GLOBALS['osC_OrderTotal_' . $b]->getSortOrder()) ? -1 : 1;
hpdl
428
197     }
hpdl
1
198   }
hpdl
428
199 ?>