issue 49 add opage module and article type

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8491 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
devjin 2011-06-15 10:27:19 +00:00
parent f9b695f734
commit 3c313f80a9
31 changed files with 859 additions and 56 deletions

View file

@ -18,8 +18,8 @@
<description xml:lang="ru">Этот модуль служит для создания страниц, чтобы связать их с содержимым.</description>
<description xml:lang="zh-TW">製作頁面並連結內容的模組。</description>
<description xml:lang="tr">Bu modül içeriklere bağlanacak sayfaları oluşturmak içindir.</description>
<version>0.1</version>
<date>2007-02-28</date>
<version>0.2</version>
<date>2011-06-15</date>
<category>service</category>
<author email_address="developers@xpressengine.com" link="http://xpressengine.com/">

View file

@ -1,30 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<module>
<grants />
<permissions>
<permission action="procPageAdminRemoveWidgetCache" target="manager" />
<permission action="dispPageAdminContentModify" target="manager" />
<permission action="procPageAdminInsert" target="manager" />
<permission action="procPageAdminInsertContent" target="manager" />
</permissions>
<actions>
<action name="dispPageIndex" type="view" index="true" />
<action name="dispPageAdminContent" type="view" admin_index="true" standalone="true" />
<action name="dispPageAdminGrantInfo" type="view" standalone="true" />
<action name="dispPageAdminInfo" type="view" standalone="true" />
<action name="dispPageAdminPageAdditionSetup" type="view" standalone="true" />
<action name="dispPageAdminInsert" type="view" standalone="true" setup_index="true" />
<action name="dispPageAdminDelete" type="view" standalone="true" />
<action name="dispPageAdminContentModify" type="view" standalone="true" />
<action name="dispPageAdminAddContent" type="view" standalone="true" />
<action name="dispPageAdminMobileContentModify" type="view" standalone="true" />
<action name="dispPageAdminMobileContent" type="view" standalone="true" />
<module version="0.2">
<title xml:lang="ko">페이지</title>
<title xml:lang="zh-CN">页面管理</title>
<title xml:lang="jp">ページ</title>
<title xml:lang="en">Page</title>
<title xml:lang="vi">Trang</title>
<title xml:lang="es">Página</title>
<title xml:lang="ru">Страницы</title>
<title xml:lang="zh-TW">頁面</title>
<title xml:lang="tr">Sayfa</title>
<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>
<description xml:lang="vi">Module này dành cho việc tạo trang cho liên kết với nội dung.</description>
<description xml:lang="es">Este módulo is para crear página para enlazar con contenidos.</description>
<description xml:lang="ru">Этот модуль служит для создания страниц, чтобы связать их с содержимым.</description>
<description xml:lang="zh-TW">製作頁面並連結內容的模組。</description>
<description xml:lang="tr">Bu modül içeriklere bağlanacak sayfaları oluşturmak içindir.</description>
<version>0.2</version>
<date>2011-06-15</date>
<category>service</category>
<action name="procPageAdminRemoveWidgetCache" type="controller" standalone="true" />
<action name="procPageAdminInsert" type="controller" standalone="true" />
<action name="procPageAdminInsertContent" type="controller" standalone="true" />
<action name="procPageAdminDelete" type="controller" standalone="true" />
<action name="procPageAdminInsertConfig" type="controller" standalone="true" />
<action name="procPageAdminAddContent" type="controller" standalone="true" />
</actions>
<author email_address="developers@xpressengine.com" link="http://xpressengine.com/">
<name xml:lang="ko">NHN</name>
<name xml:lang="vi">NHN</name>
<name xml:lang="zh-CN">NHN</name>
<name xml:lang="jp">NHN</name>
<name xml:lang="en">NHN</name>
<name xml:lang="es">NHN</name>
<name xml:lang="ru">NHN</name>
<name xml:lang="zh-TW">NHN</name>
<name xml:lang="tr">NHN</name>
</author>
</module>

View file

@ -13,4 +13,18 @@
$lang->about_page_caching_interval = "The unit is minute, and it displays temporary saved data for assigned time.<br />It is recommended to cache for proper time if a lot of resources are needed when displaying other servers' data or information.<br />A value of 0 will not cache.";
$lang->about_mcontent = 'This is the page you will see from mobile devices. If you have not set this page, rearranged default page will be displayed.';
$lang->page_management = 'Page Management';
/* add merge opage + page type and article create */
$lang->page_type = '페이지 타입';
$lang->click_choice = '선택해 주세요.';
$lang->page_type_name = array('WIDGET' => '위젯'
,'ARTICLE' => 'Article'
,'OUTSIDE' => 'External Page');
$lang->about_page_type = '페이지 타입을 선택하여 원하는 화면을 구성할 수 있습니다. <ol><li>위젯형 : 여러가지 위젯들을 생성하여 화면을 구성합니다.</li><li>문서형 : 제목, 내용, 태그를 갖는 문서를 제작하여 포스팅 형식의 페이지를 작성합니다. </li><li>외부페이지형 : 외부HTML또는 PHP 파일을 XE에서 사용할 수 있습니다.</li></ol>';
$lang->opage_path = "Location of External Document";
$lang->about_opage = "This module enables to use external html or php files in XE.<br />It allows absolute or relative path, and if the url starts with 'http://' , it can display the external page of the server.";
$lang->about_opage_path= "Please input the location of external document.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
$lang->opage_mobile_path = 'Location of External Document for Mobile View';
$lang->about_opage_mobile_path= "Please input the location of external document for mobile view. If not inputted, it uses the external document specified above.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
?>

View file

@ -13,4 +13,18 @@
$lang->cmd_page_create = '페이지 생성';
$lang->about_mcontent = 'This is the page for the mobile view. If you do not write this page, the mobile view display reoragnized PC view\'s page.';
$lang->page_management = '페이지 관리';
/* add merge opage + page type and article create */
$lang->page_type = '페이지 타입';
$lang->click_choice = '선택해 주세요.';
$lang->page_type_name = array('WIDGET' => '위젯'
,'ARTICLE' => 'Article'
,'OUTSIDE' => 'External Page');
$lang->about_page_type = '페이지 타입을 선택하여 원하는 화면을 구성할 수 있습니다. <ol><li>위젯형 : 여러가지 위젯들을 생성하여 화면을 구성합니다.</li><li>문서형 : 제목, 내용, 태그를 갖는 문서를 제작하여 포스팅 형식의 페이지를 작성합니다. </li><li>외부페이지형 : 외부HTML또는 PHP 파일을 XE에서 사용할 수 있습니다.</li></ol>';
$lang->opage_path = "Location of External Document";
$lang->about_opage = "This module enables to use external html or php files in XE.<br />It allows absolute or relative path, and if the url starts with 'http://' , it can display the external page of the server.";
$lang->about_opage_path= "Please input the location of external document.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
$lang->opage_mobile_path = 'Location of External Document for Mobile View';
$lang->about_opage_mobile_path= "Please input the location of external document for mobile view. If not inputted, it uses the external document specified above.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
?>

