mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-20 11:49:56 +09:00
merge from 1.7.3.5(r13153:r13167)
git-svn-id: http://xe-core.googlecode.com/svn/trunk@13168 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
cc47d2b247
commit
2d3f149b5a
2042 changed files with 129266 additions and 126243 deletions
|
|
@ -9,7 +9,7 @@
|
|||
<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="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>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@
|
|||
<action name="dispPageAdminGrantInfo" type="view" menu_name="page" />
|
||||
<action name="dispPageAdminInfo" type="view" setup_index="true" menu_name="page" />
|
||||
<action name="dispPageAdminPageAdditionSetup" type="view" menu_name="page" />
|
||||
<action name="dispPageAdminInsert" type="view" menu_name="page" />
|
||||
<action name="dispPageAdminDelete" type="view" standalone="true" />
|
||||
<action name="dispPageAdminContentModify" type="view" standalone="true" />
|
||||
<action name="dispPageAdminAddContent" type="view" standalone="true" />
|
||||
|
|
|
|||
|
|
@ -11,43 +11,25 @@
|
|||
<value xml:lang="tr"><![CDATA[Sayfa]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Trang]]></value>
|
||||
</item>
|
||||
<item name="none_content">
|
||||
<value xml:lang="ko"><![CDATA[내용이 없습니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[This is empty page.]]></value>
|
||||
</item>
|
||||
<item name="cmd_manage_selected_page">
|
||||
<value xml:lang="ko"><![CDATA[선택한 페이지 관리]]></value>
|
||||
<value xml:lang="en"><![CDATA[Manage Selected Page]]></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>
|
||||
<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>
|
||||
|
|
@ -87,16 +69,16 @@ Nếu chọn là mặc định, nó sẽ là trang chủ của Website.]]></valu
|
|||
<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>
|
||||
<value xml:lang="ko"><![CDATA[분 단위이며 정해진 시간동안은 임시 저장한 데이터를 출력합니다. 다른 서버의 정보를 출력하거나, 데이터 출력하는데 많은 자원이 필요한 경우, 원하는 분 단위 시간 간격으로 캐싱하는 것을 추천합니다. 0 으로 하면 캐싱을 하지 않습니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[The unit is minute, and it displays temporary saved data for assigned time. It is recommended to cache for proper time if a lot of resources are needed when displaying other servers' data or information. A value of 0 will not cache.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[分単位で指定でき、設定された時間の間は、一時保存されたデータを出力します。 他のサーバの情報を出力したり、データを出力する際、リソースが多く使われるため、数分単位でキャッシングすることをお勧めします。 「0」に指定するとキャッシングされません。]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[单位为分。缓冲时间间隔内页面将输出临时储存的数据。 显示外链服务器信息或数据时,如消耗资源很大,尽量把缓冲时间设置为大一点的相应值。 0 表示无缓冲。]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[單位為分。暫存時間內頁面將輸出臨時儲存的資料。 輸出外部主機訊息或資料時,如消耗資源很大,盡量把暫存時間設大一點。 『0』表示不暫存。]]></value>
|
||||
<value xml:lang="fr"><![CDATA[L'unité est minute, et ça exposera des données conservées temporairement pendant le temps assigné. 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. La valeur 0 signifie de ne pas utiliser antémémoire.]]></value>
|
||||
<value xml:lang="ru"><![CDATA[Единица измерения равна одной минуте. Это отображает временно сохраненные данные для присвоенного времени. Рекомендуется устанавливать разумное время кеширования, если множество ресурсов нуждаются в показе данных с других серверов. Значение 0 отключает кеширование.]]></value>
|
||||
<value xml:lang="es"><![CDATA[La unidad es minuto, y se muestra temporal de los datos guardados por el tiempo asignado. 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. 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. 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. 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. Đó 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ị. 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>
|
||||
|
|
@ -156,14 +138,14 @@ Nếu chọn là mặc định, nó sẽ là trang chủ của Website.]]></valu
|
|||
<value xml:lang="zh-TW"><![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>
|
||||
<value xml:lang="ko"><![CDATA[XE가 아닌 외부 HTML 또는 PHP 파일을 삽입할 수 있습니다. 절대경로, 상대경로를 이용할 수 있으며 http:// 로 시작할 경우 서버 외부의 페이지도 표시할 수 있습니다]]></value>
|
||||
<value xml:lang="en"><![CDATA[This module enables to use external html or php files in XE. 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で使用できるようにするモジュールです。 絶対パス、相対パスを利用でき、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>
|
||||
<value xml:lang="ko"><![CDATA[외부문서의 위치를 입력해주세요. /path1/path2/sample.php 와 같이 절대경로나 ../path2/sample.php와 같은 상대경로 모두 사용가능합니다. http://url/sample.php 와 같이 사용하면 해당 페이지를 웹으로 전송 받아 출력 하게 됩니다. 현재 XE가 설치된 절대경로는 다음과 같습니다. ]]></value>
|
||||
<value xml:lang="en"><![CDATA[Please enter the location of external document. Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used. If you input the path like 'http://url/sample.php', the result will be received and then displayed. This is current XE's absolute path. ]]></value>
|
||||
<value xml:lang="jp"><![CDATA[外部ドキュメントの位置を入力してください。 /path1/path2/sample.phpのような絶対パス、もしくは../path2/sample.phpのような相対パス両方とも使用できます。 http://url/sample.phpのように使用すると、該当ページをウェブへ転送し、出力します。 現在、XEがインストールされている絶対パスは、次のとおりです。 ]]></value>
|
||||
</item>
|
||||
<item name="opage_mobile_path">
|
||||
<value xml:lang="ko"><![CDATA[모바일용 외부 문서 위치]]></value>
|
||||
|
|
@ -172,9 +154,9 @@ Nếu chọn là mặc định, nó sẽ là trang chủ của Website.]]></valu
|
|||
<value xml:lang="zh-TW"><![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>
|
||||
<value xml:lang="ko"><![CDATA[모바일용 외부문서의 위치를 입력해주세요. 입력하지 않으면 위에서 지정한 외부문서 위치의 페이지를 이용합니다. /path1/path2/sample.php 와 같이 절대경로나 ../path2/sample.php와 같은 상대경로 모두 사용가능합니다. http://url/sample.php 와 같이 사용하면 해당 페이지를 웹으로 전송 받아 출력 하게 됩니다. 현재 XE가 설치된 절대경로는 다음과 같습니다. ]]></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. Both absolute path such as '/path1/path2/sample.php' or relative path such as '../path2/sample.php' can be used. If you input the path like 'http://url/sample.php', the result will be received and then displayed. This is current XE's absolute path. ]]></value>
|
||||
<value xml:lang="jp"><![CDATA[モバイル用外部ドキュメントの位置を入力してください。入力しないと上記で指定した外部ドキュメントの位置のページを利用します。 /path1/path2/sample.phpのように絶対パス、もしくは../path2/sample.phpのような相対パス両方とも使用できます。 http://url/sample.phpのように使用すると、該当ページをウェブへ転送し、出力します。 現在、XEのインストールされている絶対パスは、次のとおりです。 ]]></value>
|
||||
</item>
|
||||
<item name="page_management">
|
||||
<value xml:lang="ko"><![CDATA[페이지 관리]]></value>
|
||||
|
|
@ -186,4 +168,7 @@ Nếu chọn là mặc định, nó sẽ là trang chủ của Website.]]></valu
|
|||
<value xml:lang="en"><![CDATA[If you delete a page, the files of the page will be removed also.]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[如果刪除頁面,頁面標題將會一起被刪除。]]></value>
|
||||
</item>
|
||||
<item name="msg_not_selected_page">
|
||||
<value xml:lang="ko"><![CDATA[선택한 페이지가 없습니다.]]></value>
|
||||
</item>
|
||||
</lang>
|
||||
|
|
|
|||
|
|
@ -33,6 +33,21 @@
|
|||
<title xml:lang="ko">출력하지 않음</title>
|
||||
<title xml:lang="en">Hide</title>
|
||||
</options>
|
||||
</var>
|
||||
<var name="display_popupmenu" type="radio" default="show">
|
||||
<title xml:lang="ko">팝업메뉴 표시</title>
|
||||
<title xml:lang="en">Display popup menu</title>
|
||||
<description xml:lang="ko">
|
||||
문서 하단의 팝업 메뉴를 표시 할지 선택합니다.
|
||||
</description>
|
||||
<options value="show">
|
||||
<title xml:lang="ko">출력</title>
|
||||
<title xml:lang="en">Show</title>
|
||||
</options>
|
||||
<options value="hide">
|
||||
<title xml:lang="ko">출력하지 않음</title>
|
||||
<title xml:lang="en">Hide</title>
|
||||
</options>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</skin>
|
||||
|
|
|
|||
|
|
@ -1,332 +1,351 @@
|
|||
<?php
|
||||
/**
|
||||
* @class pageAdminController
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief page of the module admin controller class
|
||||
**/
|
||||
/**
|
||||
* @class pageAdminController
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief page of the module admin controller class
|
||||
*/
|
||||
class pageAdminController extends page
|
||||
{
|
||||
/**
|
||||
* @brief Initialization
|
||||
*/
|
||||
function init()
|
||||
{
|
||||
}
|
||||
|
||||
class pageAdminController extends page {
|
||||
/**
|
||||
* @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
|
||||
$args->path = (!$args->path) ? '' : $args->path;
|
||||
$args->mpath = (!$args->mpath) ? '' : $args->mpath;
|
||||
unset($args->page_name);
|
||||
|
||||
/**
|
||||
* @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
|
||||
$args->path = (!$args->path) ? '' : $args->path;
|
||||
$args->mpath = (!$args->mpath) ? '' : $args->mpath;
|
||||
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);
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'module_srl', $output->get('module_srl'), 'act', 'dispPageAdminInfo');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Page Modify
|
||||
**/
|
||||
function procPageAdminUpdate()
|
||||
if($args->use_mobile != 'Y') $args->use_mobile = '';
|
||||
// Check if an original module exists by using module_srl
|
||||
if($args->module_srl)
|
||||
{
|
||||
$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)
|
||||
$columnList = array('module_srl');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($args->module_srl, $columnList);
|
||||
if($module_info->module_srl != $args->module_srl)
|
||||
{
|
||||
$match2 = null;
|
||||
preg_match($pattern, $match, $match2);
|
||||
if(count($match2))
|
||||
unset($args->module_srl);
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach($args as $key=>$val)
|
||||
{
|
||||
$array[(int)$match2[1]] = 1;
|
||||
$module_info->{$key} = $val;
|
||||
}
|
||||
$args = $module_info;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @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');
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'module_srl', $output->get('module_srl'), 'act', 'dispPageAdminInfo');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @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;
|
||||
// widget controller re-run of the cache files
|
||||
$oWidgetController = &getController('widget');
|
||||
$oWidgetController->recompileWidget($content);
|
||||
|
||||
if($module_info->page_type == 'WIDGET')
|
||||
{
|
||||
$cache_file = sprintf("%sfiles/cache/page/%d.%s.%s.cache.php", _XE_PATH_, $module_info->module_srl, Context::getLangType(), Context::getSslStatus());
|
||||
$mcacheFile = sprintf("%sfiles/cache/page/%d.%s.%s.m.cache.php", _XE_PATH_, $module_info->module_srl, Context::getLangType(), Context::getSslStatus());
|
||||
}
|
||||
else if($module_info->page_type == 'OUTSIDE')
|
||||
{
|
||||
$cache_file = sprintf("%sfiles/cache/opage/%d.cache.php", _XE_PATH_, $module_info->module_srl);
|
||||
|
||||
if($module_info->mpath)
|
||||
{
|
||||
$mcacheFile = sprintf("%sfiles/cache/opage/%d.m.cache.php", _XE_PATH_, $module_info->module_srl);
|
||||
}
|
||||
}
|
||||
if(file_exists($cache_file)) FileHandler::removeFile($cache_file);
|
||||
if(file_exists($mcacheFile)) FileHandler::removeFile($mcacheFile);
|
||||
}
|
||||
|
||||
function procPageAdminArticleDocumentInsert()
|
||||
switch ($args->page_type)
|
||||
{
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$grant = $oModuleModel->getGrant($this->module_info, $logged_info);
|
||||
|
||||
if (!$grant->manager)
|
||||
{
|
||||
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
|
||||
{
|
||||
if($obj->ismobile == 'Y')
|
||||
case 'WIDGET' :
|
||||
{
|
||||
$target = 'mdocument_srl';
|
||||
unset($args->skin);
|
||||
unset($args->mskin);
|
||||
unset($args->path);
|
||||
unset($args->mpath);
|
||||
break;
|
||||
}
|
||||
else
|
||||
case 'ARTICLE' :
|
||||
{
|
||||
$target = 'document_srl';
|
||||
unset($args->page_caching_interval);
|
||||
unset($args->path);
|
||||
unset($args->mpath);
|
||||
break;
|
||||
}
|
||||
|
||||
$output = $oDocumentController->insertDocument($obj, $bAnonymous);
|
||||
$msg_code = 'success_registed';
|
||||
$document_srl = $output->get('document_srl');
|
||||
|
||||
$oModuleController = &getController('module');
|
||||
$this->module_info->{$target} = $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->add('is_mobile', $obj->ismobile);
|
||||
|
||||
// 성공 메세지 등록
|
||||
$this->setMessage($msg_code);
|
||||
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);
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'module_srl', $output->get('module_srl'), 'act', 'dispPageAdminInfo');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @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 = new stdClass();
|
||||
$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');
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispPageAdminContent');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @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;
|
||||
// widget controller re-run of the cache files
|
||||
$oWidgetController = &getController('widget');
|
||||
$oWidgetController->recompileWidget($content);
|
||||
|
||||
if($module_info->page_type == 'WIDGET')
|
||||
{
|
||||
$cache_file = sprintf("%sfiles/cache/page/%d.%s.%s.cache.php", _XE_PATH_, $module_info->module_srl, Context::getLangType(), Context::getSslStatus());
|
||||
$mcacheFile = sprintf("%sfiles/cache/page/%d.%s.%s.m.cache.php", _XE_PATH_, $module_info->module_srl, Context::getLangType(), Context::getSslStatus());
|
||||
}
|
||||
else if($module_info->page_type == 'OUTSIDE')
|
||||
{
|
||||
$cache_file = sprintf("%sfiles/cache/opage/%d.cache.php", _XE_PATH_, $module_info->module_srl);
|
||||
|
||||
if($module_info->mpath)
|
||||
{
|
||||
$mcacheFile = sprintf("%sfiles/cache/opage/%d.m.cache.php", _XE_PATH_, $module_info->module_srl);
|
||||
}
|
||||
}
|
||||
if(file_exists($cache_file)) FileHandler::removeFile($cache_file);
|
||||
if(file_exists($mcacheFile)) FileHandler::removeFile($mcacheFile);
|
||||
}
|
||||
|
||||
function procPageAdminArticleDocumentInsert()
|
||||
{
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$grant = $oModuleModel->getGrant($this->module_info, $logged_info);
|
||||
|
||||
if (!$grant->manager)
|
||||
{
|
||||
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
|
||||
{
|
||||
if($obj->ismobile == 'Y')
|
||||
{
|
||||
$target = 'mdocument_srl';
|
||||
}
|
||||
else
|
||||
{
|
||||
$target = 'document_srl';
|
||||
}
|
||||
|
||||
$output = $oDocumentController->insertDocument($obj, $bAnonymous);
|
||||
$msg_code = 'success_registed';
|
||||
$document_srl = $output->get('document_srl');
|
||||
|
||||
$oModuleController = &getController('module');
|
||||
$this->module_info->{$target} = $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->add('is_mobile', $obj->ismobile);
|
||||
|
||||
// 성공 메세지 등록
|
||||
$this->setMessage($msg_code);
|
||||
}
|
||||
}
|
||||
/* End of file page.admin.controller.php */
|
||||
/* Location: ./modules/page/page.admin.controller.php */
|
||||
|
|
|
|||
|
|
@ -1,373 +1,357 @@
|
|||
<?php
|
||||
/**
|
||||
* @class pageAdminView
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief page admin view of the module class
|
||||
**/
|
||||
/**
|
||||
* @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;
|
||||
|
||||
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);
|
||||
/**
|
||||
* @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');
|
||||
|
||||
//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.');
|
||||
// Get a template path (page in the administrative template tpl putting together)
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
}
|
||||
|
||||
$this->setTemplateFile('page_info');
|
||||
}
|
||||
/**
|
||||
* @brief Manage a list of pages showing
|
||||
*/
|
||||
function dispPageAdminContent()
|
||||
{
|
||||
$args = new stdClass();
|
||||
$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');
|
||||
|
||||
/**
|
||||
* @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 = '';
|
||||
$search_target_list = array('s_mid','s_browser_title');
|
||||
$search_target = Context::get('search_target');
|
||||
$search_keyword = Context::get('search_keyword');
|
||||
if(in_array($search_target,$search_target_list) && $search_keyword) $args->{$search_target} = $search_keyword;
|
||||
|
||||
$oEditorView = &getView('editor');
|
||||
$oEditorView->triggerDispEditorAdditionSetup($content);
|
||||
Context::set('setup_content', $content);
|
||||
// Set a template file
|
||||
$this->setTemplateFile('addition_setup');
|
||||
$output = executeQuery('page.getPageList', $args);
|
||||
$oModuleModel = &getModel('module');
|
||||
$page_list = $oModuleModel->addModuleExtraVars($output->data);
|
||||
moduleModel::syncModuleToSite($page_list);
|
||||
|
||||
$security = new Security();
|
||||
$security->encodeHTML('module_info.');
|
||||
}
|
||||
$oModuleAdminModel = &getAdminModel('module'); /* @var $oModuleAdminModel moduleAdminModel */
|
||||
|
||||
/**
|
||||
* @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);
|
||||
$tabChoice = array('tab1'=>1, 'tab3'=>1);
|
||||
$selected_manage_content = $oModuleAdminModel->getSelectedManageHTML($this->xml_info->grant, $tabChoice, $this->module_path);
|
||||
Context::set('selected_manage_content', $selected_manage_content);
|
||||
|
||||
$mobile_layout_list = $oLayoutModel->getLayoutList(0,"M");
|
||||
Context::set('mlayout_list', $mobile_layout_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);
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$skin_list = $oModuleModel->getSkins($this->module_path);
|
||||
Context::set('skin_list',$skin_list);
|
||||
//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');
|
||||
|
||||
// Set a template file
|
||||
$this->setTemplateFile('page_insert');
|
||||
}
|
||||
|
||||
function dispPageAdminMobileContent()
|
||||
{
|
||||
if($this->module_info->page_type == 'OUTSIDE')
|
||||
{
|
||||
return $this->stop(-1, 'msg_invalid_request');
|
||||
}
|
||||
|
||||
if($this->module_srl)
|
||||
{
|
||||
Context::set('module_srl',$this->module_srl);
|
||||
}
|
||||
|
||||
$oPageMobile = &getMobile('page');
|
||||
$oPageMobile->module_info = $this->module_info;
|
||||
$page_type_name = strtolower($this->module_info->page_type);
|
||||
$method = '_get' . ucfirst($page_type_name) . 'Content';
|
||||
if (method_exists($oPageMobile, $method))
|
||||
{
|
||||
$page_content = $oPageMobile->{$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('mcontent');
|
||||
}
|
||||
|
||||
function dispPageAdminMobileContentModify()
|
||||
{
|
||||
Context::set('module_info', $this->module_info);
|
||||
//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.');
|
||||
|
||||
if ($this->module_info->page_type == 'WIDGET')
|
||||
{
|
||||
$this->_setWidgetTypeContentModify(true);
|
||||
}
|
||||
else if ($this->module_info->page_type == 'ARTICLE')
|
||||
{
|
||||
$this->_setArticleTypeContentModify(true);
|
||||
}
|
||||
$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.');
|
||||
}
|
||||
|
||||
function dispPageAdminMobileContent()
|
||||
{
|
||||
if($this->module_info->page_type == 'OUTSIDE')
|
||||
{
|
||||
return $this->stop(-1, 'msg_invalid_request');
|
||||
}
|
||||
|
||||
/**
|
||||
* @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($isMobile = false)
|
||||
if($this->module_srl)
|
||||
{
|
||||
// Setting contents
|
||||
if($isMobile)
|
||||
{
|
||||
$content = Context::get('mcontent');
|
||||
if(!$content) $content = $this->module_info->mcontent;
|
||||
$templateFile = 'page_mobile_content_modify';
|
||||
}
|
||||
else
|
||||
{
|
||||
$content = Context::get('content');
|
||||
if(!$content) $content = $this->module_info->content;
|
||||
$templateFile = 'page_content_modify';
|
||||
}
|
||||
|
||||
Context::set('content', $content);
|
||||
// Convert them to teach the widget
|
||||
$oWidgetController = &getController('widget');
|
||||
$content = $oWidgetController->transWidgetCode($content, true, !$isMobile);
|
||||
// $content = str_replace('$', '$', $content);
|
||||
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($templateFile);
|
||||
}
|
||||
|
||||
function _setArticleTypeContentModify($isMobile = false)
|
||||
{
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oDocument = $oDocumentModel->getDocument(0, true);
|
||||
|
||||
if($isMobile)
|
||||
{
|
||||
Context::set('isMobile', 'Y');
|
||||
$target = 'mdocument_srl';
|
||||
}
|
||||
else
|
||||
{
|
||||
Context::set('isMobile', 'N');
|
||||
$target = 'document_srl';
|
||||
}
|
||||
|
||||
if ($this->module_info->{$target})
|
||||
{
|
||||
$document_srl = $this->module_info->{$target};
|
||||
$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');
|
||||
Context::set('module_srl',$this->module_srl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @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.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display skin setting page
|
||||
*/
|
||||
function dispPageAdminSkinInfo()
|
||||
$oPageMobile = &getMobile('page');
|
||||
$oPageMobile->module_info = $this->module_info;
|
||||
$page_type_name = strtolower($this->module_info->page_type);
|
||||
$method = '_get' . ucfirst($page_type_name) . 'Content';
|
||||
if(method_exists($oPageMobile, $method))
|
||||
{
|
||||
$oModuleAdminModel = &getAdminModel('module');
|
||||
$skin_content = $oModuleAdminModel->getModuleSkinHTML($this->module_info->module_srl);
|
||||
Context::set('skin_content', $skin_content);
|
||||
|
||||
$this->setTemplateFile('skin_info');
|
||||
if($method == '_getArticleContent' && $this->module_info->is_mskin_fix == 'N')
|
||||
{
|
||||
$oModuleModel = getModel('module');
|
||||
$oPageMobile->module_info->mskin = $oModuleModel->getModuleDefaultSkin('page', 'M');
|
||||
}
|
||||
$page_content = $oPageMobile->{$method}();
|
||||
}
|
||||
else
|
||||
{
|
||||
return new Object(-1, sprintf('%s method is not exists', $method));
|
||||
}
|
||||
|
||||
/**
|
||||
* Display mobile skin setting page
|
||||
*/
|
||||
function dispPageAdminMobileSkinInfo()
|
||||
{
|
||||
$oModuleAdminModel = &getAdminModel('module');
|
||||
$skin_content = $oModuleAdminModel->getModuleMobileSkinHTML($this->module_info->module_srl);
|
||||
Context::set('skin_content', $skin_content);
|
||||
Context::set('module_info', $this->module_info);
|
||||
Context::set('page_content', $page_content);
|
||||
|
||||
$this->setTemplateFile('skin_info');
|
||||
$this->setTemplateFile('mcontent');
|
||||
}
|
||||
|
||||
function dispPageAdminMobileContentModify()
|
||||
{
|
||||
Context::set('module_info', $this->module_info);
|
||||
|
||||
if ($this->module_info->page_type == 'WIDGET')
|
||||
{
|
||||
$this->_setWidgetTypeContentModify(true);
|
||||
}
|
||||
}
|
||||
?>
|
||||
else if ($this->module_info->page_type == 'ARTICLE')
|
||||
{
|
||||
$this->_setArticleTypeContentModify(true);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @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($isMobile = false)
|
||||
{
|
||||
// Setting contents
|
||||
if($isMobile)
|
||||
{
|
||||
$content = Context::get('mcontent');
|
||||
if(!$content) $content = $this->module_info->mcontent;
|
||||
$templateFile = 'page_mobile_content_modify';
|
||||
}
|
||||
else
|
||||
{
|
||||
$content = Context::get('content');
|
||||
if(!$content) $content = $this->module_info->content;
|
||||
$templateFile = 'page_content_modify';
|
||||
}
|
||||
|
||||
Context::set('content', $content);
|
||||
// Convert them to teach the widget
|
||||
$oWidgetController = getController('widget');
|
||||
$content = $oWidgetController->transWidgetCode($content, true, !$isMobile);
|
||||
// $content = str_replace('$', '$', $content);
|
||||
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($templateFile);
|
||||
}
|
||||
|
||||
function _setArticleTypeContentModify($isMobile = false)
|
||||
{
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oDocument = $oDocumentModel->getDocument(0, true);
|
||||
|
||||
if($isMobile)
|
||||
{
|
||||
Context::set('isMobile', 'Y');
|
||||
$target = 'mdocument_srl';
|
||||
}
|
||||
else
|
||||
{
|
||||
Context::set('isMobile', 'N');
|
||||
$target = 'document_srl';
|
||||
}
|
||||
|
||||
if($this->module_info->{$target})
|
||||
{
|
||||
$document_srl = $this->module_info->{$target};
|
||||
$oDocument->setDocument($document_srl);
|
||||
Context::set('document_srl', $document_srl);
|
||||
}
|
||||
else
|
||||
{
|
||||
$oDocument->add('module_srl', $this->module_info->module_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.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display skin setting page
|
||||
*/
|
||||
function dispPageAdminSkinInfo()
|
||||
{
|
||||
$oModuleAdminModel = &getAdminModel('module');
|
||||
$skin_content = $oModuleAdminModel->getModuleSkinHTML($this->module_info->module_srl);
|
||||
Context::set('skin_content', $skin_content);
|
||||
|
||||
$this->setTemplateFile('skin_info');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display mobile skin setting page
|
||||
*/
|
||||
function dispPageAdminMobileSkinInfo()
|
||||
{
|
||||
$oModuleAdminModel = &getAdminModel('module');
|
||||
$skin_content = $oModuleAdminModel->getModuleMobileSkinHTML($this->module_info->module_srl);
|
||||
Context::set('skin_content', $skin_content);
|
||||
|
||||
$this->setTemplateFile('skin_info');
|
||||
}
|
||||
}
|
||||
/* End of file page.admin.view.php */
|
||||
/* Location: ./modules/page/page.admin.view.php */
|
||||
|
|
|
|||
|
|
@ -1,25 +1,26 @@
|
|||
<?php
|
||||
/**
|
||||
* @class pageAPI
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief View Action page for the module API processing
|
||||
**/
|
||||
/**
|
||||
* @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');
|
||||
|
||||
class pageAPI extends page {
|
||||
$requestMethod = Context::getRequestMethod();
|
||||
Context::setResponseMethod('HTML');
|
||||
$oWidgetController->triggerWidgetCompile($page_content);
|
||||
Context::setResponseMethod($requestMethod);
|
||||
|
||||
/**
|
||||
* @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);
|
||||
}
|
||||
}
|
||||
?>
|
||||
$oModule->add('page_content',$page_content);
|
||||
}
|
||||
}
|
||||
/* End of file page.api.php */
|
||||
/* Location: ./modules/page/page.api.php */
|
||||
|
|
|
|||
|
|
@ -1,78 +1,87 @@
|
|||
<?php
|
||||
/**
|
||||
* @class page
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief high class of the module page
|
||||
**/
|
||||
/**
|
||||
* @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');
|
||||
|
||||
class page extends ModuleObject {
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Implement if additional tasks are necessary when installing
|
||||
**/
|
||||
function moduleInstall() {
|
||||
// page generated from the cache directory to use
|
||||
FileHandler::makeDir('./files/cache/page');
|
||||
/**
|
||||
* @brief a method to check if successfully installed
|
||||
*/
|
||||
function checkUpdate()
|
||||
{
|
||||
$output = executeQuery('page.pageTypeOpageCheck');
|
||||
if($output->toBool() && $output->data) return true;
|
||||
|
||||
return new Object();
|
||||
}
|
||||
$output = executeQuery('page.pageTypeNullCheck');
|
||||
if($output->toBool() && $output->data) return true;
|
||||
|
||||
/**
|
||||
* @brief a method to check if successfully installed
|
||||
**/
|
||||
function checkUpdate() {
|
||||
$output = executeQuery('page.pageTypeOpageCheck');
|
||||
if ($output->toBool() && $output->data) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
$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;
|
||||
/**
|
||||
* @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);
|
||||
// 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;
|
||||
}
|
||||
$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() {
|
||||
}
|
||||
}
|
||||
?>
|
||||
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()
|
||||
{
|
||||
}
|
||||
}
|
||||
/* End of file page.class.php */
|
||||
/* Location: ./modules/page/page.class.php */
|
||||
|
|
|
|||
|
|
@ -1,102 +1,114 @@
|
|||
<?php
|
||||
/**
|
||||
* @class documentController
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief controller class of the document module
|
||||
**/
|
||||
/**
|
||||
* @class documentController
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief controller class of the document module
|
||||
*/
|
||||
class pageController extends page
|
||||
{
|
||||
var $target_path = '';
|
||||
|
||||
class pageController extends page {
|
||||
/**
|
||||
* @brief Initialization
|
||||
*/
|
||||
function init() { }
|
||||
|
||||
var $target_path = '';
|
||||
/**
|
||||
* @brief Extract a title
|
||||
*/
|
||||
function getTitle($content)
|
||||
{
|
||||
preg_match('!<title([^>]*)>(.*?)<\/title>!is', $content, $buff);
|
||||
return trim($buff[2]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Initialization
|
||||
**/
|
||||
function init() { }
|
||||
/**
|
||||
* @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";
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Extract a title
|
||||
**/
|
||||
function getTitle($content) {
|
||||
preg_match('!<title([^>]*)>(.*?)<\/title>!is', $content, $buff);
|
||||
return trim($buff[2]);
|
||||
}
|
||||
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";
|
||||
}
|
||||
|
||||
/**
|
||||
* @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";
|
||||
}
|
||||
return $header_script;
|
||||
}
|
||||
|
||||
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";
|
||||
}
|
||||
/**
|
||||
* @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;
|
||||
}
|
||||
|
||||
return $header_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);
|
||||
|
||||
/**
|
||||
* @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;
|
||||
}
|
||||
return $content;
|
||||
}
|
||||
|
||||
/**
|
||||
* @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]);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
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]);
|
||||
}
|
||||
}
|
||||
/* End of file page.controller.php */
|
||||
/* Location: ./modules/page/page.controller.php */
|
||||
|
|
|
|||
|
|
@ -1,29 +1,33 @@
|
|||
<?php
|
||||
|
||||
require_once(_XE_PATH_.'modules/page/page.view.php');
|
||||
|
||||
class pageMobile extends pageView {
|
||||
function init() {
|
||||
class pageMobile extends pageView
|
||||
{
|
||||
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.%s.m.cache.php", _XE_PATH_, $this->module_info->module_srl, Context::getLangType(), Context::getSslStatus());
|
||||
$this->interval = (int)($this->module_info->page_caching_interval);
|
||||
break;
|
||||
}
|
||||
case 'OUTSIDE' : {
|
||||
$this->cache_file = sprintf("./files/cache/opage/%d.%s.m.cache.php", $this->module_info->module_srl, Context::getSslStatus());
|
||||
$this->interval = (int)($this->module_info->page_caching_interval);
|
||||
$this->path = $this->module_info->mpath;
|
||||
break;
|
||||
}
|
||||
case 'WIDGET' :
|
||||
{
|
||||
$this->cache_file = sprintf("%sfiles/cache/page/%d.%s.%s.m.cache.php", _XE_PATH_, $this->module_info->module_srl, Context::getLangType(), Context::getSslStatus());
|
||||
$this->interval = (int)($this->module_info->page_caching_interval);
|
||||
break;
|
||||
}
|
||||
case 'OUTSIDE' :
|
||||
{
|
||||
$this->cache_file = sprintf("./files/cache/opage/%d.%s.m.cache.php", $this->module_info->module_srl, Context::getSslStatus());
|
||||
$this->interval = (int)($this->module_info->page_caching_interval);
|
||||
$this->path = $this->module_info->mpath;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function dispPageIndex() {
|
||||
function dispPageIndex()
|
||||
{
|
||||
// Variables used in the template Context:: set()
|
||||
if($this->module_srl) Context::set('module_srl',$this->module_srl);
|
||||
|
||||
|
|
@ -31,7 +35,7 @@ class pageMobile extends pageView {
|
|||
$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);
|
||||
|
||||
|
|
@ -43,39 +47,39 @@ class pageMobile extends pageView {
|
|||
// 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());
|
||||
$interval = (int)($this->module_info->page_caching_interval);
|
||||
if($interval>0)
|
||||
$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) || filesize($cache_file) < 1)
|
||||
if(!file_exists($cache_file) || filesize($cache_file) < 1)
|
||||
{
|
||||
$mtime = 0;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$mtime = filemtime($cache_file);
|
||||
}
|
||||
|
||||
if($mtime + $interval*60 > time())
|
||||
if($mtime + $interval*60 > time())
|
||||
{
|
||||
$page_content = FileHandler::readFile($cache_file);
|
||||
$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->mcontent);
|
||||
FileHandler::writeFile($cache_file, $page_content);
|
||||
}
|
||||
}
|
||||
$oWidgetController = &getController('widget');
|
||||
$page_content = $oWidgetController->transWidgetCode($this->module_info->mcontent);
|
||||
FileHandler::writeFile($cache_file, $page_content);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(file_exists($cache_file))
|
||||
if(file_exists($cache_file))
|
||||
{
|
||||
FileHandler::removeFile($cache_file);
|
||||
}
|
||||
$page_content = $this->module_info->mcontent;
|
||||
}
|
||||
$page_content = $this->module_info->mcontent;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -95,18 +99,24 @@ class pageMobile extends pageView {
|
|||
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oDocument = $oDocumentModel->getDocument(0, true);
|
||||
|
||||
if ($this->module_info->mdocument_srl)
|
||||
|
||||
if($this->module_info->mdocument_srl)
|
||||
{
|
||||
$document_srl = $this->module_info->mdocument_srl;
|
||||
$oDocument->setDocument($document_srl);
|
||||
Context::set('document_srl', $document_srl);
|
||||
}
|
||||
if(!$oDocument->isExists())
|
||||
{
|
||||
$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->mskin)
|
||||
if($this->module_info->mskin)
|
||||
{
|
||||
$templatePath = (sprintf($this->module_path.'m.skins/%s', $this->module_info->skin));
|
||||
$templatePath = (sprintf($this->module_path.'m.skins/%s', $this->module_info->mskin));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -118,15 +128,17 @@ class pageMobile extends pageView {
|
|||
return $page_content;
|
||||
}
|
||||
|
||||
function _getOutsideContent(){
|
||||
function _getOutsideContent()
|
||||
{
|
||||
// check if it is http or internal file
|
||||
if($this->path) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
/* End of file page.mobile.php */
|
||||
/* Location: ./modules/page/page.mobile.php */
|
||||
|
|
|
|||
|
|
@ -1,212 +1,233 @@
|
|||
<?php
|
||||
/**
|
||||
* @class pageView
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief page view class of the module
|
||||
**/
|
||||
/**
|
||||
* @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;
|
||||
|
||||
class pageView extends page {
|
||||
/**
|
||||
* @brief Initialization
|
||||
*/
|
||||
function init()
|
||||
{
|
||||
// Get a template path (page in the administrative template tpl putting together)
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
|
||||
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.%s.cache.php", _XE_PATH_, $this->module_info->module_srl, Context::getLangType(), Context::getSslStatus());
|
||||
$this->interval = (int)($this->module_info->page_caching_interval);
|
||||
break;
|
||||
}
|
||||
case 'OUTSIDE' : {
|
||||
$this->cache_file = sprintf("./files/cache/opage/%d.%s.cache.php", $this->module_info->module_srl, Context::getSslStatus());
|
||||
$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 + $this->interval*60 > time()) {
|
||||
$page_content = FileHandler::readFile($this->cache_file);
|
||||
$page_content = preg_replace('@<\!--#Meta:@', '<!--Meta:', $page_content);
|
||||
} else {
|
||||
$oWidgetController = &getController('widget');
|
||||
$page_content = $oWidgetController->transWidgetCode($this->module_info->content);
|
||||
FileHandler::writeFile($this->cache_file, $page_content);
|
||||
}
|
||||
} else {
|
||||
if(file_exists($this->cache_file)) FileHandler::removeFile($this->cache_file);
|
||||
$page_content = $this->module_info->content;
|
||||
}
|
||||
return $page_content;
|
||||
switch($this->module_info->page_type)
|
||||
{
|
||||
case 'WIDGET' :
|
||||
{
|
||||
$this->cache_file = sprintf("%sfiles/cache/page/%d.%s.%s.cache.php", _XE_PATH_, $this->module_info->module_srl, Context::getLangType(), Context::getSslStatus());
|
||||
$this->interval = (int)($this->module_info->page_caching_interval);
|
||||
break;
|
||||
}
|
||||
case 'OUTSIDE' :
|
||||
{
|
||||
$this->cache_file = sprintf("./files/cache/opage/%d.%s.cache.php", $this->module_info->module_srl, Context::getSslStatus());
|
||||
$this->interval = (int)($this->module_info->page_caching_interval);
|
||||
$this->path = $this->module_info->path;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function _getArticleContent(){
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
/**
|
||||
* @brief General request output
|
||||
*/
|
||||
function dispPageIndex()
|
||||
{
|
||||
// Variables used in the template Context:: set()
|
||||
if($this->module_srl) Context::set('module_srl',$this->module_srl);
|
||||
|
||||
$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);
|
||||
$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));
|
||||
|
||||
if ($this->module_info->skin)
|
||||
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 + $this->interval*60 > time())
|
||||
{
|
||||
$templatePath = (sprintf($this->module_path.'skins/%s', $this->module_info->skin));
|
||||
$page_content = FileHandler::readFile($this->cache_file);
|
||||
$page_content = preg_replace('@<\!--#Meta:@', '<!--Meta:', $page_content);
|
||||
}
|
||||
else
|
||||
{
|
||||
$templatePath = ($this->module_path.'skins/default');
|
||||
$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;
|
||||
}
|
||||
|
||||
$page_content = $oTemplate->compile($templatePath, 'content');
|
||||
function _getArticleContent()
|
||||
{
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
|
||||
return $page_content;
|
||||
$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)
|
||||
{
|
||||
$templatePath = (sprintf($this->module_path.'skins/%s', $this->module_info->skin));
|
||||
}
|
||||
else
|
||||
{
|
||||
$templatePath = ($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;
|
||||
$page_content = $oTemplate->compile($templatePath, 'content');
|
||||
|
||||
return $page_content;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
/**
|
||||
* @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()) {
|
||||
return $content;
|
||||
}
|
||||
|
||||
$content = FileHandler::readFile($cache_file);
|
||||
/**
|
||||
* @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;
|
||||
|
||||
} else {
|
||||
return $content;
|
||||
}
|
||||
|
||||
FileHandler::getRemoteFile($path, $cache_file);
|
||||
$content = FileHandler::readFile($cache_file);
|
||||
/**
|
||||
* @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
|
||||
$this->path = str_replace('\\', '/', realpath(dirname($path))) . '/';
|
||||
$content = preg_replace_callback('/(target=|src=|href=|url\()("|\')?([^"\'\)]+)("|\'\))?/is',array($this,'_replacePath'),$content);
|
||||
$content = preg_replace_callback('/(<!--%import\()(\")([^"]+)(\")/is',array($this,'_replacePath'),$content);
|
||||
|
||||
}
|
||||
// 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;
|
||||
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);
|
||||
|
||||
return $content;
|
||||
}
|
||||
FileHandler::writeFile($cache_file, $script);
|
||||
}
|
||||
|
||||
/**
|
||||
* @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
|
||||
$this->path = str_replace('\\', '/', realpath(dirname($path))) . '/';
|
||||
$content = preg_replace_callback('/(target=|src=|href=|url\()("|\')?([^"\'\)]+)("|\'\))?/is',array($this,'_replacePath'),$content);
|
||||
$content = preg_replace_callback('/(<!--%import\()(\")([^"]+)(\")/is',array($this,'_replacePath'),$content);
|
||||
$__Context = &$GLOBALS['__Context__'];
|
||||
$__Context->tpl_path = $filepath;
|
||||
|
||||
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);
|
||||
ob_start();
|
||||
@include($cache_file);
|
||||
$content = ob_get_clean();
|
||||
|
||||
FileHandler::writeFile($cache_file, $script);
|
||||
}
|
||||
return $content;
|
||||
}
|
||||
|
||||
$__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(strpos($val, '.') === FALSE || preg_match('@^((?:http|https|ftp|telnet|mms)://|(?:mailto|javascript):|[/#{])@i',$val)) {
|
||||
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(strpos($val, '.') === FALSE || 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);
|
||||
// In case of .. , get a path
|
||||
}
|
||||
else if(preg_match('/^\.\./i',$val))
|
||||
{
|
||||
$p = Context::pathToUrl($this->path);
|
||||
$path = sprintf("%s%s%s%s",$matches[1],$matches[2],$p.$val,$matches[4]);
|
||||
return sprintf("%s%s%s%s",$matches[1],$matches[2],$p.$val,$matches[4]);
|
||||
}
|
||||
|
||||
return $path;
|
||||
}
|
||||
}
|
||||
?>
|
||||
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;
|
||||
}
|
||||
}
|
||||
/* End of file page.view.php */
|
||||
/* Location: ./modules/page/page.view.php */
|
||||
|
|
|
|||
|
|
@ -1,25 +1,25 @@
|
|||
<?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);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
/**
|
||||
* @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);
|
||||
}
|
||||
}
|
||||
/* End of file page.wap.php */
|
||||
/* Location: ./modules/page/page.wap.php */
|
||||
|
|
|
|||
|
|
@ -1,2 +1,7 @@
|
|||
<block cond="$oDocument">
|
||||
<h1 cond="$module_info->display_title != 'hide'">{$oDocument->getTitle()}</h1>
|
||||
{$oDocument->getContent($module_info->display_popupmenu != 'hide')}
|
||||
</block>
|
||||
<block cond="!$oDocument">
|
||||
{$lang->none_content}
|
||||
</block>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<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>
|
||||
<span class="btn"><a href="{getUrl('act','dispPageAdminContentModify','document_srl','')}">{$lang->cmd_page_modify}...</a></span>
|
||||
<a class="btn" cond="$logged_info->is_admin=='Y'" href="{getUrl('act','dispPageAdminInfo','module_srl',$module_info->module_srl)}">{$lang->cmd_setup}</a>
|
||||
<a class="btn" href="{getUrl('act','dispPageAdminContentModify','document_srl','')}">{$lang->cmd_page_modify}</a>
|
||||
<a class="btn" href="{getUrl('act','dispPageAdminContentModify','document_srl','')}">{$lang->cmd_page_modify}</a>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<input type="hidden" name="content" value="{$oDocument->getContentText()}" />
|
||||
<input type="hidden" name="document_srl" value="{$document_srl}" />
|
||||
<input type="hidden" name="isMobile" value="{$isMobile}" />
|
||||
<div class="form" style="margin-right:10px">
|
||||
<div style="margin-right:10px">
|
||||
<input type="text" name="title" value="{htmlspecialchars($oDocument->getTitleText())}" title="{$lang->title}" style="width:100%" />
|
||||
</div>
|
||||
|
||||
|
|
@ -17,10 +17,10 @@
|
|||
<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>
|
||||
<button class="btn" type="button" onclick="doDocumentSave(this);">{$lang->cmd_temp_save}</button>
|
||||
<button class="btn" type="button" onclick="doDocumentLoad(this);">{$lang->cmd_load}</button>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<span class="btn"><input type="submit" value="{$lang->cmd_registration}" /></span>
|
||||
<input class="btn" type="submit" value="{$lang->cmd_registration}" />
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -2,15 +2,17 @@
|
|||
<!--@if($grant->manager)-->
|
||||
<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')-->
|
||||
<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-->
|
||||
<!--@if($module_info->use_mobile =="Y" && $module_info->page_type != 'OUTSIDE')-->
|
||||
<span class="btn"><a href="{getUrl('act','dispPageAdminMobileContent','module_srl',$module_info->module_srl)}">Mobile</a></span>
|
||||
<!--@end-->
|
||||
<span class="btn-group">
|
||||
<button class="btn" type="button" onclick="doRemoveWidgetCache({$module_info->module_srl}); return false;">{$lang->cmd_remake_cache}</button>
|
||||
<!--@if($logged_info->is_admin=='Y')-->
|
||||
<a class="btn" href="{getUrl('act','dispPageAdminInfo','module_srl',$module_info->module_srl)}">{$lang->cmd_setup}</a>
|
||||
<!--@end-->
|
||||
<!--@if($module_info->page_type != 'OUTSIDE')-->
|
||||
<a class="btn" href="{getUrl('act','dispPageAdminContentModify','document_srl','')}">{$lang->cmd_page_modify}</a>
|
||||
<!--@end-->
|
||||
<!--@if($module_info->use_mobile =="Y" && $module_info->page_type != 'OUTSIDE')-->
|
||||
<a class="btn" href="{getUrl('act','dispPageAdminMobileContent','module_srl',$module_info->module_srl)}">{$lang->mobile}</a>
|
||||
<!--@end-->
|
||||
</span>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
@charset "utf-8";
|
||||
h3 { margin:0 10px 0 10px; }
|
||||
|
||||
.adminLayer { margin-top:30px; background-color:#eee; border:1px solid #888;}
|
||||
|
||||
.buttonBox { border:2px solid #EEEEEE; padding:5px; overflow:hidden; *zoom:1;}
|
||||
.buttonBox .fr { height:28px; }
|
||||
.buttonBox .fl { height:28px; }
|
||||
|
|
|
|||
|
|
@ -1,36 +1,25 @@
|
|||
<load target="js/page_admin.js" usecdn="true" />
|
||||
<h1 class="h1">{$lang->page_management}</h1>
|
||||
|
||||
<p>{nl2br($lang->about_page)}</p>
|
||||
|
||||
<!--@if($module_info)-->
|
||||
<!--@if($module_info->mid)-->
|
||||
<h2 class="h2">
|
||||
{$module_info->mid}<block cond="$module_info->is_default=='Y'">({$lang->is_default})</block>
|
||||
|
|
||||
<a href="{getSiteUrl($module_info->domain,'','mid',$module_info->mid)}">{$lang->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><a href="{getUrl('act','')}">{$lang->cmd_back}</a></li>
|
||||
<!--@end-->
|
||||
<!--@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>
|
||||
<block cond="$module_info->page_type === 'ARTICLE'">
|
||||
<li <!--@if($act === 'dispPageAdminSkinInfo')-->class="active"<!--@end-->><a href="{getUrl('act','dispPageAdminSkinInfo')}">{$lang->cmd_manage_skin}</a></li>
|
||||
<li <!--@if($act === 'dispPageAdminMobileSkinInfo')-->class="active"<!--@end-->><a href="{getUrl('act','dispPageAdminMobileSkinInfo')}">{$lang->cmd_manage_mobile_skin}</a></li>
|
||||
<li></li>
|
||||
</block>
|
||||
<!--@else-->
|
||||
<li <!--@if($act=='dispPageAdminInsert')-->class="active"<!--@end-->><a href="{getUrl('act','dispPageAdminInsert')}">{$lang->cmd_page_create}</a></li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
<div class="x_page-header">
|
||||
<h1>
|
||||
{$lang->page_management}
|
||||
<span class="path" cond="$module_info->mid">
|
||||
> <a href="{getSiteUrl($module_info->domain,'','mid',$module_info->mid)}" target="_blank"|cond="$module=='admin'">{$module_info->mid}</a><block cond="$module_info->is_default=='Y'">({$lang->is_default})</block>
|
||||
</span>
|
||||
<a href="#aboutPage" class="x_icon-question-sign" data-toggle cond="!$module_info->mid"></a>
|
||||
</h1>
|
||||
</div>
|
||||
<!--@end-->
|
||||
<p id="aboutPage" class="x_alert x_alert-info" cond="!$module_info->mid" hidden>{nl2br($lang->about_page)}</p>
|
||||
<ul class="x_nav x_nav-tabs" cond="$act != 'dispPageAdminDelete' && $module_info">
|
||||
<li cond="$module=='admin'" class="x_active"|cond="$act=='dispPageAdminContent'"><a href="{getUrl('act','dispPageAdminContent','module_srl','')}">{$lang->cmd_list}</a></li>
|
||||
<li cond="$module!='admin'"><a href="{getUrl('act','')}">{$lang->cmd_back}</a></li>
|
||||
<block cond="$module_srl">
|
||||
<li class="x_active"|cond="$act=='dispPageAdminInfo'"><a href="{getUrl('act','dispPageAdminInfo')}">{$lang->module_info}</a></li>
|
||||
<li class="x_active"|cond="$act=='dispPageAdminPageAdditionSetup'"><a href="{getUrl('act','dispPageAdminPageAdditionSetup')}">{$lang->cmd_addition_setup}</a></li>
|
||||
<li class="x_active"|cond="$act=='dispPageAdminGrantInfo'"><a href="{getUrl('act','dispPageAdminGrantInfo')}">{$lang->cmd_manage_grant}</a></li>
|
||||
<block cond="$module_info->page_type === 'ARTICLE'">
|
||||
<li class="x_active"|cond="$act === 'dispPageAdminSkinInfo'"><a href="{getUrl('act','dispPageAdminSkinInfo')}">{$lang->cmd_manage_skin}</a></li>
|
||||
<li class="x_active"|cond="$act === 'dispPageAdminMobileSkinInfo'"><a href="{getUrl('act','dispPageAdminMobileSkinInfo')}">{$lang->cmd_manage_mobile_skin}</a></li>
|
||||
</block>
|
||||
</block>
|
||||
</ul>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,103 +1,159 @@
|
|||
<load target="js/page_admin.js" usecdn="true" />
|
||||
<!--#include("header.html")-->
|
||||
<include target="header.html" />
|
||||
|
||||
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/module/tpl/manage_selected'" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
|
||||
<!-- 검색 -->
|
||||
<form action="./" method="get" class="adminSearch">
|
||||
<form action="./" method="get" class="search x_input-append x_pull-right" style="margin-bottom:-28px">
|
||||
<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>
|
||||
<select name="search_target" id="search_target" style="margin-right:4px">
|
||||
<option value="s_mid" selected="selected"|cond="$search_target=='s_mid'">{$lang->mid}</option>
|
||||
<option value="s_browser_title" selected="selected"|cond="$search_target=='s_browser_title'">{$lang->browser_title}</option>
|
||||
<option cond="$module_category">{$lang->module_category}</option>
|
||||
</select>
|
||||
<select name="module_category_srl" title="{$lang->module_category}" cond="$module_category" style="margin-right:4px">
|
||||
<option loop="$module_category => $key,$val" value="{$key}" selected="selected"|cond="$module_category_srl==$key">{$val->title}</option>
|
||||
</select>
|
||||
<input type="search" name="search_keyword" title="Search" value="{htmlspecialchars($search_keyword)}" required style="width:150px" />
|
||||
<button class="x_btn x_btn-inverse" type="submit">{$lang->cmd_search}</button>
|
||||
<a href="{getUrl('','module',$module,'act',$act)}" class="x_btn">{$lang->cmd_cancel}</a>
|
||||
</form>
|
||||
<script>
|
||||
jQuery(function($){
|
||||
$('#search_target').change(function(){
|
||||
var $this = $(this);
|
||||
if($this.find('>option:last-child').is(':selected')){
|
||||
$this.next('select').show().removeAttr('disabled').next('input[type="search"]').hide().attr('disabled','disabled');
|
||||
} else {
|
||||
$this.next('select').hide().attr('disabled','disabled').next('input[type="search"]').show().removeAttr('disabled');
|
||||
}
|
||||
}).change();
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- 목록 -->
|
||||
<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>
|
||||
<form action="./" method="get" id="fo_list">
|
||||
<table class="x_table x_table-striped x_table-hover">
|
||||
<caption><strong>Total: {number_format($total_count)}, Page: {number_format($page)}/{number_format($total_page)}</strong></caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">{$lang->no}</th>
|
||||
<th scope="col">{$lang->module_category}</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>
|
||||
<th scope="col"><input type="checkbox" /></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!--@foreach($page_list as $no => $val)-->
|
||||
<tr class="row{$cycle_idx}">
|
||||
<td>{$no}</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>
|
||||
<i>|</i>
|
||||
<a href="{getUrl('','module','module','act','dispModuleAdminCopyModule','module_srl',$val->module_srl)}" onclick="popopen(this.href);return false;">{$lang->cmd_copy}</a>
|
||||
<i>|</i>
|
||||
<a href="{getUrl('act','dispPageAdminDelete','module_srl', $val->module_srl)}">{$lang->cmd_delete}</a>
|
||||
</td>
|
||||
<td><input type="checkbox" name="cart" value="{$val->module_srl}" class="selectedModule" data-mid="{$val->mid}" data-browser_title="{$val->browser_title}" /></td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<!-- 버튼 -->
|
||||
<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_page_create}</span></a>
|
||||
<div class="x_clearfix">
|
||||
<div class="x_btn-group x_pull-right">
|
||||
<a class="x_btn modalAnchor x_pull-right _manageSelected" href="#manageSelectedModule">{$lang->cmd_manage_selected_page}</a>
|
||||
</div>
|
||||
</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>
|
||||
<form cond="$page_navigation" action="./" class="x_pagination" no-error-return-url="true" style="margin:-36px 0 0 0">
|
||||
<input type="hidden" name="module" value="{$module}" />
|
||||
<input type="hidden" name="act" value="{$act}" />
|
||||
<input cond="$search_target" type="hidden" name="search_target" value="{$search_target}" />
|
||||
<input cond="$search_keyword" type="hidden" name="search_keyword" value="{$search_keyword}" />
|
||||
<ul>
|
||||
<li class="x_disabled"|cond="!$page || $page == 1"><a href="{getUrl('page', '')}">« {$lang->first_page}</a></li>
|
||||
|
||||
<block cond="$page_navigation->first_page != 1 && $page_navigation->first_page + $page_navigation->page_count > $page_navigation->last_page - 1 && $page_navigation->page_count != $page_navigation->total_page">
|
||||
{@$isGoTo = true}
|
||||
<li>
|
||||
<a href="#goTo" data-toggle title="{$lang->cmd_go_to_page}">…</a>
|
||||
<span cond="$isGoTo" id="goTo" class="x_input-append">
|
||||
<input type="number" min="1" max="{$page_navigation->last_page}" required name="page" title="{$lang->cmd_go_to_page}" />
|
||||
<button type="submit" class="x_add-on">Go</button>
|
||||
</span>
|
||||
</li>
|
||||
</block>
|
||||
|
||||
<!--@while($page_no = $page_navigation->getNextPage())-->
|
||||
{@$last_page = $page_no}
|
||||
<li class="x_active"|cond="$page_no == $page"><a href="{getUrl('page', $page_no)}">{$page_no}</a></li>
|
||||
<!--@end-->
|
||||
|
||||
<block cond="$last_page != $page_navigation->last_page && $last_page + 1 != $page_navigation->last_page">
|
||||
{@$isGoTo = true}
|
||||
<li>
|
||||
<a href="#goTo" data-toggle title="{$lang->cmd_go_to_page}">…</a>
|
||||
<span cond="$isGoTo" id="goTo" class="x_input-append">
|
||||
<input type="number" min="1" max="{$page_navigation->last_page}" required name="page" title="{$lang->cmd_go_to_page}" />
|
||||
<button type="submit" class="x_add-on">Go</button>
|
||||
</span>
|
||||
</li>
|
||||
|
||||
</block>
|
||||
|
||||
<li class="x_disabled"|cond="$page == $page_navigation->last_page"><a href="{getUrl('page', $page_navigation->last_page)}" title="{$page_navigation->last_page}">{$lang->last_page} »</a></li>
|
||||
</ul>
|
||||
</form>
|
||||
|
||||
{$selected_manage_content}
|
||||
|
||||
<script>
|
||||
jQuery(function($){
|
||||
// Modal anchor activation
|
||||
var $docTable = $('#fo_list>table');
|
||||
$docTable.find(':checkbox').change(function(){
|
||||
var $modalAnchor = $('a.modalAnchor._manageSelected');
|
||||
if($docTable.find('tbody :checked').length == 0){
|
||||
$modalAnchor.removeAttr('href').addClass('x_disabled');
|
||||
} else {
|
||||
$modalAnchor.attr('href','#manageSelectedModule').removeClass('x_disabled');
|
||||
}
|
||||
}).change();
|
||||
// Button action
|
||||
$('a.modalAnchor').click(function(){
|
||||
if($docTable.find('tbody :checked').length == 0){
|
||||
$('body').css('overflow','auto');
|
||||
alert('{$lang->msg_not_selected_page}');
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
@ -94,16 +94,6 @@ function completeDeletePage(ret_obj) {
|
|||
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();
|
||||
|
|
|
|||
|
|
@ -2,12 +2,14 @@
|
|||
<!--@if($grant->manager)-->
|
||||
<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')-->
|
||||
<span class="btn"><a href="{getUrl('act','dispPageAdminInfo','module_srl',$module_info->module_srl)}">{$lang->cmd_setup}...</a></span>
|
||||
<!--@end-->
|
||||
<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>
|
||||
<p class="etc">{$lang->about_mcontent}</p>
|
||||
<span class="btn-group">
|
||||
<button class="btn" type="button" onclick="doRemoveWidgetCache({$module_info->module_srl}); return false;">{$lang->cmd_remake_cache}</button>
|
||||
<!--@if($logged_info->is_admin=='Y')-->
|
||||
<a class="btn" href="{getUrl('act','dispPageAdminInfo','module_srl',$module_info->module_srl)}">{$lang->cmd_setup}</a>
|
||||
<!--@end-->
|
||||
<a class="btn" href="{getUrl('act','dispPageAdminMobileContentModify','document_srl','')}">{$lang->cmd_page_modify}</a>
|
||||
<a class="btn" href="{getUrl('act','','module_srl',$module_info->module_srl)}">PC</a>
|
||||
</span>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
<!--%import("filter/insert_page_content.xml")-->
|
||||
<load target="js/page_admin.js" usecdn="true" />
|
||||
<load target="css/page.css" usecdn="true" />
|
||||
|
||||
<load target="../../widget/tpl/js/widget.js" usecdn="true" />
|
||||
<load target="../../widget/tpl/css/widget.css" usecdn="true" />
|
||||
<div id="zonePageContent">{$page_content}</div>
|
||||
|
|
@ -11,37 +10,38 @@
|
|||
<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="btnArea" id="pageBtnArea" style="display:none;">
|
||||
<div class="btnArea" id="pageBtnArea" hidden>
|
||||
<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">
|
||||
<span class="btn-group">
|
||||
<input class="btn" type="button" value="{$lang->cmd_box_widget_insert}" onclick="doAddWidgetBox()" />
|
||||
<input class="btn" type="button" value="{$lang->cmd_content_insert}" onclick="doAddContent('{$module_info->mid}')" />
|
||||
</span>
|
||||
<select name="widget_list" style="margin:0;width:auto">
|
||||
<!--@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>
|
||||
<input class="btn" type="button" value="{$lang->cmd_insert}" onclick="doAddWidget(this.form)"/>
|
||||
</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>
|
||||
<span class="btn-group">
|
||||
<input class="btn" type="submit" value="{$lang->cmd_save}"/>
|
||||
<input class="btn" type="button" value="{$lang->cmd_remove_all_widgets}" onclick="removeAllWidget()"/>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div id="widgetButton" class="widgetButtons">
|
||||
<div class="widgetStyle"></div>
|
||||
<div class="widgetSetup"></div>
|
||||
<div class="widgetCopy"></div>
|
||||
<div class="widgetSize"></div>
|
||||
<div class="widgetRemove"></div>
|
||||
<button type="button" class="widgetSetup" title="{$lang->cmd_setup}">{$lang->cmd_setup}</button>
|
||||
<button type="button" class="widgetSize" title="{$lang->cmd_widget_size}">{$lang->cmd_widget_size}</button>
|
||||
<button type="button" class="widgetStyle" title="{$lang->widgetstyle}">{$lang->widgetstyle}</button>
|
||||
<button type="button" class="widgetCopy" title="{$lang->cmd_copy}">{$lang->cmd_copy}</button>
|
||||
<button type="button" class="widgetRemove" title="{$lang->cmd_delete}">{$lang->cmd_delete}</button>
|
||||
</div>
|
||||
<div id="widgetBoxButton" class="widgetButtons">
|
||||
<div class="widgetStyle"></div>
|
||||
<div class="widgetBoxSize"></div>
|
||||
<div class="widgetBoxRemove"></div>
|
||||
<button type="button" class="widgetBoxSize" title="{$lang->cmd_widget_size}">{$lang->cmd_widget_size}</button>
|
||||
<button type="button" class="widgetStyle" title="{$lang->widgetstyle}">{$lang->widgetstyle}</button>
|
||||
<button type="button" class="widgetBoxRemove" title="{$lang->cmd_delete}">{$lang->cmd_delete}</button>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
<script>
|
||||
var confirm_delete_msg = "{$lang->confirm_delete}";
|
||||
xAddEventListener(window,"load",function() { doStartPageModify('zonePageContent', '{$module_info->module_srl}'); jQuery('div.admin').css('background-color','transparent');});
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<load target="js/page_admin.js" usecdn="true" />
|
||||
<!--#include("header.html")-->
|
||||
|
||||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/page/tpl/page_delete/1'" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<form ruleset="deletePage" action="./" method="post">
|
||||
|
|
@ -9,23 +9,26 @@
|
|||
<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>
|
||||
<p>{$lang->page_delete_warning}</p>
|
||||
<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>
|
||||
<input type="hidden" name="xe_validator_id" value="modules/page/tpl/page_delete/1" />
|
||||
<section class="section">
|
||||
<h2>{$lang->confirm_delete}</h2>
|
||||
<p>{$lang->page_delete_warning}</p>
|
||||
</section>
|
||||
<table class="x_table x_table-striped x_table-hover">
|
||||
<tr>
|
||||
<th scope="row">{$lang->module_name}</th>
|
||||
<td>{$module_info->mid}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{$lang->module}</th>
|
||||
<td>{$module_info->module}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="x_clearfix btnArea">
|
||||
<div class="x_pull-right">
|
||||
<button class="x_btn x_btn-primary" type="submit">{$lang->cmd_delete}</button>
|
||||
<a href="{getUrl('act','dispPageAdminContent','module_srl','')}" class="x_btn">{$lang->cmd_back}</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,167 +1,123 @@
|
|||
<!--#include("header.html")-->
|
||||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'modules/page/tpl/page_info/1'" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<form ruleset="updatePage" action="./" method="post" enctype="multipart/form-data" class="form">
|
||||
<section class="section">
|
||||
<form ruleset="updatePage" action="./" method="post" enctype="multipart/form-data" class="x_form-horizontal">
|
||||
<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 multiLangEdit">
|
||||
<input type="hidden" name="browser_title" value="{htmlspecialchars($module_info->browser_title)}" class="vLang" />
|
||||
<input type="text" value="{$module_info->browser_title}" class="vLang" />
|
||||
<span class="desc"><a href="#langEdit" class="tgAnchor editUserLang" data-effect="slide">{$lang->cmd_set_multilingual}</a></span>
|
||||
<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_fix}</th>
|
||||
<td class="text">
|
||||
<input type="checkbox" name="is_skin_fix" id="is_skin_fix" value="Y" checked="checked"|cond="$module_info->is_skin_fix == 'Y'" />
|
||||
<p>{$lang->about_skin_fix}</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>
|
||||
<!--@end-->
|
||||
</table>
|
||||
<input type="hidden" name="xe_validator_id" value="modules/page/tpl/page_info/1" />
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label">{$lang->page_type}</label>
|
||||
<div class="x_controls" style="padding-top:4px">{$lang->page_type_name[$module_info->page_type]}</div>
|
||||
</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)}" target="_blank">{$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 class="x_control-group">
|
||||
<label class="x_control-label" for="page_name">{$lang->mid}</label>
|
||||
<div class="x_controls">
|
||||
<input type="text" name="page_name" id="page_name" value="{$module_info->mid}" />
|
||||
<a href="#aboutMid" class="x_icon-question-sign" data-toggle>{$lang->help}</a>
|
||||
<p class="x_help-block" id="aboutMid" hidden>{$lang->about_mid}</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Multilingual -->
|
||||
<div id="langEdit" class="langEdit tgContent">
|
||||
<ul class="langList"></ul>
|
||||
<div class="langInput">
|
||||
<h2>{$lang->cmd_multilingual} <strong>{$lang->cmd_modify}...</strong> | <a href="#langEdit">{$lang->cmd_insert}</a></h2>
|
||||
<ul>
|
||||
{@
|
||||
/* move current language to the top */
|
||||
$a = array($lang_type=>$lang_supported[$lang_type]);
|
||||
unset($lang_supported[$lang_type]);
|
||||
$lang_supported = array_merge($a, $lang_supported);
|
||||
}
|
||||
<li loop="$lang_supported=>$code,$name" class="{$code}"><label for="{$code}_var1">{$name}</label> <input type="text" value="" id="{$code}_var1" /></li>
|
||||
</ul>
|
||||
<div class="action">
|
||||
<div class="btnArea">
|
||||
<span class="btn small"><input type="submit" value="{$lang->use}|{$lang->use_after_save}" /></span>
|
||||
</div>
|
||||
<p><a href="{getUrl('act','dispModuleAdminLangcode')}">{$lang->multilingual_manager}</a></p>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label" for="module_category_srl">{$lang->module_category}</label>
|
||||
<div class="x_controls">
|
||||
<select name="module_category_srl" id="module_category_srl">
|
||||
<option value="0">{$lang->notuse}</option>
|
||||
<option loop="$module_category => $key, $val" value="{$key}" selected="selected"|cond="$module_info->module_category_srl==$key">{$val->title}</option>
|
||||
</select>
|
||||
<a href="#aboutCategory" class="x_icon-question-sign" data-toggle>{$lang->help}</a>
|
||||
<p class="x_help-block" id="aboutCategory" hidden>{$lang->about_module_category}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label" for="lang_browser_title">{$lang->browser_title}</label>
|
||||
<div class="x_controls">
|
||||
<input type="text" name="browser_title" id="browser_title" value="<!--@if(strpos($module_info->browser_title, '$user_lang->') === false)-->{$module_info->browser_title}<!--@else-->{htmlspecialchars($module_info->browser_title)}<!--@end-->" class="lang_code" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label" for="layout_srl">{$lang->layout}</label>
|
||||
<div class="x_controls">
|
||||
<select name="layout_srl" id="layout_srl" style="width:auto">
|
||||
<option value="0">{$lang->notuse}</option>
|
||||
<option loop="$layout_list => $key, $val" value="{$val->layout_srl}" selected="selected"|cond="$module_info->layout_srl==$val->layout_srl">{$val->title}({$val->layout})</option>
|
||||
</select>
|
||||
<a href="#aboutLayout" class="x_icon-question-sign" data-toggle>{$lang->help}</a>
|
||||
<p class="x_help-block" id="aboutLayout" hidden>{$lang->about_layout}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label">{$lang->mobile_view}</label>
|
||||
<div class="x_controls">
|
||||
<label for="use_mobile">
|
||||
<input type="checkbox" name="use_mobile" id="use_mobile" value="Y" checked="checked"|cond="$module_info->use_mobile == 'Y'" />
|
||||
{$lang->about_mobile_view}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label" for="mlayout_srl">{$lang->mobile_layout}</label>
|
||||
<div class="x_controls">
|
||||
<select name="mlayout_srl" id="mlayout_srl">
|
||||
<option value="0">{$lang->notuse}</option>
|
||||
<option loop="$mlayout_list => $key, $val" value="{$val->layout_srl}" selected="selected"|cond="$module_info->mlayout_srl==$val->layout_srl">{$val->title}({$val->layout})</option>
|
||||
</select>
|
||||
<a href="#aboutMobileLayout" class="x_icon-question-sign" data-toggle>{$lang->help}</a>
|
||||
<p class="x_help-block" id="aboutMobileLayout" hidden>{$lang->about_layout}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group" cond="$module_info->page_type != 'ARTICLE'">
|
||||
<label class="x_control-label" for="page_caching_interval">{$lang->page_caching_interval}</label>
|
||||
<div class="x_controls">
|
||||
<input type="text" name="page_caching_interval" id="page_caching_interval" value="{(int)$module_info->page_caching_interval}" /> {$lang->unit_min}
|
||||
<a href="#aboutCaching" class="x_icon-question-sign" data-toggle>{$lang->help}</a>
|
||||
<p class="x_help-block" id="aboutCaching" hidden>{$lang->about_page_caching_interval}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group" cond="$module_info->page_type == 'OUTSIDE'">
|
||||
<label class="x_control-label" for="path">{$lang->opage_path}</label>
|
||||
<div class="x_controls">
|
||||
<input type="text" name="path" id="path" value="{$module_info->path}" />
|
||||
<a href="#aboutOpagePath" class="x_icon-question-sign" data-toggle>{$lang->help}</a>
|
||||
<p class="x_help-block" id="aboutOpagePath" hidden>{$lang->about_opage_path}<b>{realpath("./")}</b></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group" cond="$module_info->page_type == 'OUTSIDE'">
|
||||
<label class="x_control-label" for="mpath">{$lang->opage_mobile_path}</label>
|
||||
<div class="x_controls">
|
||||
<input type="text" name="mpath" id="mpath" value="{$module_info->mpath}" />
|
||||
<a href="#aboutOpageMobilePath" class="x_icon-question-sign" data-toggle>{$lang->help}</a>
|
||||
<p class="x_help-block" id="aboutOpageMobilePath" hidden>{$lang->about_opage_mobile_path}<b>{realpath("./")}</b></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group" cond="$module_info->page_type == 'ARTICLE'">
|
||||
<label class="x_control-label" for="skin">{$lang->skin}</label>
|
||||
<div class="x_controls">
|
||||
<select name="skin" id="skin">
|
||||
<option loop="$skin_list => $key,$val" value="{$key}" selected="selected"|cond="$module_info->skin==$key ||(!$module_info->skin && $key=='default')">{$val->title}</option>
|
||||
</select>
|
||||
<a href="#aboutSkin" class="x_icon-question-sign" data-toggle>{$lang->help}</a>
|
||||
<p class="x_help-block" id="aboutSkin" hidden>{$lang->about_skin}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group optionnalData articleType" cond="$module_info->page_type == 'ARTICLE'">
|
||||
<label class="x_control-label" for="mskin">{$lang->mobile_skin}</label>
|
||||
<div class="x_controls">
|
||||
<select name="mskin">
|
||||
<option loop="$mskin_list => $key,$val" value="{$key}" selected="selected"|cond="$module_info->mskin==$key ||(!$module_info->mskin && $key=='default')">{$val->title}</option>
|
||||
</select>
|
||||
<a href="#aboutMobileSkin" class="x_icon-question-sign" data-toggle>{$lang->help}</a>
|
||||
<p class="x_help-block" id="aboutMobileSkin" hidden>{$lang->about_skin}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_clearfix btnArea">
|
||||
<div class="x_pull-right">
|
||||
<button type="submit" class="x_btn x_btn-primary">{$lang->cmd_save}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -1,155 +0,0 @@
|
|||
<!--%import("filter/insert_outside.xml")-->
|
||||
<!--#include("header.html")-->
|
||||
|
||||
<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 class="optionnalData articleType">
|
||||
<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 class="row optionnalData outsideType">
|
||||
<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,52 +1,50 @@
|
|||
<!--%import("filter/insert_mpage_content.xml")-->
|
||||
<load target="js/page_admin.js" usecdn="true" />
|
||||
<load target="css/page.css" usecdn="true" />
|
||||
|
||||
<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="adminLayer">
|
||||
<form action="./" method="post" id="pageFo" onsubmit="return doSubmitMPageContent(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)}" />
|
||||
<input type="hidden" name="type" value="mobile" />
|
||||
|
||||
<div class="btnArea" id="pageBtnArea" style="display: none;">
|
||||
<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>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<form action="./" method="post" id="pageFo" onsubmit="return doSubmitMPageContent(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)}" />
|
||||
<input type="hidden" name="type" value="mobile" />
|
||||
<div class="btnArea" id="pageBtnArea" hidden>
|
||||
<div class="etc">
|
||||
<span class="btn-group">
|
||||
<input class="btn" type="button" value="{$lang->cmd_box_widget_insert}" onclick="doAddWidgetBox()" />
|
||||
<input class="btn" type="button" value="{$lang->cmd_content_insert}" onclick="doAddContent('{$module_info->mid}')" />
|
||||
</span>
|
||||
<select name="widget_list" style="margin:0;width:auto">
|
||||
<!--@foreach($widget_list as $widget)-->
|
||||
<option value="{$widget->widget}" <!--@if($widget->widget=='content')-->selected="selected"<!--@end-->>{$widget->title}</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
<input class="btn" type="button" value="{$lang->cmd_insert}" onclick="doAddWidget(this.form)"/>
|
||||
</div>
|
||||
<span class="btn-group">
|
||||
<input class="btn" type="submit" value="{$lang->cmd_save}"/>
|
||||
<input class="btn" type="button" value="{$lang->cmd_remove_all_widgets}" onclick="removeAllWidget()"/>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
<div id="widgetButton" class="widgetButtons">
|
||||
<div class="widgetStyle"></div>
|
||||
<div class="widgetSetup"></div>
|
||||
<div class="widgetCopy"></div>
|
||||
<div class="widgetSize"></div>
|
||||
<div class="widgetRemove"></div>
|
||||
<button type="button" class="widgetSetup" title="{$lang->cmd_setup}">{$lang->cmd_setup}</button>
|
||||
<button type="button" class="widgetSize" title="{$lang->cmd_widget_size}">{$lang->cmd_widget_size}</button>
|
||||
<button type="button" class="widgetStyle" title="{$lang->widgetstyle}">{$lang->widgetstyle}</button>
|
||||
<button type="button" class="widgetCopy" title="{$lang->cmd_copy}">{$lang->cmd_copy}</button>
|
||||
<button type="button" class="widgetRemove" title="{$lang->cmd_delete}">{$lang->cmd_delete}</button>
|
||||
</div>
|
||||
<div id="widgetBoxButton" class="widgetButtons">
|
||||
<div class="widgetStyle"></div>
|
||||
<div class="widgetBoxSize"></div>
|
||||
<div class="widgetBoxRemove"></div>
|
||||
<button type="button" class="widgetBoxSize" title="{$lang->cmd_widget_size}">{$lang->cmd_widget_size}</button>
|
||||
<button type="button" class="widgetStyle" title="{$lang->widgetstyle}">{$lang->widgetstyle}</button>
|
||||
<button type="button" class="widgetBoxRemove" title="{$lang->cmd_delete}">{$lang->cmd_delete}</button>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var confirm_delete_msg = "{$lang->confirm_delete}";
|
||||
xAddEventListener(window,"load",function() { doStartPageModify('zonePageContent', '{$module_info->module_srl}'); jQuery('div.admin').css('background-color','transparent');});
|
||||
<script>
|
||||
var confirm_delete_msg = "{$lang->confirm_delete}";
|
||||
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