/modules/install/script/ko.install.php

https://github.com/prologos/xe-core · PHP · 149 lines · 100 code · 31 blank · 18 comment · 12 complexity · 2ff3c34384a70ff08b1f4962d56b82b6 MD5 · raw file

  1. <?php
  2. // ko/en/...
  3. $lang = Context::getLangType();
  4. // insertMenu
  5. $oMenuAdminController = getAdminController('menu'); /* @var $oMenuAdminController menuAdminController */
  6. $output = $oMenuAdminController->addMenu('Welcome menu');
  7. if(!$output->toBool())
  8. {
  9. return $output;
  10. }
  11. $menuSrl = $output->get('menuSrl');
  12. // make home menu cache
  13. $oMenuAdminController->makeHomemenuCacheFile($menuSrl);
  14. // insertMenuItem
  15. // create 1depth menuitem
  16. // adhoc...
  17. Context::set('parent_srl', $menuSrl, TRUE);
  18. Context::set('menu_name', 'Welcome Page', TRUE);
  19. Context::set('module_type', 'WIDGET', TRUE);
  20. $output = $oMenuAdminController->procMenuAdminInsertItem();
  21. if($output instanceof Object && !$output->toBool())
  22. {
  23. return $output;
  24. }
  25. $menuItemSrl = $oMenuAdminController->get('menu_item_srl');
  26. // create menu cache
  27. $oMenuAdminController->makeXmlFile($menuSrl);
  28. // create Layout
  29. //extra_vars init
  30. $extra_vars = new stdClass;
  31. $extra_vars->GNB = $menuSrl;
  32. $extra_vars->LAYOUT_TYPE = 'MAIN_PAGE';
  33. $extra_vars->VISUAL_USE = 'YES';
  34. $extra_vars->menu_name_list = array();
  35. $extra_vars->menu_name_list[$menuSrl] = 'Welcome menu';
  36. $args = new stdClass;
  37. $args->site_srl = 0;
  38. $layout_srl = $args->layout_srl = getNextSequence();
  39. $args->layout = 'default';
  40. $args->title = 'default';
  41. $args->layout_type = 'P';
  42. $oLayoutAdminController = getAdminController('layout'); /* @var $oLayoutAdminController layoutAdminController */
  43. $output = $oLayoutAdminController->insertLayout($args);
  44. if(!$output->toBool()) return $output;
  45. // update Layout
  46. $args->extra_vars = serialize($extra_vars);
  47. $output = $oLayoutAdminController->updateLayout($args);
  48. if(!$output->toBool()) return $output;
  49. //create mobile layout
  50. $mlayout_srl = $args->layout_srl = getNextSequence();
  51. $args->layout = 'default';
  52. $args->title = 'welcome_mobile_layout';
  53. $args->layout_type = 'M';
  54. $output = $oLayoutAdminController->insertLayout($args);
  55. if(!$output->toBool()) return $output;
  56. // update Layout
  57. $args->extra_vars = serialize($extra_vars);
  58. $output = $oLayoutAdminController->updateLayout($args);
  59. if(!$output->toBool()) return $output;
  60. $siteDesignPath = _XE_PATH_.'files/site_design/';
  61. FileHandler::makeDir($siteDesignPath);
  62. $designInfo = new stdClass();
  63. $designInfo->layout_srl = $layout_srl;
  64. $designInfo->mlayout_srl = $mlayout_srl;
  65. $moduleList = array('page');
  66. $moutput = ModuleHandler::triggerCall('menu.getModuleListInSitemap', 'after', $moduleList);
  67. if($moutput->toBool())
  68. {
  69. $moduleList = array_unique($moduleList);
  70. }
  71. $skinTypes = array('skin'=>'skins/', 'mskin'=>'m.skins/');
  72. $designInfo->module = new stdClass();
  73. $oModuleModel = getModel('module'); /* @var $oModuleModel moduleModel */
  74. foreach($skinTypes as $key => $dir)
  75. {
  76. $skinType = $key == 'skin' ? 'P' : 'M';
  77. foreach($moduleList as $moduleName)
  78. {
  79. $designInfo->module->{$moduleName} = new stdClass;
  80. $designInfo->module->{$moduleName}->{$key} = $oModuleModel->getModuleDefaultSkin($moduleName, $skinType, 0, false);
  81. }
  82. }
  83. $oAdminController = getAdminController('admin'); /* @var $oAdminController adminAdminController */
  84. $oAdminController->makeDefaultDesignFile($designInfo, 0);
  85. // create page content
  86. $moduleInfo = $oModuleModel->getModuleInfoByMenuItemSrl($menuItemSrl);
  87. $module_srl = $moduleInfo->module_srl;
  88. // insert PageContents - widget
  89. $oTemplateHandler = TemplateHandler::getInstance();
  90. $oDocumentModel = getModel('document'); /* @var $oDocumentModel documentModel */
  91. $oDocumentController = getController('document'); /* @var $oDocumentController documentController */
  92. $obj = new stdClass;
  93. $obj->module_srl = $module_srl;
  94. Context::set('version', __XE_VERSION__);
  95. $obj->title = 'Welcome XE';
  96. $obj->content = $oTemplateHandler->compile(_XE_PATH_ . 'modules/install/script/welcome_content', 'welcome_content_'.$lang);
  97. $output = $oDocumentController->insertDocument($obj);
  98. if(!$output->toBool()) return $output;
  99. $document_srl = $output->get('document_srl');
  100. unset($obj->document_srl);
  101. $obj->title = 'Welcome mobile XE';
  102. $output = $oDocumentController->insertDocument($obj);
  103. if(!$output->toBool()) return $output;
  104. // save PageWidget
  105. $oModuleController = getController('module'); /* @var $oModuleController moduleController */
  106. $mdocument_srl = $output->get('document_srl');
  107. $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
  108. $module_info->content = '<img hasContent="true" class="zbxe_widget_output" widget="widgetContent" style="width: 100%; float: left;" body="" document_srl="'.$document_srl.'" widget_padding_left="0" widget_padding_right="0" widget_padding_top="0" widget_padding_bottom="0" />';
  109. $module_info->mcontent = '<img hasContent="true" class="zbxe_widget_output" widget="widgetContent" style="width: 100%; float: left;" body="" document_srl="'.$mdocument_srl.'" widget_padding_left="0" widget_padding_right="0" widget_padding_top="0" widget_padding_bottom="0" />';
  110. $output = $oModuleController->updateModule($module_info);
  111. if(!$output->toBool()) return $output;
  112. // insertFirstModule
  113. $site_args = new stdClass;
  114. $site_args->site_srl = 0;
  115. $site_args->index_module_srl = $module_srl;
  116. $oModuleController->updateSite($site_args);
  117. /* End of file ko.install.php */
  118. /* Location: ./modules/install/script/ko.install.php */