mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-09 19:51:42 +09:00
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8253 201d5d3c-b55e-5fd7-737f-ddc643e51545
153 lines
5.4 KiB
PHP
153 lines
5.4 KiB
PHP
<?php
|
|
/**
|
|
* @class widgetView
|
|
* @author NHN (developers@xpressengine.com)
|
|
* @brief widget 모듈의 View class
|
|
**/
|
|
|
|
class widgetView extends widget {
|
|
|
|
/**
|
|
* @brief 초기화
|
|
**/
|
|
function init() {
|
|
$this->setTemplatePath($this->module_path.'tpl');
|
|
}
|
|
|
|
/**
|
|
* @brief 위젯의 상세 정보(conf/info.xml)를 팝업 출력
|
|
**/
|
|
function dispWidgetInfo() {
|
|
// 위젯 스킨명이 있을 경우 위젯 스킨 상세 정보 함수로 출력
|
|
if(Context::get('skin')) return $this->dispWidgetSkinInfo();
|
|
|
|
// 선택된 위젯 정보를 구함
|
|
$oWidgetModel = &getModel('widget');
|
|
$widget_info = $oWidgetModel->getWidgetInfo(Context::get('selected_widget'));
|
|
Context::set('widget_info', $widget_info);
|
|
|
|
// 위젯을 팝업으로 지정
|
|
$this->setLayoutFile('popup_layout');
|
|
|
|
// 템플릿 파일 지정
|
|
$this->setTemplateFile('widget_detail_info');
|
|
}
|
|
|
|
/**
|
|
* @brief 위젯 스킨의 상세 정보(skin.xml)를 팝업 출력
|
|
**/
|
|
function dispWidgetSkinInfo() {
|
|
$widget = Context::get('selected_widget');
|
|
$skin = Context::get('skin');
|
|
|
|
$path = sprintf('./widgets/%s/', $widget);
|
|
|
|
// 선택된 위젯 정보를 구함
|
|
$oModuleModel = &getModel('module');
|
|
$skin_info = $oModuleModel->loadSkinInfo($path, $skin);
|
|
|
|
Context::set('skin_info',$skin_info);
|
|
|
|
// 위젯을 팝업으로 지정
|
|
$this->setLayoutFile('popup_layout');
|
|
|
|
// 템플릿 파일 지정
|
|
$this->setTemplateFile('skin_info');
|
|
}
|
|
|
|
/**
|
|
* @brief 위젯의 코드 생성기
|
|
**/
|
|
function dispWidgetGenerateCode() {
|
|
// 선택된 위젯 정보를 구함
|
|
$oWidgetModel = &getModel('widget');
|
|
|
|
$widget_list = $oWidgetModel->getDownloadedWidgetList();
|
|
$selected_widget = Context::get('selected_widget');
|
|
if(!$selected_widget) $selected_widget = $widget_list[0]->widget;
|
|
|
|
$widget_info = $oWidgetModel->getWidgetInfo($selected_widget);
|
|
Context::set('widget_info', $widget_info);
|
|
Context::set('widget_list', $widget_list);
|
|
Context::set('selected_widget', $selected_widget);
|
|
|
|
$oModuleModel = &getModel('module');
|
|
|
|
// 모듈 카테고리 목록을 구함
|
|
$module_categories = $oModuleModel->getModuleCategories();
|
|
|
|
// mid 목록을 가져옴
|
|
$site_module_info = Context::get('site_module_info');
|
|
$args->site_srl = $site_module_info->site_srl;
|
|
$mid_list = $oModuleModel->getMidList($args);
|
|
|
|
// 그룹 목록을 가져옴
|
|
$oMemberModel = &getModel('member');
|
|
$group_list = $oMemberModel->getGroups($site_module_info->site_srl);
|
|
Context::set('group_list', $group_list);
|
|
|
|
// module_category와 module의 조합
|
|
if($module_categories) {
|
|
foreach($mid_list as $module_srl => $module) {
|
|
$module_categories[$module->module_category_srl]->list[$module_srl] = $module;
|
|
}
|
|
} else {
|
|
$module_categories[0]->list = $mid_list;
|
|
}
|
|
|
|
Context::set('mid_list',$module_categories);
|
|
|
|
// 메뉴 목록을 구함
|
|
$output = executeQueryArray('menu.getMenus');
|
|
Context::set('menu_list',$output->data);
|
|
|
|
|
|
// 스킨의 정보를 구함
|
|
$skin_list = $oModuleModel->getSkins($widget_info->path);
|
|
Context::set('skin_list', $skin_list);
|
|
|
|
// 위젯을 팝업으로 지정
|
|
$this->setLayoutFile('popup_layout');
|
|
|
|
// 템플릿 파일 지정
|
|
$this->setTemplateFile('widget_generate_code');
|
|
}
|
|
|
|
/**
|
|
* @brief 페이지 관리에서 사용될 코드 생성 팝업
|
|
**/
|
|
function dispWidgetGenerateCodeInPage() {
|
|
$oWidgetModel = &getModel('widget');
|
|
$widget_list = $oWidgetModel->getDownloadedWidgetList();
|
|
Context::set('widget_list',$widget_list);
|
|
|
|
// 선택된 위젯이 없을경우 첫 위젯으로
|
|
if(!Context::get('selected_widget')) Context::set('selected_widget',$widget_list[0]->widget);
|
|
|
|
$this->dispWidgetGenerateCode();
|
|
$this->setTemplateFile('widget_generate_code_in_page');
|
|
}
|
|
|
|
/**
|
|
* @brief 페이지 관리에서 사용될 위젯 스타일 코드 생성 팝업
|
|
**/
|
|
function dispWidgetStyleGenerateCodeInPage() {
|
|
|
|
// 위젯 스타일 목록
|
|
$oWidgetModel = &getModel('widget');
|
|
$widgetStyle_list = $oWidgetModel->getDownloadedWidgetStyleList();
|
|
Context::set('widgetStyle_list',$widgetStyle_list);
|
|
|
|
// 선택된 위젯 스타일 목록
|
|
$widgetstyle = Context::get('widgetstyle');
|
|
$widgetstyle_info = $oWidgetModel->getWidgetStyleInfo($widgetstyle);
|
|
if($widgetstyle && $widgetstyle_info){
|
|
Context::set('widgetstyle_info',$widgetstyle_info);
|
|
}
|
|
|
|
$this->dispWidgetGenerateCode();
|
|
$this->setLayoutFile('popup_layout');
|
|
$this->setTemplateFile('widget_style_generate_code_in_page');
|
|
}
|
|
}
|
|
?>
|