XpressEngine Core  1.11.2
 All Classes Namespaces Files Functions Variables Pages
autoinstall.model.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) NAVER <http://www.navercorp.com> */
3 
9 {
10 
17  function getCategory($category_srl)
18  {
19  $args = new stdClass();
20  $args->category_srl = $category_srl;
21  $output = executeQueryArray("autoinstall.getCategory", $args);
22  if(!$output->data)
23  {
24  return null;
25  }
26  return array_shift($output->data);
27  }
28 
34  function getPackages()
35  {
36  $output = executeQueryArray("autoinstall.getPackages");
37  if(!$output->data)
38  {
39  return array();
40  }
41  return $output->data;
42  }
43 
50  function getInstalledPackage($package_srl)
51  {
52  $args = new stdClass();
53  $args->package_srl = $package_srl;
54  $output = executeQueryArray("autoinstall.getInstalledPackage", $args);
55  if(!$output->data)
56  {
57  return null;
58  }
59  return array_shift($output->data);
60  }
61 
68  function getPackage($package_srl)
69  {
70  $args = new stdClass();
71  $args->package_srl = $package_srl;
72  $output = executeQueryArray("autoinstall.getPackage", $args);
73  if(!$output->data)
74  {
75  return null;
76  }
77  return array_shift($output->data);
78  }
79 
85  function getCategoryList()
86  {
87  $output = executeQueryArray("autoinstall.getCategories");
88  if(!$output->toBool() || !$output->data)
89  {
90  return array();
91  }
92 
93  $categoryList = array();
94  foreach($output->data as $category)
95  {
96  $category->children = array();
97  $categoryList[$category->category_srl] = $category;
98  }
99 
100  $depth0 = array();
101  foreach($categoryList as $key => $category)
102  {
103  if($category->parent_srl)
104  {
105  $categoryList[$category->parent_srl]->children[] = & $categoryList[$key];
106  }
107  else
108  {
109  $depth0[] = $key;
110  }
111  }
112  $resultList = array();
113  foreach($depth0 as $category_srl)
114  {
115  $this->setDepth($categoryList[$category_srl], 0, $categoryList, $resultList);
116  }
117  return $resultList;
118  }
119 
126  function getPackageCount($category_srl)
127  {
128  $args = new stdClass();
129  $args->category_srl = $category_srl;
130  $output = executeQuery("autoinstall.getPackageCount", $args);
131  if(!$output->data)
132  {
133  return 0;
134  }
135  return $output->data->count;
136  }
137 
144  {
145  $output = executeQuery("autoinstall.getInstalledPackageCount");
146  if(!$output->data)
147  {
148  return 0;
149  }
150  return $output->data->count;
151  }
152 
162  function setDepth(&$item, $depth, &$list, &$resultList)
163  {
164  $resultList[$item->category_srl] = &$item;
165  $item->depth = $depth;
166  $siblingList = $item->category_srl;
167  foreach($item->children as $child)
168  {
169  $siblingList .= "," . $this->setDepth($list[$child->category_srl], $depth + 1, $list, $resultList);
170  }
171  if(count($item->children) < 1)
172  {
173  $item->nPackages = $this->getPackageCount($item->category_srl);
174  }
175  $item->childrenList = $siblingList;
176  return $siblingList;
177  }
178 
184  function getLatestPackage()
185  {
186  $output = executeQueryArray("autoinstall.getLatestPackage");
187  if(!$output->data)
188  {
189  return null;
190  }
191  return array_shift($output->data);
192  }
193 
200  function getInstalledPackages($package_list)
201  {
202  $args = new stdClass();
203  $args->package_list = $package_list;
204  $output = executeQueryArray("autoinstall.getInstalledPackages", $args);
205  $result = array();
206  if(!$output->data)
207  {
208  return $result;
209  }
210  foreach($output->data as $value)
211  {
212  $result[$value->package_srl] = $value;
213  }
214  return $result;
215  }
216 
223  function getInstalledPackageList($page)
224  {
225  $args = new stdClass();
226  $args->page = $page;
227  $args->list_count = 10;
228  $args->page_count = 5;
229  if(Context::getDBType() == 'mssql')
230  {
231  $args->sort_index = 'package_srl';
232  }
233  $output = executeQueryArray("autoinstall.getInstalledPackageList", $args);
234  $res = array();
235  if($output->data)
236  {
237  foreach($output->data as $val)
238  {
239  $res[$val->package_srl] = $val;
240  }
241  }
242  $output->data = $res;
243  return $output;
244  }
245 
252  function getTypeFromPath($path)
253  {
254  if(!$path)
255  {
256  return NULL;
257  }
258 
259  if($path == ".")
260  {
261  return "core";
262  }
263 
264  $path_array = explode("/", $path);
265  $target_name = array_pop($path_array);
266  if(!$target_name)
267  {
268  $target_name = array_pop($path_array);
269  }
270  $type = substr(array_pop($path_array), 0, -1);
271  return $type;
272  }
273 
280  function getConfigFilePath($type)
281  {
282  $config_file = NULL;
283  switch($type)
284  {
285  case "m.layout":
286  case "module":
287  case "addon":
288  case "layout":
289  case "widget":
290  case 'theme': // for backward compatibility
291  $config_file = "/conf/info.xml";
292  break;
293  case "component":
294  $config_file = "/info.xml";
295  break;
296  case "m.skin":
297  case "skin":
298  case "widgetstyle":
299  case "style":
300  $config_file = "/skin.xml";
301  break;
302  case "drcomponent":
303  $config_file = "/info.xml";
304  break;
305  }
306  return $config_file;
307  }
308 
315  function checkRemovable($path)
316  {
317  $path_array = explode("/", $path);
318  $target_name = array_pop($path_array);
319  $oModule = getModule($target_name, "class");
320  if(!$oModule)
321  {
322  return FALSE;
323  }
324  if(method_exists($oModule, "moduleUninstall"))
325  {
326  return TRUE;
327  }
328  else
329  {
330  return FALSE;
331  }
332  }
333 
340  function getPackageSrlByPath($path)
341  {
342  if(!$path)
343  {
344  return;
345  }
346 
347  if(substr($path, -1) == '/')
348  {
349  $path = substr($path, 0, strlen($path) - 1);
350  }
351 
352  if(!$GLOBLAS['XE_AUTOINSTALL_PACKAGE_SRL_BY_PATH'][$path])
353  {
354  $args = new stdClass();
355  $args->path = $path;
356  $output = executeQuery('autoinstall.getPackageSrlByPath', $args);
357 
358  $GLOBLAS['XE_AUTOINSTALL_PACKAGE_SRL_BY_PATH'][$path] = $output->data->package_srl;
359  }
360 
361  return $GLOBLAS['XE_AUTOINSTALL_PACKAGE_SRL_BY_PATH'][$path];
362  }
363 
370  function getRemoveUrlByPackageSrl($packageSrl)
371  {
372  $ftp_info = Context::getFTPInfo();
373  if(!$ftp_info->ftp_root_path)
374  {
375  return;
376  }
377 
378  if(!$packageSrl)
379  {
380  return;
381  }
382 
383  return getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminUninstall', 'package_srl', $packageSrl);
384  }
385 
392  function getRemoveUrlByPath($path)
393  {
394  if(!$path)
395  {
396  return;
397  }
398 
399  $ftp_info = Context::getFTPInfo();
400  if(!$ftp_info->ftp_root_path)
401  {
402  return;
403  }
404 
405  $packageSrl = $this->getPackageSrlByPath($path);
406  if(!$packageSrl)
407  {
408  return;
409  }
410 
411  return getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminUninstall', 'package_srl', $packageSrl);
412  }
413 
420  function getUpdateUrlByPackageSrl($packageSrl)
421  {
422  if(!$packageSrl)
423  {
424  return;
425  }
426 
427  return getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminInstall', 'package_srl', $packageSrl);
428  }
429 
436  function getUpdateUrlByPath($path)
437  {
438  if(!$path)
439  {
440  return;
441  }
442 
443  $packageSrl = $this->getPackageSrlByPath($path);
444  if(!$packageSrl)
445  {
446  return;
447  }
448 
449  return getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAutoinstallAdminInstall', 'package_srl', $packageSrl);
450  }
451 
452  function getHaveInstance($columnList = array())
453  {
454  $output = executeQueryArray('autoinstall.getHaveInstance', NULL, $columnList);
455  if(!$output->data)
456  {
457  return array();
458  }
459 
460  return $output->data;
461  }
462 
463 }
464 /* End of file autoinstall.model.php */
465 /* Location: ./modules/autoinstall/autoinstall.model.php */
$output
Definition: ko.install.php:193
getNotEncodedUrl()
Definition: func.inc.php:316
getPackageCount($category_srl)
getInstalledPackage($package_srl)
$args
Definition: ko.install.php:185
getRemoveUrlByPackageSrl($packageSrl)
getPackage($package_srl)
getUpdateUrlByPackageSrl($packageSrl)
setDepth(&$item, $depth, &$list, &$resultList)
getHaveInstance($columnList=array())
getCategory($category_srl)
executeQueryArray($query_id, $args=NULL, $arg_columns=NULL)
Definition: func.inc.php:219
executeQuery($query_id, $args=NULL, $arg_columns=NULL)
Definition: func.inc.php:203
getModule($module_name, $type= 'view', $kind= '')
Definition: func.inc.php:79
getInstalledPackages($package_list)