View file

@ -13,4 +13,18 @@
$lang->about_page_caching_interval = "L'unité est minute, et ça exposera des données conservées temporairement pendant le temps assigné.<br />Il est recommandé d'utiliser l'antémémoire pendant le temps convenable si beaucoup de ressource est nécessaire pour représenter les données ou l'information d'autre serveur.<br />La valeur 0 signifie de ne pas utiliser antémémoire.";
$lang->about_mcontent = 'This is the page for the mobile view. If you do not write this page, the mobile view display reoragnized PC view\'s page.';
$lang->page_management = '페이지 관리';
/* add merge opage + page type and article create */
$lang->page_type = '페이지 타입';
$lang->click_choice = '선택해 주세요.';
$lang->page_type_name = array('WIDGET' => '위젯'
,'ARTICLE' => 'Article'
,'OUTSIDE' => 'External Page');
$lang->about_page_type = '페이지 타입을 선택하여 원하는 화면을 구성할 수 있습니다. <ol><li>위젯형 : 여러가지 위젯들을 생성하여 화면을 구성합니다.</li><li>문서형 : 제목, 내용, 태그를 갖는 문서를 제작하여 포스팅 형식의 페이지를 작성합니다. </li><li>외부페이지형 : 외부HTML또는 PHP 파일을 XE에서 사용할 수 있습니다.</li></ol>';
$lang->opage_path = "Location of External Document";
$lang->about_opage = "This module enables to use external html or php files in XE.<br />It allows absolute or relative path, and if the url starts with 'http://' , it can display the external page of the server.";
$lang->about_opage_path= "Please input the location of external document.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
$lang->opage_mobile_path = 'Location of External Document for Mobile View';
$lang->about_opage_mobile_path= "Please input the location of external document for mobile view. If not inputted, it uses the external document specified above.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
?>

View file

@ -13,4 +13,18 @@
$lang->about_page_caching_interval = '分単位で指定出来、設定された時間の間は、臨時保存されたデータを出力します。<br />他のサーバの情報を出力したり、データを出力する際、リソースが多く使われるため、数分単位でキャッシングすることをお勧めします。<br />「0」に指定するとキャッシングされません。';
$lang->about_mcontent = 'モバイルスキン用のページです。作成しないとPC向けのページを再構成して表示します。';
$lang->page_management = 'ページ管理';
/* add merge opage + page type and article create */
$lang->page_type = '페이지 타입';
$lang->click_choice = '선택해 주세요.';
$lang->page_type_name = array('WIDGET' => '위젯'
,'ARTICLE' => 'Article'
,'OUTSIDE' => 'External Page');
$lang->about_page_type = '페이지 타입을 선택하여 원하는 화면을 구성할 수 있습니다. <ol><li>위젯형 : 여러가지 위젯들을 생성하여 화면을 구성합니다.</li><li>문서형 : 제목, 내용, 태그를 갖는 문서를 제작하여 포스팅 형식의 페이지를 작성합니다. </li><li>외부페이지형 : 외부HTML또는 PHP 파일을 XE에서 사용할 수 있습니다.</li></ol>';
$lang->opage_path = "Location of External Document";
$lang->about_opage = "This module enables to use external html or php files in XE.<br />It allows absolute or relative path, and if the url starts with 'http://' , it can display the external page of the server.";
$lang->about_opage_path= "Please input the location of external document.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
$lang->opage_mobile_path = 'Location of External Document for Mobile View';
$lang->about_opage_mobile_path= "Please input the location of external document for mobile view. If not inputted, it uses the external document specified above.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
?>

View file

@ -8,7 +8,23 @@
$lang->about_page = "하나의 완성된 페이지를 제작할 수 있는 페이지 모듈입니다.\n최근게시물이나 기타 위젯을 이용해서 동적인 페이지 생성이 가능하고 에디터 컴포넌트를 통해서 다양한 모습으로 꾸밀 수 있습니다.\n접속 URL은 다른 모듈과 같이 mid=모듈이름 으로 접속 가능하며 기본으로 선택하면 접속 시 메인 페이지가 됩니다.";
$lang->cmd_page_modify = '페이지 수정';
$lang->cmd_page_create = '페이지 생성';
$lang->cmd_page_create = '페이지 생성';
$lang->cmd_page_article_create = 'Article 생성';
$lang->page_caching_interval = '캐싱 시간 설정';
$lang->about_page_caching_interval = '분 단위이며 정해진 시간동안은 임시 저장한 데이터를 출력합니다.<br />다른 서버의 정보를 출력하거나, 데이터 출력하는데 많은 자원이 필요한 경우, 원하시는 분 단위 시간 간격으로 캐싱하는 것을 추천합니다.<br />0 으로 하시면 캐싱을 하지 않습니다.';
$lang->about_mcontent = '모바일에서 보여질 페이지입니다. 만약 작성하지 않으면 기본 페이지 데이터를 재정렬해서 보여줍니다.';
/* add merge opage + page type and article create */
$lang->page_type = '페이지 타입';
$lang->click_choice = '선택해 주세요.';
$lang->page_type_name = array('WIDGET' => '위젯'
,'ARTICLE' => '문서'
,'OUTSIDE' => '외부페이지');
$lang->about_page_type = '페이지 타입을 선택하여 원하는 화면을 구성할 수 있습니다. <ol><li>위젯형 : 여러가지 위젯들을 생성하여 화면을 구성합니다.</li><li>문서형 : 제목, 내용, 태그를 갖는 문서를 제작하여 포스팅 형식의 페이지를 작성합니다. </li><li>외부페이지형 : 외부HTML또는 PHP 파일을 XE에서 사용할 수 있습니다.</li></ol>';
$lang->opage_path = '외부 문서 위치';
$lang->about_opage = 'XE가 아닌 외부 HTML 또는 PHP파일을 XE에서 사용할 수 있도록 하는 모듈입니다.<br />절대경로, 상대경로를 이용할 수 있으며 http:// 로 시작할 경우 서버 외부의 페이지도 표시할 수 있습니다';
$lang->about_opage_path= '외부문서의 위치를 입력해주세요.<br />/path1/path2/sample.php 와 같이 절대경로나 ../path2/sample.php와 같은 상대경로 모두 사용가능합니다.<br />http://url/sample.php 와 같이 사용하면 해당 페이지를 웹으로 전송 받아 출력 하게 됩니다.<br />현재 XE가 설치된 절대경로는 다음과 같습니다.<br />';
$lang->opage_mobile_path = '모바일용 외부 문서 위치';
$lang->about_opage_mobile_path= '모바일용 외부문서의 위치를 입력해주세요. 입력하지 않으면 위에서 지정한 외부문서 위치의 페이지를 이용합니다. <br />/path1/path2/sample.php 와 같이 절대경로나 ../path2/sample.php와 같은 상대경로 모두 사용가능합니다.<br />http://url/sample.php 와 같이 사용하면 해당 페이지를 웹으로 전송 받아 출력 하게 됩니다.<br />현재 XE가 설치된 절대경로는 다음과 같습니다.<br />';
?>

