mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-26 06:39:56 +09:00
merge brache 1.5.0 to trunk (8252-9866)
git-svn-id: http://xe-core.googlecode.com/svn/trunk@9867 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
commit
2f4b847ae2
2419 changed files with 179593 additions and 181010 deletions
|
|
@ -1,36 +1,36 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<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.1</version>
|
||||
<date>2007-02-28</date>
|
||||
<category>service</category>
|
||||
|
||||
<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>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<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>
|
||||
|
||||
<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>
|
||||
|
|
|
|||
|
|
@ -11,9 +11,9 @@
|
|||
<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="dispPageAdminInfo" type="view" standalone="true" setup_index="true" />
|
||||
<action name="dispPageAdminPageAdditionSetup" type="view" standalone="true" />
|
||||
<action name="dispPageAdminInsert" type="view" standalone="true" setup_index="true" />
|
||||
<action name="dispPageAdminInsert" type="view" standalone="true" />
|
||||
<action name="dispPageAdminDelete" type="view" standalone="true" />
|
||||
<action name="dispPageAdminContentModify" type="view" standalone="true" />
|
||||
<action name="dispPageAdminAddContent" type="view" standalone="true" />
|
||||
|
|
@ -21,10 +21,12 @@
|
|||
<action name="dispPageAdminMobileContent" type="view" standalone="true" />
|
||||
|
||||
<action name="procPageAdminRemoveWidgetCache" type="controller" standalone="true" />
|
||||
<action name="procPageAdminInsert" type="controller" standalone="true" />
|
||||
<action name="procPageAdminInsert" type="controller" standalone="true" ruleset="insertPage" />
|
||||
<action name="procPageAdminUpdate" type="controller" standalone="true" ruleset="updatePage" />
|
||||
<action name="procPageAdminInsertContent" type="controller" standalone="true" />
|
||||
<action name="procPageAdminDelete" type="controller" standalone="true" />
|
||||
<action name="procPageAdminDelete" type="controller" standalone="true" ruleset="deletePage" />
|
||||
<action name="procPageAdminInsertConfig" type="controller" standalone="true" />
|
||||
<action name="procPageAdminAddContent" type="controller" standalone="true" />
|
||||
<action name="procPageAdminArticleDocumentInsert" type="controller" standalone="true" />
|
||||
</actions>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -1,16 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/page/lang/en.lang.php
|
||||
* @author NHN (developers@xpressengine.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";
|
||||
$lang->cmd_page_create = 'Create a Page';
|
||||
$lang->page_caching_interval = "Caching Time";
|
||||
$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';
|
||||
?>
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @archivo modules/page/lang/es.lang.php
|
||||
* @autor NHN (developers@xpressengine.com)
|
||||
* @sumario Paquete del idioma español para la página de módulo (básico)
|
||||
**/
|
||||
|
||||
$lang->page = "Página";
|
||||
$lang->about_page = "Esto es un módulo de blog, lo cual usted puede crear una página completa.\nUsando los últimos u otros widgets, Usted puede crear una página dinámica. A través del componente del editor, también puede crear páginas de gran variedad.\nURL de conección es el mismo que de los otros módulos como mid=Nombre del módulo.\n Si selcciona como predefinido esta página será la página principal del sitio.";
|
||||
$lang->page_caching_interval = "Establezca el tiempo de cache";
|
||||
$lang->about_page_caching_interval = "La unidad es minuto, y se muestra temporal de los datos guardados por el tiempo asignado. <br /> Se recomienda a la cache para una buena vez si una gran cantidad de recursos se necesitan otros servidores cuando se muestran los datos o la informacion. <br /> Un valor de 0 no cache.";
|
||||
$lang->cmd_page_modify = "Modificar";
|
||||
$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 = '페이지 관리';
|
||||
?>
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/page/lang/fr.lang.php
|
||||
* @author NHN (developers@xpressengine.com) Traduit par Pierre Duvent (PierreDuvent@gmail.com)
|
||||
* @brief Paquet du langage en français pour le module de Page
|
||||
**/
|
||||
|
||||
$lang->page = "Page";
|
||||
$lang->about_page = "C'est un module qui peut créer une page complet.\nVous pouvez créer une page dynamique en utilisant des gadgets des Documents derniers ou d'autres. Vous pouvez aussi créer une page avec variété par le composant d'editeur.\nL'URL d'accès est égal celui d'autre module comme mid=module.\nSi c'est choisi par défaut, ce sera la première page du site.";
|
||||
$lang->cmd_page_modify = "Modifier";
|
||||
$lang->cmd_page_create = '페이지 생성';
|
||||
$lang->page_caching_interval = "Temps de antémémoire";
|
||||
$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 = '페이지 관리';
|
||||
?>
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/page/lang/jp.lang.php
|
||||
* @author NHN (developers@xpressengine.com) 翻訳:RisaPapa、ミニミ
|
||||
* @brief ページ(page)モジュールの基本言語パッケージ
|
||||
**/
|
||||
|
||||
$lang->page = 'ページ';
|
||||
$lang->about_page = "一枚のページを作成出来るモジュールです。\n最新書き込みウィジェットや他のウィジェットを用いて動的なページが作成が出来、さらにエディターのコンポネントで様々なデザインも出来ます。\n接続URLは、他のモジュールと同様に、「mid=モジュール名」でアクセスし、デフォルトとして指定するとサイトにアクセスする際、メインページとして使われます。";
|
||||
$lang->cmd_page_modify = 'ページ修正';
|
||||
$lang->cmd_page_create = 'ページ作成';
|
||||
$lang->page_caching_interval = 'キャッシング時間設定';
|
||||
$lang->about_page_caching_interval = '分単位で指定出来、設定された時間の間は、臨時保存されたデータを出力します。<br />他のサーバの情報を出力したり、データを出力する際、リソースが多く使われるため、数分単位でキャッシングすることをお勧めします。<br />「0」に指定するとキャッシングされません。';
|
||||
$lang->about_mcontent = 'モバイルスキン用のページです。作成しないとPC向けのページを再構成して表示します。';
|
||||
$lang->page_management = 'ページ管理';
|
||||
?>
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/page/lang/ko.lang.php
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief 페이지(page) 모듈의 기본 언어팩
|
||||
**/
|
||||
|
||||
$lang->page = '페이지';
|
||||
$lang->about_page = "하나의 완성된 페이지를 제작할 수 있는 페이지 모듈입니다.\n최근게시물이나 기타 위젯을 이용해서 동적인 페이지 생성이 가능하고 에디터 컴포넌트를 통해서 다양한 모습으로 꾸밀 수 있습니다.\n접속 URL은 다른 모듈과 같이 mid=모듈이름 으로 접속 가능하며 기본으로 선택하면 접속 시 메인 페이지가 됩니다.";
|
||||
$lang->cmd_page_modify = '페이지 수정';
|
||||
$lang->cmd_page_create = '페이지 생성';
|
||||
$lang->page_caching_interval = '캐싱 시간 설정';
|
||||
$lang->about_page_caching_interval = '분 단위이며 정해진 시간동안은 임시 저장한 데이터를 출력합니다.<br />다른 서버의 정보를 출력하거나, 데이터 출력하는데 많은 자원이 필요한 경우, 원하시는 분 단위 시간 간격으로 캐싱하는 것을 추천합니다.<br />0 으로 하시면 캐싱을 하지 않습니다.';
|
||||
$lang->about_mcontent = '모바일에서 보여질 페이지입니다. 만약 작성하지 않으면 기본 페이지 데이터를 재정렬해서 보여줍니다.';
|
||||
$lang->page_management = '페이지 관리';
|
||||
?>
|
||||
173
modules/page/lang/lang.xml
Normal file
173
modules/page/lang/lang.xml
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<lang>
|
||||
<item name="page">
|
||||
<value xml:lang="ko"><![CDATA[페이지]]></value>
|
||||
<value xml:lang="en"><![CDATA[Page]]></value>
|
||||
<value xml:lang="jp"><![CDATA[ページ]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[页面]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[頁面]]></value>
|
||||
<value xml:lang="ru"><![CDATA[Страница]]></value>
|
||||
<value xml:lang="es"><![CDATA[Página]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Sayfa]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Trang]]></value>
|
||||
</item>
|
||||
<item name="about_page">
|
||||
<value xml:lang="ko"><![CDATA[하나의 완성된 페이지를 제작할 수 있는 페이지 모듈입니다.
|
||||
최근게시물이나 기타 위젯을 이용해서 동적인 페이지 생성이 가능하고 에디터 컴포넌트를 통해서 다양한 모습으로 꾸밀 수 있습니다.
|
||||
접속 URL은 다른 모듈과 같이 mid=모듈이름 으로 접속 가능하며 기본으로 선택하면 접속 시 메인 페이지가 됩니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[It is a blog module where you can create a complete page.
|
||||
Using latest or other widgets, you can create a dynamic page. Through the editor component, you can also create a great variety of pages.
|
||||
Its URL is same as other module's such as mid=module name.
|
||||
If it is selected as a default, it will be the main page of the site.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[一枚のページを作成できるモジュールです。
|
||||
最新書き込みウィジェットや他のウィジェットを用いて動的なページが作成ができ、さらにエディターのコンポネントで様々なデザインもできます。
|
||||
接続URLは、他のモジュールと同様に、「mid=モジュール名」でアクセスし、デフォルトとして指定するとサイトにアクセスする際、メインページとして使われます。]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[可制作完整页面的模块。
|
||||
利用最新主题列表或其他控件可以生成动态的页面,且通过网页编辑器做出形式多样的页面。
|
||||
连接页面URL同其他模块链接相同。即:mid=模块名称。选择默认选项此页面将变为首页。]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[可製作完整頁面的模組。
|
||||
利用最新主題列表或其他 Widgets 可以建立動態的頁面,且通過網頁編輯器做出多樣化的頁面。
|
||||
連結頁面網址和其他模組連結的方式相同。即:mid=模組名稱。選擇預設選項時,此頁面將變為首頁。]]></value>
|
||||
<value xml:lang="fr"><![CDATA[C'est un module qui peut créer une page complet.
|
||||
Vous pouvez créer une page dynamique en utilisant des gadgets des Documents derniers ou d'autres. Vous pouvez aussi créer une page avec variété par le composant d'editeur.
|
||||
L'URL d'accès est égal celui d'autre module comme mid=module.
|
||||
Si c'est choisi par défaut, ce sera la première page du site.]]></value>
|
||||
<value xml:lang="ru"><![CDATA[Это модуль блога, который создает полную страницу.
|
||||
Используя последние и другие виджеты, Вы можете создавать динамические страницы. Посредством компонента редактора, Вы можете также создать различные вариации страницы.
|
||||
URL модуля следует тем же правилам, что и другие модули: mid=имя_модуля.
|
||||
Если он выбран как модуль по умолчанию, то он будет главной страницей сайта.]]></value>
|
||||
<value xml:lang="es"><![CDATA[Esto es un módulo de blog, lo cual usted puede crear una página completa.
|
||||
Usando los últimos u otros widgets, Usted puede crear una página dinámica. A través del componente del editor, también puede crear páginas de gran variedad.
|
||||
URL de conección es el mismo que de los otros módulos como mid=Nombre del módulo.
|
||||
Si selcciona como predefinido esta página será la página principal del sitio.]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Eksiksiz sayfa oluşturabileceğiniz bir blog modülüdür.
|
||||
Enson veya diğer widgetları kullanarak, dinamik sayfa oluşturabilirsiniz. Editör bileşeni yoluyla, çok farklı sayıda sayfalar oluşturabilirsiniz.
|
||||
URL'si diğer modülleriyle aynıdır(mid=module name).
|
||||
Varsayılan olarak seçilirse, sitenin anasayfası olacaktır.]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Là Module tạo ra một trang đầy đủ.
|
||||
Sử dụng Widget mới nhất hoặc những Widget khác giúp bạn có thể tạo một trang động. Thông qua trình bên tập Component, bạn có thể tạo ra sự phong phú cho những trang khác nhau.
|
||||
Địa chỉ của nó như một Module dạng '<b>mid=module name</b>'.
|
||||
Nếu chọn là mặc định, nó sẽ là trang chủ của Website.]]></value>
|
||||
</item>
|
||||
<item name="cmd_page_modify">
|
||||
<value xml:lang="ko"><![CDATA[페이지 수정]]></value>
|
||||
<value xml:lang="en"><![CDATA[Modify]]></value>
|
||||
<value xml:lang="jp"><![CDATA[ページ修正]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[页面编辑]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[頁面編輯]]></value>
|
||||
<value xml:lang="fr"><![CDATA[Modifier]]></value>
|
||||
<value xml:lang="ru"><![CDATA[Изменить]]></value>
|
||||
<value xml:lang="es"><![CDATA[Modificar]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Değiştir]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Sửa đổi]]></value>
|
||||
</item>
|
||||
<item name="cmd_page_create">
|
||||
<value xml:lang="ko"><![CDATA[페이지 생성]]></value>
|
||||
<value xml:lang="en"><![CDATA[Create a Page]]></value>
|
||||
<value xml:lang="jp"><![CDATA[ページ作成]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[建立頁面]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Sayfa Oluştur]]></value>
|
||||
</item>
|
||||
<item name="cmd_page_article_create">
|
||||
<value xml:lang="ko"><![CDATA[Article 생성]]></value>
|
||||
<value xml:lang="en"><![CDATA[Create an Article]]></value>
|
||||
<value xml:lang="jp"><![CDATA[Article作成]]></value>
|
||||
</item>
|
||||
<item name="page_caching_interval">
|
||||
<value xml:lang="ko"><![CDATA[캐싱 시간 설정]]></value>
|
||||
<value xml:lang="en"><![CDATA[Caching Time]]></value>
|
||||
<value xml:lang="jp"><![CDATA[キャッシング時間設定]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[缓冲时间设置]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[暫存時間設置]]></value>
|
||||
<value xml:lang="fr"><![CDATA[Temps de antémémoire]]></value>
|
||||
<value xml:lang="ru"><![CDATA[Установить время кеширования]]></value>
|
||||
<value xml:lang="es"><![CDATA[Establezca el tiempo de cache]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Önbelleğe Alma Zamanı]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Thời gian lưu trữ]]></value>
|
||||
</item>
|
||||
<item name="about_page_caching_interval">
|
||||
<value xml:lang="ko"><![CDATA[분 단위이며 정해진 시간동안은 임시 저장한 데이터를 출력합니다.<br />다른 서버의 정보를 출력하거나, 데이터 출력하는데 많은 자원이 필요한 경우, 원하시는 분 단위 시간 간격으로 캐싱하는 것을 추천합니다.<br />0 으로 하시면 캐싱을 하지 않습니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[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.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[分単位で指定でき、設定された時間の間は、一時保存されたデータを出力します。<br />他のサーバの情報を出力したり、データを出力する際、リソースが多く使われるため、数分単位でキャッシングすることをお勧めします。<br />「0」に指定するとキャッシングされません。]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[单位为分。缓冲时间间隔内页面将输出临时储存的数据。<br />显示外链服务器信息或数据时,如消耗资源很大,尽量把缓冲时间设置为大一点的相应值。<br />0 表示无缓冲。]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[單位為分。暫存時間內頁面將輸出臨時儲存的資料。<br />輸出外部主機訊息或資料時,如消耗資源很大,盡量把暫存時間設大一點。<br />『0』表示不暫存。]]></value>
|
||||
<value xml:lang="fr"><![CDATA[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.]]></value>
|
||||
<value xml:lang="ru"><![CDATA[Единица измерения равна одной минуте. Это отображает временно сохраненные данные для присвоенного времени.<br />Рекомендуется устанавливать разумное время кеширования, если множество ресурсов нуждаются в показе данных с других серверов.<br />Значение 0 отключает кеширование.]]></value>
|
||||
<value xml:lang="es"><![CDATA[La unidad es minuto, y se muestra temporal de los datos guardados por el tiempo asignado. <br /> Se recomienda a la cache para una buena vez si una gran cantidad de recursos se necesitan otros servidores cuando se muestran los datos o la informacion. <br /> Un valor de 0 no cache.]]></value>
|
||||
<value xml:lang="tr"><![CDATA[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.]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Đơ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.]]></value>
|
||||
</item>
|
||||
<item name="about_mcontent">
|
||||
<value xml:lang="ko"><![CDATA[모바일에서 보여질 페이지입니다. 만약 작성하지 않으면 기본 페이지 데이터를 재정렬해서 보여줍니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[This is the page you will see from mobile devices. If you have not set this page, rearranged default page will be displayed.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[モバイルスキン用のページです。作成しないとPC向けのページを再構成して表示します。]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[此页为移动版页面,如您没有对此页面进行布局,它会自动将PC版页面数据重排序显示。]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[此頁面為手機瀏覽頁面。如果沒有編輯此頁面,則會將預設頁面改編重新顯示。]]></value>
|
||||
<value xml:lang="fr"><![CDATA[This is the page for the mobile view. If you do not write this page, the mobile view display reoragnized PC view's page.]]></value>
|
||||
<value xml:lang="ru"><![CDATA[This is the page for the mobile view. If you do not write this page, the mobile view display reoragnized PC view's page.]]></value>
|
||||
<value xml:lang="es"><![CDATA[This is the page for the mobile view. If you do not write this page, the mobile view display reoragnized PC view's page.]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Bu sayfa, sizin hareketli cihazlardan göreceğiniz sayfadır. Eğer bu sayfayı ayarlamadıysanız, düzenlenmiş varsayılan sayfa gösterilecektir.]]></value>
|
||||
<value xml:lang="vi"><![CDATA[This is the page for the mobile view. If you do not write this page, the mobile view display reoragnized PC view's page.]]></value>
|
||||
</item>
|
||||
<item name="page_type">
|
||||
<value xml:lang="ko"><![CDATA[페이지 타입]]></value>
|
||||
<value xml:lang="en"><![CDATA[Page Type]]></value>
|
||||
<value xml:lang="jp"><![CDATA[ページタイプ]]></value>
|
||||
</item>
|
||||
<item name="click_choice">
|
||||
<value xml:lang="ko"><![CDATA[선택해 주세요.]]></value>
|
||||
<value xml:lang="en"><![CDATA[Select]]></value>
|
||||
<value xml:lang="jp"><![CDATA[選択してください。]]></value>
|
||||
</item>
|
||||
<item name="page_type_name" type="array">
|
||||
<item name="ARTICLE">
|
||||
<value xml:lang="ko"><![CDATA[문서 페이지]]></value>
|
||||
<value xml:lang="en"><![CDATA[Article Page]]></value>
|
||||
<value xml:lang="jp"><![CDATA[書き込み Page]]></value>
|
||||
</item>
|
||||
<item name="WIDGET">
|
||||
<value xml:lang="ko"><![CDATA[위젯 페이지]]></value>
|
||||
<value xml:lang="en"><![CDATA[Widget Page]]></value>
|
||||
<value xml:lang="jp"><![CDATA[ウィジェット Page]]></value>
|
||||
</item>
|
||||
<item name="OUTSIDE">
|
||||
<value xml:lang="ko"><![CDATA[외부 페이지]]></value>
|
||||
<value xml:lang="en"><![CDATA[External Page]]></value>
|
||||
<value xml:lang="jp"><![CDATA[外部ページ]]></value>
|
||||
</item>
|
||||
</item>
|
||||
<item name="about_page_type">
|
||||
<value xml:lang="ko"><![CDATA[페이지 타입을 선택하여 원하는 화면을 구성할 수 있습니다. <ol><li>위젯형 : 여러가지 위젯들을 생성하여 화면을 구성합니다.</li><li>문서형 : 제목, 내용, 태그를 갖는 문서를 제작하여 포스팅 형식의 페이지를 작성합니다. </li><li>외부페이지형 : 외부 HTML 또는 PHP 파일을 XE에서 사용할 수 있습니다.</li></ol>]]></value>
|
||||
<value xml:lang="en"><![CDATA[Select Page Type to build a page. <ol><li>Widget: Create multiple widgets.</li><li>Article: Create articles with titles, contents and tags for posting page. </li><li>External Page: Use external HTML or PHP files in XE.</li></ol>]]></value>
|
||||
<value xml:lang="jp"><![CDATA[ページタイプを選択して好きな画面を構成できます。<ol><li>ウィジェット型 : いろんなウィジェットを生成して画面を構成します。</li><li>ドキュメント型 : タイトル、内容、タグのあるドキュメントを製作して、投稿形式のページを作成します。</li><li>外部ページ型 : 外部HTML、またはPHPファイルをXEで使用できます。]]></value>
|
||||
</item>
|
||||
<item name="opage_path">
|
||||
<value xml:lang="ko"><![CDATA[외부 문서 위치]]></value>
|
||||
<value xml:lang="en"><![CDATA[Location of External Document]]></value>
|
||||
<value xml:lang="jp"><![CDATA[外部ドキュメントの位置]]></value>
|
||||
</item>
|
||||
<item name="about_opage">
|
||||
<value xml:lang="ko"><![CDATA[XE가 아닌 외부 HTML 또는 PHP파일을 XE에서 사용할 수 있도록 하는 모듈입니다.<br />절대경로, 상대경로를 이용할 수 있으며 http:// 로 시작할 경우 서버 외부의 페이지도 표시할 수 있습니다]]></value>
|
||||
<value xml:lang="en"><![CDATA[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.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[XEではなく、外部HTML、またはPHPファイルをXEで使用できるようにするモジュールです。<br />絶対パス、相対パスを利用でき、http://で開始する場合にサーバー外部のページも表示できます。]]></value>
|
||||
</item>
|
||||
<item name="about_opage_path">
|
||||
<value xml:lang="ko"><![CDATA[외부문서의 위치를 입력해주세요.<br />/path1/path2/sample.php 와 같이 절대경로나 ../path2/sample.php와 같은 상대경로 모두 사용가능합니다.<br />http://url/sample.php 와 같이 사용하면 해당 페이지를 웹으로 전송 받아 출력 하게 됩니다.<br />현재 XE가 설치된 절대경로는 다음과 같습니다.<br />]]></value>
|
||||
<value xml:lang="en"><![CDATA[Please enter 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 />]]></value>
|
||||
<value xml:lang="jp"><![CDATA[外部ドキュメントの位置を入力してください。<br />/path1/path2/sample.phpのような絶対パス、もしくは../path2/sample.phpのような相対パス両方とも使用できます。<br />http://url/sample.phpのように使用すると、該当ページをウェブへ転送し、出力します。<br />現在、XEがインストールされている絶対パスは、次のとおりです。<br />]]></value>
|
||||
</item>
|
||||
<item name="opage_mobile_path">
|
||||
<value xml:lang="ko"><![CDATA[모바일용 외부 문서 위치]]></value>
|
||||
<value xml:lang="en"><![CDATA[Location of External Document for Mobile View]]></value>
|
||||
<value xml:lang="jp"><![CDATA[モバイル用外部ドキュメントの位置]]></value>
|
||||
</item>
|
||||
<item name="about_opage_mobile_path">
|
||||
<value xml:lang="ko"><![CDATA[모바일용 외부문서의 위치를 입력해주세요. 입력하지 않으면 위에서 지정한 외부문서 위치의 페이지를 이용합니다. <br />/path1/path2/sample.php 와 같이 절대경로나 ../path2/sample.php와 같은 상대경로 모두 사용가능합니다.<br />http://url/sample.php 와 같이 사용하면 해당 페이지를 웹으로 전송 받아 출력 하게 됩니다.<br />현재 XE가 설치된 절대경로는 다음과 같습니다.<br />]]></value>
|
||||
<value xml:lang="en"><![CDATA[Please enter 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 />]]></value>
|
||||
<value xml:lang="jp"><![CDATA[モバイル用外部ドキュメントの位置を入力してください。入力しないと上記で指定した外部ドキュメントの位置のページを利用します。<br />/path1/path2/sample.phpのように絶対パス、もしくは../path2/sample.phpのような相対パス両方とも使用できます。<br />http://url/sample.phpのように使用すると、該当ページをウェブへ転送し、出力します。<br />現在、XEのインストールされている絶対パスは、次のとおりです。<br />]]></value>
|
||||
</item>
|
||||
<item name="page_management">
|
||||
<value xml:lang="ko"><![CDATA[페이지 관리]]></value>
|
||||
<value xml:lang="en"><![CDATA[Manage of page]]></value>
|
||||
</item>
|
||||
</lang>
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @file ru.lang.php
|
||||
* @author NHN (developers@xpressengine.com) | translation by Maslennikov Evgeny aka X-[Vr]bL1s5 | e-mail: x-bliss[a]tut.by; ICQ: 225035467;
|
||||
* @brief Russian basic language pack
|
||||
**/
|
||||
|
||||
$lang->page = "Страница";
|
||||
$lang->about_page = "Это модуль блога, который создает полную страницу.\nИспользуя последние и другие виджеты, Вы можете создавать динамические страницы. Посредством компонента редактора, Вы можете также создать различные вариации страницы.\nURL модуля следует тем же правилам, что и другие модули: mid=имя_модуля.\n Если он выбран как модуль по умолчанию, то он будет главной страницей сайта.";
|
||||
$lang->page_caching_interval = "Установить время кеширования";
|
||||
$lang->about_page_caching_interval = "Единица измерения равна одной минуте. Это отображает временно сохраненные данные для присвоенного времени.<br />Рекомендуется устанавливать разумное время кеширования, если множество ресурсов нуждаются в показе данных с других серверов.<br />Значение 0 отключает кеширование.";
|
||||
$lang->cmd_page_modify = "Изменить";
|
||||
$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 = '페이지 관리';
|
||||
?>
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/page/lang/en.lang.php
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief page module / basic language pack
|
||||
**/
|
||||
|
||||
$lang->page = "Sayfa";
|
||||
$lang->about_page = "Eksiksiz sayfa oluşturabileceğiniz bir blog modülüdür.\nEnson veya diğer widgetları kullanarak, dinamik sayfa oluşturabilirsiniz. Editör bileşeni yoluyla, çok farklı sayıda sayfalar oluşturabilirsiniz.\nURL\'si diğer modülleriyle aynıdır(mid=module name).\n Varsayılan olarak seçilirse, sitenin anasayfası olacaktır.";
|
||||
$lang->cmd_page_modify = "Değiştir";
|
||||
$lang->cmd_page_create = 'Sayfa Oluştur';
|
||||
$lang->page_caching_interval = "Önbelleğe Alma Zamanı";
|
||||
$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';
|
||||
?>
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
<?php
|
||||
/* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||
░░ * @File : common/lang/vi.lang.php ░░
|
||||
░░ * @Author : NHN (developers@xpressengine.com) ░░
|
||||
░░ * @Trans : Đào Đức Duy (ducduy.dao.vn@vietxe.net) ░░
|
||||
░░ * @Website: http://vietxe.net ░░
|
||||
░░ * @Brief : Vietnamese Language Pack (Only basic words are included here) ░░
|
||||
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ */
|
||||
|
||||
$lang->page = "Trang";
|
||||
$lang->about_page = "Là Module tạo ra một trang đầy đủ.\nSử dụng Widget mới nhất hoặc những Widget khác giúp bạn có thể tạo một trang động. Thông qua trình bên tập Component, bạn có thể tạo ra sự phong phú cho những trang khác nhau.\nĐịa chỉ của nó như một Module dạng '<b>mid=module name</b>'.\nNếu chọn là mặc định, nó sẽ là trang chủ của Website.";
|
||||
$lang->cmd_page_modify = "Sửa đổi";
|
||||
$lang->cmd_page_create = '페이지 생성';
|
||||
$lang->page_caching_interval = "Thời gian lưu trữ";
|
||||
$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 = '페이지 관리';
|
||||
?>
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @file zh-CN.lang.php
|
||||
* @author NHN (developers@xpressengine.com) 翻译:guny(space.china@gmail.com)
|
||||
* @brief 页面(page)模块简体中文语言包
|
||||
**/
|
||||
|
||||
$lang->page = "页面";
|
||||
$lang->about_page = "可制作完整页面的模块。\n利用最新主题列表或其他控件可以生成动态的页面,且通过网页编辑器做出形式多样的页面。\n连接页面URL同其他模块链接相同。即:mid=模块名称。选择默认选项此页面将变为首页。";
|
||||
$lang->cmd_page_modify = "页面编辑";
|
||||
$lang->cmd_page_create = '페이지 생성';
|
||||
$lang->page_caching_interval = "缓冲时间设置";
|
||||
$lang->about_page_caching_interval = "单位为分。缓冲时间间隔内页面将输出临时储存的数据。<br />显示外链服务器信息或数据时,如消耗资源很大,尽量把缓冲时间设置为大一点的相应值。<br />0 表示无缓冲。";
|
||||
$lang->about_mcontent = '此页为移动版页面,如您没有对此页面进行布局,它会自动将PC版页面数据重排序显示。';
|
||||
$lang->page_management = '페이지 관리';
|
||||
?>
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/page/lang/zh-TW.lang.php
|
||||
* @author NHN (developers@xpressengine.com) 翻譯:royallin
|
||||
* @brief 頁面(page) 模組正體中文語言
|
||||
**/
|
||||
|
||||
$lang->page = "頁面";
|
||||
$lang->about_page = "可製作完整頁面的模組。\n利用最新主題列表或其他 Widgets 可以建立動態的頁面,且通過網頁編輯器做出多樣化的頁面。\n連結頁面網址和其他模組連結的方式相同。即:mid=模組名稱。選擇預設選項時,此頁面將變為首頁。";
|
||||
$lang->cmd_page_modify = "頁面編輯";
|
||||
$lang->cmd_page_create = '建立頁面';
|
||||
$lang->page_caching_interval = "暫存時間設置";
|
||||
$lang->about_page_caching_interval = "單位為分。暫存時間內頁面將輸出臨時儲存的資料。<br />輸出外部主機訊息或資料時,如消耗資源很大,盡量把暫存時間設大一點。<br />『0』表示不暫存。";
|
||||
$lang->about_mcontent = '此頁面為手機瀏覽頁面。如果沒有編輯此頁面,則會將預設頁面改編重新顯示。';
|
||||
$lang->page_management = '頁面管理';
|
||||
?>
|
||||
12
modules/page/m.skins/default/mobile.html
Normal file
12
modules/page/m.skins/default/mobile.html
Normal 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-->
|
||||
|
|
@ -1,221 +1,300 @@
|
|||
<?php
|
||||
/**
|
||||
* @class pageAdminController
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief page 모듈의 admin controller class
|
||||
**/
|
||||
|
||||
class pageAdminController extends page {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 페이지 추가
|
||||
**/
|
||||
function procPageAdminInsert() {
|
||||
// module 모듈의 model/controller 객체 생성
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 게시판 모듈의 정보 설정
|
||||
$args = Context::getRequestVars();
|
||||
$args->module = 'page';
|
||||
$args->mid = $args->page_name;
|
||||
unset($args->page_name);
|
||||
|
||||
if($args->use_mobile != 'Y') $args->use_mobile = '';
|
||||
|
||||
// module_srl이 넘어오면 원 모듈이 있는지 확인
|
||||
if($args->module_srl) {
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($args->module_srl);
|
||||
if($module_info->module_srl != $args->module_srl) {
|
||||
unset($args->module_srl);
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach($args as $key=>$val)
|
||||
{
|
||||
$module_info->{$key} = $val;
|
||||
}
|
||||
$args = $module_info;
|
||||
}
|
||||
}
|
||||
|
||||
// module_srl의 값에 따라 insert/update
|
||||
if(!$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("page", Context::get('page'));
|
||||
$this->add('module_srl',$output->get('module_srl'));
|
||||
$this->setMessage($msg_code);
|
||||
}
|
||||
|
||||
function putDocumentsInPageToArray($target, &$array)
|
||||
{
|
||||
if(!$target) return;
|
||||
preg_match_all('!<img src="./common/tpl/images/widget_bg.jpg" ([^>]+)!is', $target, $matches);
|
||||
$pattern = '!document_srl="(\d+)"!';
|
||||
foreach($matches[1] as $match)
|
||||
{
|
||||
$match2 = null;
|
||||
preg_match($pattern, $match, $match2);
|
||||
if(count($match2))
|
||||
{
|
||||
$array[(int)$match2[1]] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 페이지 수정 내용 저장
|
||||
**/
|
||||
function procPageAdminInsertContent() {
|
||||
$module_srl = Context::get('module_srl');
|
||||
$content = Context::get('content');
|
||||
if(!$module_srl) return new Object(-1,'msg_invalid_request');
|
||||
$mcontent = Context::get('mcontent');
|
||||
$type = Context::get('type');
|
||||
|
||||
// 페이지의 원 정보를 구해옴
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
if($type == "mobile") {
|
||||
if(!$mcontent) $mcontent = '';
|
||||
$module_info->mcontent = $mcontent;
|
||||
}
|
||||
else {
|
||||
if(!isset($content)) $content ='';
|
||||
$module_info->content = $content;
|
||||
}
|
||||
|
||||
$document_srls = array();
|
||||
$this->putDocumentsInPageToArray($module_info->content, $document_srls);
|
||||
$this->putDocumentsInPageToArray($module_info->mcontent, $document_srls);
|
||||
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oDocumentController = &getController('document');
|
||||
$obj->module_srl = $module_srl;
|
||||
$obj->list_count = 99999999;
|
||||
$output = $oDocumentModel->getDocumentList($obj);
|
||||
if(count($output->data)) {
|
||||
foreach($output->data as $document)
|
||||
{
|
||||
if($document_srls[$document->document_srl]) continue;
|
||||
$oDocumentController->deleteDocument($document->document_srl, true);
|
||||
}
|
||||
}
|
||||
// module 모듈의 controller 객체 생성
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// 저장
|
||||
$output = $oModuleController->updateModule($module_info);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// 해당 페이지에 첨부된 파일의 상태를 유효로 변경
|
||||
$oFileController = &getController('file');
|
||||
$oFileController->setFilesValid($module_info->module_srl);
|
||||
|
||||
// 캐시파일 재생성
|
||||
//$this->procPageAdminRemoveWidgetCache();
|
||||
|
||||
$this->add("module_srl", $module_info->module_srl);
|
||||
$this->add("page", Context::get('page'));
|
||||
$this->add("mid", $module_info->mid);
|
||||
$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::getRequestVars();
|
||||
|
||||
// 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;
|
||||
|
||||
$cache_file = sprintf("%sfiles/cache/page/%d.%s.cache.php", _XE_PATH_, $module_info->module_srl, Context::getLangType());
|
||||
if(file_exists($cache_file)) FileHandler::removeFile($cache_file);
|
||||
|
||||
// widget controller 의 캐시파일 재생성 실행
|
||||
$oWidgetController = &getController('widget');
|
||||
$oWidgetController->recompileWidget($content);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class pageAdminController
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief page of the module admin controller class
|
||||
**/
|
||||
|
||||
class pageAdminController extends page {
|
||||
|
||||
/**
|
||||
* @brief Initialization
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Add a Page
|
||||
**/
|
||||
function procPageAdminInsert() {
|
||||
// Create model/controller object of the module module
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleModel = &getModel('module');
|
||||
// Set board module
|
||||
$args = Context::getRequestVars();
|
||||
$args->module = 'page';
|
||||
$args->mid = $args->page_name; //because if mid is empty in context, set start page mid
|
||||
unset($args->page_name);
|
||||
|
||||
if($args->use_mobile != 'Y') $args->use_mobile = '';
|
||||
// Check if an original module exists by using module_srl
|
||||
if($args->module_srl) {
|
||||
$columnList = array('module_srl');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($args->module_srl, $columnList);
|
||||
if($module_info->module_srl != $args->module_srl) {
|
||||
unset($args->module_srl);
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach($args as $key=>$val)
|
||||
{
|
||||
$module_info->{$key} = $val;
|
||||
}
|
||||
$args = $module_info;
|
||||
}
|
||||
}
|
||||
|
||||
switch ($args->page_type){
|
||||
case 'WIDGET' : {
|
||||
unset($args->skin);
|
||||
unset($args->mskin);
|
||||
unset($args->path);
|
||||
unset($args->mpath);
|
||||
break;
|
||||
}
|
||||
case 'ARTICLE' : {
|
||||
unset($args->page_caching_interval);
|
||||
unset($args->path);
|
||||
unset($args->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);
|
||||
$msg_code = 'success_registed';
|
||||
} else {
|
||||
$output = $oModuleController->updateModule($args);
|
||||
$msg_code = 'success_updated';
|
||||
}
|
||||
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->add("page", Context::get('page'));
|
||||
$this->add('module_srl',$output->get('module_srl'));
|
||||
$this->setMessage($msg_code);
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'module_srl', $output->get('module_srl'), 'act', 'dispPageAdminInfo');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Page Modify
|
||||
**/
|
||||
function procPageAdminUpdate()
|
||||
{
|
||||
$this->procPageAdminInsert();
|
||||
}
|
||||
|
||||
function putDocumentsInPageToArray($target, &$array)
|
||||
{
|
||||
if(!$target) return;
|
||||
preg_match_all('!<img hasContent="true" ([^>]+)!is', $target, $matches);
|
||||
$pattern = '!document_srl="(\d+)"!';
|
||||
foreach($matches[1] as $match)
|
||||
{
|
||||
$match2 = null;
|
||||
preg_match($pattern, $match, $match2);
|
||||
if(count($match2))
|
||||
{
|
||||
$array[(int)$match2[1]] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Save page edits
|
||||
**/
|
||||
function procPageAdminInsertContent() {
|
||||
$module_srl = Context::get('module_srl');
|
||||
$content = Context::get('content');
|
||||
if(!$module_srl) return new Object(-1,'msg_invalid_request');
|
||||
$mcontent = Context::get('mcontent');
|
||||
$type = Context::get('type');
|
||||
// Guhaeom won information page
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
if($type == "mobile") {
|
||||
if(!$mcontent) $mcontent = '';
|
||||
$module_info->mcontent = $mcontent;
|
||||
}
|
||||
else {
|
||||
if(!isset($content)) $content ='';
|
||||
$module_info->content = $content;
|
||||
}
|
||||
|
||||
$document_srls = array();
|
||||
$this->putDocumentsInPageToArray($module_info->content, $document_srls);
|
||||
$this->putDocumentsInPageToArray($module_info->mcontent, $document_srls);
|
||||
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oDocumentController = &getController('document');
|
||||
$obj->module_srl = $module_srl;
|
||||
$obj->list_count = 99999999;
|
||||
$output = $oDocumentModel->getDocumentList($obj);
|
||||
if(count($output->data)) {
|
||||
foreach($output->data as $document)
|
||||
{
|
||||
if($document_srls[$document->document_srl]) continue;
|
||||
$oDocumentController->deleteDocument($document->document_srl, true);
|
||||
}
|
||||
}
|
||||
// Creates an object of the controller module module
|
||||
$oModuleController = &getController('module');
|
||||
// Save
|
||||
$output = $oModuleController->updateModule($module_info);
|
||||
if(!$output->toBool()) return $output;
|
||||
// On the page, change the validity status of the attached file
|
||||
$oFileController = &getController('file');
|
||||
$oFileController->setFilesValid($module_info->module_srl);
|
||||
// Create cache file
|
||||
//$this->procPageAdminRemoveWidgetCache();
|
||||
|
||||
$this->add("module_srl", $module_info->module_srl);
|
||||
$this->add("page", Context::get('page'));
|
||||
$this->add("mid", $module_info->mid);
|
||||
$this->setMessage($msg_code);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Delete page
|
||||
**/
|
||||
function procPageAdminDelete() {
|
||||
$module_srl = Context::get('module_srl');
|
||||
// Get an original
|
||||
$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');
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'module_srl', $output->get('module_srl'), 'act', 'dispPageAdminInfo');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Additional pages of basic information
|
||||
**/
|
||||
function procPageAdminInsertConfig() {
|
||||
// Get the basic information
|
||||
$args = Context::getRequestVars();
|
||||
// Insert by creating the module Controller object
|
||||
$oModuleController = &getController('module');
|
||||
$output = $oModuleController->insertModuleConfig('page',$args);
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Upload attachments
|
||||
**/
|
||||
function procUploadFile() {
|
||||
// Basic variables setting
|
||||
$upload_target_srl = Context::get('upload_target_srl');
|
||||
$module_srl = Context::get('module_srl');
|
||||
// Create the controller object file class
|
||||
$oFileController = &getController('file');
|
||||
$output = $oFileController->insertFile($module_srl, $upload_target_srl);
|
||||
// Attachment to the output of the list, java script
|
||||
$oFileController->printUploadedFileList($upload_target_srl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Delete the attachment
|
||||
* Delete individual files in the editor using
|
||||
**/
|
||||
function procDeleteFile() {
|
||||
// Basic variable setting(upload_target_srl and module_srl set)
|
||||
$upload_target_srl = Context::get('upload_target_srl');
|
||||
$module_srl = Context::get('module_srl');
|
||||
$file_srl = Context::get('file_srl');
|
||||
// Create the controller object file class
|
||||
$oFileController = &getController('file');
|
||||
if($file_srl) $output = $oFileController->deleteFile($file_srl, $this->grant->manager);
|
||||
// Attachment to the output of the list, java script
|
||||
$oFileController->printUploadedFileList($upload_target_srl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Clear widget cache files of the specified page
|
||||
**/
|
||||
function procPageAdminRemoveWidgetCache() {
|
||||
$module_srl = Context::get('module_srl');
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$columnList = array('module_srl', 'content');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl, $columnList);
|
||||
|
||||
$content = $module_info->content;
|
||||
|
||||
$cache_file = sprintf("%sfiles/cache/page/%d.%s.cache.php", _XE_PATH_, $module_info->module_srl, Context::getLangType());
|
||||
if(file_exists($cache_file)) FileHandler::removeFile($cache_file);
|
||||
// widget controller re-run of the cache files
|
||||
$oWidgetController = &getController('widget');
|
||||
$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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,303 +1,320 @@
|
|||
<?php
|
||||
/**
|
||||
* @class pageAdminView
|
||||
* @author NHN (developers@xpressengine.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_srl이 넘어오면 해당 모듈의 정보를 미리 구해 놓음
|
||||
if($module_srl) {
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
if(!$module_info) {
|
||||
Context::set('module_srl','');
|
||||
$this->act = 'list';
|
||||
} else {
|
||||
ModuleModel::syncModuleToSite($module_info);
|
||||
$this->module_info = $module_info;
|
||||
Context::set('module_info',$module_info);
|
||||
}
|
||||
}
|
||||
|
||||
// 모듈 카테고리 목록을 구함
|
||||
$module_category = $oModuleModel->getModuleCategories();
|
||||
Context::set('module_category', $module_category);
|
||||
|
||||
//Security
|
||||
$security = new Security();
|
||||
$security->encodeHTML('module_category..title');
|
||||
|
||||
// 템플릿 경로 구함 (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');
|
||||
|
||||
$s_mid = Context::get('s_mid');
|
||||
if($s_mid) $args->s_mid = $s_mid;
|
||||
|
||||
$s_browser_title = Context::get('s_browser_title');
|
||||
if($s_browser_title) $args->s_browser_title = $s_browser_title;
|
||||
|
||||
$output = executeQuery('page.getPageList', $args);
|
||||
moduleModel::syncModuleToSite($output->data);
|
||||
|
||||
// 템플릿에 쓰기 위해서 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);
|
||||
|
||||
//Security
|
||||
$security = new Security();
|
||||
$security->encodeHTML('page_list..browser_title');
|
||||
$security->encodeHTML('page_list..mid');
|
||||
$security->encodeHTML('module_info.');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('index');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 선택된 페이지의 정보 출력
|
||||
**/
|
||||
function dispPageAdminInfo() {
|
||||
// GET parameter에서 module_srl을 가져옴
|
||||
$module_srl = Context::get('module_srl');
|
||||
$module_info = Context::get('module_info');
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
// 레이아웃 목록을 구해옴
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_list = $oLayoutModel->getLayoutList();
|
||||
Context::set('layout_list', $layout_list);
|
||||
|
||||
$mobile_layout_list = $oLayoutModel->getLayoutList(0,"M");
|
||||
Context::set('mlayout_list', $mobile_layout_list);
|
||||
|
||||
//Security
|
||||
$security = new Security();
|
||||
$security->encodeHTML('layout_list..layout');
|
||||
$security->encodeHTML('layout_list..title');
|
||||
$security->encodeHTML('mlayout_list..layout');
|
||||
$security->encodeHTML('mlayout_list..title');
|
||||
$security->encodeHTML('module_info.');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('page_info');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 페이지 추가 설정 보여줌
|
||||
* 추가설정은 서비스형 모듈들에서 다른 모듈과의 연계를 위해서 설정하는 페이지임
|
||||
**/
|
||||
function dispPageAdminPageAdditionSetup() {
|
||||
// content는 다른 모듈에서 call by reference로 받아오기에 미리 변수 선언만 해 놓음
|
||||
$content = '';
|
||||
|
||||
$oEditorView = &getView('editor');
|
||||
$oEditorView->triggerDispEditorAdditionSetup($content);
|
||||
Context::set('setup_content', $content);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('addition_setup');
|
||||
|
||||
$security = new Security();
|
||||
$security->encodeHTML('module_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);
|
||||
}
|
||||
}
|
||||
|
||||
// 레이아웃 목록을 구해옴
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_list = $oLayoutModel->getLayoutList();
|
||||
Context::set('layout_list', $layout_list);
|
||||
|
||||
$mobile_layout_list = $oLayoutModel->getLayoutList(0,"M");
|
||||
Context::set('mlayout_list', $mobile_layout_list);
|
||||
|
||||
//Security
|
||||
$security = new Security();
|
||||
$security->encodeHTML('layout_list..layout');
|
||||
$security->encodeHTML('layout_list..title');
|
||||
$security->encodeHTML('mlayout_list..layout');
|
||||
$security->encodeHTML('mlayout_list..title');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('page_insert');
|
||||
}
|
||||
|
||||
function dispPageAdminMobileContent() {
|
||||
if($this->module_srl) Context::set('module_srl',$this->module_srl);
|
||||
|
||||
// 캐시 파일 지정
|
||||
$cache_file = sprintf("%sfiles/cache/page/%d.%s.m.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);
|
||||
} else {
|
||||
$oWidgetController = &getController('widget');
|
||||
$page_content = $oWidgetController->transWidgetCode($this->module_info->mcontent);
|
||||
FileHandler::writeFile($cache_file, $page_content);
|
||||
}
|
||||
} else {
|
||||
if(file_exists($cache_file)) FileHandler::removeFile($cache_file);
|
||||
$page_content = $this->module_info->mcontent;
|
||||
}
|
||||
|
||||
Context::set('module_info', $this->module_info);
|
||||
Context::set('page_content', $page_content);
|
||||
|
||||
$this->setTemplateFile('mcontent');
|
||||
}
|
||||
|
||||
function dispPageAdminMobileContentModify() {
|
||||
Context::set('module_info', $this->module_info);
|
||||
|
||||
// 내용을 세팅
|
||||
$content = Context::get('mcontent');
|
||||
if(!$content) $content = $this->module_info->mcontent;
|
||||
Context::set('content', $content);
|
||||
|
||||
// 내용중 위젯들을 변환
|
||||
$oWidgetController = &getController('widget');
|
||||
$content = $oWidgetController->transWidgetCode($content, true);
|
||||
Context::set('page_content', $content);
|
||||
|
||||
// 위젯 목록을 세팅
|
||||
$oWidgetModel = &getModel('widget');
|
||||
$widget_list = $oWidgetModel->getDownloadedWidgetList();
|
||||
Context::set('widget_list', $widget_list);
|
||||
|
||||
//Security
|
||||
$security = new Security();
|
||||
$security->encodeHTML('widget_list..title','module_info.mid');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('page_mobile_content_modify');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 페이지 내용 수정
|
||||
**/
|
||||
function dispPageAdminContentModify() {
|
||||
// 모듈 정보를 세팅
|
||||
Context::set('module_info', $this->module_info);
|
||||
|
||||
// 내용을 세팅
|
||||
$content = Context::get('content');
|
||||
if(!$content) $content = $this->module_info->content;
|
||||
Context::set('content', $content);
|
||||
|
||||
// 내용중 위젯들을 변환
|
||||
$oWidgetController = &getController('widget');
|
||||
$content = $oWidgetController->transWidgetCode($content, true);
|
||||
Context::set('page_content', $content);
|
||||
|
||||
// 위젯 목록을 세팅
|
||||
$oWidgetModel = &getModel('widget');
|
||||
$widget_list = $oWidgetModel->getDownloadedWidgetList();
|
||||
Context::set('widget_list', $widget_list);
|
||||
|
||||
//Security
|
||||
$security = new Security();
|
||||
$security->encodeHTML('widget_list..title','module_info.mid');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$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);
|
||||
|
||||
//Security
|
||||
$security = new Security();
|
||||
$security->encodeHTML('module_info.module','module_info.mid');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('page_delete');
|
||||
|
||||
$security = new Security();
|
||||
$security->encodeHTML('module_info.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 권한 목록 출력
|
||||
**/
|
||||
function dispPageAdminGrantInfo() {
|
||||
// 공통 모듈 권한 설정 페이지 호출
|
||||
$oModuleAdminModel = &getAdminModel('module');
|
||||
$grant_content = $oModuleAdminModel->getModuleGrantHTML($this->module_info->module_srl, $this->xml_info->grant);
|
||||
Context::set('grant_content', $grant_content);
|
||||
|
||||
$this->setTemplateFile('grant_list');
|
||||
|
||||
$security = new Security();
|
||||
$security->encodeHTML('module_info.');
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class pageAdminView
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief page admin view of the module class
|
||||
**/
|
||||
|
||||
class pageAdminView extends page {
|
||||
|
||||
var $module_srl = 0;
|
||||
var $list_count = 20;
|
||||
var $page_count = 10;
|
||||
|
||||
/**
|
||||
* @brief Initialization
|
||||
**/
|
||||
function init() {
|
||||
// Pre-check if module_srl exists. Set module_info if exists
|
||||
$module_srl = Context::get('module_srl');
|
||||
// Create module model object
|
||||
$oModuleModel = &getModel('module');
|
||||
// module_srl two come over to save the module, putting the information in advance
|
||||
if($module_srl) {
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
if(!$module_info) {
|
||||
Context::set('module_srl','');
|
||||
$this->act = 'list';
|
||||
} else {
|
||||
ModuleModel::syncModuleToSite($module_info);
|
||||
$this->module_info = $module_info;
|
||||
Context::set('module_info',$module_info);
|
||||
}
|
||||
}
|
||||
// Get a list of module categories
|
||||
$module_category = $oModuleModel->getModuleCategories();
|
||||
Context::set('module_category', $module_category);
|
||||
//Security
|
||||
$security = new Security();
|
||||
$security->encodeHTML('module_category..title');
|
||||
|
||||
// Get a template path (page in the administrative template tpl putting together)
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Manage a list of pages showing
|
||||
**/
|
||||
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');
|
||||
|
||||
$s_mid = Context::get('s_mid');
|
||||
if($s_mid) $args->s_mid = $s_mid;
|
||||
|
||||
$s_browser_title = Context::get('s_browser_title');
|
||||
if($s_browser_title) $args->s_browser_title = $s_browser_title;
|
||||
|
||||
$output = executeQuery('page.getPageList', $args);
|
||||
$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);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('page_list', $output->data);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
//Security
|
||||
$security = new Security();
|
||||
$security->encodeHTML('page_list..browser_title');
|
||||
$security->encodeHTML('page_list..mid');
|
||||
$security->encodeHTML('module_info.');
|
||||
|
||||
// Set a template file
|
||||
$this->setTemplateFile('index');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Information output of the selected page
|
||||
**/
|
||||
function dispPageAdminInfo() {
|
||||
// Get module_srl by GET parameter
|
||||
$module_srl = Context::get('module_srl');
|
||||
$module_info = Context::get('module_info');
|
||||
// If you do not value module_srl just showing the index page
|
||||
if(!$module_srl) return $this->dispPageAdminContent();
|
||||
// If the layout is destined to add layout information haejum (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;
|
||||
}
|
||||
// Get a layout list
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_list = $oLayoutModel->getLayoutList();
|
||||
Context::set('layout_list', $layout_list);
|
||||
|
||||
$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);
|
||||
}
|
||||
|
||||
//Security
|
||||
$security = new Security();
|
||||
$security->encodeHTML('layout_list..layout');
|
||||
$security->encodeHTML('layout_list..title');
|
||||
$security->encodeHTML('mlayout_list..layout');
|
||||
$security->encodeHTML('mlayout_list..title');
|
||||
$security->encodeHTML('module_info.');
|
||||
|
||||
$this->setTemplateFile('page_info');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Additional settings page showing
|
||||
* For additional settings in a service module in order to establish links with other modules peyijiim
|
||||
**/
|
||||
function dispPageAdminPageAdditionSetup() {
|
||||
// call by reference content from other modules to come take a year in advance for putting the variable declaration
|
||||
$content = '';
|
||||
|
||||
$oEditorView = &getView('editor');
|
||||
$oEditorView->triggerDispEditorAdditionSetup($content);
|
||||
Context::set('setup_content', $content);
|
||||
// Set a template file
|
||||
$this->setTemplateFile('addition_setup');
|
||||
|
||||
$security = new Security();
|
||||
$security->encodeHTML('module_info.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Add Page Form Output
|
||||
**/
|
||||
function dispPageAdminInsert() {
|
||||
// Get module_srl by GET parameter
|
||||
$module_srl = Context::get('module_srl');
|
||||
// Get and set module information if module_srl exists
|
||||
if($module_srl) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$columnList = array('module_srl', 'mid', 'module_category_srl', 'browser_title', 'layout_srl', 'use_mobile', 'mlayout_srl');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl, $columnList);
|
||||
if($module_info->module_srl == $module_srl) Context::set('module_info',$module_info);
|
||||
else {
|
||||
unset($module_info);
|
||||
unset($module_srl);
|
||||
}
|
||||
}
|
||||
// Get a layout list
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_list = $oLayoutModel->getLayoutList();
|
||||
Context::set('layout_list', $layout_list);
|
||||
|
||||
$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);
|
||||
|
||||
//Security
|
||||
$security = new Security();
|
||||
$security->encodeHTML('layout_list..layout');
|
||||
$security->encodeHTML('layout_list..title');
|
||||
$security->encodeHTML('mlayout_list..layout');
|
||||
$security->encodeHTML('mlayout_list..title');
|
||||
|
||||
// Set a template file
|
||||
$this->setTemplateFile('page_insert');
|
||||
}
|
||||
|
||||
function dispPageAdminMobileContent() {
|
||||
if($this->module_srl) Context::set('module_srl',$this->module_srl);
|
||||
// Specifying the cache file
|
||||
$cache_file = sprintf("%sfiles/cache/page/%d.%s.m.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);
|
||||
} else {
|
||||
$oWidgetController = &getController('widget');
|
||||
$page_content = $oWidgetController->transWidgetCode($this->module_info->mcontent);
|
||||
FileHandler::writeFile($cache_file, $page_content);
|
||||
}
|
||||
} else {
|
||||
if(file_exists($cache_file)) FileHandler::removeFile($cache_file);
|
||||
$page_content = $this->module_info->mcontent;
|
||||
}
|
||||
|
||||
Context::set('module_info', $this->module_info);
|
||||
Context::set('page_content', $page_content);
|
||||
|
||||
$this->setTemplateFile('mcontent');
|
||||
}
|
||||
|
||||
function dispPageAdminMobileContentModify() {
|
||||
Context::set('module_info', $this->module_info);
|
||||
// Setting contents
|
||||
$content = Context::get('mcontent');
|
||||
if(!$content) $content = $this->module_info->mcontent;
|
||||
Context::set('content', $content);
|
||||
// Convert them to teach the widget
|
||||
$oWidgetController = &getController('widget');
|
||||
$content = $oWidgetController->transWidgetCode($content, true);
|
||||
Context::set('page_content', $content);
|
||||
// Set widget list
|
||||
$oWidgetModel = &getModel('widget');
|
||||
$widget_list = $oWidgetModel->getDownloadedWidgetList();
|
||||
Context::set('widget_list', $widget_list);
|
||||
|
||||
//Security
|
||||
$security = new Security();
|
||||
$security->encodeHTML('widget_list..title','module_info.mid');
|
||||
|
||||
// Set a template file
|
||||
$this->setTemplateFile('page_mobile_content_modify');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Edit Page Content
|
||||
**/
|
||||
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;
|
||||
Context::set('content', $content);
|
||||
// Convert them to teach the widget
|
||||
$oWidgetController = &getController('widget');
|
||||
$content = $oWidgetController->transWidgetCode($content, true);
|
||||
Context::set('page_content', $content);
|
||||
// Set widget list
|
||||
$oWidgetModel = &getModel('widget');
|
||||
$widget_list = $oWidgetModel->getDownloadedWidgetList();
|
||||
Context::set('widget_list', $widget_list);
|
||||
|
||||
//Security
|
||||
$security = new Security();
|
||||
$security->encodeHTML('widget_list..title','module_info.mid');
|
||||
|
||||
// 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
|
||||
**/
|
||||
function dispPageAdminDelete() {
|
||||
$module_srl = Context::get('module_srl');
|
||||
if(!$module_srl) return $this->dispContent();
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$columnList = array('module_srl', 'module', 'mid');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl, $columnList);
|
||||
Context::set('module_info',$module_info);
|
||||
// Set a template file
|
||||
$this->setTemplateFile('page_delete');
|
||||
|
||||
$security = new Security();
|
||||
$security->encodeHTML('module_info.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Rights Listing
|
||||
**/
|
||||
function dispPageAdminGrantInfo() {
|
||||
// Common module settings page, call rights
|
||||
$oModuleAdminModel = &getAdminModel('module');
|
||||
$grant_content = $oModuleAdminModel->getModuleGrantHTML($this->module_info->module_srl, $this->xml_info->grant);
|
||||
Context::set('grant_content', $grant_content);
|
||||
|
||||
$this->setTemplateFile('grant_list');
|
||||
|
||||
$security = new Security();
|
||||
$security->encodeHTML('module_info.');
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,25 +1,25 @@
|
|||
<?php
|
||||
/**
|
||||
* @class pageAPI
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief page 모듈의 View Action에 대한 API 처리
|
||||
**/
|
||||
|
||||
class pageAPI extends page {
|
||||
|
||||
/**
|
||||
* @brief 페이지 내용
|
||||
**/
|
||||
function dispPageIndex(&$oModule) {
|
||||
$page_content = Context::get('page_content');
|
||||
$oWidgetController = &getController('widget');
|
||||
|
||||
$requestMethod = Context::getRequestMethod();
|
||||
Context::setResponseMethod('HTML');
|
||||
$oWidgetController->triggerWidgetCompile(&$page_content);
|
||||
Context::setResponseMethod($requestMethod);
|
||||
|
||||
$oModule->add('page_content',$page_content);
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class pageAPI
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief View Action page for the module API processing
|
||||
**/
|
||||
|
||||
class pageAPI extends page {
|
||||
|
||||
/**
|
||||
* @brief Page information
|
||||
**/
|
||||
function dispPageIndex(&$oModule) {
|
||||
$page_content = Context::get('page_content');
|
||||
$oWidgetController = &getController('widget');
|
||||
|
||||
$requestMethod = Context::getRequestMethod();
|
||||
Context::setResponseMethod('HTML');
|
||||
$oWidgetController->triggerWidgetCompile($page_content);
|
||||
Context::setResponseMethod($requestMethod);
|
||||
|
||||
$oModule->add('page_content',$page_content);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,42 +1,78 @@
|
|||
<?php
|
||||
/**
|
||||
* @class page
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief page 모듈의 high class
|
||||
**/
|
||||
|
||||
class page extends ModuleObject {
|
||||
|
||||
/**
|
||||
* @brief 설치시 추가 작업이 필요할시 구현
|
||||
**/
|
||||
function moduleInstall() {
|
||||
// page 에서 사용할 cache디렉토리 생성
|
||||
FileHandler::makeDir('./files/cache/page');
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 설치가 이상이 없는지 체크하는 method
|
||||
**/
|
||||
function checkUpdate() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 업데이트 실행
|
||||
**/
|
||||
function moduleUpdate() {
|
||||
return new Object(0,'success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 캐시 파일 재생성
|
||||
**/
|
||||
function recompileCache() {
|
||||
// 페이지 캐시 파일 삭제
|
||||
FileHandler::removeFilesInDir("./files/cache/page");
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class page
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief high class of the module page
|
||||
**/
|
||||
|
||||
class page extends ModuleObject {
|
||||
|
||||
/**
|
||||
* @brief Implement if additional tasks are necessary when installing
|
||||
**/
|
||||
function moduleInstall() {
|
||||
// page generated from the cache directory to use
|
||||
FileHandler::makeDir('./files/cache/page');
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @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;
|
||||
}
|
||||
|
||||
/**
|
||||
* @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');
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
|
||||
// old page module instance update
|
||||
$output = executeQueryArray('page.pageTypeNullCheck');
|
||||
$skin_update_srls = array();
|
||||
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);
|
||||
|
||||
$skin_update_srls[] = $val->module_srl;
|
||||
}
|
||||
}
|
||||
|
||||
if (count($skin_update_srls)>0){
|
||||
$skin_args->module_srls = implode(',',$skin_update_srls);
|
||||
$skin_args->is_skin_fix = "Y";
|
||||
$ouput = executeQuery('page.updateSkinFix', $skin_args);
|
||||
}
|
||||
return new Object(0,'success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Re-generate the cache file
|
||||
**/
|
||||
function recompileCache() {
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
102
modules/page/page.controller.php
Normal file
102
modules/page/page.controller.php
Normal 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]);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,13 +1,44 @@
|
|||
<?php
|
||||
|
||||
class pageMobile extends ModuleObject {
|
||||
require_once(_XE_PATH_.'modules/page/page.view.php');
|
||||
|
||||
class pageMobile extends pageView {
|
||||
function init() {
|
||||
// 템플릿 경로 구함 (page의 경우 tpl에 관리자용 템플릿 모아놓음)
|
||||
// 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->path = $this->module_info->mpath;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function dispPageIndex() {
|
||||
// 위젯을 1렬로 정렬
|
||||
// Variables used in the template Context:: set()
|
||||
if($this->module_srl) Context::set('module_srl',$this->module_srl);
|
||||
|
||||
$page_type_name = strtolower($this->module_info->page_type);
|
||||
$method = '_get' . ucfirst($page_type_name) . 'Content';
|
||||
if (method_exists($this, $method)) $page_content = $this->{$method}();
|
||||
else return new Object(-1, sprintf('%s method is not exists', $method));
|
||||
|
||||
Context::set('module_info', $this->module_info);
|
||||
Context::set('page_content', $page_content);
|
||||
|
||||
$this->setTemplateFile('mobile');
|
||||
}
|
||||
function _getWidgetContent(){
|
||||
// Arrange a widget ryeolro
|
||||
if($this->module_info->mcontent)
|
||||
{
|
||||
$cache_file = sprintf("%sfiles/cache/page/%d.%s.m.cache.php", _XE_PATH_, $this->module_info->module_srl, Context::getLangType());
|
||||
|
|
@ -28,18 +59,39 @@ class pageMobile extends ModuleObject {
|
|||
if(file_exists($cache_file)) FileHandler::removeFile($cache_file);
|
||||
$page_content = $this->module_info->mcontent;
|
||||
}
|
||||
Context::set('content', $page_content);
|
||||
}
|
||||
else
|
||||
{
|
||||
preg_match_all('!(<img)([^\>]*)(widget=)([^\>]*?)(\>)!is', $this->module_info->content, $matches);
|
||||
$content = '';
|
||||
$page_content = '';
|
||||
for($i=0,$c=count($matches[0]);$i<$c;$i++) {
|
||||
$content .= preg_replace('/ style\=\"([^\"]+)\" /i',' style="overflow:hidden;clear:both;margin:0 0 20px 0; _margin-right:10px;" ',$matches[0][$i])."\n\n";
|
||||
$page_content .= preg_replace('/ style\=\"([^\"]+)\" /i',' style="overflow:hidden;clear:both;margin:0 0 20px 0; _margin-right:10px;" ',$matches[0][$i])."\n\n";
|
||||
}
|
||||
Context::set('content', $content);
|
||||
}
|
||||
$this->setTemplateFile('mobile');
|
||||
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.'m.skins/%s', $this->module_info->skin));
|
||||
}
|
||||
|
||||
function _getOutsideContent(){
|
||||
// check if it is http or internal file
|
||||
if($this->path) {
|
||||
if(preg_match("/^([a-z]+):\/\//i",$this->path)) $content = $this->getHtmlPage($this->path, $this->interval, $this->cache_file);
|
||||
else $content = $this->executeFile($this->path, $this->interval, $this->cache_file);
|
||||
}
|
||||
|
||||
return $content;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,55 +1,205 @@
|
|||
<?php
|
||||
/**
|
||||
* @class pageView
|
||||
* @author NHN (developers@xpressengine.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);
|
||||
|
||||
// 캐시 파일 지정
|
||||
$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;
|
||||
}
|
||||
|
||||
Context::set('module_info', $this->module_info);
|
||||
Context::set('page_content', $page_content);
|
||||
|
||||
$this->setTemplateFile('content');
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class pageView
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief page view class of the module
|
||||
**/
|
||||
|
||||
class pageView extends page {
|
||||
|
||||
var $module_srl = 0;
|
||||
var $list_count = 20;
|
||||
var $page_count = 10;
|
||||
var $cache_file;
|
||||
var $interval;
|
||||
var $path;
|
||||
|
||||
/**
|
||||
* @brief Initialization
|
||||
**/
|
||||
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->path = $this->module_info->path;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief General request output
|
||||
**/
|
||||
function dispPageIndex() {
|
||||
// Variables used in the template Context:: set()
|
||||
if($this->module_srl) Context::set('module_srl',$this->module_srl);
|
||||
|
||||
$page_type_name = strtolower($this->module_info->page_type);
|
||||
$method = '_get' . ucfirst($page_type_name) . 'Content';
|
||||
if (method_exists($this, $method)) $page_content = $this->{$method}();
|
||||
else return new Object(-1, sprintf('%s method is not exists', $method));
|
||||
|
||||
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);
|
||||
$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);
|
||||
|
||||
if ($this->module_info->skin)
|
||||
$this->setTemplatePath(sprintf($this->module_path.'skins/%s', $this->module_info->skin));
|
||||
else
|
||||
$this->setTemplatePath($this->module_path.'skins/default');
|
||||
|
||||
}
|
||||
|
||||
function _getOutsideContent(){
|
||||
// check if it is http or internal file
|
||||
if($this->path) {
|
||||
if(preg_match("/^([a-z]+):\/\//i",$this->path)) $content = $this->getHtmlPage($this->path, $this->interval, $this->cache_file);
|
||||
else $content = $this->executeFile($this->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->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;
|
||||
|
||||
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->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->path);
|
||||
$path = sprintf("%s%s%s%s",$matches[1],$matches[2],$p.$val,$matches[4]);
|
||||
|
||||
return $path;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,26 +1,25 @@
|
|||
<?php
|
||||
/**
|
||||
* @class pageWap
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief page 모듈의 wap class
|
||||
**/
|
||||
|
||||
class pageWap extends page {
|
||||
|
||||
/**
|
||||
* @brief wap procedure method
|
||||
*
|
||||
* 페이지 모듈은 형식이 정해져 있지 않기에 전체 컨텐츠를 mobile class에서 제어해서 출력함
|
||||
**/
|
||||
function procWAP(&$oMobile) {
|
||||
// 권한 체크
|
||||
if(!$this->grant->access) return $oMobile->setContent(Context::getLang('msg_not_permitted'));
|
||||
|
||||
// 위젯의 내용을 추출함
|
||||
$oWidgetController = &getController('widget');
|
||||
$content = $oWidgetController->transWidgetCode($this->module_info->content);
|
||||
$oMobile->setContent($content);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class pageWap
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief wap class page of the module
|
||||
**/
|
||||
|
||||
class pageWap extends page {
|
||||
|
||||
/**
|
||||
* @brief wap procedure method
|
||||
*
|
||||
* Page module does not include the following items on the full content control and output from the mobile class
|
||||
**/
|
||||
function procWAP(&$oMobile) {
|
||||
// Check permissions
|
||||
if(!$this->grant->access) return $oMobile->setContent(Context::getLang('msg_not_permitted'));
|
||||
// The contents of the widget chuchulham
|
||||
$oWidgetController = &getController('widget');
|
||||
$content = $oWidgetController->transWidgetCode($this->module_info->content);
|
||||
$oMobile->setContent($content);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
12
modules/page/queries/getArticlePageSrls.xml
Normal file
12
modules/page/queries/getArticlePageSrls.xml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<query id="getArticlePageSrls" action="select">
|
||||
<tables>
|
||||
<table name="module_extra_vars" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="module_srl" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="name" default="page_type" />
|
||||
<condition operation="equal" column="value" default="ARTICLE" pipe="and" />
|
||||
</conditions>
|
||||
</query>
|
||||
10
modules/page/queries/insertPageType.xml
Normal file
10
modules/page/queries/insertPageType.xml
Normal 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>
|
||||
20
modules/page/queries/pageTypeNullCheck.xml
Normal file
20
modules/page/queries/pageTypeNullCheck.xml
Normal 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>
|
||||
11
modules/page/queries/pageTypeOpageCheck.xml
Normal file
11
modules/page/queries/pageTypeOpageCheck.xml
Normal 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>
|
||||
12
modules/page/queries/updateAllOpage.xml
Normal file
12
modules/page/queries/updateAllOpage.xml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<query id="updateAllOpage" action="update">
|
||||
<tables>
|
||||
<table name="modules" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="module" default="page" notnull="notnull" />
|
||||
<column name="is_skin_fix" default="Y" notnull="notnull" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="module" default="opage" />
|
||||
</conditions>
|
||||
</query>
|
||||
11
modules/page/queries/updateSkinFix.xml
Normal file
11
modules/page/queries/updateSkinFix.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<query id="updateSkinFix" action="update">
|
||||
<tables>
|
||||
<table name="modules" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="is_skin_fix" var="is_skin_fix" notnull="notnull" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="in" column="module_srl" var="module_srls" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
8
modules/page/ruleset/deletePage.xml
Normal file
8
modules/page/ruleset/deletePage.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ruleset version="1.5.0">
|
||||
<customrules>
|
||||
</customrules>
|
||||
<fields>
|
||||
<field name="module_srl" required="true" rule="number" />
|
||||
</fields>
|
||||
</ruleset>
|
||||
14
modules/page/ruleset/insertPage.xml
Normal file
14
modules/page/ruleset/insertPage.xml
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ruleset version="1.5.0">
|
||||
<customrules>
|
||||
<rule name="mid" type="regex" test="/^[a-zA-Z]+[0-9a-zA-Z_]*$/" />
|
||||
</customrules>
|
||||
<fields>
|
||||
<field name="page_type" required="true" rule="alpha" />
|
||||
<field name="page_name" required="true" length=":40" rule="mid" />
|
||||
<field name="browser_title" required="true" length=":250" />
|
||||
<field name="path">
|
||||
<if test="$page_type == 'OUTSIDE'" attr="required" value="true" />
|
||||
</field>
|
||||
</fields>
|
||||
</ruleset>
|
||||
13
modules/page/ruleset/updatePage.xml
Normal file
13
modules/page/ruleset/updatePage.xml
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ruleset version="1.5.0">
|
||||
<customrules>
|
||||
<rule name="mid" type="regex" test="/^[a-zA-Z]+[0-9a-zA-Z_]*$/" />
|
||||
</customrules>
|
||||
<fields>
|
||||
<field name="page_name" required="true" length=":40" rule="mid" />
|
||||
<field name="browser_title" required="true" length=":250" />
|
||||
<field name="path">
|
||||
<if test="$page_type == 'OUTSIDE'" attr="required" value="true" />
|
||||
</field>
|
||||
</fields>
|
||||
</ruleset>
|
||||
9
modules/page/skins/default/content.html
Normal file
9
modules/page/skins/default/content.html
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<h1>{$oDocument->getTitle()}</h1>
|
||||
{$oDocument->getContent()}
|
||||
<block cond="$grant->manager">
|
||||
<load target="../../tpl/js/page_admin.js" />
|
||||
<div class="btnArea">
|
||||
<span class="btn"><a cond="$logged_info->is_admin=='Y'" href="{getUrl('act','dispPageAdminInfo','module_srl',$module_info->module_srl)}">{$lang->cmd_setup}</a></span>
|
||||
<span class="btn"><a href="{getUrl('act','dispPageAdminContentModify','document_srl','')}">{$lang->cmd_page_modify}</a></span>
|
||||
</div>
|
||||
</block>
|
||||
25
modules/page/tpl/article_content_modify.html
Normal file
25
modules/page/tpl/article_content_modify.html
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<load target="js/page_admin.js" usecdn="true" />
|
||||
<form action="./" method="post" onsubmit="return procFilter(this, insert_article)" id="fo_write">
|
||||
<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="form" style="margin-right:10px">
|
||||
<input type="text" name="title" value="{htmlspecialchars($oDocument->getTitleText())}" title="{$lang->title}" style="width:100%" />
|
||||
</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="btnArea">
|
||||
<!--@if($is_logged)-->
|
||||
<!--@if(!$oDocument->isExists() || $oDocument->get('status') == 'TEMP')-->
|
||||
<span class="btn"><button type="button" onclick="doDocumentSave(this);">{$lang->cmd_temp_save}</button></span>
|
||||
<span class="btn"><button type="button" onclick="doDocumentLoad(this);">{$lang->cmd_load}</button></span>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<span class="btn"><input type="submit" value="{$lang->cmd_registration}" /></span>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -1,15 +1,18 @@
|
|||
<div>{$page_content}</div>
|
||||
|
||||
{$page_content}
|
||||
<!--@if($grant->manager)-->
|
||||
<!--%import("./js/page_admin.js")-->
|
||||
<div class="tRight gap1 clear">
|
||||
<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')-->
|
||||
<a href="{getUrl('act','dispPageAdminInfo','module_srl',$module_info->module_srl)}" class="button green"><span>{$lang->cmd_setup}</span></a>
|
||||
<load target="./js/page_admin.js" usecdn="true" />
|
||||
<div class="btnArea">
|
||||
<!--@if($module_info->page_type == 'WIDGET')-->
|
||||
<span class="btn"><button type="button" onclick="doRemoveWidgetCache({$module_info->module_srl}); return false;">{$lang->cmd_remake_cache}</button></span>
|
||||
<!--@end-->
|
||||
<!--@if($logged_info->is_admin=='Y')-->
|
||||
<span class="btn"><a href="{getUrl('act','dispPageAdminInfo','module_srl',$module_info->module_srl)}">{$lang->cmd_setup}</a></span>
|
||||
<!--@end-->
|
||||
<!--@if($module_info->page_type != 'OUTSIDE')-->
|
||||
<span class="btn"><a href="{getUrl('act','dispPageAdminContentModify','document_srl','')}">{$lang->cmd_page_modify}</a></span>
|
||||
<!--@end-->
|
||||
<a href="{getUrl('act','dispPageAdminContentModify','document_srl','')}" class="button red"><span>{$lang->cmd_page_modify}</span></a>
|
||||
<!--@if($module_info->use_mobile =="Y")-->
|
||||
<a href="{getUrl('act','dispPageAdminMobileContent','module_srl',$module_info->module_srl)}" class="button black"><span>Mobile</span></a>
|
||||
<span class="btn"><a href="{getUrl('act','dispPageAdminMobileContent','module_srl',$module_info->module_srl)}">Mobile</a></span>
|
||||
<!--@end-->
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
|
|
|||
13
modules/page/tpl/filter/insert_article.xml
Normal file
13
modules/page/tpl/filter/insert_article.xml
Normal 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>
|
||||
23
modules/page/tpl/filter/insert_outside.xml
Normal file
23
modules/page/tpl/filter/insert_outside.xml
Normal 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>
|
||||
|
|
@ -1,29 +1,31 @@
|
|||
<!--%import("js/page_admin.js")-->
|
||||
<h3 class="xeAdmin"><span class="gray">{$lang->page_management}</span></h3>
|
||||
<load target="js/page_admin.js" usecdn="true" />
|
||||
<h1 class="h1">{$lang->page_management}</h1>
|
||||
|
||||
<div class="infoText">{nl2br($lang->about_page)}</div>
|
||||
<p>{nl2br($lang->about_page)}</p>
|
||||
|
||||
<!--@if($module_info)-->
|
||||
<div class="header4">
|
||||
<!--@if($module_info->mid)-->
|
||||
<h4 class="xeAdmin">{$module_info->mid} <!--@if($module_info->is_default=='Y')--><span class="bracket">({$lang->is_default})</span><!--@end--> <span class="vr">|</span> <a href="{getSiteUrl($module_info->domain,'','mid',$module_info->mid)}" onclick="window.open(this.href); return false;" class="view">View</a></h4>
|
||||
<!--@end-->
|
||||
|
||||
<ul class="localNavigation">
|
||||
<!--@if($module=='admin')-->
|
||||
<li><a href="{getUrl('act','dispPageAdminContent','module_srl','')}">{$lang->cmd_list}</a></li>
|
||||
<!--@else-->
|
||||
<li><a href="{getUrl('act','')}">{$lang->cmd_back}</a></li>
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($module_srl)-->
|
||||
<li <!--@if($act=='dispPageAdminInfo')-->class="on"<!--@end-->><a href="{getUrl('act','dispPageAdminInfo')}">{$lang->module_info}</a></li>
|
||||
<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>
|
||||
<!--@if($module_info->mid)-->
|
||||
<h2 class="h2">
|
||||
{$module_info->mid} <!--@if($module_info->is_default=='Y')-->({$lang->is_default})<!--@end-->
|
||||
|
|
||||
<a href="{getSiteUrl($module_info->domain,'','mid',$module_info->mid)}">View</a>
|
||||
</h2>
|
||||
<!--@end-->
|
||||
<div class="cnb">
|
||||
<ul>
|
||||
<!--@if($module=='admin')-->
|
||||
<li <!--@if($act=='dispPageAdminContent')-->class="active"<!--@end-->><a href="{getUrl('act','dispPageAdminContent','module_srl','')}">{$lang->cmd_list}</a></li>
|
||||
<!--@else-->
|
||||
<li <!--@if($act=='dispPageAdminGrantInfo')-->class="on"<!--@end-->><a href="{getUrl('act','dispPageAdminInsert')}">{$lang->cmd_page_create}</a></li>
|
||||
<li><a href="{getUrl('act','')}">{$lang->cmd_back}</a></li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
<!--@if($module_srl)-->
|
||||
<li <!--@if($act=='dispPageAdminInfo')-->class="active"<!--@end-->><a href="{getUrl('act','dispPageAdminInfo')}">{$lang->module_info}</a></li>
|
||||
<li <!--@if($act=='dispPageAdminPageAdditionSetup')-->class="active"<!--@end-->><a href="{getUrl('act','dispPageAdminPageAdditionSetup')}">{$lang->cmd_addition_setup}</a></li>
|
||||
<li <!--@if($act=='dispPageAdminGrantInfo')-->class="active"<!--@end-->><a href="{getUrl('act','dispPageAdminGrantInfo')}">{$lang->cmd_manage_grant}</a></li>
|
||||
<!--@else-->
|
||||
<li <!--@if($act=='dispPageAdminInsert')-->class="active"<!--@end-->><a href="{getUrl('act','dispPageAdminInsert')}">{$lang->cmd_page_create}</a></li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
|
|
|
|||
|
|
@ -1,101 +1,103 @@
|
|||
<!--%import("js/page_admin.js")-->
|
||||
<!--#include("header.html")-->
|
||||
|
||||
<!-- 검색 -->
|
||||
<form action="./" method="get" class="adminSearch">
|
||||
<input type="hidden" name="module" value="{$module}" />
|
||||
<input type="hidden" name="mid" value="{$mid}" />
|
||||
<input type="hidden" name="vid" value="{$vid}" />
|
||||
<input type="hidden" name="act" value="dispPageAdminContent" />
|
||||
|
||||
<fieldset>
|
||||
{$lang->mid} <input type="text" name="s_mid" value="{htmlspecialchars($s_mid)}" class="inputTypeText" />
|
||||
{$lang->browser_title} <input type="text" name="s_browser_title" value="{htmlspecialchars($s_browser_title)}" class="inputTypeText" />
|
||||
<span class="button blue"><input type="submit" value="{$lang->cmd_search}" /></span>
|
||||
<a href="{getUrl('s_mid','','s_browser_title','','page','')}" class="button black"><span>{$lang->cmd_cancel}</span></a>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<!-- 목록 -->
|
||||
<form action="./" method="get" onsubmit="return doChangeCategory(this);" id="fo_list">
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<caption>Total {number_format($total_count)}, Page {number_format($page)}/{number_format($total_page)}</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col"><div>{$lang->no}</div></th>
|
||||
<th scope="col"><div><input type="checkbox" onclick="XE.checkboxToggleAll(); return false;" /></div></th>
|
||||
<th scope="col">
|
||||
<div>
|
||||
<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>
|
||||
<option value="0" <!--@if($module_category_srl==="0")-->selected="selected"<!--@end-->>{$lang->not_exists}</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>
|
||||
<input type="submit" name="go_button" id="go_button" value="GO" class="buttonTypeGo" />
|
||||
</div>
|
||||
</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>
|
||||
<th scope="col" colspan="3"><div> </div></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<!--@foreach($page_list as $no => $val)-->
|
||||
<tr class="row{$cycle_idx}">
|
||||
<td class="number center">{$no}</td>
|
||||
<td class="center"><input type="checkbox" name="cart" value="{$val->module_srl}" /></td>
|
||||
<td>
|
||||
<!--@if(!$val->module_category_srl)-->
|
||||
<!--@if($val->site_srl)-->
|
||||
{$lang->virtual_site}
|
||||
<!--@else-->
|
||||
{$lang->not_exists}
|
||||
<!--@end-->
|
||||
<!--@else-->
|
||||
{$module_category[$val->module_category_srl]->title}
|
||||
<!--@end-->
|
||||
</td>
|
||||
<td>{$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>
|
||||
<td><a href="{getUrl('act','dispPageAdminInfo','module_srl',$val->module_srl)}" class="buttonSet buttonSetting"><span>{$lang->cmd_setup}</span></a></td>
|
||||
<td><a href="{getUrl('','module','module','act','dispModuleAdminCopyModule','module_srl',$val->module_srl)}" onclick="popopen(this.href);return false;" class="buttonSet buttonCopy"><span>{$lang->cmd_copy}</span></a></td>
|
||||
<td><a href="{getUrl('act','dispPageAdminDelete','module_srl', $val->module_srl)}" class="buttonSet buttonDelete"><span>{$lang->cmd_delete}</span></a></td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<!-- 버튼 -->
|
||||
<div class="clear gap1">
|
||||
<div class="fl">
|
||||
<a href="{getUrl('','module','module','act','dispModuleAdminModuleSetup')}" onclick="doCartSetup(this.href); return false;" class="button green"><span>{$lang->cmd_setup}</span></a>
|
||||
<a href="{getUrl('','module','module','act','dispModuleAdminModuleGrantSetup')}" onclick="doCartSetup(this.href); return false;" class="button blue"><span>{$lang->cmd_manage_grant}</span></a>
|
||||
</div>
|
||||
<div class="fr">
|
||||
<a href="{getUrl('act','dispPageAdminInsert','module_srl','')}" class="button black strong"><span>{$lang->cmd_make}</span></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<!-- 페이지 네비게이션 -->
|
||||
<div class="pagination a1">
|
||||
<a href="{getUrl('page','','module_srl','')}" class="prevEnd">{$lang->first_page}</a>
|
||||
<!--@while($page_no = $page_navigation->getNextPage())-->
|
||||
<!--@if($page == $page_no)-->
|
||||
<strong>{$page_no}</strong>
|
||||
<!--@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="nextEnd">{$lang->last_page}</a>
|
||||
</div>
|
||||
<load target="js/page_admin.js" usecdn="true" />
|
||||
<!--#include("header.html")-->
|
||||
|
||||
<!-- 검색 -->
|
||||
<form action="./" method="get" class="adminSearch">
|
||||
<input type="hidden" name="module" value="{$module}" />
|
||||
<input type="hidden" name="mid" value="{$mid}" />
|
||||
<input type="hidden" name="vid" value="{$vid}" />
|
||||
<input type="hidden" name="act" value="dispPageAdminContent" />
|
||||
|
||||
<fieldset>
|
||||
{$lang->mid} <input type="text" name="s_mid" value="{htmlspecialchars($s_mid)}" />
|
||||
{$lang->browser_title} <input type="text" name="s_browser_title" value="{htmlspecialchars($s_browser_title)}" />
|
||||
<span class="button blue"><input type="submit" value="{$lang->cmd_search}" /></span>
|
||||
<a href="{getUrl('s_mid','','s_browser_title','','page','')}" class="button black"><span>{$lang->cmd_cancel}</span></a>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<!-- 목록 -->
|
||||
<form action="./" method="get" onsubmit="return doChangeCategory(this);" id="fo_list">
|
||||
<div class="table">
|
||||
<table width="100%" border="1" cellspacing="0">
|
||||
<caption>Total {number_format($total_count)}, Page {number_format($page)}/{number_format($total_page)}</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">{$lang->no}</th>
|
||||
<th scope="col"><input type="checkbox" onclick="XE.checkboxToggleAll(); return false;" /></th>
|
||||
<th scope="col">
|
||||
<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>
|
||||
<option value="0" <!--@if($module_category_srl==="0")-->selected="selected"<!--@end-->>{$lang->not_exists}</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>
|
||||
<input type="submit" name="go_button" id="go_button" value="GO" />
|
||||
</th>
|
||||
<th scope="col">{$lang->page_type}</th>
|
||||
<th scope="col">{$lang->mid}</th>
|
||||
<th scope="col">{$lang->browser_title}</th>
|
||||
<th scope="col">{$lang->regdate}</th>
|
||||
<th scope="col"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<!--@foreach($page_list as $no => $val)-->
|
||||
<tr class="row{$cycle_idx}">
|
||||
<td>{$no}</td>
|
||||
<td><input type="checkbox" name="cart" value="{$val->module_srl}" /></td>
|
||||
<td>
|
||||
<!--@if(!$val->module_category_srl)-->
|
||||
<!--@if($val->site_srl)-->
|
||||
{$lang->virtual_site}
|
||||
<!--@else-->
|
||||
{$lang->not_exists}
|
||||
<!--@end-->
|
||||
<!--@else-->
|
||||
{$module_category[$val->module_category_srl]->title}
|
||||
<!--@end-->
|
||||
</td>
|
||||
<td>{$val->page_type}</td>
|
||||
<td>{$val->mid}</td>
|
||||
<td><a href="{getSiteUrl($val->domain,'','mid',$val->mid)}" target="_blank">{$val->browser_title}</a></td>
|
||||
<td>{zdate($val->regdate,"Y-m-d")}</td>
|
||||
<td>
|
||||
<a href="{getUrl('act','dispPageAdminInfo','module_srl',$val->module_srl)}">{$lang->cmd_setup}</a>
|
||||
<a href="{getUrl('','module','module','act','dispModuleAdminCopyModule','module_srl',$val->module_srl)}" onclick="popopen(this.href);return false;">{$lang->cmd_copy}</a>
|
||||
<a href="{getUrl('act','dispPageAdminDelete','module_srl', $val->module_srl)}">{$lang->cmd_delete}</a>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- 버튼 -->
|
||||
<div class="btnArea">
|
||||
<div class="etc">
|
||||
<a href="{getUrl('','module','module','act','dispModuleAdminModuleSetup')}" onclick="doCartSetup(this.href); return false;" class="button green"><span>{$lang->cmd_setup}</span></a>
|
||||
<a href="{getUrl('','module','module','act','dispModuleAdminModuleGrantSetup')}" onclick="doCartSetup(this.href); return false;" class="button blue"><span>{$lang->cmd_manage_grant}</span></a>
|
||||
</div>
|
||||
<a href="{getUrl('act','dispPageAdminInsert','module_srl','')}" class="button black strong"><span>{$lang->cmd_make}</span></a>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<!-- 페이지 네비게이션 -->
|
||||
<div class="pagination">
|
||||
<a href="{getUrl('page','','module_srl','')}" class="direction">‹ {$lang->first_page}</a>
|
||||
<!--@while($page_no = $page_navigation->getNextPage())-->
|
||||
<!--@if($page == $page_no)-->
|
||||
<strong>{$page_no}</strong>
|
||||
<!--@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="direction">{$lang->last_page} ›</a>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,110 +1,126 @@
|
|||
/**
|
||||
* @file modules/page/js/page_admin.js
|
||||
* @author NHN (developers@xpressengine.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;
|
||||
}
|
||||
|
||||
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'];
|
||||
var mid = ret_obj['mid'];
|
||||
|
||||
location.href = current_url.setQuery('mid',mid).setQuery('act','');
|
||||
}
|
||||
|
||||
function completeInsertMobilePageContent(ret_obj) {
|
||||
var error = ret_obj['error'];
|
||||
var message = ret_obj['message'];
|
||||
|
||||
var page = ret_obj['page'];
|
||||
var module_srl = ret_obj['module_srl'];
|
||||
var mid = ret_obj['mid'];
|
||||
|
||||
location.href = current_url.setQuery('mid',mid).setQuery('act','dispPageAdminMobileContent');
|
||||
}
|
||||
|
||||
/* 수정한 페이지 컨텐츠를 저장 */
|
||||
function doSubmitPageContent(fo_obj) {
|
||||
var html = getWidgetContent();
|
||||
fo_obj.content.value = html;
|
||||
return procFilter(fo_obj, insert_page_content);
|
||||
}
|
||||
|
||||
function doSubmitMPageContent(fo_obj) {
|
||||
var html = getWidgetContent();
|
||||
fo_obj.content.value = html;
|
||||
return procFilter(fo_obj, insert_mpage_content);
|
||||
}
|
||||
|
||||
/* 모듈 삭제 후 */
|
||||
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').setQuery('module_srl','');
|
||||
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'];
|
||||
location.reload();
|
||||
}
|
||||
|
||||
/* 일괄 설정 */
|
||||
function doCartSetup(url) {
|
||||
var module_srl = new Array();
|
||||
jQuery('#fo_list input[name=cart]:checked').each(function() {
|
||||
module_srl[module_srl.length] = jQuery(this).val();
|
||||
});
|
||||
|
||||
if(module_srl.length<1) return;
|
||||
|
||||
url += "&module_srls="+module_srl.join(',');
|
||||
popopen(url,'modulesSetup');
|
||||
}
|
||||
/**
|
||||
* @file modules/page/js/page_admin.js
|
||||
* @author NHN (developers@xpressengine.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;
|
||||
}
|
||||
|
||||
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'];
|
||||
var message = ret_obj['message'];
|
||||
|
||||
var page = ret_obj['page'];
|
||||
var module_srl = ret_obj['module_srl'];
|
||||
var mid = ret_obj['mid'];
|
||||
|
||||
location.href = current_url.setQuery('mid',mid).setQuery('act','');
|
||||
}
|
||||
|
||||
function completeInsertMobilePageContent(ret_obj) {
|
||||
var error = ret_obj['error'];
|
||||
var message = ret_obj['message'];
|
||||
|
||||
var page = ret_obj['page'];
|
||||
var module_srl = ret_obj['module_srl'];
|
||||
var mid = ret_obj['mid'];
|
||||
|
||||
location.href = current_url.setQuery('mid',mid).setQuery('act','dispPageAdminMobileContent');
|
||||
}
|
||||
|
||||
/* 수정한 페이지 컨텐츠를 저장 */
|
||||
function doSubmitPageContent(fo_obj) {
|
||||
var html = getWidgetContent();
|
||||
fo_obj.content.value = html;
|
||||
return procFilter(fo_obj, insert_page_content);
|
||||
}
|
||||
|
||||
function doSubmitMPageContent(fo_obj) {
|
||||
var html = getWidgetContent();
|
||||
fo_obj.content.value = html;
|
||||
return procFilter(fo_obj, insert_mpage_content);
|
||||
}
|
||||
|
||||
/* 모듈 삭제 후 */
|
||||
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').setQuery('module_srl','');
|
||||
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'];
|
||||
location.reload();
|
||||
}
|
||||
|
||||
/* 일괄 설정 */
|
||||
function doCartSetup(url) {
|
||||
var module_srl = new Array();
|
||||
jQuery('#fo_list input[name=cart]:checked').each(function() {
|
||||
module_srl[module_srl.length] = jQuery(this).val();
|
||||
});
|
||||
|
||||
if(module_srl.length<1) return;
|
||||
|
||||
url += "&module_srls="+module_srl.join(',');
|
||||
popopen(url,'modulesSetup');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,13 @@
|
|||
<div>{$page_content}</div>
|
||||
|
||||
{$page_content}
|
||||
<!--@if($grant->manager)-->
|
||||
<!--%import("./js/page_admin.js")-->
|
||||
<div class="tRight gap1 clear">
|
||||
<a href="#" onclick="doRemoveWidgetCache({$module_info->module_srl}); return false;" class="button blue"><span>{$lang->cmd_remake_cache}</span></a>
|
||||
<load target="./js/page_admin.js" usecdn="true" />
|
||||
<div class="btnArea">
|
||||
<span class="btn"><button type="button" onclick="doRemoveWidgetCache({$module_info->module_srl}); return false;">{$lang->cmd_remake_cache}</button></span>
|
||||
<!--@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>
|
||||
<span class="btn"><a href="{getUrl('act','dispPageAdminInfo','module_srl',$module_info->module_srl)}">{$lang->cmd_setup}</a></span>
|
||||
<!--@end-->
|
||||
<a href="{getUrl('act','dispPageAdminMobileContentModify','document_srl','')}" class="button red"><span>{$lang->cmd_page_modify}</span></a>
|
||||
<a href="{getUrl('act','','module_srl',$module_info->module_srl)}" class="button black"><span>PC</span></a>
|
||||
<p style="color:#777">{$lang->about_mcontent}</p>
|
||||
<span class="btn"><a href="{getUrl('act','dispPageAdminMobileContentModify','document_srl','')}">{$lang->cmd_page_modify}</a></span>
|
||||
<span class="btn"><a href="{getUrl('act','','module_srl',$module_info->module_srl)}">PC</a></span>
|
||||
<p>{$lang->about_mcontent}</p>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<!--%import("css/mpage.css")-->
|
||||
<load target="css/mpage.css" usecdn="true" />
|
||||
<div class="bd">
|
||||
{$content}
|
||||
{$page_content}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,44 +1,32 @@
|
|||
<!--%import("filter/insert_page_content.xml")-->
|
||||
<!--%import("js/page_admin.js")-->
|
||||
<!--%import("css/page.css")-->
|
||||
<load target="js/page_admin.js" usecdn="true" />
|
||||
<load target="css/page.css" usecdn="true" />
|
||||
|
||||
<!--%import("../../widget/tpl/js/widget.js")-->
|
||||
<!--%import("../../widget/tpl/css/widget.css")-->
|
||||
|
||||
<div class="clear"></div>
|
||||
<load target="../../widget/tpl/js/widget.js" usecdn="true" />
|
||||
<load target="../../widget/tpl/css/widget.css" usecdn="true" />
|
||||
<div id="zonePageContent">{$page_content}</div>
|
||||
<div class="clear"></div>
|
||||
<div class="adminLayer">
|
||||
<form action="./" method="post" id="pageFo" onsubmit="return doSubmitPageContent(this);">
|
||||
<input type="hidden" name="mid" value="{$module_info->mid}" />
|
||||
<input type="hidden" name="module" value="page" />
|
||||
<input type="hidden" name="act" value="dispPageAdminContentModify" />
|
||||
<input type="hidden" name="module_srl" value="{$module_info->module_srl}" />
|
||||
<input type="hidden" name="content" value="{htmlspecialchars($content)}" />
|
||||
<form action="./" method="post" id="pageFo" onsubmit="return doSubmitPageContent(this);">
|
||||
<input type="hidden" name="mid" value="{$module_info->mid}" />
|
||||
<input type="hidden" name="module" value="page" />
|
||||
<input type="hidden" name="act" value="dispPageAdminContentModify" />
|
||||
<input type="hidden" name="module_srl" value="{$module_info->module_srl}" />
|
||||
<input type="hidden" name="content" value="{htmlspecialchars($content)}" />
|
||||
|
||||
<div class="buttonBox">
|
||||
|
||||
<div class="fl">
|
||||
<span class="button black "><input type="button" value="{$lang->cmd_box_widget_insert}" onclick="doAddWidgetBox(); return false;" /></span>
|
||||
</div>
|
||||
<div class="fr">
|
||||
<select name="widget_list">
|
||||
<!--@foreach($widget_list as $widget)-->
|
||||
<option value="{$widget->widget}" <!--@if($widget->widget=='content')-->selected="selected"<!--@end-->>{$widget->title}</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
<span class="button blue"><input type="button" value="{$lang->cmd_insert}" onclick="doAddWidget(this.form); return false;"/></span>
|
||||
<span class="button green"><input type="button" value="{$lang->cmd_content_insert}" onclick="doAddContent('{$module_info->mid}'); return false;" /></span>
|
||||
</div>
|
||||
<div class="buttonDiv"></div>
|
||||
<div class="tRight">
|
||||
<span class="button black strong"><input type="submit" value="{$lang->cmd_save}"/></span>
|
||||
<span class="button red"><input type="button" value="{$lang->cmd_remove_all_widgets}" onclick="removeAllWidget();return false;"/></span>
|
||||
<span class="button"><input type="button" value="{$lang->cmd_back}" onclick="location.href=current_url.setQuery('mid','{$module_info->mid}').setQuery('act','');return false;"/></span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="btnArea">
|
||||
<div class="etc">
|
||||
<span class="btn"><input type="button" value="{$lang->cmd_box_widget_insert}" onclick="doAddWidgetBox(); return false;" /></span>
|
||||
<span class="btn"><input type="button" value="{$lang->cmd_content_insert}" onclick="doAddContent('{$module_info->mid}'); return false;" /></span>
|
||||
<select name="widget_list">
|
||||
<!--@foreach($widget_list as $widget)-->
|
||||
<option value="{$widget->widget}" <!--@if($widget->widget=='content')-->selected="selected"<!--@end-->>{$widget->title}</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
<span class="btn"><input type="button" value="{$lang->cmd_insert}" onclick="doAddWidget(this.form); return false;"/></span>
|
||||
</div>
|
||||
<span class="btn"><input type="submit" value="{$lang->cmd_save}"/></span>
|
||||
<span class="btn"><input type="button" value="{$lang->cmd_remove_all_widgets}" onclick="removeAllWidget();return false;"/></span>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div id="widgetButton" class="widgetButtons">
|
||||
<div class="widgetStyle"></div>
|
||||
|
|
@ -55,7 +43,7 @@
|
|||
|
||||
<script type="text/javascript">
|
||||
var confirm_delete_msg = "{$lang->confirm_delete}";
|
||||
xAddEventListener(window,"load",function() { doStartPageModify('zonePageContent', '{$module_info->module_srl}'); jQuery('div#xeAdmin').css('background-color','transparent');});
|
||||
xAddEventListener(window,"load",function() { doStartPageModify('zonePageContent', '{$module_info->module_srl}'); jQuery('div.admin').css('background-color','transparent');});
|
||||
</script>
|
||||
|
||||
<!--#include("../../widget/tpl/widget_layer.html")-->
|
||||
|
|
|
|||
|
|
@ -1,26 +1,30 @@
|
|||
<!--%import("filter/delete_page.xml")-->
|
||||
<!--%import("js/page_admin.js")-->
|
||||
<load target="js/page_admin.js" usecdn="true" />
|
||||
<!--#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}" />
|
||||
<h4 class="xeAdmin">{$lang->confirm_delete}</h4>
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->module_name}</div></th>
|
||||
<td class="wide">{$module_info->mid}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->module}</div></th>
|
||||
<td>{$module_info->module}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="2" class="button">
|
||||
<span class="button black strong"><input type="submit" value="{$lang->cmd_delete}" /></span>
|
||||
<a href="{getUrl('act','dispPageAdminContent')}" class="button"><span>{$lang->cmd_back}</span></a>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<form ruleset="deletePage" action="./" method="post">
|
||||
<input type="hidden" name="module" value="page" />
|
||||
<input type="hidden" name="act" value="procPageAdminDelete" />
|
||||
<input type="hidden" name="page" value="{$page}" />
|
||||
<input type="hidden" name="module_srl" value="{$module_info->module_srl}" />
|
||||
<h3 class="h3">{$lang->confirm_delete}</h3>
|
||||
<div class="table">
|
||||
<table width="100%" border="1" cellspacing="0">
|
||||
<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>
|
||||
<div class="btnArea">
|
||||
<span class="btn"><input type="submit" value="{$lang->cmd_delete}" /></span>
|
||||
<span class="btn"><a href="{getUrl('act','dispPageAdminContent')}">{$lang->cmd_back}</a></span>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,87 +1,138 @@
|
|||
<!--%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}" />
|
||||
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->mid}</div></th>
|
||||
<td colspan="3">
|
||||
<input type="text" name="mid" value="{$module_info->mid}" class="inputTypeText w200" />
|
||||
<p>{$lang->about_mid}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->module_category}</div></th>
|
||||
<td colspan="3">
|
||||
<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"><div>{$lang->browser_title}</div></th>
|
||||
<td colspan="3">
|
||||
<input type="text" name="browser_title" value="{$module_info->browser_title}" class="inputTypeText w400" id="browser_title"/>
|
||||
<a href="{getUrl('','module','module','act','dispModuleAdminLangcode','target','browser_title')}" onclick="popopen(this.href);return false;" class="buttonSet buttonSetting"><span>{$lang->cmd_find_langcode}</span></a>
|
||||
<p>{$lang->about_browser_title}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->layout}</div></th>
|
||||
<td colspan="3">
|
||||
<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>
|
||||
<th scope="row"><div>{$lang->mobile_view}</div></th>
|
||||
<td>
|
||||
<input type="checkbox" name="use_mobile" value="Y" <!--@if($module_info->use_mobile == "Y")-->checked="checked"<!--@end--> />
|
||||
<p>{$lang->about_mobile_view}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->mobile_layout}</div></th>
|
||||
<td>
|
||||
<select name="mlayout_srl">
|
||||
<option value="0">{$lang->notuse}</option>
|
||||
<!--@foreach($mlayout_list as $key => $val)-->
|
||||
<option value="{$val->layout_srl}" <!--@if($module_info->mlayout_srl==$val->layout_srl)-->selected="selected"<!--@end-->>{$val->title} ({$val->layout})</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
<p>{$lang->about_layout}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->page_caching_interval}</div></th>
|
||||
<td colspan="3">
|
||||
<input type="text" name="page_caching_interval" value="{(int)$module_info->page_caching_interval}" class="inputTypeText w40" /> {$lang->unit_min}
|
||||
<p>{$lang->about_page_caching_interval}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="4" class="button">
|
||||
<span class="button black strong"><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 red"><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-->
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<form ruleset="updatePage" action="./" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="module" value="page" />
|
||||
<input type="hidden" name="act" value="procPageAdminUpdate" />
|
||||
<input type="hidden" name="page" value="{$page}" />
|
||||
<input type="hidden" name="module_srl" value="{$module_srl}" />
|
||||
<input type="hidden" name="success_return_url" value="{getRequestUriByServerEnviroment()}" />
|
||||
<div class="table">
|
||||
<table width="100%" border="1" cellspacing="0">
|
||||
<tr>
|
||||
<th scope="row">{$lang->page_type}</th>
|
||||
<td class="text">
|
||||
{$lang->page_type_name[$module_info->page_type]}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{$lang->mid}</th>
|
||||
<td class="text">
|
||||
<input type="text" name="page_name" value="{$module_info->mid}" />
|
||||
<p>{$lang->about_mid}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{$lang->module_category}</th>
|
||||
<td class="text">
|
||||
<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 class="text">
|
||||
<input type="text" name="browser_title" value="{$module_info->browser_title}" id="browser_title"/>
|
||||
<a href="{getUrl('','module','module','act','dispModuleAdminLangcode','target','browser_title')}" onclick="popopen(this.href);return false;" class="buttonSet buttonSetting"><span>{$lang->cmd_find_langcode}</span></a>
|
||||
<p>{$lang->about_browser_title}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{$lang->layout}</th>
|
||||
<td class="text">
|
||||
<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>
|
||||
<th scope="row">{$lang->mobile_view}</th>
|
||||
<td class="text">
|
||||
<input type="checkbox" name="use_mobile" id="use_mobile" value="Y" <!--@if($module_info->use_mobile == "Y")-->checked="checked"<!--@end--> />
|
||||
<label for="use_mobile">{$lang->about_mobile_view}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{$lang->mobile_layout}</th>
|
||||
<td class="text">
|
||||
<select name="mlayout_srl">
|
||||
<option value="0">{$lang->notuse}</option>
|
||||
<!--@foreach($mlayout_list as $key => $val)-->
|
||||
<option value="{$val->layout_srl}" <!--@if($module_info->mlayout_srl==$val->layout_srl)-->selected="selected"<!--@end-->>{$val->title} ({$val->layout})</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
<p>{$lang->about_layout}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@if($module_info->page_type != 'ARTICLE')-->
|
||||
<tr>
|
||||
<th scope="row">{$lang->page_caching_interval}</th>
|
||||
<td class="text">
|
||||
<input type="text" name="page_caching_interval" value="{(int)$module_info->page_caching_interval}" /> {$lang->unit_min}
|
||||
<p>{$lang->about_page_caching_interval}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<!--@if($module_info->page_type == 'OUTSIDE')-->
|
||||
<tr>
|
||||
<th scope="row">{$lang->opage_path}</th>
|
||||
<td class="text">
|
||||
<input type="text" name="path" value="{htmlspecialchars($module_info->path)}" />
|
||||
<p>{$lang->about_opage_path}<b>{realpath("./")}</b></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="row">
|
||||
<th scope="row">{$lang->opage_mobile_path}</th>
|
||||
<td class="text">
|
||||
<input type="text" name="mpath" value="{htmlspecialchars($module_info->mpath)}" />
|
||||
<p>{$lang->about_opage_mobile_path}<b>{realpath("./")}</b></p>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<!--@if($module_info->page_type == 'ARTICLE')-->
|
||||
<tr>
|
||||
<th scope="row">{$lang->skin}</th>
|
||||
<td class="text">
|
||||
<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">{$lang->mobile_skin}</th>
|
||||
<td class="text">
|
||||
<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-->
|
||||
</table>
|
||||
</div>
|
||||
<div class="btnArea">
|
||||
<span class="btn"><input type="submit" value="{$lang->cmd_save}" /></span>
|
||||
<!--@if($module_info->page_type != 'OUTSIDE')-->
|
||||
<span class="btn"><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;">{$lang->cmd_page_modify}</a></span>
|
||||
<!--@end-->
|
||||
<!--@if($module=="admin")-->
|
||||
<span class="btn"><a href="{getUrl('act','dispPageAdminContent','module_srl','')}">{$lang->cmd_list}</a></span>
|
||||
<!--@end-->
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -1,84 +1,155 @@
|
|||
<!--%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">
|
||||
<input type="hidden" name="page" value="{$page}" />
|
||||
<input type="hidden" name="module_srl" value="{$module_srl}" />
|
||||
<table cellspacing="0" class="rowTable topGap">
|
||||
<!--@if($logged_info->is_admin!='Y')-->
|
||||
<input type="hidden" name="mid" value="{$module_info->mid}" />
|
||||
<!--@else-->
|
||||
<tr class="row2">
|
||||
<th scope="row"><div>{$lang->mid}</div></th>
|
||||
<td colspan="3">
|
||||
<input type="text" name="mid" value="{$module_info->mid}" class="inputTypeText w200" />
|
||||
<p>{$lang->about_mid}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<tr class="row2">
|
||||
<th scope="row"><div>{$lang->module_category}</div></th>
|
||||
<td colspan="3">
|
||||
<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"><div>{$lang->browser_title}</div></th>
|
||||
<td colspan="3">
|
||||
<input type="text" name="browser_title" value="{$module_info->browser_title}" class="inputTypeText w400" id="browser_title"/>
|
||||
<a href="{getUrl('','module','module','act','dispModuleAdminLangcode','target','browser_title')}" onclick="popopen(this.href);return false;" class="buttonSet buttonSetting"><span>{$lang->cmd_find_langcode}</span></a>
|
||||
<p>{$lang->about_browser_title}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="row2">
|
||||
<th scope="row"><div>{$lang->layout}</div></th>
|
||||
<td colspan="3">
|
||||
<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>
|
||||
<th scope="row"><div>{$lang->mobile_view}</div></th>
|
||||
<td>
|
||||
<input type="checkbox" name="use_mobile" value="Y" <!--@if($module_info->use_mobile == "Y")-->checked="checked"<!--@end--> />
|
||||
<p>{$lang->about_mobile_view}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->mobile_layout}</div></th>
|
||||
<td>
|
||||
<select name="mlayout_srl">
|
||||
<option value="0">{$lang->notuse}</option>
|
||||
<!--@foreach($mlayout_list as $key => $val)-->
|
||||
<option value="{$val->layout_srl}" <!--@if($module_info->mlayout_srl==$val->layout_srl)-->selected="selected"<!--@end-->>{$val->title} ({$val->layout})</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
<p>{$lang->about_layout}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<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">
|
||||
<th colspan="4" class="button">
|
||||
<span class="button black strong"><input type="submit" value="{$lang->cmd_save}" accesskey="s" /></span>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<form ruleset="insertPage" id="fo_insert_page" action="./" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="module" value="page" />
|
||||
<input type="hidden" name="act" value="procPageAdminInsert" />
|
||||
<input type="hidden" name="page" value="{$page}" />
|
||||
<input type="hidden" name="module_srl" value="{$module_srl}" />
|
||||
<div class="table">
|
||||
<table width="100%" border="1" cellspacing="0">
|
||||
<!--@if($module_srl)-->
|
||||
<tr>
|
||||
<th scope="row">{$lang->page_type}</th>
|
||||
<td class="text"></td>
|
||||
</tr>
|
||||
<!--@else-->
|
||||
<tr>
|
||||
<th scope="row">{$lang->page_type}</th>
|
||||
<td class="text">
|
||||
<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="page_name" value="{$module_info->mid}" />
|
||||
<!--@else-->
|
||||
<tr>
|
||||
<th scope="row">{$lang->mid}</th>
|
||||
<td class="text">
|
||||
<input type="text" name="page_name" value="{$module_info->mid}" />
|
||||
<p>{$lang->about_mid}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<tr>
|
||||
<th scope="row">{$lang->module_category}</th>
|
||||
<td class="text">
|
||||
<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 class="text">
|
||||
<input type="text" name="browser_title" value="{$module_info->browser_title}" id="browser_title"/>
|
||||
<a href="{getUrl('','module','module','act','dispModuleAdminLangcode','target','browser_title')}" onclick="popopen(this.href);return false;" class="buttonSet buttonSetting"><span>{$lang->cmd_find_langcode}</span></a>
|
||||
<p>{$lang->about_browser_title}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{$lang->layout}</th>
|
||||
<td class="text">
|
||||
<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>
|
||||
<th scope="row">{$lang->mobile_view}</th>
|
||||
<td class="text">
|
||||
<input type="checkbox" name="use_mobile" id="use_mobile" value="Y" <!--@if($module_info->use_mobile == "Y")-->checked="checked"<!--@end--> />
|
||||
<label for="use_mobile">{$lang->about_mobile_view}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{$lang->mobile_layout}</th>
|
||||
<td class="text">
|
||||
<select name="mlayout_srl">
|
||||
<option value="0">{$lang->notuse}</option>
|
||||
<!--@foreach($mlayout_list as $key => $val)-->
|
||||
<option value="{$val->layout_srl}" <!--@if($module_info->mlayout_srl==$val->layout_srl)-->selected="selected"<!--@end-->>{$val->title} ({$val->layout})</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
<p>{$lang->about_layout}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="optionnalData widgetType outsideType">
|
||||
<th scope="row">{$lang->page_caching_interval}</th>
|
||||
<td class="text">
|
||||
<input type="text" name="page_caching_interval" value="{(int)$module_info->caching_interval}" /> {$lang->unit_min}
|
||||
<p>{$lang->about_page_caching_interval}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{$lang->skin}</th>
|
||||
<td class="text">
|
||||
<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">{$lang->mobile_skin}</th>
|
||||
<td class="text">
|
||||
<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>
|
||||
<th scope="row">{$lang->opage_path}</th>
|
||||
<td class="text">
|
||||
<input type="text" name="path" value="{htmlspecialchars($module_info->path)}" />
|
||||
<p>{$lang->about_opage_path}<b>{realpath("./")}</b></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="row optionnalData outsideType">
|
||||
<th scope="row">{$lang->opage_mobile_path}</th>
|
||||
<td class="text">
|
||||
<input type="text" name="mpath" value="{htmlspecialchars($module_info->mpath)}" />
|
||||
<p>{$lang->about_opage_mobile_path}<b>{realpath("./")}</b></p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="btnArea">
|
||||
<span class="btn"><input type="submit" value="{$lang->cmd_save}" /></span>
|
||||
</div>
|
||||
</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>
|
||||
|
|
|
|||
|
|
@ -1,13 +1,11 @@
|
|||
<!--%import("filter/insert_mpage_content.xml")-->
|
||||
<!--%import("js/page_admin.js")-->
|
||||
<!--%import("css/page.css")-->
|
||||
<load target="js/page_admin.js" usecdn="true" />
|
||||
<load target="css/page.css" usecdn="true" />
|
||||
|
||||
<!--%import("../../widget/tpl/js/widget.js")-->
|
||||
<!--%import("../../widget/tpl/css/widget.css")-->
|
||||
<load target="../../widget/tpl/js/widget.js" usecdn="true" />
|
||||
<load target="../../widget/tpl/css/widget.css" usecdn="true" />
|
||||
|
||||
<div class="clear"></div>
|
||||
<div id="zonePageContent">{$page_content}</div>
|
||||
<div class="clear"></div>
|
||||
<div class="adminLayer">
|
||||
<form action="./" method="post" id="pageFo" onsubmit="return doSubmitMPageContent(this);">
|
||||
<input type="hidden" name="mid" value="{$module_info->mid}" />
|
||||
|
|
@ -17,27 +15,19 @@
|
|||
<input type="hidden" name="content" value="{htmlspecialchars($content)}" />
|
||||
<input type="hidden" name="type" value="mobile" />
|
||||
|
||||
<div class="buttonBox">
|
||||
|
||||
<div class="fl">
|
||||
<span class="button black "><input type="button" value="{$lang->cmd_box_widget_insert}" onclick="doAddWidgetBox(); return false;" /></span>
|
||||
</div>
|
||||
<div class="fr">
|
||||
<div class="btnArea">
|
||||
<div class="etc">
|
||||
<span class="btn"><input type="button" value="{$lang->cmd_box_widget_insert}" onclick="doAddWidgetBox(); return false;" /></span>
|
||||
<span class="btn"><input type="button" value="{$lang->cmd_content_insert}" onclick="doAddContent('{$module_info->mid}'); return false;" /></span>
|
||||
<select name="widget_list">
|
||||
<!--@foreach($widget_list as $widget)-->
|
||||
<option value="{$widget->widget}" <!--@if($widget->widget=='content')-->selected="selected"<!--@end-->>{$widget->title}</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
<span class="button blue"><input type="button" value="{$lang->cmd_insert}" onclick="doAddWidget(this.form); return false;"/></span>
|
||||
<span class="button green"><input type="button" value="{$lang->cmd_content_insert}" onclick="doAddContent('{$module_info->mid}'); return false;" /></span>
|
||||
<span class="btn"><input type="button" value="{$lang->cmd_insert}" onclick="doAddWidget(this.form); return false;"/></span>
|
||||
</div>
|
||||
<div class="buttonDiv"></div>
|
||||
<div class="tRight">
|
||||
<span class="button black strong"><input type="submit" value="{$lang->cmd_save}"/></span>
|
||||
<span class="button red"><input type="button" value="{$lang->cmd_remove_all_widgets}" onclick="removeAllWidget();return false;"/></span>
|
||||
<span class="button"><input type="button" value="{$lang->cmd_back}" onclick="location.href=current_url.setQuery('mid','{$module_info->mid}').setQuery('act','dispPageAdminMobileContent');return false;"/></span>
|
||||
</div>
|
||||
</div>
|
||||
<span class="btn"><input type="submit" value="{$lang->cmd_save}"/></span>
|
||||
<span class="btn"><input type="button" value="{$lang->cmd_remove_all_widgets}" onclick="removeAllWidget();return false;"/></span>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
|
@ -56,7 +46,7 @@
|
|||
|
||||
<script type="text/javascript">
|
||||
var confirm_delete_msg = "{$lang->confirm_delete}";
|
||||
xAddEventListener(window,"load",function() { doStartPageModify('zonePageContent', '{$module_info->module_srl}'); jQuery('div#xeAdmin').css('background-color','transparent');});
|
||||
xAddEventListener(window,"load",function() { doStartPageModify('zonePageContent', '{$module_info->module_srl}'); jQuery('div.admin').css('background-color','transparent');});
|
||||
</script>
|
||||
|
||||
<!--#include("../../widget/tpl/widget_layer.html")-->
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue