XpressEngine Core  1.11.2
 All Classes Namespaces Files Functions Variables Pages
module.admin.model.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) NAVER <http://www.navercorp.com> */
9 class moduleAdminModel extends module
10 {
14  function init()
15  {
16  }
17 
23  {
25  $oModuleModel = getModel('module');
26  $args = new stdClass;
27  $args->module_srls = Context::get('module_srls');
28  $output = executeQueryArray('module.getModulesInfo', $args);
29  if(!$output->toBool() || !$output->data) return new BaseObject();
30 
31  foreach($output->data as $key => $val)
32  {
33  $info_xml = $oModuleModel->getModuleInfoXml($val->module);
34  $oModuleController->replaceDefinedLangCode($val->browser_title);
35  $list[$val->module_srl] = array('module_srl'=>$val->module_srl,'mid'=>$val->mid,'browser_title'=>$val->browser_title, 'module_name' => $info_xml->title);
36  }
37  $modules = explode(',',$args->module_srls);
38  for($i=0;$i<count($modules);$i++)
39  {
40  $module_list[$modules[$i]] = $list[$modules[$i]];
41  }
42 
43  $this->add('id', Context::get('id'));
44  $this->add('module_list', $module_list);
45  }
46 
48  {
49  $args->list_count = 20;
50  $args->page_count = 10;
51  $output = executeQueryArray('module.getModuleMidList', $args);
52  if(!$output->toBool()) return $output;
53 
54  ModuleModel::syncModuleToSite($output->data);
55 
56  return $output;
57  }
58 
59  function getSelectedManageHTML($grantList, $tabChoice = array(), $modulePath = NULL)
60  {
61  if($modulePath)
62  {
63  // get the skins path
64  $oModuleModel = getModel('module');
65  $skin_list = $oModuleModel->getSkins($modulePath);
66  Context::set('skin_list',$skin_list);
67 
68  $mskin_list = $oModuleModel->getSkins($modulePath, "m.skins");
69  Context::set('mskin_list', $mskin_list);
70  }
71 
72  // get the layouts path
73  $oLayoutModel = getModel('layout');
74  $layout_list = $oLayoutModel->getLayoutList();
75  Context::set('layout_list', $layout_list);
76 
77  $mobile_layout_list = $oLayoutModel->getLayoutList(0,"M");
78  Context::set('mlayout_list', $mobile_layout_list);
79 
80  $security = new Security();
81  $security->encodeHTML('layout_list..layout', 'layout_list..title');
82  $security->encodeHTML('mlayout_list..layout', 'mlayout_list..title');
83  $security->encodeHTML('skin_list..title');
84  $security->encodeHTML('mskin_list..title');
85 
86  $grant_list =new stdClass();
87  // Grant virtual permission for access and manager
88  if(!$grantList)
89  {
90  $grantList =new stdClass();
91  }
92  $grantList->access = new stdClass();
93  $grantList->access->title = Context::getLang('grant_access');
94  $grantList->access->default = 'guest';
95  if(count($grantList))
96  {
97  foreach($grantList as $key => $val)
98  {
99  if(!$val->default) $val->default = 'guest';
100  if($val->default == 'root') $val->default = 'manager';
101  $grant_list->{$key} = $val;
102  }
103  }
104  $grant_list->manager = new stdClass();
105  $grant_list->manager->title = Context::getLang('grant_manager');
106  $grant_list->manager->default = 'manager';
107  Context::set('grant_list', $grant_list);
108 
109  // Get a list of groups
110  $oMemberModel = getModel('member');
111  $group_list = $oMemberModel->getGroups(0);
112  Context::set('group_list', $group_list);
113 
114  Context::set('module_srls', 'dummy');
115  $content = '';
116  // Call a trigger for additional settings
117  // Considering uses in the other modules, trigger name cen be publicly used
118  $output = ModuleHandler::triggerCall('module.dispAdditionSetup', 'before', $content);
119  $output = ModuleHandler::triggerCall('module.dispAdditionSetup', 'after', $content);
120  Context::set('setup_content', $content);
121 
122  if(count($tabChoice) == 0)
123  {
124  $tabChoice = array('tab1'=>1, 'tab2'=>1, 'tab3'=>1);
125  }
126  Context::set('tabChoice', $tabChoice);
127 
128  // Get information of module_grants
129  $oTemplate = &TemplateHandler::getInstance();
130  return $oTemplate->compile($this->module_path.'tpl', 'include.manage_selected.html');
131  }
132 
137  function getModuleGrantHTML($module_srl, $source_grant_list)
138  {
139  if(!$module_srl)
140  {
141  return;
142  }
143 
144  // get member module's config
145  $oMemberModel = getModel('member');
146  $member_config = $oMemberModel->getMemberConfig();
147  Context::set('member_config', $member_config);
148 
149  $oModuleModel = getModel('module');
150  $columnList = array('module_srl', 'site_srl');
151  $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl, $columnList);
152  // Grant virtual permission for access and manager
153  $grant_list = new stdClass();
154  $grant_list->access = new stdClass();
155  $grant_list->access->title = Context::getLang('grant_access');
156  $grant_list->access->default = 'guest';
157  if(count($source_grant_list))
158  {
159  foreach($source_grant_list as $key => $val)
160  {
161  if(!$val->default) $val->default = 'guest';
162  if($val->default == 'root') $val->default = 'manager';
163  $grant_list->{$key} = $val;
164  }
165  }
166  $grant_list->manager = new stdClass();
167  $grant_list->manager->title = Context::getLang('grant_manager');
168  $grant_list->manager->default = 'manager';
169  Context::set('grant_list', $grant_list);
170  // Get a permission group granted to the current module
171  $default_grant = array();
172  $args = new stdClass();
173  $args->module_srl = $module_srl;
174  $output = executeQueryArray('module.getModuleGrants', $args);
175  if($output->data)
176  {
177  foreach($output->data as $val)
178  {
179  if($val->group_srl == 0) $default_grant[$val->name] = 'all';
180  else if($val->group_srl == -1) $default_grant[$val->name] = 'member';
181  else if($val->group_srl == -2) $default_grant[$val->name] = 'site';
182  else if($val->group_srl == -3) $default_grant[$val->name] = 'manager';
183  else
184  {
185  $selected_group[$val->name][] = $val->group_srl;
186  $default_grant[$val->name] = 'group';
187  }
188  }
189  }
190  Context::set('selected_group', $selected_group);
191  Context::set('default_grant', $default_grant);
192  Context::set('module_srl', $module_srl);
193  // Extract admin ID set in the current module
194  $admin_member = $oModuleModel->getAdminId($module_srl);
195  Context::set('admin_member', $admin_member);
196  // Get a list of groups
197  $oMemberModel = getModel('member');
198  $group_list = $oMemberModel->getGroups($module_info->site_srl);
199  Context::set('group_list', $group_list);
200 
201  //Security
202  $security = new Security();
203  $security->encodeHTML('group_list..title');
204  $security->encodeHTML('group_list..description');
205  $security->encodeHTML('admin_member..nick_name');
206 
207  // Get information of module_grants
208  $oTemplate = &TemplateHandler::getInstance();
209  return $oTemplate->compile($this->module_path.'tpl', 'module_grants');
210  }
211 
212  public function getModuleAdminGrant()
213  {
214  $targetModule = Context::get('target_module');
215  $moduleSrl = Context::get('module_srl');
216  if(!$targetModule || !$moduleSrl)
217  {
218  return new BaseObject(-1, 'msg_invalid_request');
219  }
220 
221  if($targetModule == '_SHORTCUT')
222  {
223  return new BaseObject(0);
224  }
225 
226  $oModuleModel = getModel('module');
227  $xmlInfo = $oModuleModel->getModuleActionXml($targetModule);
228 
229  // Grant virtual permission for access and manager
230  $grantList = new stdClass();
231  $grantList->access = new stdClass();
232  $grantList->access->title = Context::getLang('grant_access');
233  $grantList->access->default = 'guest';
234  if(count($xmlInfo->grant))
235  {
236  foreach($xmlInfo->grant as $key => $val)
237  {
238  if(!$val->default) $val->default = 'guest';
239  if($val->default == 'root') $val->default = 'manager';
240  $grantList->{$key} = $val;
241  }
242  }
243  $grantList->manager = new stdClass();
244  $grantList->manager->title = Context::getLang('grant_manager');
245  $grantList->manager->default = 'manager';
246 
247  // Get a permission group granted to the current module
248  $defaultGrant = new stdClass();
249  $args = new stdClass();
250  $args->module_srl = $moduleSrl;
251  $output = executeQueryArray('module.getModuleGrants', $args);
252  if($output->data)
253  {
254  foreach($output->data as $val)
255  {
256  if($val->group_srl == 0) $defaultGrant->{$val->name} = 'all';
257  else if($val->group_srl == -1) $defaultGrant->{$val->name} = 'member';
258  else if($val->group_srl == -2) $defaultGrant->{$val->name} = 'site';
259  else if($val->group_srl == -3) $defaultGrant->{$val->name} = 'manager';
260  else
261  {
262  $selectedGroup->{$val->name}[] = $val->group_srl;
263  $defaultGrant->{$val->name} = 'group';
264  }
265  }
266  }
267 
268  if(is_object($grantList))
269  {
270  foreach($grantList AS $key=>$value)
271  {
272  if(isset($defaultGrant->{$key}))
273  {
274  $grantList->{$key}->grant = $defaultGrant->{$key};
275  }
276  if(isset($selectedGroup->{$key}))
277  {
278  $grantList->{$key}->group_srls = $selectedGroup->{$key};
279  }
280  }
281  }
282 
283  $this->add('grantList', $grantList);
284  }
285 
290  {
291  return $this->_getModuleSkinHTML($module_srl, 'P');
292  }
293 
301  {
302  return $this->_getModuleSkinHtml($module_srl, 'M');
303  }
304 
313  {
314  $mode = $mode === 'P' ? 'P' : 'M';
315 
316  $oModuleModel = getModel('module');
317  $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
318  if(!$module_info) return;
319 
320  if($mode === 'P')
321  {
322  if($module_info->is_skin_fix == 'N')
323  {
324  $skin = $oModuleModel->getModuleDefaultSkin($module_info->module, 'P', $module_info->site_srl);
325  }
326  else
327  {
328  $skin = $module_info->skin;
329  }
330  }
331  else
332  {
333  if($module_info->is_mskin_fix == 'N')
334  {
335  $skin = $oModuleModel->getModuleDefaultSkin($module_info->module, 'M', $module_info->site_srl);
336  }
337  else
338  {
339  $skin = $module_info->mskin;
340  }
341  }
342 
343  $module_path = './modules/'.$module_info->module;
344 
345  // Get XML information of the skin and skin sinformation set in DB
346  if($mode === 'P')
347  {
348  $skin_info = $oModuleModel->loadSkinInfo($module_path, $skin);
349  $skin_vars = $oModuleModel->getModuleSkinVars($module_srl);
350  }
351  else
352  {
353  $skin_info = $oModuleModel->loadSkinInfo($module_path, $skin, 'm.skins');
354  $skin_vars = $oModuleModel->getModuleMobileSkinVars($module_srl);
355  }
356 
357  if(count($skin_info->extra_vars))
358  {
359  foreach($skin_info->extra_vars as $key => $val)
360  {
361  $group = $val->group;
362  $name = $val->name;
363  $type = $val->type;
364  if($skin_vars[$name])
365  {
366  $value = $skin_vars[$name]->value;
367  }
368  else $value = '';
369  if($type=="checkbox")
370  {
371  $value = $value?unserialize($value):array();
372  }
373 
374  $value = empty($value) ? $val->default : $value;
375  $skin_info->extra_vars[$key]->value= $value;
376  }
377  }
378 
379  Context::set('module_info', $module_info);
380  Context::set('mid', $module_info->mid);
381  Context::set('skin_info', $skin_info);
382  Context::set('skin_vars', $skin_vars);
383  Context::set('mode', $mode);
384 
385  //Security
386  $security = new Security();
387  $security->encodeHTML('mid');
388  $security->encodeHTML('module_info.browser_title');
389  $security->encodeHTML('skin_info...');
390 
391  $oTemplate = &TemplateHandler::getInstance();
392  return $oTemplate->compile($this->module_path.'tpl', 'skin_config');
393  }
394 
399  function getLangCode($site_srl, $name, $isFullLanguage = FALSE)
400  {
401  if($isFullLanguage)
402  {
403  $lang_supported = Context::loadLangSupported();
404  }
405  else
406  {
407  $lang_supported = Context::get('lang_supported');
408  }
409 
410  if(substr($name,0,12)=='$user_lang->')
411  {
412  $args = new stdClass();
413  $args->site_srl = (int)$site_srl;
414  $args->name = substr($name,12);
415  $output = executeQueryArray('module.getLang', $args);
416  if($output->data)
417  {
418  foreach($output->data as $key => $val)
419  {
420  $selected_lang[$val->lang_code] = $val->value;
421  }
422  }
423  }
424  else
425  {
426  $tmp = unserialize($name);
427  if($tmp)
428  {
429  $selected_lang = array();
430  $rand_name = $tmp[Context::getLangType()];
431  if(!$rand_name) $rand_name = array_shift($tmp);
432  if(is_array($lang_supported))
433  {
434  foreach($lang_supported as $key => $val)
435  $selected_lang[$key] = $tmp[$key]?$tmp[$key]:$rand_name;
436  }
437  }
438  }
439 
440  $output = array();
441  if(is_array($lang_supported))
442  {
443  foreach($lang_supported as $key => $val)
444  $output[$key] = $selected_lang[$key]?$selected_lang[$key]:$name;
445  }
446  return $output;
447  }
448 
453  {
454  $name = Context::get('name');
455  if(!$name) return new BaseObject(-1,'msg_invalid_request');
456  $site_module_info = Context::get('site_module_info');
457  $this->add('name', $name);
458  $output = $this->getLangCode($site_module_info->site_srl, '$user_lang->'.$name);
459  $this->add('langs', $output);
460  }
461 
466  {
468  if(!$args->site_srl) $args->site_srl = 0;
469 
470  $columnList = array('lang_code', 'name', 'value');
471 
472  $langList = array();
473 
474  $args->langName = preg_replace('/^\$user_lang->/', '', $args->lang_name);
475  $output = executeQueryArray('module.getLangListByName', $args, $columnList);
476  if($output->toBool()) $langList = $output->data;
477 
478  $this->add('lang_list', $langList);
479  $this->add('lang_name', $args->langName);
480  }
481 
486  {
488  if(!$args->site_srl) $args->site_srl = 0;
489 
490  $langList = array();
491 
492  // search value
493  $output = executeQueryArray('module.getLangNameByValue', $args);
494  if($output->toBool() && is_array($output->data))
495  {
496  unset($args->value);
497 
498  foreach($output->data as $data)
499  {
500  $args->langName = $data->name;
501  $columnList = array('lang_code', 'name', 'value');
502  $outputByName = executeQueryArray('module.getLangListByName', $args, $columnList);
503 
504  if($outputByName->toBool())
505  {
506  $langList = array_merge($langList, $outputByName->data);
507  }
508  }
509  }
510 
511  $this->add('lang_list', $langList);
512  }
513 
518  {
519  $output = executeQueryArray('module.getLangListByLangcode', $args);
520  if(!$output->toBool()) return array();
521 
522  return $output;
523  }
524 
529  {
530  $oTemplate = TemplateHandler::getInstance();
531  $tpl = $oTemplate->compile(_XE_PATH_ . 'modules/module/tpl', 'multilingual_v17.html');
532 
533  $this->add('html', $tpl);
534  }
535 
540  {
541  $site_module_info = Context::get('site_module_info');
542  $args = new stdClass();
543  $args->site_srl = (int)$site_module_info->site_srl;
544  $args->langCode = Context::get('lang_code');
545  $args->page = Context::get('page');
546  $args->sort_index = 'name';
547  $args->order_type = 'asc';
548  $args->search_keyword = Context::get('search_keyword');
549  $args->name = Context::get('name');
550  $args->list_count = Context::get('list_count');
551  $args->page_count = 5;
552 
553  if(!$args->langCode)
554  {
555  $args->langCode = Context::get('lang_type');
556  }
557 
558  $output = $this->getLangListByLangcode($args);
559 
560  Context::set('total_count', $output->total_count);
561  Context::set('total_page', $output->total_page);
562  Context::set('page', $output->page);
563  Context::set('lang_code_list', $output->data);
564  Context::set('page_navigation', $output->page_navigation);
565 
566  $oSecurity = new Security();
567  $oSecurity->encodeHTML('lang_code_list..');
568 
569  $oTemplate = TemplateHandler::getInstance();
570  $tpl = $oTemplate->compile(_XE_PATH_ . 'modules/module/tpl', 'multilingual_v17_list.html');
571 
572  $this->add('html', $tpl);
573  }
574 
579  {
580  Context::loadLang(_XE_PATH_ . 'modules/admin/lang');
581  $oTemplate = TemplateHandler::getInstance();
582  $tpl = $oTemplate->compile(_XE_PATH_ . 'modules/module/tpl', 'module_searcher_v17.html');
583 
584  $this->add('html', $tpl);
585  }
586 
591  {
592  if(Context::get('search_module_srl'))
593  {
594  $module_srl = Context::get('search_module_srl');
595  }
596  else
597  {
598  $module_srl = Context::get('module_srl');
599  }
600 
601  $model = getModel('module');
602  $module_info = $model->getModuleInfoByModuleSrl($module_srl);
603 
604  $this->add('module_info', $module_info);
605  }
606 }
607 /* End of file module.admin.model.php */
608 /* Location: ./modules/module/module.admin.model.php */
$oModuleModel
Definition: ko.install.php:236
getController($module_name)
Definition: func.inc.php:90
getModuleAdminLangListByName()
Returns lang list by lang name.
init()
Initialization.
loadLang($path)
$output
Definition: ko.install.php:193
add($key, $val)
$module_info
Definition: ko.install.php:289
getLangListByLangcode($args)
Return current lang list.
set($key, $val, $set_to_get_vars=0)
getModuleAdminLangListByValue()
Return lang list.
getModuleGrantHTML($module_srl, $source_grant_list)
Common:: module&#39;s permission displaying page in the module Available when using module instance in al...
getModuleAdminLangCode()
Return if the module language in ajax is requested.
getSelectedManageHTML($grantList, $tabChoice=array(), $modulePath=NULL)
getLangCode($site_srl, $name, $isFullLanguage=FALSE)
Get values for a particular language code Return its corresponding value if lang_code is specified...
$args
Definition: ko.install.php:185
_getModuleSkinHTML($module_srl, $mode)
getModuleMobileSkinHTML($module_srl)
loadLangSupported()
getLang($code)
const _XE_PATH_
Definition: config.inc.php:49
getModuleSkinHTML($module_srl)
Common:: skin setting page for the module.
getModel($module_name)
Definition: func.inc.php:145
getModuleAdminModuleList()
Return a list of target modules by using module_srls separated by comma(,) Used in the ModuleSelector...
executeQueryArray($query_id, $args=NULL, $arg_columns=NULL)
Definition: func.inc.php:219
$module_srl
Definition: ko.install.php:254
$oModuleController
Definition: ko.install.php:287
AdminModel class of the &quot;module&quot; module.
triggerCall($trigger_name, $called_position, &$obj)
high class of the module module
Definition: module.class.php:8