git-svn-id: http://xe-core.googlecode.com/svn/sandbox@2327 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2007-08-12 03:59:52 +00:00
commit 8326004cb2
2773 changed files with 91485 additions and 0 deletions

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<module version="0.1">
<title xml:lang="ko">페이지</title>
<title xml:lang="zh-CN">页面</title>>
<title xml:lang="jp">ページ</title>
<title xml:lang="en">Page</title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="jp">Zero</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">페이지를 제작하여 컨텐츠로 연결할 수 있는 모듈</description>
<description xml:lang="zh-CN">制作页面并能连接到内容区的模块。</description>
<description xml:lang="jp">ページを作成してコンテンツとしてリンクできるようにするためのモジュールです。</description>
<description xml:lang="en">This module is for creating pages to link with contents.</description>
</author>
</module>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<module>
<grants />
<actions>
<action name="dispPageIndex" type="view" index="true" />
<action name="dispPageAdminContent" type="view" admin_index="true" standalone="true" />
<action name="dispPageAdminModuleConfig" type="view" standalone="true" />
<action name="dispPageAdminInfo" type="view" standalone="true" />
<action name="dispPageAdminInsert" type="view" standalone="true" />
<action name="dispPageAdminDelete" type="view" standalone="true" />
<action name="dispPageAdminContentModify" type="view" standalone="true" />
<action name="procPageAdminRemoveWidgetCache" type="controller" standalone="true" />
<action name="procPageAdminInsert" type="controller" standalone="true" />
<action name="procPageAdminDelete" type="controller" standalone="true" />
<action name="procPageAdminInsertConfig" type="controller" standalone="true" />
</actions>
</module>

View file

@ -0,0 +1,11 @@
<?php
/**
* @file modules/page/lang/en.lang.php
* @author zero (zero@nzeo.com)
* @brief page module / basic language pack
**/
$lang->page = "Page";
$lang->about_page = "It is a blog module which you can create a complete page.\nUsing latest or other widgets, you can create a dynamic page. Through the editor component, you can also create a great variety of pages.\nIts URL is same as other module's such as mid=module name.\n If it is selected as a default, it will be the main page of the site.";
$lang->cmd_page_modify = "Modify";
?>

View file

@ -0,0 +1,11 @@
<?php
/**
* @file jp.lang.php
* @author zero (zero@nzeo.com) 翻訳RisaPapa
* @brief ページpageモジュールの基本言語パッケージ
**/
$lang->page = "ページ";
$lang->about_page = "完成されたひとつのページが作成できるブログモジュールです。最近の書き込みやウィジェットを用いて動的なページが作成でき、エディターのコンポネントで様々な形でデザインできます。接続URLは、他のモジュールと同じく、「mid=モジュール名」で接続ができ、デフォルトで選択するとメインページが表示されます。";
$lang->cmd_page_modify = "ページ修正";
?>

View file

@ -0,0 +1,11 @@
<?php
/**
* @file ko.lang.php
* @author zero (zero@nzeo.com)
* @brief 페이지(page) 모듈의 기본 언어팩
**/
$lang->page = "페이지";
$lang->about_page = "하나의 완성된 페이지를 제작할 수 있는 페이지 모듈입니다.\n최근게시물이나 기타 위젯을 이용해서 동적인 페이지 생성이 가능하고 에디터 컴포넌트를 통해서 다양한 모습으로 꾸밀 수 있습니다.\n접속 URL은 다른 모듈처 mid=모듈이름 으로 접속이 가능하며 기본으로 선택하면 접속시 메인 페이지가 됩니다";
$lang->cmd_page_modify = "페이지 수정";
?>

View file

@ -0,0 +1,11 @@
<?php
/**
* @file zh-CN.lang.php
* @author zero (zero@nzeo.com)
* @brief 页面(page) 模块基本语言包
**/
$lang->page = "页面";
$lang->about_page = "可制作完整页面的模块。\n利用最新主题列表或其他控件可以生成动态的页面,且通过网页编辑器做出形式多样的页面。\n连接页面URL同其他模块链接相同。即mid=模块名称。选择默认选项此页面将变为首页。";
$lang->cmd_page_modify = "页面编辑";
?>

View file