View file

@ -13,4 +13,18 @@
$lang->cmd_page_create = '페이지 생성';
$lang->about_mcontent = 'This is the page for the mobile view. If you do not write this page, the mobile view display reoragnized PC view\'s page.';
$lang->page_management = '페이지 관리';
/* add merge opage + page type and article create */
$lang->page_type = '페이지 타입';
$lang->click_choice = '선택해 주세요.';
$lang->page_type_name = array('WIDGET' => '위젯'
,'ARTICLE' => 'Article'
,'OUTSIDE' => 'External Page');
$lang->about_page_type = '페이지 타입을 선택하여 원하는 화면을 구성할 수 있습니다. <ol><li>위젯형 : 여러가지 위젯들을 생성하여 화면을 구성합니다.</li><li>문서형 : 제목, 내용, 태그를 갖는 문서를 제작하여 포스팅 형식의 페이지를 작성합니다. </li><li>외부페이지형 : 외부HTML또는 PHP 파일을 XE에서 사용할 수 있습니다.</li></ol>';
$lang->opage_path = "Location of External Document";
$lang->about_opage = "This module enables to use external html or php files in XE.<br />It allows absolute or relative path, and if the url starts with 'http://' , it can display the external page of the server.";
$lang->about_opage_path= "Please input the location of external document.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
$lang->opage_mobile_path = 'Location of External Document for Mobile View';
$lang->about_opage_mobile_path= "Please input the location of external document for mobile view. If not inputted, it uses the external document specified above.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
?>

View file

@ -13,4 +13,18 @@
$lang->about_page_caching_interval = "Birim dakikadır ve belirlenen zaman için geçici olarak kaydedilmiş veriyi gösterir.<br />Diğer sunucuların veri veya bilgileri gösterilirken, eğer fazla sayıda kaynağın gösterilmesi gerekiyorsa, uygun zamanın önbelleğe alınması önerilmiştir.<br />0 değeri verilirse, önbelleğe alınmayacaktır.";
$lang->about_mcontent = 'Bu sayfa, sizin hareketli cihazlardan göreceğiniz sayfadır. Eğer bu sayfayı ayarlamadıysanız, düzenlenmiş varsayılan sayfa gösterilecektir.';
$lang->page_management = 'Sayfa Yönetimi';
/* add merge opage + page type and article create */
$lang->page_type = '페이지 타입';
$lang->click_choice = '선택해 주세요.';
$lang->page_type_name = array('WIDGET' => '위젯'
,'ARTICLE' => 'Article'
,'OUTSIDE' => 'External Page');
$lang->about_page_type = '페이지 타입을 선택하여 원하는 화면을 구성할 수 있습니다. <ol><li>위젯형 : 여러가지 위젯들을 생성하여 화면을 구성합니다.</li><li>문서형 : 제목, 내용, 태그를 갖는 문서를 제작하여 포스팅 형식의 페이지를 작성합니다. </li><li>외부페이지형 : 외부HTML또는 PHP 파일을 XE에서 사용할 수 있습니다.</li></ol>';
$lang->opage_path = "Location of External Document";
$lang->about_opage = "This module enables to use external html or php files in XE.<br />It allows absolute or relative path, and if the url starts with 'http://' , it can display the external page of the server.";
$lang->about_opage_path= "Please input the location of external document.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
$lang->opage_mobile_path = 'Location of External Document for Mobile View';
$lang->about_opage_mobile_path= "Please input the location of external document for mobile view. If not inputted, it uses the external document specified above.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
?>

View file

@ -15,4 +15,18 @@
$lang->about_page_caching_interval = "Đơn vị được tính bằng phút, nó sẽ là thời gian lưu trữ tạm thời.<br />Đó là khuyến cáo thời gian lưu trữ tạm thời thích hợp khi cần để hiển thị.<br />Nhập 0 nếu không sử dụng tính năng này.";
$lang->about_mcontent = 'This is the page for the mobile view. If you do not write this page, the mobile view display reoragnized PC view\'s page.';
$lang->page_management = '페이지 관리';
/* add merge opage + page type and article create */
$lang->page_type = '페이지 타입';
$lang->click_choice = '선택해 주세요.';
$lang->page_type_name = array('WIDGET' => '위젯'
,'ARTICLE' => 'Article'
,'OUTSIDE' => 'External Page');
$lang->about_page_type = '페이지 타입을 선택하여 원하는 화면을 구성할 수 있습니다. <ol><li>위젯형 : 여러가지 위젯들을 생성하여 화면을 구성합니다.</li><li>문서형 : 제목, 내용, 태그를 갖는 문서를 제작하여 포스팅 형식의 페이지를 작성합니다. </li><li>외부페이지형 : 외부HTML또는 PHP 파일을 XE에서 사용할 수 있습니다.</li></ol>';
$lang->opage_path = "Location of External Document";
$lang->about_opage = "This module enables to use external html or php files in XE.<br />It allows absolute or relative path, and if the url starts with 'http://' , it can display the external page of the server.";
$lang->about_opage_path= "Please input the location of external document.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
$lang->opage_mobile_path = 'Location of External Document for Mobile View';
$lang->about_opage_mobile_path= "Please input the location of external document for mobile view. If not inputted, it uses the external document specified above.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
?>

View file

@ -13,4 +13,18 @@
$lang->about_page_caching_interval = "单位为分。缓冲时间间隔内页面将输出临时储存的数据。<br />显示外链服务器信息或数据时,如消耗资源很大,尽量把缓冲时间设置为大一点的相应值。<br />0 表示无缓冲。";
$lang->about_mcontent = '此页为移动版页面如您没有对此页面进行布局它会自动将PC版页面数据重排序显示。';
$lang->page_management = '페이지 관리';
/* add merge opage + page type and article create */
$lang->page_type = '페이지 타입';
$lang->click_choice = '선택해 주세요.';
$lang->page_type_name = array('WIDGET' => '위젯'
,'ARTICLE' => 'Article'
,'OUTSIDE' => 'External Page');
$lang->about_page_type = '페이지 타입을 선택하여 원하는 화면을 구성할 수 있습니다. <ol><li>위젯형 : 여러가지 위젯들을 생성하여 화면을 구성합니다.</li><li>문서형 : 제목, 내용, 태그를 갖는 문서를 제작하여 포스팅 형식의 페이지를 작성합니다. </li><li>외부페이지형 : 외부HTML또는 PHP 파일을 XE에서 사용할 수 있습니다.</li></ol>';
$lang->opage_path = "Location of External Document";
$lang->about_opage = "This module enables to use external html or php files in XE.<br />It allows absolute or relative path, and if the url starts with 'http://' , it can display the external page of the server.";
$lang->about_opage_path= "Please input the location of external document.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
$lang->opage_mobile_path = 'Location of External Document for Mobile View';
$lang->about_opage_mobile_path= "Please input the location of external document for mobile view. If not inputted, it uses the external document specified above.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
?>

