mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-24 21:03:19 +09:00
#1354 설치 시 데모 콘텐츠 및 메뉴 자동 구성 추가
This commit is contained in:
parent
7676d787ab
commit
a8430dec0c
12 changed files with 304 additions and 403 deletions
|
|
@ -4,57 +4,200 @@
|
|||
$lang = Context::getLangType();
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
// insertMenu
|
||||
$oMenuAdminController = getAdminController('menu'); /* @var $oMenuAdminController menuAdminController */
|
||||
$output = $oMenuAdminController->addMenu('Welcome menu');
|
||||
if(!$output->toBool())
|
||||
$oMenuAdminController = getAdminController('menu');
|
||||
|
||||
// sitemap
|
||||
$sitemap = array(
|
||||
'GNB' => array(
|
||||
'title' => 'Main menu',
|
||||
'list' => array(
|
||||
array(
|
||||
'menu_name' => 'Welcome Page',
|
||||
'module_type' => 'WIDGET',
|
||||
'module_id' => 'index',
|
||||
),
|
||||
array(
|
||||
'menu_name' => 'XEIcon',
|
||||
'module_type' => 'WIDGET',
|
||||
'module_id' => 'xeicon',
|
||||
),
|
||||
array(
|
||||
'menu_name' => 'Board',
|
||||
'module_type' => 'board',
|
||||
'module_id' => 'board',
|
||||
'list' => array(
|
||||
array(
|
||||
'menu_name' => 'Smaple 1',
|
||||
'is_shortcut' => 'Y',
|
||||
'shortcut_target' => '#',
|
||||
'list' => array(
|
||||
array(
|
||||
'menu_name' => 'Smaple 1-1',
|
||||
'is_shortcut' => 'Y',
|
||||
'shortcut_target' => '#'
|
||||
),
|
||||
)
|
||||
),
|
||||
array(
|
||||
'menu_name' => 'Smaple 2',
|
||||
'is_shortcut' => 'Y',
|
||||
'shortcut_target' => '#'
|
||||
),
|
||||
array(
|
||||
'menu_name' => 'Smaple 3',
|
||||
'is_shortcut' => 'Y',
|
||||
'shortcut_target' => '#'
|
||||
),
|
||||
)
|
||||
),
|
||||
)
|
||||
),
|
||||
'UNB' => array(
|
||||
'title' => 'Utility menu',
|
||||
'list' => array(
|
||||
array(
|
||||
'menu_name' => 'XE Official Site',
|
||||
'is_shortcut' => 'Y',
|
||||
'open_window' => 'Y',
|
||||
'shortcut_target' => 'http://www.xpressengine.com'
|
||||
),
|
||||
array(
|
||||
'menu_name' => 'GitHub',
|
||||
'is_shortcut' => 'Y',
|
||||
'open_window' => 'Y',
|
||||
'shortcut_target' => 'https://github.com/xpressengine'
|
||||
),
|
||||
)
|
||||
),
|
||||
'FNB' => array(
|
||||
'title' => 'Footer Menu',
|
||||
'list' => array(
|
||||
array(
|
||||
'menu_name' => 'Welcome Page',
|
||||
'is_shortcut' => 'Y',
|
||||
'shortcut_target' => 'index',
|
||||
'list' => array(
|
||||
array(
|
||||
'menu_name' => 'Sample 1',
|
||||
'is_shortcut' => 'Y',
|
||||
'shortcut_target' => '#'
|
||||
),
|
||||
array(
|
||||
'menu_name' => 'Smaple 2',
|
||||
'is_shortcut' => 'Y',
|
||||
'shortcut_target' => '#'
|
||||
),
|
||||
array(
|
||||
'menu_name' => 'Smaple 3',
|
||||
'is_shortcut' => 'Y',
|
||||
'shortcut_target' => '#'
|
||||
)
|
||||
),
|
||||
),
|
||||
array(
|
||||
'menu_name' => 'XEIcon',
|
||||
'is_shortcut' => 'Y',
|
||||
'shortcut_target' => 'xeicon',
|
||||
'list' => array(
|
||||
array(
|
||||
'menu_name' => 'Sample 1',
|
||||
'is_shortcut' => 'Y',
|
||||
'shortcut_target' => '#'
|
||||
),
|
||||
array(
|
||||
'menu_name' => 'Smaple 2',
|
||||
'is_shortcut' => 'Y',
|
||||
'shortcut_target' => '#'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'menu_name' => 'Board',
|
||||
'is_shortcut' => 'Y',
|
||||
'shortcut_target' => 'board',
|
||||
'list' => array(
|
||||
array(
|
||||
'menu_name' => 'Sample 1',
|
||||
'is_shortcut' => 'Y',
|
||||
'shortcut_target' => '#'
|
||||
)
|
||||
)
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
function __makeMenu(&$list, $parent_srl)
|
||||
{
|
||||
return $output;
|
||||
$oMenuAdminController = getAdminController('menu');
|
||||
foreach($list as $idx => &$item)
|
||||
{
|
||||
Context::set('parent_srl', $parent_srl, TRUE);
|
||||
Context::set('menu_name', $item['menu_name'], TRUE);
|
||||
Context::set('module_type', $item['module_type'], TRUE);
|
||||
Context::set('module_id', $item['module_id'], TRUE);
|
||||
if($item['is_shortcut'] === 'Y')
|
||||
{
|
||||
Context::set('is_shortcut', $item['is_shortcut'], TRUE);
|
||||
Context::set('shortcut_target', $item['shortcut_target'], TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
Context::set('is_shortcut', 'N', TRUE);
|
||||
Context::set('shortcut_target', null, TRUE);
|
||||
}
|
||||
|
||||
$output = $oMenuAdminController->procMenuAdminInsertItem();
|
||||
if($output instanceof Object && !$output->toBool())
|
||||
{
|
||||
return $output;
|
||||
}
|
||||
$menu_srl = $oMenuAdminController->get('menu_item_srl');
|
||||
$item['menu_srl'] = $menu_srl;
|
||||
|
||||
if($item['list']) __makeMenu($item['list'], $menu_srl);
|
||||
}
|
||||
}
|
||||
$menuSrl = $output->get('menuSrl');
|
||||
|
||||
// make home menu cache
|
||||
$oMenuAdminController->makeHomemenuCacheFile($menuSrl);
|
||||
|
||||
// insertMenuItem
|
||||
// create 1depth menuitem
|
||||
|
||||
// adhoc...
|
||||
Context::set('parent_srl', $menuSrl, TRUE);
|
||||
Context::set('menu_name', 'Welcome Page', TRUE);
|
||||
Context::set('module_type', 'WIDGET', TRUE);
|
||||
$output = $oMenuAdminController->procMenuAdminInsertItem();
|
||||
if($output instanceof Object && !$output->toBool())
|
||||
// 사이트맵 생성
|
||||
foreach($sitemap as $id => &$val)
|
||||
{
|
||||
return $output;
|
||||
}
|
||||
$menuItemSrl = $oMenuAdminController->get('menu_item_srl');
|
||||
$output = $oMenuAdminController->addMenu($val['title']);
|
||||
if(!$output->toBool())
|
||||
{
|
||||
return $output;
|
||||
}
|
||||
$val['menu_srl'] = $output->get('menuSrl');
|
||||
|
||||
__makeMenu($val['list'], $val['menu_srl']);
|
||||
|
||||
$oMenuAdminController->makeHomemenuCacheFile($val['menu_srl']);
|
||||
}
|
||||
|
||||
|
||||
// create menu cache
|
||||
$oMenuAdminController->makeXmlFile($menuSrl);
|
||||
|
||||
// create Layout
|
||||
//extra_vars init
|
||||
$extra_vars = new stdClass;
|
||||
$extra_vars->GNB = $menuSrl;
|
||||
$extra_vars->LNB = $menuSrl;
|
||||
$extra_vars->SNB = $menuSrl;
|
||||
$extra_vars->FNB = $menuSrl;
|
||||
$extra_vars = new stdClass();
|
||||
$extra_vars->GNB = $sitemap['GNB']['menu_srl'];
|
||||
$extra_vars->UNB = $simtemap['UNB']['menu_srl'];
|
||||
$extra_vars->FNB = $simtemap['FNB']['menu_srl'];
|
||||
$extra_vars->menu_name_list = array();
|
||||
$extra_vars->menu_name_list[$menuSrl] = 'Welcome menu';
|
||||
$extra_vars->menu_name_list[$sitemap['GNB']['menu_srl']] = 'Welcome menu';
|
||||
|
||||
$args = new stdClass;
|
||||
$args->site_srl = 0;
|
||||
$args = new stdClass();
|
||||
$layout_srl = $args->layout_srl = getNextSequence();
|
||||
$args->site_srl = 0;
|
||||
$args->layout = 'xedition';
|
||||
$args->title = 'xedition';
|
||||
$args->title = 'XEDITION';
|
||||
$args->layout_type = 'P';
|
||||
|
||||
$oLayoutAdminController = getAdminController('layout'); /* @var $oLayoutAdminController layoutAdminController */
|
||||
$oLayoutAdminController = getAdminController('layout');
|
||||
$output = $oLayoutAdminController->insertLayout($args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// update Layout
|
||||
// update Layout (PC)
|
||||
$args->extra_vars = serialize($extra_vars);
|
||||
$output = $oLayoutAdminController->updateLayout($args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
|
@ -64,23 +207,26 @@ $mlayout_srl = $args->layout_srl = getNextSequence();
|
|||
$args->layout = 'default';
|
||||
$args->title = 'welcome_mobile_layout';
|
||||
$args->layout_type = 'M';
|
||||
$extra_vars->main_menu = $sitemap['GNB']['menu_srl'];
|
||||
|
||||
$output = $oLayoutAdminController->insertLayout($args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// update Layout
|
||||
// update mobile Layout
|
||||
$args->extra_vars = serialize($extra_vars);
|
||||
$output = $oLayoutAdminController->updateLayout($args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
|
||||
$siteDesignPath = _XE_PATH_.'files/site_design/';
|
||||
FileHandler::makeDir($siteDesignPath);
|
||||
|
||||
|
||||
$designInfo = new stdClass();
|
||||
$designInfo->layout_srl = $layout_srl;
|
||||
$designInfo->mlayout_srl = $mlayout_srl;
|
||||
|
||||
$moduleList = array('page');
|
||||
$moduleList = array('page', 'board', 'editor');
|
||||
$moutput = ModuleHandler::triggerCall('menu.getModuleListInSitemap', 'after', $moduleList);
|
||||
if($moutput->toBool())
|
||||
{
|
||||
|
|
@ -97,16 +243,18 @@ foreach($skinTypes as $key => $dir)
|
|||
$skinType = $key == 'skin' ? 'P' : 'M';
|
||||
foreach($moduleList as $moduleName)
|
||||
{
|
||||
$designInfo->module->{$moduleName} = new stdClass;
|
||||
$designInfo->module->{$moduleName} = new stdClass();
|
||||
$designInfo->module->{$moduleName}->{$key} = $oModuleModel->getModuleDefaultSkin($moduleName, $skinType, 0, false);
|
||||
}
|
||||
}
|
||||
$designInfo->module->board->skin = 'xedition';
|
||||
$designInfo->module->editor->skin = 'ckeditor';
|
||||
|
||||
$oAdminController = getAdminController('admin'); /* @var $oAdminController adminAdminController */
|
||||
$oAdminController->makeDefaultDesignFile($designInfo, 0);
|
||||
|
||||
// create page content
|
||||
$moduleInfo = $oModuleModel->getModuleInfoByMenuItemSrl($menuItemSrl);
|
||||
$moduleInfo = $oModuleModel->getModuleInfoByMenuItemSrl($sitemap['GNB']['list'][0]['menu_srl']);
|
||||
$module_srl = $moduleInfo->module_srl;
|
||||
|
||||
// insert PageContents - widget
|
||||
|
|
@ -115,7 +263,7 @@ $oTemplateHandler = TemplateHandler::getInstance();
|
|||
$oDocumentModel = getModel('document'); /* @var $oDocumentModel documentModel */
|
||||
$oDocumentController = getController('document'); /* @var $oDocumentController documentController */
|
||||
|
||||
$obj = new stdClass;
|
||||
$obj = new stdClass();
|
||||
|
||||
$obj->member_srl = $logged_info->member_srl;
|
||||
$obj->user_id = htmlspecialchars_decode($logged_info->user_id);
|
||||
|
|
@ -149,10 +297,38 @@ $output = $oModuleController->updateModule($module_info);
|
|||
if(!$output->toBool()) return $output;
|
||||
|
||||
// insertFirstModule
|
||||
$site_args = new stdClass;
|
||||
$site_args = new stdClass();
|
||||
$site_args->site_srl = 0;
|
||||
$site_args->index_module_srl = $module_srl;
|
||||
$oModuleController->updateSite($site_args);
|
||||
|
||||
|
||||
// XEIcon page
|
||||
$moduleInfo = $oModuleModel->getModuleInfoByMenuItemSrl($sitemap['GNB']['list'][1]['menu_srl']);
|
||||
$xeicon_module_srl = $moduleInfo->module_srl;
|
||||
|
||||
$xeicon_document_srl = array();
|
||||
for($i = 1; $i <=4; $i++)
|
||||
{
|
||||
unset($obj->document_srl);
|
||||
$obj->title = "XEIcon ({$i})";
|
||||
$obj->content = $oTemplateHandler->compile(_XE_PATH_ . 'modules/install/script/xeicon_content', 'xeicon_content_ko_' . $i);
|
||||
|
||||
$output = $oDocumentController->insertDocument($obj, true);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$xeicon_document_srl[$i] = $output->get('document_srl');
|
||||
}
|
||||
|
||||
// save PageWidget
|
||||
$oModuleController = getController('module'); /* @var $oModuleController moduleController */
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($xeicon_module_srl);
|
||||
$module_info->content = '<div widget="widgetBox" style="float:left;width:100%;" widget_padding_left="0" widget_padding_right="0" widget_padding_top="0" widget_padding_bottom="0" css_class="XEicon" ><div><div><img hasContent="true" class="zbxe_widget_output" widget="widgetContent" style="float:left;padding:none;margin:none;width:100%;" document_srl="'.$xeicon_document_srl[1].'" widget_padding_left="0" widget_padding_right="0" widget_padding_top="0" widget_padding_bottom="0" /><img hasContent="true" class="zbxe_widget_output" widget="widgetContent" style="float:left;padding:none;margin:none;width:100%;" document_srl="'.$xeicon_document_srl[2].'" widget_padding_left="0" widget_padding_right="0" widget_padding_top="0" widget_padding_bottom="0" /><img hasContent="true" class="zbxe_widget_output" widget="widgetContent" style="float:left;padding:none;margin:none;width:100%;" document_srl="'.$xeicon_document_srl[3].'" widget_padding_left="0" widget_padding_right="0" widget_padding_top="0" widget_padding_bottom="0" /><img hasContent="true" class="zbxe_widget_output" widget="widgetContent" style="float:left;padding:none;margin:none;width:100%;" document_srl="'.$xeicon_document_srl[4].'" widget_padding_left="0" widget_padding_right="0" widget_padding_top="0" widget_padding_bottom="0" /></div></div></div>';
|
||||
$output = $oModuleController->updateModule($module_info);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
|
||||
// create menu cache
|
||||
$oMenuAdminController->makeXmlFile($menuSrl);
|
||||
|
||||
/* End of file ko.install.php */
|
||||
/* Location: ./modules/install/script/ko.install.php */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue