Conditions | 78 |
Paths | > 20000 |
Total Lines | 305 |
Code Lines | 176 |
Lines | 46 |
Ratio | 15.08 % |
Changes | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | <?php |
||
116 | function moduleUpdate() |
||
117 | { |
||
118 | $oDB = &DB::getInstance(); |
||
119 | // 2008. 10. 27 module_part_config Add a multi-index to the table and check all information of module_configg |
||
120 | if(!$oDB->isIndexExists("module_part_config","idx_module_part_config")) |
||
121 | { |
||
122 | $oModuleModel = getModel('module'); |
||
123 | $oModuleController = getController('module'); |
||
124 | $modules = $oModuleModel->getModuleList(); |
||
125 | foreach($modules as $key => $module_info) |
||
126 | { |
||
127 | $module = $module_info->module; |
||
128 | if(!in_array($module, array('point','trackback','layout','rss','file','comment','editor'))) continue; |
||
129 | $config = $oModuleModel->getModuleConfig($module); |
||
130 | |||
131 | $module_config = null; |
||
132 | switch($module) |
||
133 | { |
||
134 | case 'point' : |
||
135 | $module_config = $config->module_point; |
||
136 | unset($config->module_point); |
||
137 | break; |
||
138 | case 'trackback' : |
||
139 | case 'rss' : |
||
140 | case 'file' : |
||
141 | case 'comment' : |
||
142 | case 'editor' : |
||
143 | $module_config = $config->module_config; |
||
144 | unset($config->module_config); |
||
145 | if(is_array($module_config) && count($module_config)) |
||
146 | { |
||
147 | foreach($module_config as $key => $val) |
||
148 | { |
||
149 | if(isset($module_config[$key]->module_srl)) unset($module_config[$key]->module_srl); |
||
150 | } |
||
151 | } |
||
152 | break; |
||
153 | case 'layout' : |
||
154 | $tmp = $config->header_script; |
||
155 | if(is_array($tmp) && count($tmp)) |
||
156 | { |
||
157 | foreach($tmp as $k => $v) |
||
158 | { |
||
159 | if(!$v && !trim($v)) continue; |
||
160 | $module_config[$k]->header_script = $v; |
||
161 | } |
||
162 | } |
||
163 | $config = null; |
||
164 | break; |
||
165 | } |
||
166 | |||
167 | $oModuleController->insertModuleConfig($module, $config); |
||
168 | |||
169 | if(is_array($module_config) && count($module_config)) |
||
170 | { |
||
171 | foreach($module_config as $module_srl => $module_part_config) |
||
172 | { |
||
173 | $oModuleController->insertModulePartConfig($module,$module_srl,$module_part_config); |
||
174 | } |
||
175 | } |
||
176 | } |
||
177 | $oDB->addIndex("module_part_config","idx_module_part_config", array("module","module_srl")); |
||
178 | } |
||
179 | // 2008. 11. 13 drop index(unique_mid). Add a column and index on site_srl and mid columns |
||
180 | if(!$oDB->isIndexExists('modules',"idx_site_mid")) |
||
181 | { |
||
182 | $oDB->dropIndex("modules","unique_mid",true); |
||
183 | $oDB->addColumn('modules','site_srl','number',11,0,true); |
||
184 | $oDB->addIndex("modules","idx_site_mid", array("site_srl","mid"),true); |
||
185 | } |
||
186 | // document extra vars |
||
187 | if(!$oDB->isTableExists('document_extra_vars')) $oDB->createTableByXmlFile('./modules/document/schemas/document_extra_vars.xml'); |
||
188 | |||
189 | if(!$oDB->isTableExists('document_extra_keys')) $oDB->createTableByXmlFile('./modules/document/schemas/document_extra_keys.xml'); |
||
190 | // Move permission, skin info, extection info, admin ID of all modules to the table, grants |
||
191 | if($oDB->isColumnExists('modules', 'grants')) |
||
192 | { |
||
193 | $oModuleController = getController('module'); |
||
194 | $oDocumentController = getController('document'); |
||
195 | // Get a value of the current system language code |
||
196 | $lang_code = Context::getLangType(); |
||
197 | // Get module_info of all modules |
||
198 | $output = executeQueryArray('module.getModuleInfos'); |
||
199 | if(count($output->data)) |
||
200 | { |
||
201 | foreach($output->data as $module_info) |
||
202 | { |
||
203 | // Separate information about permission granted to the module, extra vars, skin vars, super-admin's authority |
||
204 | $module_srl = trim($module_info->module_srl); |
||
205 | // grant an authority |
||
206 | $grants = unserialize($module_info->grants); |
||
207 | if($grants) $oModuleController->insertModuleGrants($module_srl, $grants); |
||
208 | // Insert skin vars |
||
209 | $skin_vars = unserialize($module_info->skin_vars); |
||
210 | if($skin_vars) $oModuleController->insertModuleSkinVars($module_srl, $skin_vars); |
||
211 | // Insert super admin's ID |
||
212 | $admin_id = trim($module_info->admin_id); |
||
213 | View Code Duplication | if($admin_id && $admin_id != 'Array') |
|
214 | { |
||
215 | $admin_ids = explode(',',$admin_id); |
||
216 | if(count($admin_id)) |
||
217 | { |
||
218 | foreach($admin_ids as $admin_id) |
||
219 | { |
||
220 | $oModuleController->insertAdminId($module_srl, $admin_id); |
||
221 | } |
||
222 | } |
||
223 | } |
||
224 | // Save extra configurations for each module(column data which doesn't exist in the defaut modules) |
||
225 | $extra_vars = unserialize($module_info->extra_vars); |
||
226 | $document_extra_keys = null; |
||
227 | if($extra_vars->extra_vars && count($extra_vars->extra_vars)) |
||
228 | { |
||
229 | $document_extra_keys = $extra_vars->extra_vars; |
||
230 | unset($extra_vars->extra_vars); |
||
231 | } |
||
232 | if($extra_vars) $oModuleController->insertModuleExtraVars($module_srl, $extra_vars); |
||
233 | |||
234 | /** |
||
235 | * Move document extra vars(it should have conducted in the documents module however extra vars in modules table should be listed up in this module) |
||
236 | */ |
||
237 | // Insert extra vars if planet module is |
||
238 | if($module_info->module == 'planet') |
||
239 | { |
||
240 | if(!$document_extra_keys || !is_array($document_extra_keys)) $document_extra_keys = array(); |
||
241 | $planet_extra_keys->name = 'postscript'; |
||
242 | $planet_extra_keys->type = 'text'; |
||
243 | $planet_extra_keys->is_required = 'N'; |
||
244 | $planet_extra_keys->search = 'N'; |
||
245 | $planet_extra_keys->default = ''; |
||
246 | $planet_extra_keys->desc = ''; |
||
247 | $document_extra_keys[20] = $planet_extra_keys; |
||
248 | } |
||
249 | // Register keys for document extra vars |
||
250 | if(count($document_extra_keys)) |
||
251 | { |
||
252 | View Code Duplication | foreach($document_extra_keys as $var_idx => $val) |
|
253 | { |
||
254 | $oDocumentController->insertDocumentExtraKey($module_srl, $var_idx, $val->name, $val->type, $val->is_required, $val->search, $val->default, $val->desc, 'extra_vars'.$var_idx); |
||
255 | } |
||
256 | // 2009-04-14 Fixed a bug that only 100 extra vars are moved |
||
257 | $oDocumentModel = getModel('document'); |
||
258 | $total_count = $oDocumentModel->getDocumentCount($module_srl); |
||
259 | |||
260 | if($total_count > 0) |
||
261 | { |
||
262 | $per_page = 100; |
||
263 | $total_pages = (int) (($total_count - 1) / $per_page) + 1; |
||
264 | // Get extra vars if exist |
||
265 | $doc_args = null; |
||
266 | $doc_args->module_srl = $module_srl; |
||
267 | $doc_args->list_count = $per_page; |
||
268 | $doc_args->sort_index = 'list_order'; |
||
269 | $doc_args->order_type = 'asc'; |
||
270 | |||
271 | for($doc_args->page = 1; $doc_args->page <= $total_pages; $doc_args->page++) |
||
272 | { |
||
273 | $output = executeQueryArray('document.getDocumentList', $doc_args); |
||
274 | |||
275 | if($output->toBool() && $output->data && count($output->data)) |
||
276 | { |
||
277 | foreach ($output->data as $document) |
||
278 | { |
||
279 | if(!$document) continue; |
||
280 | foreach ($document as $key => $var) |
||
281 | { |
||
282 | if (strpos($key, 'extra_vars') !== 0 || !trim($var) || $var == 'N;') continue; |
||
283 | $var_idx = str_replace('extra_vars','',$key); |
||
284 | $oDocumentController->insertDocumentExtraVar($module_srl, $document->document_srl, $var_idx, $var, 'extra_vars'.$var_idx, $lang_code); |
||
285 | } |
||
286 | } |
||
287 | } |
||
288 | } // for total_pages |
||
289 | } // if count |
||
290 | } |
||
291 | // Additional variables of the module, remove |
||
292 | $module_info->grant = null; |
||
293 | $module_info->extra_vars = null; |
||
294 | $module_info->skin_vars = null; |
||
295 | $module_info->admin_id = null; |
||
296 | executeQuery('module.updateModule', $module_info); |
||
297 | |||
298 | $oCacheHandler = CacheHandler::getInstance('object', null, true); |
||
299 | if($oCacheHandler->isSupport()) |
||
300 | { |
||
301 | $oCacheHandler->invalidateGroupKey('site_and_module'); |
||
302 | } |
||
303 | } |
||
304 | } |
||
305 | // Various column drop |
||
306 | $oDB->dropColumn('modules','grants'); |
||
307 | $oDB->dropColumn('modules','admin_id'); |
||
308 | $oDB->dropColumn('modules','skin_vars'); |
||
309 | $oDB->dropColumn('modules','extra_vars'); |
||
310 | } |
||
311 | // Rights of all modules/skins transferring the information into a table Update grants |
||
312 | if(!$oDB->isColumnExists('sites', 'default_language')) |
||
313 | { |
||
314 | $oDB->addColumn('sites','default_language','varchar',255,0,false); |
||
315 | } |
||
316 | // extra_vars * Remove Column |
||
317 | for($i=1;$i<=20;$i++) |
||
318 | { |
||
319 | if(!$oDB->isColumnExists("documents","extra_vars".$i)) continue; |
||
320 | $oDB->dropColumn('documents','extra_vars'.$i); |
||
321 | } |
||
322 | |||
323 | // Enter the main site information sites on the table |
||
324 | $args = new stdClass; |
||
325 | $args->site_srl = 0; |
||
326 | $output = $oDB->executeQuery('module.getSite', $args); |
||
327 | View Code Duplication | if(!$output->data) |
|
328 | { |
||
329 | // Basic mid, language Wanted |
||
330 | $mid_output = $oDB->executeQuery('module.getDefaultMidInfo', $args); |
||
331 | $db_info = Context::getDBInfo(); |
||
332 | $domain = Context::getDefaultUrl(); |
||
333 | $url_info = parse_url($domain); |
||
334 | $domain = $url_info['host'].( (!empty($url_info['port'])&&$url_info['port']!=80)?':'.$url_info['port']:'').$url_info['path']; |
||
335 | $site_args->site_srl = 0; |
||
336 | $site_args->index_module_srl = $mid_output->data->module_srl; |
||
337 | $site_args->domain = $domain; |
||
338 | $site_args->default_language = $db_info->lang_type; |
||
339 | |||
340 | $output = executeQuery('module.insertSite', $site_args); |
||
341 | if(!$output->toBool()) return $output; |
||
342 | } |
||
343 | |||
344 | if($oDB->isIndexExists('sites','idx_domain')) |
||
345 | { |
||
346 | $oDB->dropIndex('sites','idx_domain'); |
||
347 | } |
||
348 | if(!$oDB->isIndexExists('sites','unique_domain')) |
||
349 | { |
||
350 | $this->updateForUniqueSiteDomain(); |
||
351 | $oDB->addIndex('sites','unique_domain',array('domain'),true); |
||
352 | } |
||
353 | |||
354 | if(!$oDB->isColumnExists("modules", "use_mobile")) |
||
355 | { |
||
356 | $oDB->addColumn('modules','use_mobile','char',1,'N'); |
||
357 | } |
||
358 | if(!$oDB->isColumnExists("modules", "mlayout_srl")) |
||
359 | { |
||
360 | $oDB->addColumn('modules','mlayout_srl','number',11, 0); |
||
361 | } |
||
362 | if(!$oDB->isColumnExists("modules", "mcontent")) |
||
363 | { |
||
364 | $oDB->addColumn('modules','mcontent','bigtext'); |
||
365 | } |
||
366 | if(!$oDB->isColumnExists("modules", "mskin")) |
||
367 | { |
||
368 | $oDB->addColumn('modules','mskin','varchar',250); |
||
369 | } |
||
370 | if(!$oDB->isColumnExists("modules", "is_skin_fix")) |
||
371 | { |
||
372 | $oDB->addColumn('modules', 'is_skin_fix', 'char', 1, 'N'); |
||
373 | $output = executeQuery('module.updateSkinFixModules'); |
||
374 | } |
||
375 | if(!$oDB->isColumnExists("module_config", "site_srl")) |
||
376 | { |
||
377 | $oDB->addColumn('module_config', 'site_srl', 'number', 11, 0, true); |
||
378 | } |
||
379 | FileHandler::makeDir('./files/ruleset'); |
||
380 | |||
381 | $args->skin = '.'; |
||
382 | $output = executeQueryArray('module.getModuleSkinDotList', $args); |
||
383 | View Code Duplication | if($output->data && count($output->data) > 0) |
|
384 | { |
||
385 | foreach($output->data as $item) |
||
386 | { |
||
387 | $skin_path = explode('.', $item->skin); |
||
388 | if(count($skin_path) != 2) continue; |
||
389 | if(is_dir(sprintf(_XE_PATH_ . 'themes/%s/modules/%s', $skin_path[0], $skin_path[1]))) |
||
390 | { |
||
391 | unset($args); |
||
392 | $args->skin = $item->skin; |
||
393 | $args->new_skin = implode('|@|', $skin_path); |
||
394 | $output = executeQuery('module.updateSkinAll', $args); |
||
395 | } |
||
396 | } |
||
397 | } |
||
398 | |||
399 | // XE 1.7 |
||
400 | if(!$oDB->isColumnExists("modules", "is_mskin_fix")) |
||
401 | { |
||
402 | $oDB->addColumn('modules', 'is_mskin_fix', 'char', 1, 'N'); |
||
403 | $output = executeQuery('module.updateMobileSkinFixModules'); |
||
404 | } |
||
405 | |||
406 | $oModuleModel = getModel('module'); |
||
407 | $moduleConfig = $oModuleModel->getModuleConfig('module'); |
||
408 | if(!$moduleConfig->isUpdateFixedValue) |
||
409 | { |
||
410 | $output = executeQuery('module.updateSkinFixModules'); |
||
411 | $output = executeQuery('module.updateMobileSkinFixModules'); |
||
412 | |||
413 | $oModuleController = getController('module'); |
||
414 | if(!$moduleConfig) $moduleConfig = new stdClass; |
||
415 | $moduleConfig->isUpdateFixedValue = TRUE; |
||
416 | $output = $oModuleController->updateModuleConfig('module', $moduleConfig); |
||
417 | } |
||
418 | |||
419 | return new Object(0, 'success_updated'); |
||
420 | } |
||
421 | |||
462 |
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.
Both the
$myVar
assignment in line 1 and the$higher
assignment in line 2 are dead. The first because$myVar
is never used and the second because$higher
is always overwritten for every possible time line.