View file

@ -13,4 +13,18 @@
$lang->about_page_caching_interval = "單位為分。暫存時間內頁面將輸出臨時儲存的資料。<br />輸出外部主機訊息或資料時,如消耗資源很大,盡量把暫存時間設大一點。<br />『0』表示不暫存。";
$lang->about_mcontent = '此頁面為手機瀏覽頁面。如果沒有編輯此頁面,則會將預設頁面改編重新顯示。';
$lang->page_management = '頁面管理';
/* add merge opage + page type and article create */
$lang->page_type = '페이지 타입';
$lang->click_choice = '선택해 주세요.';
$lang->page_type_name = array('WIDGET' => '위젯'
,'ARTICLE' => 'Article'
,'OUTSIDE' => 'External Page');
$lang->about_page_type = '페이지 타입을 선택하여 원하는 화면을 구성할 수 있습니다. <ol><li>위젯형 : 여러가지 위젯들을 생성하여 화면을 구성합니다.</li><li>문서형 : 제목, 내용, 태그를 갖는 문서를 제작하여 포스팅 형식의 페이지를 작성합니다. </li><li>외부페이지형 : 외부HTML또는 PHP 파일을 XE에서 사용할 수 있습니다.</li></ol>';
$lang->opage_path = "Location of External Document";
$lang->about_opage = "This module enables to use external html or php files in XE.<br />It allows absolute or relative path, and if the url starts with 'http://' , it can display the external page of the server.";
$lang->about_opage_path= "Please input the location of external document.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
$lang->opage_mobile_path = 'Location of External Document for Mobile View';
$lang->about_opage_mobile_path= "Please input the location of external document for mobile view. If not inputted, it uses the external document specified above.<br />Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used.<br />If you input the path like 'http://url/sample.php', the result will be received and then displayed.<br />This is current XE's absolute path.<br />";
?>

View file

@ -43,6 +43,27 @@
$args = $module_info;
}
}
switch ($args->page_type){
case 'WIDGET' : {
unset($args->skin);
unset($args->mskin);
unset($args->opage_path);
unset($args->opage_mpath);
break;
}
case 'ARTICLE' : {
unset($args->page_caching_interval);
unset($args->opage_path);
unset($args->opage_mpath);
break;
}
case 'OUTSIDE' : {
unset($args->skin);
unset($args->mskin);
break;
}
}
// Insert/update depending on module_srl
if(!$args->module_srl) {
$output = $oModuleController->insertModule($args);
@ -205,5 +226,57 @@
$oWidgetController->recompileWidget($content);
}
function procPageAdminArticleDocumentInsert(){
$logged_info = Context::get('logged_info');
if ($logged_info->is_admin != 'Y')return new Object(-1, 'msg_not_permitted');
$obj = Context::getRequestVars();
$obj->module_srl = $this->module_info->module_srl;
$obj->is_notice = 'N';
settype($obj->title, "string");
if($obj->title == '') $obj->title = cut_str(strip_tags($obj->content),20,'...');
//그래도 없으면 Untitled
if($obj->title == '') $obj->title = 'Untitled';
// document module의 model 객체 생성
$oDocumentModel = &getModel('document');
// document module의 controller 객체 생성
$oDocumentController = &getController('document');
// 이미 존재하는 글인지 체크
$oDocument = $oDocumentModel->getDocument($obj->document_srl, true);
$bAnonymous = false;
// 이미 존재하는 경우 수정
if($oDocument->isExists() && $oDocument->document_srl == $obj->document_srl) {
$output = $oDocumentController->updateDocument($oDocument, $obj);
$msg_code = 'success_updated';
// 그렇지 않으면 신규 등록
} else {
$output = $oDocumentController->insertDocument($obj, $bAnonymous);
$msg_code = 'success_registed';
$obj->document_srl = $output->get('document_srl');
$oModuleController = &getController('module');
$this->module_info->document_srl = $obj->document_srl;
$oModuleController->updateModule($this->module_info);
}
// 오류 발생시 멈춤
if(!$output->toBool()) return $output;
// 결과를 리턴
$this->add('mid', Context::get('mid'));
$this->add('document_srl', $output->get('document_srl'));
// 성공 메세지 등록
$this->setMessage($msg_code);
}
}
?>

View file

@ -56,7 +56,10 @@
if($s_browser_title) $args->s_browser_title = $s_browser_title;
$output = executeQuery('page.getPageList', $args);
moduleModel::syncModuleToSite($output->data);
$oModuleModel = &getModel('module');
$page_list = $oModuleModel->addModuleExtraVars($output->data);
moduleModel::syncModuleToSite($page_list);
// To write to a template context:: set
Context::set('total_count', $output->total_count);
Context::set('total_page', $output->total_page);
@ -92,6 +95,16 @@
$mobile_layout_list = $oLayoutModel->getLayoutList(0,"M");
Context::set('mlayout_list', $mobile_layout_list);
// Set a template file
if ($this->module_info->page_type == 'ARTICLE'){
$oModuleModel = &getModel('module');
$skin_list = $oModuleModel->getSkins($this->module_path);
Context::set('skin_list',$skin_list);
$mskin_list = $oModuleModel->getSkins($this->module_path, "m.skins");
Context::set('mskin_list', $mskin_list);
}
$this->setTemplateFile('page_info');
}
@ -134,6 +147,13 @@
$mobile_layout_list = $oLayoutModel->getLayoutList(0,"M");
Context::set('mlayout_list', $mobile_layout_list);
$oModuleModel = &getModel('module');
$skin_list = $oModuleModel->getSkins($this->module_path);
Context::set('skin_list',$skin_list);
$mskin_list = $oModuleModel->getSkins($this->module_path, "m.skins");
Context::set('mskin_list', $mskin_list);
// Set a template file
$this->setTemplateFile('page_insert');
}
@ -189,6 +209,12 @@
function dispPageAdminContentModify() {
// Set the module information
Context::set('module_info', $this->module_info);
if ($this->module_info->page_type == 'WIDGET') $this->_setWidgetTypeContentModify();
else if ($this->module_info->page_type == 'ARTICLE') $this->_setArticleTypeContentModify();
}
function _setWidgetTypeContentModify() {
// Setting contents
$content = Context::get('content');
if(!$content) $content = $this->module_info->content;
@ -203,8 +229,23 @@
Context::set('widget_list', $widget_list);
// Set a template file
$this->setTemplateFile('page_content_modify');
}
}
function _setArticleTypeContentModify() {
$oDocumentModel = &getModel('document');
$oDocument = $oDocumentModel->getDocument(0, true);
if ($this->module_info->document_srl){
$document_srl = $this->module_info->document_srl;
$oDocument->setDocument($document_srl);
Context::set('document_srl', $document_srl);
}
Context::addJsFilter($this->module_path.'tpl/filter', 'insert_article.xml');
Context::set('oDocument', $oDocument);
Context::set('mid', $this->module_info->mid);
$this->setTemplateFile('article_content_modify');
}
/**
* @brief Delete page output
**/

