XpressEngine Core  1.11.2
 All Classes Namespaces Files Functions Variables Pages
addon.admin.controller.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) NAVER <http://www.navercorp.com> */
3 
4 require_once(_XE_PATH_ . 'modules/addon/addon.controller.php');
5 
11 {
12 
18  function init()
19  {
20 
21  }
22 
29  {
30  $pcOnList = Context::get('pc_on');
31  $mobileOnList = Context::get('mobile_on');
32  $fixed = Context::get('fixed');
33 
34  $site_module_info = Context::get('site_module_info');
35 
36  if($site_module_info->site_srl)
37  {
38  $site_srl = $site_module_info->site_srl;
39  }
40  else
41  {
42  $site_srl = 0;
43  }
44 
45  if(!$pcOnList)
46  {
47  $pcOnList = array();
48  }
49  if(!$mobileOnList)
50  {
51  $mobileOnList = array();
52  }
53  if(!$fixed)
54  {
55  $fixed = array();
56  }
57 
58  if(!is_array($pcOnList))
59  {
60  $pcOnList = array($pcOnList);
61  }
62  if(!is_array($mobileOnList))
63  {
64  $pcOnList = array($mobileOnList);
65  }
66  if(!is_array($fixed))
67  {
68  $pcOnList = array($fixed);
69  }
70 
71  // get current addon info
72  $oModel = getAdminModel('addon');
73  $currentAddonList = $oModel->getAddonList($site_srl, 'site');
74 
75  // get need update addon list
76  $updateList = array();
77  foreach($currentAddonList as $addon)
78  {
79  if($addon->activated !== in_array($addon->addon_name, $pcOnList))
80  {
81  $updateList[] = $addon->addon_name;
82  continue;
83  }
84 
85  if($addon->mactivated !== in_array($addon->addon_name, $mobileOnList))
86  {
87  $updateList[] = $addon->addon_name;
88  continue;
89  }
90 
91  if($addon->fixed !== in_array($addon->addon_name, $fixed))
92  {
93  $updateList[] = $addon->addon_name;
94  continue;
95  }
96  }
97 
98  // update
99  foreach($updateList as $targetAddon)
100  {
101  $args = new stdClass();
102 
103  if(in_array($targetAddon, $pcOnList))
104  {
105  $args->is_used = 'Y';
106  }
107  else
108  {
109  $args->is_used = 'N';
110  }
111 
112  if(in_array($targetAddon, $mobileOnList))
113  {
114  $args->is_used_m = 'Y';
115  }
116  else
117  {
118  $args->is_used_m = 'N';
119  }
120 
121  if(in_array($targetAddon, $fixed))
122  {
123  $args->fixed = 'Y';
124  }
125  else
126  {
127  $args->fixed = 'N';
128  }
129 
130  $args->addon = $targetAddon;
131  $args->site_srl = $site_srl;
132 
133  $output = executeQuery('addon.updateSiteAddon', $args);
134  if(!$output->toBool())
135  {
136  return $output;
137  }
138  }
139 
140  if(count($updateList))
141  {
142  $this->makeCacheFile($site_srl, 'pc', 'site');
143  $this->makeCacheFile($site_srl, 'mobile', 'site');
144  }
145 
146  $this->setMessage('success_updated', 'info');
147  if(Context::get('success_return_url'))
148  {
149  $this->setRedirectUrl(Context::get('success_return_url'));
150  }
151  else
152  {
153  $this->setRedirectUrl(getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAddonAdminIndex'));
154  }
155  }
156 
163  {
164  $oAddonModel = getAdminModel('addon');
165 
166  $site_module_info = Context::get('site_module_info');
167  // batahom addon values
168  $addon = Context::get('addon');
169  $type = Context::get('type');
170  if(!$type)
171  {
172  $type = "pc";
173  }
174  if($addon)
175  {
176  // If enabled Disables
177  if($oAddonModel->isActivatedAddon($addon, $site_module_info->site_srl, $type))
178  {
179  $this->doDeactivate($addon, $site_module_info->site_srl, $type);
180  }
181  // If it is disabled Activate
182  else
183  {
184  $this->doActivate($addon, $site_module_info->site_srl, $type);
185  }
186  }
187 
188  $this->makeCacheFile($site_module_info->site_srl, $type);
189  }
190 
197  {
199  $module = $args->module;
200  $addon_name = $args->addon_name;
201  unset($args->module);
202  unset($args->act);
203  unset($args->addon_name);
204  unset($args->body);
205  unset($args->error_return_url);
206 
207  $site_module_info = Context::get('site_module_info');
208 
209  $output = $this->doSetup($addon_name, $args, $site_module_info->site_srl, 'site');
210  if(!$output->toBool())
211  {
212  return $output;
213  }
214 
215  $this->makeCacheFile($site_module_info->site_srl, "pc", 'site');
216  $this->makeCacheFile($site_module_info->site_srl, "mobile", 'site');
217 
218  $this->setRedirectUrl(getNotEncodedUrl('', 'module', $module, 'act', 'dispAddonAdminSetup', 'selected_addon', $addon_name), $output);
219  }
220 
230  function doInsert($addon, $site_srl = 0, $gtype = 'site', $isUsed = 'N')
231  {
232  $args = new stdClass;
233  $args->addon = $addon;
234  $args->is_used = $isUsed;
235  if($gtype == 'global')
236  {
237  return executeQuery('addon.insertAddon', $args);
238  }
239  $args->site_srl = $site_srl;
240  return executeQuery('addon.insertSiteAddon', $args);
241  }
242 
252  function doActivate($addon, $site_srl = 0, $type = "pc", $gtype = 'site')
253  {
254  $args = new stdClass();
255  $args->addon = $addon;
256  if($type == "pc")
257  {
258  $args->is_used = 'Y';
259  }
260  else
261  {
262  $args->is_used_m = "Y";
263  }
264  if($gtype == 'global')
265  {
266  return executeQuery('addon.updateAddon', $args);
267  }
268  $args->site_srl = $site_srl;
269  return executeQuery('addon.updateSiteAddon', $args);
270  }
271 
280  function doDeactivate($addon, $site_srl = 0, $type = "pc", $gtype = 'site')
281  {
282  $args = new stdClass();
283  $args->addon = $addon;
284  if($type == "pc")
285  {
286  $args->is_used = 'N';
287  }
288  else
289  {
290  $args->is_used_m = 'N';
291  }
292  if($gtype == 'global')
293  {
294  return executeQuery('addon.updateAddon', $args);
295  }
296  $args->site_srl = $site_srl;
297  return executeQuery('addon.updateSiteAddon', $args);
298  }
299 
300 }
301 /* End of file addon.admin.controller.php */
302 /* Location: ./modules/addon/addon.admin.controller.php */
setMessage($message= 'success', $type=NULL)
doActivate($addon, $site_srl=0, $type="pc", $gtype= 'site')
$output
Definition: ko.install.php:193
getNotEncodedUrl()
Definition: func.inc.php:316
doSetup($addon, $extra_vars, $site_srl=0, $gtype= 'site')
doDeactivate($addon, $site_srl=0, $type="pc", $gtype= 'site')
$args
Definition: ko.install.php:185
setRedirectUrl($url= './', $output=NULL)
doInsert($addon, $site_srl=0, $gtype= 'site', $isUsed= 'N')
makeCacheFile($site_srl=0, $type="pc", $gtype= 'site')
getAdminModel($module_name)
Definition: func.inc.php:156
const _XE_PATH_
Definition: config.inc.php:49
executeQuery($query_id, $args=NULL, $arg_columns=NULL)
Definition: func.inc.php:203
$module
Class name of Xe Module that is identified by mid.