@ -0,0 +1,153 @@
<?php
/**
* @class pageAdminController
* @author zero (zero@nzeo.com)
* @brief page 모듈의 admin controller class
**/
class pageAdminController extends page {
/**
* @brief 초기화
**/
function init() {
}
/**
* @brief 페이지 추가
**/
function procPageAdminInsert() {
// 일단 입력된 값들을 모두 받아서 db 입력항목과 그외 것으로 분리
$args = Context::gets('module_srl','module_category_srl','page_name','browser_title','is_default','layout_srl','content');
$args->module = 'page';
$args->mid = $args->page_name;
if(!$args->content) $args->content = $content;
else unset($args->conetnt);
unset($args->page_name);
if($args->is_default!='Y') $args->is_default = 'N';
// module_srl이 넘어오면 원 모듈이 있는지 확인
if($args->module_srl) {
$oModuleModel = &getModel('module');
$module_info = $oModuleModel->getModuleInfoByModuleSrl($args->module_srl);
}
// module 모듈의 controller 객체 생성
$oModuleController = &getController('module');
// is_default=='Y' 이면
if($args->is_default=='Y') $oModuleController->clearDefaultModule();
// module_srl의 값에 따라 insert/update
if($module_info->module_srl != $args->module_srl) {
$output = $oModuleController->insertModule($args);
$msg_code = 'success_registed';
} else {
$output = $oModuleController->updateModule($args);
$msg_code = 'success_updated';
}
if(!$output->toBool()) return $output;
$this->add("module_srl", $args->module_srl);
$this->add("page", Context::get('page'));
$this->setMessage($msg_code);
}
/**
* @brief 페이지 삭제
**/
function procPageAdminDelete() {
$module_srl = Context::get('module_srl');
// 원본을 구해온다
$oModuleController = &getController('module');
$output = $oModuleController->deleteModule($module_srl);
if(!$output->toBool()) return $output;
$this->add('module','page');
$this->add('page',Context::get('page'));
$this->setMessage('success_deleted');
}
/**
* @brief 페이지 기본 정보의 추가
**/
function procPageAdminInsertConfig() {
// 기본 정보를 받음
$args = Context::gets('test');
// module Controller 객체 생성하여 입력
$oModuleController = &getController('module');
$output = $oModuleController->insertModuleConfig('page',$args);
return $output;
}
/**
* @brief 첨부파일 업로드
**/
function procUploadFile() {
// 기본적으로 필요한 변수 설정
$upload_target_srl = Context::get('upload_target_srl');
$module_srl = Context::get('module_srl');
// file class의 controller 객체 생성
$oFileController = &getController('file');
$output = $oFileController->insertFile($module_srl, $upload_target_srl);
// 첨부파일의 목록을 java script로 출력
$oFileController->printUploadedFileList($upload_target_srl);
}
/**
* @brief 첨부파일 삭제
* 에디터에서 개별 파일 삭제시 사용
**/
function procDeleteFile() {
// 기본적으로 필요한 변수인 upload_target_srl, module_srl을 설정
$upload_target_srl = Context::get('upload_target_srl');
$module_srl = Context::get('module_srl');
$file_srl = Context::get('file_srl');
// file class의 controller 객체 생성
$oFileController = &getController('file');
if($file_srl) $output = $oFileController->deleteFile($file_srl, $this->grant->manager);
// 첨부파일의 목록을 java script로 출력
$oFileController->printUploadedFileList($upload_target_srl);
}
/**
* @brief 지정된 페이지의 위젯 캐시 파일 지우기
**/
function procPageAdminRemoveWidgetCache() {
$module_srl = Context::get('module_srl');
$oModuleModel = &getModel('module');
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
$content = $module_info->content;
// 언어 종류 가져옴
$lang_list = Context::get('lang_supported');
// 위젯 캐시 sequence 를 가져옴
preg_match_all('/widget_sequence="([0-9]+)"/i',$content, $matches);
$cache_path = './files/cache/widget_cache/';
for($i=0;$i<count($matches[1]);$i++) {
$sequence = $matches[1][$i];
for($j=0;$j<count($lang_list);$j++) {
$lang_type = $lang_list[$j];
$cache_file = sprintf('%s%d.%s.cache', $cache_path, $sequence, $lang_type);
@unlink($cache_file);
}
}
$this->setMessage('success_updated');
}
}
?>

View file

@ -0,0 +1,204 @@
<?php
/**
* @class pageAdminView
* @author zero (zero@nzeo.com)
* @brief page 모듈의 admin view 클래스
**/
class pageAdminView extends page {
var $module_srl = 0;
var $list_count = 20;
var $page_count = 10;
/**
* @brief 초기화
**/
function init() {
// module_srl이 있으면 미리 체크하여 존재하는 모듈이면 module_info 세팅
$module_srl = Context::get('module_srl');
// module model 객체 생성
$oModuleModel = &getModel('module');
// 모듈 카테고리 목록을 구함
$module_category = $oModuleModel->getModuleCategories();
Context::set('module_category', $module_category);
// 템플릿 경로 구함 (page의 경우 tpl에 관리자용 템플릿 모아놓음)
$this->setTemplatePath($this->module_path.'tpl');
}
/**
* @brief 페이지 관리 목록 보여줌
**/
function dispPageAdminContent() {
$args->sort_index = "module_srl";
$args->page = Context::get('page');
$args->list_count = 40;
$args->page_count = 10;
$args->s_module_category_srl = Context::get('module_category_srl');
$output = executeQuery('page.getPageList', $args);
// 템플릿에 쓰기 위해서 context::set
Context::set('total_count', $output->total_count);
Context::set('total_page', $output->total_page);
Context::set('page', $output->page);
Context::set('page_list', $output->data);
Context::set('page_navigation', $output->page_navigation);
// 템플릿 파일 지정
$this->setTemplateFile('index');
}
/**
* @brief 페이지에 필요한 기본 설정들
**/
function dispPageAdminModuleConfig() {
// 설정 정보를 받아옴 (module model 객체를 이용)
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('page');
Context::set('config',$config);
// 템플릿 파일 지정
$this->setTemplateFile('page_config');
}
/**
* @brief 선택된 페이지의 정보 출력
**/
function dispPageAdminInfo() {
// GET parameter에서 module_srl을 가져옴
$module_srl = Context::get('module_srl');
// module model 객체 생성
if($module_srl) {
$oModuleModel = &getModel('module');
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
if($module_info->module_srl == $module_srl) Context::set('module_info',$module_info);
else {
unset($module_info);
unset($module_srl);
}
}
// module_srl 값이 없다면 그냥 index 페이지를 보여줌
if(!$module_srl) return $this->dispPageAdminContent();
// 레이아웃이 정해져 있다면 레이아웃 정보를 추가해줌(layout_title, layout)
if($module_info->layout_srl) {
$oLayoutModel = &getModel('layout');
$layout_info = $oLayoutModel->getLayout($module_info->layout_srl);
$module_info->layout = $layout_info->layout;
$module_info->layout_title = $layout_info->layout_title;
}
// 레이아웃 목록을 구해옴
$oLayoutMode = &getModel('layout');
$layout_list = $oLayoutMode->getLayoutList();
Context::set('layout_list', $layout_list);
// 템플릿 파일 지정
$this->setTemplateFile('page_info');
}
/**
* @brief 페이지 추가 출력
**/
function dispPageAdminInsert() {
// GET parameter에서 module_srl을 가져옴
$module_srl = Context::get('module_srl');
// module_srl이 있으면 해당 모듈의 정보를 구해서 세팅
if($module_srl) {
$oModuleModel = &getModel('module');
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
if($module_info->module_srl == $module_srl) Context::set('module_info',$module_info);
else {
unset($module_info);
unset($module_srl);
}
}
// module_srl이 없으면 sequence값으로 미리 구해 놓음
if(!$module_srl) $module_srl = getNextSequence();
Context::set('module_srl',$module_srl);
// 레이아웃 목록을 구해옴
$oLayoutMode = &getModel('layout');
$layout_list = $oLayoutMode->getLayoutList();
Context::set('layout_list', $layout_list);
// 템플릿 파일 지정
$this->setTemplateFile('page_insert');
}
/**
* @brief 페이지 내용 수정
**/
function dispPageAdminContentModify() {
// GET parameter에서 module_srl을 가져옴
$module_srl = Context::get('module_srl');
// module_srl이 있으면 해당 모듈의 정보를 구해서 세팅
if($module_srl) {
$oModuleModel = &getModel('module');
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
if($module_info->module_srl == $module_srl) Context::set('module_info',$module_info);
else {
unset($module_info);
unset($module_srl);
}
}
// module_srl이 없으면 sequence값으로 미리 구해 놓음
if(!$module_srl) $module_srl = getNextSequence();
Context::set('module_srl',$module_srl);
// 위젯 목록을 세팅
$oWidgetModel = &getModel('widget');
$widget_list = $oWidgetModel->getDownloadedWidgetList();
Context::set('widget_list', $widget_list);
// 에디터 모듈의 getEditor를 호출하여 세팅
$oEditorModel = &getModel('editor');
$option->allow_fileupload = true;
$option->enable_autosave = false;
$option->enable_default_component = true;
$option->enable_component = true;
$option->resizable = true;
$option->height = 600;
$editor = $oEditorModel->getEditor($module_srl, $option);
Context::set('editor', $editor);
// 레이아웃 목록을 구해옴
$oLayoutMode = &getModel('layout');
$layout_list = $oLayoutMode->getLayoutList();
Context::set('layout_list', $layout_list);
// 템플릿 파일 지정
$this->setTemplateFile('page_content_modify');
}
/**
* @brief 페이지 삭제 화면 출력
**/
function dispPageAdminDelete() {
$module_srl = Context::get('module_srl');
if(!$module_srl) return $this->dispContent();
$oModuleModel = &getModel('module');
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
Context::set('module_info',$module_info);
// 템플릿 파일 지정
$this->setTemplateFile('page_delete');
}
}
?>

View file

@ -0,0 +1,44 @@
<?php
/**
* @class page
* @author zero (zero@nzeo.com)
* @brief page 모듈의 high class
**/
class page extends ModuleObject {
/**
* @brief 설치시 추가 작업이 필요할시 구현
**/
function moduleInstall() {
// action forward에 등록 (관리자 모드에서 사용하기 위함)
$oModuleController = &getController('module');
$oModuleController->insertActionForward('page', 'view', 'dispPageIndex');
$oModuleController->insertActionForward('page', 'view', 'dispPageAdminContent');
$oModuleController->insertActionForward('page', 'view', 'dispPageAdminModuleConfig');
$oModuleController->insertActionForward('page', 'view', 'dispPageAdminInfo');
$oModuleController->insertActionForward('page', 'view', 'dispPageAdminInsert');
$oModuleController->insertActionForward('page', 'view', 'dispPageAdminDelete');
// page 에서 사용할 cache디렉토리 생성
FileHandler::makeDir('./files/cache/page');
return new Object();
}
/**
* @brief 설치가 이상이 없는지 체크하는 method
**/
function checkUpdate() {
return false;
}
/**
* @brief 업데이트 실행
**/
function moduleUpdate() {
return new Object();
}
}
?>

View file

@ -0,0 +1,36 @@
<?php
/**
* @class pageView
* @author zero (zero@nzeo.com)
* @brief page 모듈의 view 클래스
**/
class pageView extends page {
var $module_srl = 0;
var $list_count = 20;
var $page_count = 10;
/**
* @brief 초기화
**/
function init() {
// 템플릿 경로 구함 (page의 경우 tpl에 관리자용 템플릿 모아놓음)
$this->setTemplatePath($this->module_path.'tpl');
}
/**
* @brief 일반 요청시 출력
**/
function dispPageIndex() {
// 템플릿에서 사용할 변수를 Context::set()
if($this->module_srl) Context::set('module_srl',$this->module_srl);
Context::set('module_info', $this->module_info);
Context::set('page_content', $this->module_info->content);
$this->setTemplateFile('content');
}
}
?>

View file

@ -0,0 +1,24 @@
<query id="getPageList" action="select">
<tables>
<table name="modules" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="equal" column="module" default="page" />
<group pipe="and">
<condition operation="like" column="mid" var="s_mid" pipe="or" />
<condition operation="like" column="title" var="s_title" pipe="or" />
<condition operation="like" column="comment" var="s_comment" pipe="or" />
<condition operation="equal" column="module" var="s_module" pipe="or" />
<condition operation="equal" column="module_category_srl" var="s_module_category_srl" pipe="or" />
</group>
</conditions>
<navigation>
<index var="sort_index" default="module_srl" order="desc" />
<list_count var="list_count" default="20" />
<page_count var="page_count" default="10" />
<page var="page" default="1" />
</navigation>
</query>

View file

@ -0,0 +1,10 @@
{$page_content}
<!--@if($grant->is_admin)-->
<!--%import("./js/page_admin.js")-->
<div class="tRight gap1 clear">
<a href="#" onclick="doRemoveWidgetCache({$module_info->module_srl}); return false;" class="button"><span>{$lang->cmd_remake_cache}</span></a>
<a href="{getUrl('act','dispPageAdminInfo','module_srl',$module_info->module_srl)}" class="button"><span>{$lang->cmd_setup}</span></a>
<a href="{getUrl('','module','page','act','dispPageAdminContentModify','module_srl',$module_info->module_srl)}" onclick="window.open(this.href,'PageEdit','width=850,height=650,scrollbars=yes,resizable=yes,toolbars=no');return false;" class="button"><span>{$lang->cmd_page_modify}</span></a>
</div>
<!--@end-->

View file

@ -0,0 +1,6 @@
@charset "utf-8";
h3 { margin:0 10px 0 10px; }
.widget_list { margin:10px; }
.widget_list a { margin-bottom:10px; }
.editor_box { margin:0 10px 10px 10px; }
.button_box { float:right; overflow:hidden; }

View file

@ -0,0 +1,10 @@
<filter name="delete_page" module="page" act="procPageAdminDelete">
<form>
<node target="module_srl" required="true" />
</form>
<response callback_func="completeDeletePage">
<tag name="error" />
<tag name="message" />
<tag name="page" />
</response>
</filter>

View file

@ -0,0 +1,7 @@
<filter name="insert_config" module="page" act="procPageAdminInsertConfig" confirm_msg_code="confirm_submit">
<form />
<response>
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1,20 @@
<filter name="insert_page" module="page" act="procPageAdminInsert" confirm_msg_code="confirm_submit">
<form>
<node target="mid" required="true" filter="alpha_number" />
<node target="browser_title" required="true" maxlength="250" />
</form>
<parameter>
<param name="page_name" target="mid" />
<param name="module_srl" target="module_srl" />
<param name="module_category_srl" target="module_category_srl" />
<param name="layout_srl" target="layout_srl" />
<param name="browser_title" target="browser_title" />
<param name="is_default" target="is_default" />
</parameter>
<response callback_func="completeInsertPage">
<tag name="error" />
<tag name="message" />
<tag name="module_srl" />
<tag name="page" />
</response>
</filter>

View file

@ -0,0 +1,22 @@
<filter name="insert_page_content" module="page" act="procPageAdminInsert" confirm_msg_code="confirm_submit">
<form>
<node target="mid" required="true" filter="alpha_number" />
<node target="browser_title" required="true" maxlength="250" />
<node target="content" required="true" />
</form>
<parameter>
<param name="page_name" target="mid" />
<param name="module_srl" target="module_srl" />
<param name="module_category_srl" target="module_category_srl" />
<param name="layout_srl" target="layout_srl" />
<param name="content" target="content" />
<param name="browser_title" target="browser_title" />
<param name="is_default" target="is_default" />
</parameter>
<response callback_func="completeInsertPageContent">
<tag name="error" />
<tag name="message" />
<tag name="module_srl" />
<tag name="page" />
</response>
</filter>

View file

@ -0,0 +1,3 @@
<!--%import("js/blog_admin.js")-->
<!--%import("js/page_admin.js")-->
<h3>{$lang->page} <span class="gray">{$lang->cmd_management}</span></h3>

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 B

View file

@ -0,0 +1,79 @@
<!--%import("js/page_admin.js")-->
<!--#include("header.html")-->
<div class="infoText">{nl2br($lang->about_page)}</div>
<!-- 정보 -->
<div class="tableSummaryType1">
Total <strong>{number_format($total_count)}</strong>, Page <strong>{number_format($page)}</strong>/{number_format($total_page)}
</div>
<!-- 목록 -->
<table cellspacing="0" class="tableType1">
<thead>
<tr>
<th scope="col">{$lang->no}</th>
<th scope="col">
<form action="./" method="get" onsubmit="return doChangeCategory(this);">
<input type="hidden" name="module" value="{$module}" />
<input type="hidden" name="act" value="{$act}" />
<select name="module_category_srl">
<option value="">{$lang->module_category}</option>
<!--@foreach($module_category as $key => $val)-->
<option value="{$key}" <!--@if($module_category_srl==$key)-->selected="selected"<!--@end-->>{$val->title}</option>
<!--@end-->
<option value="">---------</option>
<option value="-1">{$lang->cmd_management}</option>
</select>
<span class="button"><input type="submit" name="go_button" id="go_button" value="GO" /></span>
</form>
</th>
<th scope="col">{$lang->mid}</th>
<th scope="col">{$lang->browser_title}</th>
<th scope="col">{$lang->is_default}</th>
<th scope="col">{$lang->regdate}</th>
<th scope="col">{$lang->cmd_view}</th>
<th scope="col">{$lang->cmd_delete}</th>
</tr>
</thead>
<tbody>
<!--@foreach($page_list as $no => $val)-->
<tr>
<td class="tahoma">{$no}</td>
<td>
<!--@if(!$val->module_category_srl)-->
{$lang->not_exists}
<!--@else-->
{$module_category[$val->module_category_srl]->title}
<!--@end-->
</td>
<td><a href="{getUrl('act','dispPageAdminInfo','module_srl',$val->module_srl)}" class="blue">{$val->mid}</a></td>
<td>{$val->browser_title}</td>
<td class="tahoma">{$val->is_default}</td>
<td class="tahoma">{zdate($val->regdate,"Y-m-d")}</td>
<td class="blue"><a href="./?mid={$val->mid}" target="_blank">{$lang->cmd_view}</a></td>
<td class="red"><!--@if($val->is_default!='Y')--><a href="{getUrl('act','dispPageAdminDelete','module_srl', $val->module_srl)}">{$lang->cmd_delete}</a><!--@end--></td>
</tr>
<!--@end-->
</tbody>
</table>
<!-- 버튼 -->
<div class="fr gap1">
<a href="{getUrl('act','dispPageAdminInsert','module_srl','')}" class="button"><span>{$lang->cmd_make}</span></a>
</div>
<!-- 페이지 네비게이션 -->
<div class="pageNavigation">
<a href="{getUrl('page','','module_srl','')}" class="goToFirst"><img src="../../admin/tpl/images/bottomGotoFirst.gif" alt="{$lang->first_page}" width="7" height="5" /></a>
<!--@while($page_no = $page_navigation->getNextPage())-->
<!--@if($page == $page_no)-->
<span class="current">{$page_no}</span>
<!--@else-->
<a href="{getUrl('page',$page_no,'module_srl','')}">{$page_no}</a>
<!--@end-->
<!--@end-->
<a href="{getUrl('page',$page_navigation->last_page,'module_srl','')}" class="goToLast"><img src="../../admin/tpl/images/bottomGotoLast.gif" alt="{$lang->last_page}" width="7" height="5" /></a>
</div>

View file

@ -0,0 +1,85 @@
/**
* @file modules/page/js/page_admin.js
* @author zero (zero@nzeo.com)
* @brief page모듈의 관리자용 javascript
**/
/* 모듈 생성 후 */
function completeInsertPage(ret_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
var page = ret_obj['page'];
var module_srl = ret_obj['module_srl'];
alert(message);
var url = '';
if(location.href.getQuery('module')=='admin') {
url = current_url.setQuery('module_srl',module_srl).setQuery('act','dispPageAdminInfo');
if(page) url = url.setQuery('page',page);
} else {
url = current_url.setQuery('act','').setQuery('module_srl','');
}
location.href = url;
}
/* 내용 저장 후 */
function completeInsertPageContent(ret_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
var page = ret_obj['page'];
var module_srl = ret_obj['module_srl'];
alert(message);
var url = '';
if(location.href.getQuery('module')=='admin') {
url = current_url.setQuery('module_srl',module_srl).setQuery('act','dispPageAdminInfo');
if(page) url = url.setQuery('page',page);
} else {
url = current_url.setQuery('act','').setQuery('module_srl','');
}
if(opener) opener.location.reload();
window.close();
}
/* 모듈 삭제 후 */
function completeDeletePage(ret_obj) {
var error = ret_obj['error'];
var message = ret_obj['message'];
var page = ret_obj['page'];
alert(message);
var url = current_url.setQuery('act','dispPageAdminContent');
if(page) url = url.setQuery('page',page);
location.href = url;
}
/* 카테고리 이동 */
function doChangeCategory(fo_obj) {
var module_category_srl = fo_obj.module_category_srl.options[fo_obj.module_category_srl.selectedIndex].value;
if(module_category_srl==-1) {
location.href = current_url.setQuery('act','dispModuleAdminCategory');
return false;
}
return true;
}
/* 위젯 재컴파일 */
function doRemoveWidgetCache(module_srl) {
var params = new Array();
params["module_srl"] = module_srl;
exec_xml('page', 'procPageAdminRemoveWidgetCache', params, completeRemoveWidgetCache);
}
function completeRemoveWidgetCache(ret_obj) {
var message = ret_obj['message'];
alert(message);
location.reload();
}

View file

@ -0,0 +1,18 @@
<!--%import("filter/insert_config.xml")-->
<form action="./" method="get" onsubmit="return procFilter(this, insert_config)">
<table border="1">
<tr>
<th rowspan="2">{$lang->test}</th>
<td><input type="text" name="test" value="{$config->test}" /></td>
</tr>
<tr>
<td>{$lang->about_test}</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="{$lang->cmd_registration}" accesskey="s" />
</td>
</tr>
</table>
</form>

View file

@ -0,0 +1,41 @@
<!--%import("filter/insert_page_content.xml")-->
<!--%import("js/page_admin.js")-->
<!--%import("css/page.css")-->
<!--#include("header.html")-->
<form action="./" method="post" onsubmit="return procFilter(this, insert_page_content)" enctype="multipart/form-data">
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="module_srl" value="{$module_srl}" />
<input type="hidden" name="content" value="{htmlspecialchars($module_info->content)}" />
<!--@if($module_info->is_default=='Y')-->
<input type="hidden" name="is_default" value="Y" />
<!--@end-->
<input type="hidden" name="mid" value="{$module_info->mid}" />
<input type="hidden" name="module_category_srl" value="{$module_info->module_category_srl}" />
<input type="hidden" name="browser_title" value="{$module_info->browser_title}" />
<input type="hidden" name="layout_srl" value="{$module_info->layout_srl}" />
<div class="widget_list">
<!--@foreach($widget_list as $widget)-->
<a href="{getUrl('','module','widget','act','dispWidgetGenerateCodeInPage','selected_widget',$widget->widget,'module_srl',$module_srl)}" onclick="popopen(this.href,'GenerateCodeInPage');return false;" class="button"><span>{$widget->title}</span></a>
<!--@end-->
</div>
<div class="button_box">
<span class="button"><input type="button" value="{$lang->cmd_preview}" onclick="doDocumentPreview(this); return false;" /></span>
<span class="button"><input type="submit" value="{$lang->cmd_save}" accesskey="s" /></span>
<span class="button"><input type="button" value="{$lang->cmd_close}" onclick="window.close(); return false;" /></span>
</div>
<div class="clear"></div>
<div class="editor_box">{$editor}</div>
<div class="button_box">
<span class="button"><input type="button" value="{$lang->cmd_preview}" onclick="doDocumentPreview(this); return false;" /></span>
<span class="button"><input type="submit" value="{$lang->cmd_save}" accesskey="s" /></span>
<span class="button"><input type="button" value="{$lang->cmd_close}" onclick="window.close(); return false;" /></span>
</div>
<div class="clear"></div>
</form>

View file

@ -0,0 +1,31 @@
<!--%import("filter/delete_page.xml")-->
<!--%import("js/page_admin.js")-->
<!--#include("header.html")-->
<form action="./" method="get" onsubmit="return procFilter(this, delete_page)">
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="module_srl" value="{$module_info->module_srl}" />
<table cellspacing="0" class="tableType4">
<col width="150" />
<col />
<tr>
<th scope="row" colspan="2">{$lang->confirm_delete}</th>
</tr>
<tr>
<th scope="row">{$lang->module_name}</th>
<td>{$module_info->mid}</td>
</tr>
<tr>
<th scope="row">{$lang->module}</th>
<td>{$module_info->module}</td>
</tr>
</table>
<div class="tRight gap1">
<a href="{getUrl('act','dispPageAdminContent')}" class="button"><span>{$lang->cmd_back}</span></a>
<span class="button"><input type="submit" value="{$lang->cmd_delete}" /></span>
</div>
</form>

View file

@ -0,0 +1,80 @@
<!--%import("filter/insert_page.xml")-->
<!--#include("header.html")-->
<form action="./" method="post" onsubmit="return procFilter(this, insert_page)" enctype="multipart/form-data">
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="module_srl" value="{$module_srl}" />
<input type="hidden" name="content" value="{htmlspecialchars($module_info->content)}" />
<!--@if($module_info->is_default=='Y')-->
<input type="hidden" name="is_default" value="Y" />
<!--@end-->
<table cellspacing="0" class="tableType2">
<col width="150" />
<col />
<tr>
<th scope="row">{$lang->mid}</th>
<td>
<input type="text" name="mid" value="{$module_info->mid}" class="inputTypeText" />
<p>{$lang->about_mid}</p>
</td>
</tr>
<!--@if($module_info->is_default!='Y')-->
<tr>
<th scope="row">{$lang->is_default}</th>
<td>
<input type="checkbox" name="is_default" value="Y" <!--@if($module_info->is_default=='Y')-->checked="checked"<!--@end--> id="fld_for_default" class="checkbox" />
<label for="fld_for_default">{$lang->about_default}</label>
</td>
</tr>
<!--@end-->
<tr>
<th scope="row">{$lang->module_category}</th>
<td>
<select name="module_category_srl">
<option value="0">{$lang->notuse}</option>
<!--@foreach($module_category as $key => $val)-->
<option value="{$key}" <!--@if($module_info->module_category_srl==$key)-->selected="selected"<!--@end-->>{$val->title}</option>
<!--@end-->
</select>
<p>{$lang->about_module_category}</p>
</td>
</tr>
<tr>
<th scope="row">{$lang->browser_title}</th>
<td>
<input type="text" name="browser_title" value="{htmlspecialchars($module_info->browser_title)}" class="inputTypeText" />
<p>{$lang->about_browser_title}</p>
</td>
</tr>
<tr>
<th scope="row">{$lang->layout}</th>
<td>
<select name="layout_srl">
<option value="0">{$lang->notuse}</option>
<!--@foreach($layout_list as $key => $val)-->
<option value="{$val->layout_srl}" <!--@if($module_info->layout_srl==$val->layout_srl)-->selected="selected"<!--@end-->>{$val->title} ({$val->layout})</option>
<!--@end-->
</select>
<p>{$lang->about_layout}</p>
</td>
</tr>
<tr>
<td colspan="2" class="tRight">
<span class="button"><input type="submit" value="{$lang->cmd_save}" accesskey="s" /></span>
<a href="{getUrl('module','page','act','dispPageAdminContentModify','module_srl',$module_info->module_srl)}" onclick="window.open(this.href,'PageEdit','width=850,height=650,scrollbars=yes,resizable=yes,toolbars=no');return false;" class="button"><span>{$lang->cmd_page_modify}</span></a>
<!--@if($module=="admin")-->
<a href="{getUrl('act','dispPageAdminContent','module_srl','')}" class="button"><span>{$lang->cmd_list}</span></a>
<!--@else-->
<a href="{getUrl('act','')}" class="button"><span>{$lang->cmd_back}</span></a>
<!--@end-->
</td>
<tr>
<th colspan="2">{$lang->content}</th>
</tr>
<tr>
<td colspan="2">{$module_info->content}</td>
</tr>
</table>
</form>

View file

@ -0,0 +1,67 @@
<!--%import("filter/insert_page.xml")-->
<!--#include("header.html")-->
<form action="./" method="post" onsubmit="return procFilter(this, insert_page)" enctype="multipart/form-data">
<input type="hidden" name="page" value="{$page}" />
<input type="hidden" name="module_srl" value="{$module_srl}" />
<!--@if($module_info->is_default=='Y')-->
<input type="hidden" name="is_default" value="Y" />
<!--@end-->
<table cellspacing="0" class="tableType2">
<col width="150" />
<col />
<tr>
<th scope="row">{$lang->mid}</th>
<td>
<input type="text" name="mid" value="{$module_info->mid}" class="inputTypeText" />
<p>{$lang->about_mid}</p>
</td>
</tr>
<!--@if($module_info->is_default!='Y')-->
<tr>
<th scope="row">{$lang->is_default}</th>
<td>
<input type="checkbox" name="is_default" value="Y" <!--@if($module_info->is_default=='Y')-->checked="checked"<!--@end--> id="fld_for_default" class="checkbox" />
<label for="fld_for_default">{$lang->about_default}</label>
</td>
</tr>
<!--@end-->
<tr>
<th scope="row">{$lang->module_category}</th>
<td>
<select name="module_category_srl">
<option value="0">{$lang->notuse}</option>
<!--@foreach($module_category as $key => $val)-->
<option value="{$key}" <!--@if($module_info->module_category_srl==$key)-->selected="selected"<!--@end-->>{$val->title}</option>
<!--@end-->
</select>
<p>{$lang->about_module_category}</p>
</td>
</tr>
<tr>
<th scope="row">{$lang->browser_title}</th>
<td>
<input type="text" name="browser_title" value="{htmlspecialchars($module_info->browser_title)}" class="inputTypeText" />
<p>{$lang->about_browser_title}</p>
</td>
</tr>
<tr>
<th scope="row">{$lang->layout}</th>
<td>
<select name="layout_srl">
<option value="0">{$lang->notuse}</option>
<!--@foreach($layout_list as $key => $val)-->
<option value="{$val->layout_srl}" <!--@if($module_info->layout_srl==$val->layout_srl)-->selected="selected"<!--@end-->>{$val->title} ({$val->layout})</option>
<!--@end-->
</select>
<p>{$lang->about_layout}</p>
</td>
</tr>
</table>
<div class="tRight gap1">
<span class="button"><input type="submit" value="{$lang->cmd_save}" accesskey="s" /></span>
</div>
</form>