View file

@ -21,6 +21,12 @@
* @brief a method to check if successfully installed
**/
function checkUpdate() {
$output = executeQuery('page.pageTypeOpageCheck');
if ($output->toBool() && $output->data) return true;
$output = executeQuery('page.pageTypeNullCheck');
if ($output->toBool() && $output->data) return true;
return false;
}
@ -28,6 +34,28 @@
* @brief Execute update
**/
function moduleUpdate() {
// opage module instance update
$output = executeQueryArray('page.pageTypeOpageCheck');
if ($output->toBool() && count($output->data) > 0){
foreach($output->data as $val){
$args->module_srl = $val->module_srl;
$args->name = 'page_type';
$args->value= 'OUTSIDE';
$in_out = executeQuery('page.insertPageType', $args);
}
$output = executeQuery('page.updateAllOpage');
}
// old page module instance update
$output = executeQuery('page.pageTypeNullCheck');
if ($output->toBool() && $output->data){
foreach($output->data as $val){
$args->module_srl = $val->module_srl;
$args->name = 'page_type';
$args->value= 'WIDGET';
$in_out = executeQuery('page.insertPageType', $args);
}
}
return new Object(0,'success_updated');
}

View file

@ -0,0 +1,102 @@
<?php
/**
* @class documentController
* @author NHN (developers@xpressengine.com)
* @brief controller class of the document module
**/
class pageController extends page {
var $target_path = '';
/**
* @brief Initialization
**/
function init() { }
/**
* @brief Extract a title
**/
function getTitle($content) {
preg_match('!<title([^>]*)>(.*?)<\/title>!is', $content, $buff);
return trim($buff[2]);
}
/**
* @brief Extract header script
**/
function getHeadScript($content) {
// remove the title tag
$content = preg_replace('!<title([^>]*)>(.*?)<\/title>!is','', $content);
// Remove meta tags
$content = preg_replace('!<(\/){0,1}meta([^>]*)>!is','', $content);
// Extract information such as <link, <style, <script and so on
preg_match_all('!<link([^>]*)>!is', $content, $link_buff);
for($i=0;$i<count($link_buff[0]);$i++) {
$tmp_str = trim($link_buff[0][$i]);
if(!$tmp_str) continue;
$header_script .= $tmp_str."\n";
}
preg_match_all('!<(style|script)(.*?)<\/(style|script)>!is', $content, $script_buff);
for($i=0;$i<count($script_buff[0]);$i++) {
$tmp_str = trim($script_buff[0][$i]);
if(!$tmp_str) continue;
$header_script .= $tmp_str."\n";
}
return $header_script;
}
/**
* @brief Extract the contents of the body
**/
function getBodyScript($content) {
// Extract content
preg_match('!<body([^>]*)>(.*?)<\/body>!is', $content, $body_buff);
$body_script = $body_buff[2];
// Remove link, style, script, etc.
$body_script = preg_replace('!<link([^>]*)>!is', '', $body_script);
$body_script = preg_replace('!<(style|script)(.*?)<\/(style|script)>!is', '', $body_script);
return $body_script;
}
/**
* @brief Change the value of src, href in the content
**/
function replaceSrc($content, $path) {
$url_info = parse_url($path);
$host = sprintf("%s://%s%s",$url_info['scheme'],$url_info['host'],$url_info['port']?':'.$url_info['port']:'');
$this->host = $host.'/';
$path = $url_info['path'];
if(substr($path,-1)=='/') $path = substr($path,-1);
$t = explode('/',$path);
$_t = array();
for($i=0,$c=count($t)-1;$i<$c;$i++) {
$v = trim($t[$i]);
if(!$v) continue;
$_t[] = $v;
}
$path = $host.'/'.implode('/',$_t);
if(substr($path,-1)!='/') $path .= '/';
$this->path = $path;
$content = preg_replace_callback('/(src=|href=|url\()("|\')?([^"\'\)]+)("|\'\))?/is',array($this,'_replacePath'),$content);
return $content;
}
function _replacePath($matches) {
$val = trim($matches[3]);
if(preg_match('/^(http|https|ftp|telnet|mms|mailto)/i',$val)) return $matches[0];
if(substr($val,0,2)=='./') {
$path = $this->path.substr($val,2);
} elseif(substr($val,0,1)=='/') {
$path = $this->host.substr($val,1);
} else {
$path = $this->path.$val;
}
return sprintf("%s%s%s%s", $matches[1], $matches[2], $path, $matches[4]);
}
}
?>

View file

@ -10,6 +10,9 @@
var $module_srl = 0;
var $list_count = 20;
var $page_count = 10;
var $cache_file;
var $interval;
var $opage_path;
/**
* @brief Initialization
@ -17,6 +20,21 @@
function init() {
// Get a template path (page in the administrative template tpl putting together)
$this->setTemplatePath($this->module_path.'tpl');
switch($this->module_info->page_type)
{
case 'WIDGET' : {
$this->cache_file = sprintf("%sfiles/cache/page/%d.%s.cache.php", _XE_PATH_, $this->module_info->module_srl, Context::getLangType());
$this->interval = (int)($this->module_info->page_caching_interval);
break;
}
case 'OUTSIDE' : {
$this->cache_file = sprintf("./files/cache/opage/%d.cache.php", $this->module_info->module_srl);
$this->interval = (int)($this->module_info->page_caching_interval);
$this->opage_path = $this->module_info->opage_path;
break;
}
}
}
/**
@ -25,30 +43,156 @@
function dispPageIndex() {
// Variables used in the template Context:: set()
if($this->module_srl) Context::set('module_srl',$this->module_srl);
// Specifying the cache file
$cache_file = sprintf("%sfiles/cache/page/%d.%s.cache.php", _XE_PATH_, $this->module_info->module_srl, Context::getLangType());
$interval = (int)($this->module_info->page_caching_interval);
if($interval>0) {
if(!file_exists($cache_file)) $mtime = 0;
else $mtime = filemtime($cache_file);
if($mtime + $interval*60 > time()) {
$page_content = FileHandler::readFile($cache_file);
$page_content = preg_replace('@<\!--#Meta:@', '<!--Meta:', $page_content);
} else {
$oWidgetController = &getController('widget');
$page_content = $oWidgetController->transWidgetCode($this->module_info->content);
FileHandler::writeFile($cache_file, $page_content);
}
} else {
if(file_exists($cache_file)) FileHandler::removeFile($cache_file);
$page_content = $this->module_info->content;
}
$page_type_name = strtolower($this->module_info->page_type);
$page_content = call_user_method('_get'.ucfirst($page_type_name).'Content', &$this);
Context::set('module_info', $this->module_info);
Context::set('page_content', $page_content);
$this->setTemplateFile('content');
}
function _getWidgetContent(){
if($this->interval>0) {
if(!file_exists($this->cache_file)) $mtime = 0;
else $mtime = filemtime($this->cache_file);
if($mtime + $interval*60 > time()) {
$page_content = FileHandler::readFile($this->cache_file);
$page_content = preg_replace('@<\!--#Meta:@', '<!--Meta:', $page_content);
} else {
$oWidgetController = &getController('widget');
$page_content = $oWidgetController->transWidgetCode($this->module_info->content);
FileHandler::writeFile($this->cache_file, $page_content);
}
} else {
if(file_exists($this->cache_file)) FileHandler::removeFile($this->cache_file);
$page_content = $this->module_info->content;
}
return $page_content;
}
function _getArticleContent(){
$oDocumentModel = &getModel('document');
$oDocument = $oDocumentModel->getDocument(0, true);
if ($this->module_info->document_srl){
$document_srl = $this->module_info->document_srl;
$oDocument->setDocument($document_srl);
Context::set('document_srl', $document_srl);
}
Context::set('oDocument', $oDocument);
$this->setTemplatePath(sprintf($this->module_path.'skins/%s', $this->module_info->skin));
}
function _getOutsideContent(){
// check if it is http or internal file
if($this->opage_path) {
if(preg_match("/^([a-z]+):\/\//i",$this->opage_path)) $content = $this->getHtmlPage($this->opage_path, $this->interval, $this->cache_file);
else $content = $this->executeFile($this->opage_path, $this->interval, $this->cache_file);
}
return $content;
}
/**
* @brief Save the file and return if a file is requested by http
**/
function getHtmlPage($path, $caching_interval, $cache_file) {
// Verify cache
if($caching_interval > 0 && file_exists($cache_file) && filemtime($cache_file) + $caching_interval*60 > time()) {
$content = FileHandler::readFile($cache_file);
} else {
FileHandler::getRemoteFile($path, $cache_file);
$content = FileHandler::readFile($cache_file);
}
// Create opage controller
$oPageController = &getController('page');
// change url of image, css, javascript and so on if the page is from external server
$content = $oPageController->replaceSrc($content, $path);
// Change the document to utf-8 format
$buff->content = $content;
$buff = Context::convertEncoding($buff);
$content = $buff->content;
// Extract a title
$title = $oPageController->getTitle($content);
if($title) Context::setBrowserTitle($title);
// Extract header script
$head_script = $oPageController->getHeadScript($content);
if($head_script) Context::addHtmlHeader($head_script);
// Extract content from the body
$body_script = $oPageController->getBodyScript($content);
if(!$body_script) $body_script = $content;
return $content;
}
/**
* @brief Create a cache file in order to include if it is an internal file
**/
function executeFile($path, $caching_interval, $cache_file) {
// Cancel if the file doesn't exist
if(!file_exists($path)) return;
// Get a path and filename
$tmp_path = explode('/',$cache_file);
$filename = $tmp_path[count($tmp_path)-1];
$filepath = preg_replace('/'.$filename."$/i","",$cache_file);
// Verify cache
if($caching_interval <1 || !file_exists($cache_file) || filemtime($cache_file) + $caching_interval*60 <= time() || filemtime($cache_file)<filemtime($path) ) {
if(file_exists($cache_file)) FileHandler::removeFile($cache_file);
// Read a target file and get content
ob_start();
@include($path);
$content = ob_get_clean();
// Replace relative path to the absolute path
$path_info = pathinfo($path);
$this->opage_path = str_replace('\\', '/', realpath($path_info['dirname'])).'/';
$content = preg_replace_callback('/(target=|src=|href=|url\()("|\')?([^"\'\)]+)("|\'\))?/is',array($this,'_replacePath'),$content);
$content = preg_replace_callback('/(<!--%import\()(\")([^"]+)(\")/is',array($this,'_replacePath'),$content);
FileHandler::writeFile($cache_file, $content);
// Include and then Return the result
if(!file_exists($cache_file)) return;
// Attempt to compile
$oTemplate = &TemplateHandler::getInstance();
$script = $oTemplate->compileDirect($filepath, $filename);
FileHandler::writeFile($cache_file, $script);
}
$__Context = &$GLOBALS['__Context__'];
$__Context->tpl_path = $filepath;
if($_SESSION['is_logged']) $__Context->logged_info = $_SESSION['logged_info'];
ob_start();
@include($cache_file);
$content = ob_get_clean();
return $content;
}
function _replacePath($matches) {
$val = trim($matches[3]);
// Pass if the path is external or starts with /, #, { characters
// /=absolute path, #=hash in a page, {=Template syntax
if(preg_match('@^((?:http|https|ftp|telnet|mms)://|(?:mailto|javascript):|[/#{])@i',$val)) {
return $matches[0];
// In case of .. , get a path
} elseif(preg_match('/^\.\./i',$val)) {
$p = Context::pathToUrl($this->opage_path);
return sprintf("%s%s%s%s",$matches[1],$matches[2],$p.$val,$matches[4]);
}
if(substr($val,0,2)=='./') $val = substr($val,2);
$p = Context::pathToUrl($this->opage_path);
$path = sprintf("%s%s%s%s",$matches[1],$matches[2],$p.$val,$matches[4]);
return $path;
}
}
?>

View file

@ -0,0 +1,10 @@
<query id="insertPageType" action="insert">
<tables>
<table name="module_extra_vars" />
</tables>
<columns>
<column name="module_srl" var="module_srl" filter="number" notnull="notnull" />
<column name="name" var="name" notnull="notnull" />
<column name="value" var="value" />
</columns>
</query>

View file

@ -0,0 +1,20 @@
<query id="pageTypeNullCheck" action="select">
<tables>
<table name="modules" alias="m" />
<table name="module_extra_vars" alias="ev" type="left join">
<conditions>
<condition operation="equal" column="ev.name" default="page_type" />
<condition operation="equal" column="m.module_srl" default="ev.module_srl" pipe="and" />
</conditions>
</table>
</tables>
<columns>
<column name="m.module_srl" />
<column name="m.mid" />
<column name="ev.value" />
</columns>
<conditions>
<condition operation="equal" column="m.module" default="page" />
<condition operation="null" column="ev.value" default="NULL" pipe="and" />
</conditions>
</query>

View file

@ -0,0 +1,11 @@
<query id="pageTypeOpageCheck" action="select">
<tables>
<table name="modules" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="equal" column="module" default="opage" />
</conditions>
</query>

View file

@ -0,0 +1,11 @@
<query id="updateAllOpage" action="update">
<tables>
<table name="modules" />
</tables>
<columns>
<column name="module" default="page" notnull="notnull" />
</columns>
<conditions>
<condition operation="equal" column="module" default="opage" />
</conditions>
</query>

View file

@ -0,0 +1,12 @@
<div class="title">제목 : {$oDocument->getTitle()}</div>
<div class="content">내용 : {$oDocument->getContent()}</div>
<div class="tag">태그 : {implode(',', $oDocument->get('tag_list'))}</div>
<!--@if($grant->manager)-->
<!--%import("./js/page_admin.js")-->
<div class="tRight gap1 clear">
<!--@if($logged_info->is_admin=='Y')-->
<a href="{getUrl('act','dispPageAdminInfo','module_srl',$module_info->module_srl)}" class="button green"><span>{$lang->cmd_setup}</span></a>
<!--@end-->
<a href="{getUrl('act','dispPageAdminContentModify','document_srl','')}" class="button red"><span>{$lang->cmd_page_modify}</span></a>
</div>
<!--@end-->

View file

@ -0,0 +1,25 @@
<!--%import("js/page_admin.js")-->
<form action="./" method="post" onsubmit="return procFilter(this, insert_article)" id="fo_write" class="boardWrite">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="content" value="{$oDocument->getContentText()}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<div class="articleHeader">
<input type="text" name="title" class="inputText" value="{htmlspecialchars($oDocument->getTitleText())}" title="{$lang->title}" />
</div>
<div class="editor">{$oDocument->getEditor()}</div>
<div class="tag">
<input type="text" name="tags" value="{htmlspecialchars($oDocument->get('tags'))}" class="inputText" title="Tag" />
<p>{$lang->about_tag}</p>
</div>
<div class="boardNavigation">
<!--@if($is_logged)-->
<!--@if(!$oDocument->isExists() || $oDocument->get('status') == 'TEMP')-->
<span class="button"><button type="button" onclick="doDocumentSave(this); return false;">{$lang->cmd_temp_save}</button></span>
<span class="button"><button type="button" onclick="doDocumentLoad(this); return false;">{$lang->cmd_load}</button></span>
<!--@end-->
<!--@end-->
<span class="button red strong"><input type="submit" value="{$lang->cmd_registration}" accesskey="s" /></span>
</div>
</form>

View file

@ -3,11 +3,15 @@
<!--@if($grant->manager)-->
<!--%import("./js/page_admin.js")-->
<div class="tRight gap1 clear">
<!--@if($module_info->page_type == 'WIDGET')-->
<a href="#" onclick="doRemoveWidgetCache({$module_info->module_srl}); return false;" class="button blue"><span>{$lang->cmd_remake_cache}</span></a>
<!--@if($logged_info->is_admin=='Y')-->
<!--@end-->
<!--@if($logged_info->is_admin=='Y')-->
<a href="{getUrl('act','dispPageAdminInfo','module_srl',$module_info->module_srl)}" class="button green"><span>{$lang->cmd_setup}</span></a>
<!--@end-->
<!--@if($module_info->page_type != 'OUTSIDE')-->
<a href="{getUrl('act','dispPageAdminContentModify','document_srl','')}" class="button red"><span>{$lang->cmd_page_modify}</span></a>
<!--@end-->
<!--@if($module_info->use_mobile =="Y")-->
<a href="{getUrl('act','dispPageAdminMobileContent','module_srl',$module_info->module_srl)}" class="button black"><span>Mobile</span></a>
<!--@end-->

View file

@ -0,0 +1,13 @@
<filter name="insert_article" module="page" act="procPageAdminArticleDocumentInsert">
<form>
<node target="title" required="true" minlength="1" maxlength="250" />
<node target="content" required="true" />
</form>
<response callback_func="completeArticleDocumentInserted">
<tag name="error" />
<tag name="message" />
<tag name="mid" />
<tag name="document_srl" />
<tag name="category_srl" />
</response>
</filter>

View file

@ -0,0 +1,23 @@
<filter name="insert_outside" module="page" act="procPageAdminInsert" confirm_msg_code="confirm_submit">
<form>
<node target="mid" required="true" maxlength="40" filter="alpha_number" />
<node target="browser_title" required="true" maxlength="250" />
<node target="opage_path" 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="caching_interval" target="opage_caching_interval" />
<param name="path" target="opage_path" />
<param name="mpath" target="opage_mpath" />
</parameter>
<response callback_func="completeInsertPage">
<tag name="error" />
<tag name="message" />
<tag name="module_srl" />
<tag name="opage" />
</response>
</filter>

View file

@ -11,7 +11,7 @@
<ul class="localNavigation">
<!--@if($module=='admin')-->
<li><a href="{getUrl('act','dispPageAdminContent','module_srl','')}">{$lang->cmd_list}</a></li>
<li <!--@if($act=='dispPageAdminContent')-->class="on"<!--@end-->><a href="{getUrl('act','dispPageAdminContent','module_srl','')}">{$lang->cmd_list}</a></li>
<!--@else-->
<li><a href="{getUrl('act','')}">{$lang->cmd_back}</a></li>
<!--@end-->
@ -21,7 +21,7 @@
<li <!--@if($act=='dispPageAdminPageAdditionSetup')-->class="on"<!--@end-->><a href="{getUrl('act','dispPageAdminPageAdditionSetup')}">{$lang->cmd_addition_setup}</a></li>
<li <!--@if($act=='dispPageAdminGrantInfo')-->class="on"<!--@end-->><a href="{getUrl('act','dispPageAdminGrantInfo')}">{$lang->cmd_manage_grant}</a></li>
<!--@else-->
<li <!--@if($act=='dispPageAdminGrantInfo')-->class="on"<!--@end-->><a href="{getUrl('act','dispPageAdminInsert')}">{$lang->cmd_page_create}</a></li>
<li <!--@if($act=='dispPageAdminInsert')-->class="on"<!--@end-->><a href="{getUrl('act','dispPageAdminInsert')}">{$lang->cmd_page_create}</a></li>
<!--@end-->
</ul>
</div>

View file

@ -40,6 +40,7 @@
<input type="submit" name="go_button" id="go_button" value="GO" class="buttonTypeGo" />
</div>
</th>
<th scope="col">{$lang->page_type}</th>
<th scope="col" class="half_wide"><div>{$lang->mid}</div></th>
<th scope="col" class="half_wide"><div>{$lang->browser_title}</div></th>
<th scope="col"><div>{$lang->regdate}</div></th>
@ -63,6 +64,7 @@
{$module_category[$val->module_category_srl]->title}
<!--@end-->
</td>
<td>{$val->page_type}</td>
<td>{htmlspecialchars($val->mid)}</td>
<td><a href="{getSiteUrl($val->domain,'','mid',$val->mid)}" onclick="window.open(this.href); return false;">{$val->browser_title}</a></td>
<td>{zdate($val->regdate,"Y-m-d")}</td>

View file

@ -25,6 +25,21 @@ function completeInsertPage(ret_obj) {
location.href = url;
}
function completeArticleDocumentInserted(ret_obj){
var error = ret_obj['error'];
var message = ret_obj['message'];
var mid = ret_obj['mid'];
alert(message);
var url = '';
url = current_url.setQuery('act', 'dispPageIndex').setQuery('mid', mid);
location.href = url;
}
/* 내용 저장 후 */
function completeInsertPageContent(ret_obj) {
var error = ret_obj['error'];
@ -108,3 +123,4 @@ function doCartSetup(url) {
url += "&module_srls="+module_srl.join(',');
popopen(url,'modulesSetup');
}

View file

@ -6,6 +6,12 @@
<input type="hidden" name="module_srl" value="{$module_srl}" />
<table cellspacing="0" class="rowTable">
<tr>
<th scope="row"><div>{$lang->page_type}</div></th>
<td colspan="3">
{$lang->page_type_name[$module_info->page_type]}
</td>
</tr>
<tr>
<th scope="row"><div>{$lang->mid}</div></th>
<td colspan="3">
@ -64,6 +70,7 @@
<p>{$lang->about_layout}</p>
</td>
</tr>
<!--@if($module_info->page_type != 'ARTICLE')-->
<tr>
<th scope="row"><div>{$lang->page_caching_interval}</div></th>
<td colspan="3">
@ -71,11 +78,54 @@
<p>{$lang->about_page_caching_interval}</p>
</td>
</tr>
<!--@end-->
<!--@if($module_info->page_type == 'OUTSIDE')-->
<tr class="row2">
<th scope="row"><div>{$lang->opage_path}</div></th>
<td colspan="3">
<input type="text" name="opage_path" value="{htmlspecialchars($module_info->opage_path)}" class="inputTypeText w400" />
<p>{$lang->about_opage_path}<b>{realpath("./")}</b></p>
</td>
</tr>
<tr class="row">
<th scope="row"><div>{$lang->opage_mobile_path}</div></th>
<td colspan="3">
<input type="text" name="opage_mpath" value="{htmlspecialchars($module_info->opage_mpath)}" class="inputTypeText w400" />
<p>{$lang->about_opage_mobile_path}<b>{realpath("./")}</b></p>
</td>
</tr>
<!--@end-->
<!--@if($module_info->page_type == 'ARTICLE')-->
<tr class="row2 optionnalData articleType">
<th scope="row"><div>{$lang->skin}</div></th>
<td>
<select name="skin">
<!--@foreach($skin_list as $key=>$val)-->
<option value="{$key}" <!--@if($module_info->skin==$key ||(!$module_info->skin && $key=='default'))-->selected="selected"<!--@end-->>{$val->title}</option>
<!--@end-->
</select>
<p>{$lang->about_skin}</p>
</td>
</tr>
<tr class="optionnalData articleType">
<th scope="row"><div>{$lang->mobile_skin}</div></th>
<td>
<select name="mskin">
<!--@foreach($mskin_list as $key=>$val)-->
<option value="{$key}" <!--@if($module_info->mskin==$key ||(!$module_info->mskin && $key=='default'))-->selected="selected"<!--@end-->>{$val->title}</option>
<!--@end-->
</select>
<p>{$lang->about_skin}</p>
</td>
</tr>
<!--@end-->
<tr>
<th colspan="4" class="button">
<span class="button black strong"><input type="submit" value="{$lang->cmd_save}" accesskey="s" /></span>
<!--@if($module_info->page_type != 'OUTSIDE')-->
<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 red"><span>{$lang->cmd_page_modify}</span></a>
<!--@if($module=="admin")-->
<!--@end-->
<!--@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>

View file

@ -1,10 +1,30 @@
<!--%import("filter/insert_page.xml")-->
<!--%import("filter/insert_outside.xml")-->
<!--#include("header.html")-->
<form action="./" method="post" onsubmit="return procFilter(this, insert_page)" enctype="multipart/form-data">
<form id="fo_insert_page" 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}" />
<table cellspacing="0" class="rowTable topGap">
<!--@if($module_srl)-->
<tr class="row2">
<th scope="row"><div>{$lang->page_type}</div></th>
<td></td>
</tr>
<!--@else-->
<tr class="row2">
<th scope="row"><div>{$lang->page_type}</div></th>
<td colspan="3">
<select name="page_type">
<option value="">{$lang->click_choice}</option>
<option value="WIDGET">{$lang->page_type_name['WIDGET']}</option>
<option value="ARTICLE">{$lang->page_type_name['ARTICLE']}</option>
<option value="OUTSIDE">{$lang->page_type_name['OUTSIDE']}</option>
</select>
<p>{$lang->about_page_type}</p>
</td>
</tr>
<!--@end-->
<!--@if($logged_info->is_admin!='Y')-->
<input type="hidden" name="mid" value="{$module_info->mid}" />
<!--@else-->
@ -67,13 +87,49 @@
<p>{$lang->about_layout}</p>
</td>
</tr>
<tr>
<tr class="optionnalData widgetType outsideType">
<th scope="row"><div>{$lang->page_caching_interval}</div></th>
<td colspan="3">
<input type="text" name="page_caching_interval" value="{(int)$module_info->caching_interval}" class="inputTypeText w40" /> {$lang->unit_min}
<p>{$lang->about_page_caching_interval}</p>
</td>
</tr>
<tr class="row2 optionnalData articleType">
<th scope="row"><div>{$lang->skin}</div></th>
<td>
<select name="skin">
<!--@foreach($skin_list as $key=>$val)-->
<option value="{$key}" <!--@if($module_info->skin==$key ||(!$module_info->skin && $key=='default'))-->selected="selected"<!--@end-->>{$val->title}</option>
<!--@end-->
</select>
<p>{$lang->about_skin}</p>
</td>
</tr>
<tr class="optionnalData articleType">
<th scope="row"><div>{$lang->mobile_skin}</div></th>
<td>
<select name="mskin">
<!--@foreach($mskin_list as $key=>$val)-->
<option value="{$key}" <!--@if($module_info->mskin==$key ||(!$module_info->mskin && $key=='default'))-->selected="selected"<!--@end-->>{$val->title}</option>
<!--@end-->
</select>
<p>{$lang->about_skin}</p>
</td>
</tr>
<tr class="row2 optionnalData outsideType">
<th scope="row"><div>{$lang->opage_path}</div></th>
<td colspan="3">
<input type="text" name="opage_path" value="{htmlspecialchars($module_info->path)}" class="inputTypeText w400" />
<p>{$lang->about_opage_path}<b>{realpath("./")}</b></p>
</td>
</tr>
<tr class="row optionnalData outsideType">
<th scope="row"><div>{$lang->opage_mobile_path}</div></th>
<td colspan="3">
<input type="text" name="opage_mpath" value="{htmlspecialchars($module_info->mpath)}" class="inputTypeText w400" />
<p>{$lang->about_opage_mobile_path}<b>{realpath("./")}</b></p>
</td>
</tr>
<tr class="row2">
<th colspan="4" class="button">
<span class="button black strong"><input type="submit" value="{$lang->cmd_save}" accesskey="s" /></span>
@ -82,3 +138,17 @@
</table>
</form>
<script type="text/javascript">
(function($){
$('.optionnalData').hide();
$('select[name=page_type]').change(function(){
$('.optionnalData').hide();
var select = $('select[name=page_type] :selected').val();
if(select != ""){
$('.'+select.toLowerCase()+'Type').show();
}
});
})(jQuery);
</script>