mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-05 09:41:40 +09:00
layout module
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8920 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
d48bcf6a6a
commit
2601043ee8
18 changed files with 767 additions and 510 deletions
|
|
@ -4,27 +4,31 @@
|
|||
<permissions />
|
||||
<actions>
|
||||
<action name="dispLayoutInfo" type="view" standalone="true" />
|
||||
<action name="dispLayoutAdminContent" type="view" admin_index="true" standalone="true" />
|
||||
<action name="dispLayoutAdminInsert" type="view" standalone="true" />
|
||||
<action name="dispLayoutAdminModify" type="view" standalone="true" />
|
||||
<action name="dispLayoutAdminEdit" type="view" standalone="true" />
|
||||
<action name="dispLayoutAdminDownloadedList" type="view" standalone="true" />
|
||||
<action name="dispLayoutAdminPreview" type="view" standalone="true" />
|
||||
<action name="dispLayoutAdminContent" type="view" standalone="true" />
|
||||
<action name="dispLayoutAdminInfo" type="view" standalone="true" />
|
||||
<action name="dispLayoutAdminLayoutModify" type="view" standalone="true" />
|
||||
<action name="dispLayoutAdminLayoutImageList" type="view" standalone="true" />
|
||||
|
||||
<action name="dispLayoutAdminMobileContent" type="view" standalone="true" />
|
||||
<action name="dispLayoutAdminDownloadedMobileList" type="view" standalone="true" />
|
||||
|
||||
<action name="dispLayoutAdminInstalledList" type="view" admin_index="true" menu_name="installedLayout" menu_index="true" />
|
||||
<action name="dispLayoutAdminInstalledMobileList" type="view" menu_name="installedLayout" />
|
||||
<action name="dispLayoutAdminInstanceList" type="view" menu_name="installedLayout" />
|
||||
<action name="dispLayoutAdminInsert" type="view" menu_name="installedLayout" />
|
||||
<action name="dispLayoutAdminModify" type="view" menu_name="installedLayout" />
|
||||
<action name="dispLayoutAdminEdit" type="view" menu_name="installedLayout" />
|
||||
|
||||
<action name="dispLayoutPreview" type="view" />
|
||||
|
||||
<action name="procLayoutAdminUpdate" type="controller" ruleset="updateLayout" />
|
||||
<action name="procLayoutAdminCodeUpdate" type="controller" ruleset="codeUpdate" />
|
||||
<action name="procLayoutAdminUserImageUpload" type="controller" ruleset="imageUpload" />
|
||||
<action name="procLayoutAdminUserImageDelete" type="controller" />
|
||||
<action name="procLayoutAdminDelete" type="controller" ruleset="deleteLayout" />
|
||||
|
||||
<action name="procLayoutAdminInsert" type="controller" standalone="true" ruleset="insertLayout" />
|
||||
<action name="procLayoutAdminUpdate" type="controller" standalone="true" ruleset="updateLayout" />
|
||||
<action name="procLayoutAdminDelete" type="controller" standalone="true" />
|
||||
<action name="procLayoutAdminCodeUpdate" type="controller" standalone="true" ruleset="codeUpdate" />
|
||||
|
||||
<action name="procLayoutAdminCodeReset" type="controller" standalone="true" />
|
||||
<action name="procLayoutAdminUserImageUpload" type="controller" standalone="true" ruleset="imageUpload" />
|
||||
<action name="procLayoutAdminUserImageDelete" type="controller" standalone="true" />
|
||||
|
||||
<action name="procLayoutAdminUserValueInsert" type="controller" standalone="true" />
|
||||
<action name="procLayoutAdminUserLayoutExport" type="controller" standalone="true" />
|
||||
<action name="procLayoutAdminUserLayoutImport" type="controller" standalone="true" ruleset="userLayoutImport" />
|
||||
|
|
@ -33,7 +37,7 @@
|
|||
<menus>
|
||||
<menu name="installedLayout">
|
||||
<title xml:lang="en">Installed Layout</title>
|
||||
<title xml:lang="ko">레이아웃</title>
|
||||
<title xml:lang="ko">설치된 레이아웃</title>
|
||||
<title xml:lang="zh-CN">Installed Layout</title>
|
||||
<title xml:lang="jp">Installed Layout</title>
|
||||
<title xml:lang="es">Installed Layout</title>
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
<value xml:lang="es"><![CDATA[Editar el Diseño]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Yerleşim Düzeni Düzenle]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Sửa giao diện]]></value>
|
||||
<value xml:lang="mn"><![CDATA[ЛÑ<E280BA>йаут өөрчлөх]]></value>
|
||||
|
||||
</item>
|
||||
<item name="layout_name">
|
||||
<value xml:lang="ko"><![CDATA[레이아웃 이름]]></value>
|
||||
|
|
@ -203,7 +203,7 @@
|
|||
<value xml:lang="es"><![CDATA[Módulo del diseño ayuda a usted para crear el diseño de la página web fácilmente.<br />Por usar la configuración del diseño y el menú de conección, completa con varios módulos la forma de la página web que a ser mostrados<br />* Esos diseños que no pueden ser modificados ni eliminados son propios de blog y de otros módulos, por lo cual para la configuración de ellos debe hacerse en los modulos correspondientes.]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Yerleşim düzeni (layout) modülü size, sitenin yerleşim düzenini kolayca oluşturma imkanı sunar.<br />Yerleşim düzeni ayarını ve menü bağlantısını kullandığınzda, websitelerin çeşitli modüllerle tamamlanmış şekilleri gösterilecektir.<br />* Blogların veya diğer modüllerin varsayılan yerleşim düzenlerini silemezseniz; onları, kendi ayar sayfalarından silmeniz gerekmektedir. ]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Module giao diện giúp bạn tạo ra giao diện của Website một cách dễ dàng.<br />Bằng cách sử dụng thiết lập giao diện và kết nối Menu, hình dạng hoàn thành của Website sẽ được trình bày bổ xung với nhiều Module.<br />Giao diện nào xuất hiện (<font color='red'>*</font>) là những giao diện không thể xóa hay điều chỉnh được Module. ]]></value>
|
||||
<value xml:lang="mn"><![CDATA[ЛÑ<E280BA>йаут нь модиулын гадаад байдлыг чимж өгнө. ДÑ<E2809D>Ñ<EFBFBD>рх лÑ<C2BB>йаут менюнÑ<C2BD>Ñ<EFBFBD>Ñ<EFBFBD> удирдаж болно]]></value>
|
||||
|
||||
</item>
|
||||
<item name="about_layout_code">
|
||||
<value xml:lang="ko"><![CDATA[아래 레이아웃의 코드를 직접 수정 후 저장하시면 서비스에 반영이 됩니다.
|
||||
|
|
@ -297,7 +297,7 @@
|
|||
<value xml:lang="de"><![CDATA[L]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Yerleşim Düzeni Yöneticisi]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Quản lý giao diện]]></value>
|
||||
<value xml:lang="mn"><![CDATA[Ð]]></value>
|
||||
|
||||
</item>
|
||||
<item name="1">
|
||||
<value xml:lang="ko"><![CDATA[저장]]></value>
|
||||
|
|
@ -308,7 +308,7 @@
|
|||
<value xml:lang="de"><![CDATA[a]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Kaydet]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Lưu lại]]></value>
|
||||
<value xml:lang="mn"><![CDATA[›]]></value>
|
||||
|
||||
</item>
|
||||
<item name="2">
|
||||
<value xml:lang="ko"><![CDATA[취소]]></value>
|
||||
|
|
@ -319,7 +319,7 @@
|
|||
<value xml:lang="de"><![CDATA[y]]></value>
|
||||
<value xml:lang="tr"><![CDATA[İptal]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Loại bỏ]]></value>
|
||||
<value xml:lang="mn"><![CDATA[Ñ]]></value>
|
||||
|
||||
</item>
|
||||
<item name="3">
|
||||
<value xml:lang="ko"><![CDATA[형태]]></value>
|
||||
|
|
@ -329,7 +329,7 @@
|
|||
<value xml:lang="zh-TW"><![CDATA[模式]]></value>
|
||||
<value xml:lang="de"><![CDATA[o]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Biçim]]></value>
|
||||
<value xml:lang="mn"><![CDATA[<5B>]]></value>
|
||||
|
||||
</item>
|
||||
<item name="4">
|
||||
<value xml:lang="ko"><![CDATA[배열]]></value>
|
||||
|
|
@ -340,7 +340,7 @@
|
|||
<value xml:lang="de"><![CDATA[u]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Dizi]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Giãn ra]]></value>
|
||||
<value xml:lang="mn"><![CDATA[Ð]]></value>
|
||||
|
||||
</item>
|
||||
<item name="5">
|
||||
<value xml:lang="ko"><![CDATA[정렬]]></value>
|
||||
|
|
@ -351,7 +351,7 @@
|
|||
<value xml:lang="de"><![CDATA[t]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Yerleştir]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Thu lại]]></value>
|
||||
<value xml:lang="mn"><![CDATA[¹]]></value>
|
||||
|
||||
</item>
|
||||
<item name="6">
|
||||
<value xml:lang="ko"><![CDATA[고정 레이아웃]]></value>
|
||||
|
|
@ -362,7 +362,7 @@
|
|||
<value xml:lang="de"><![CDATA[-]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Sabit Yerleşim Düzeni]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Cố định giao diện]]></value>
|
||||
<value xml:lang="mn"><![CDATA[Ð]]></value>
|
||||
|
||||
</item>
|
||||
<item name="7">
|
||||
<value xml:lang="ko"><![CDATA[가변 레이아웃]]></value>
|
||||
|
|
@ -373,7 +373,7 @@
|
|||
<value xml:lang="de"><![CDATA[E]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Değişken Yerleşim Düzeni]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Giao diện biến thiên]]></value>
|
||||
<value xml:lang="mn"><![CDATA[°]]></value>
|
||||
|
||||
</item>
|
||||
<item name="8">
|
||||
<value xml:lang="ko"><![CDATA[고정+가변(내용)]]></value>
|
||||
|
|
@ -384,7 +384,7 @@
|
|||
<value xml:lang="de"><![CDATA[i]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Sabit+Değişken (İçerik)]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Cố định+Biến thiên (Nội dung)]]></value>
|
||||
<value xml:lang="mn"><![CDATA[Ñ]]></value>
|
||||
|
||||
</item>
|
||||
<item name="9">
|
||||
<value xml:lang="ko"><![CDATA[1칸]]></value>
|
||||
|
|
@ -395,7 +395,7 @@
|
|||
<value xml:lang="de"><![CDATA[n]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Hücre 1]]></value>
|
||||
<value xml:lang="vi"><![CDATA[1 ô]]></value>
|
||||
<value xml:lang="mn"><![CDATA[ƒ]]></value>
|
||||
|
||||
</item>
|
||||
<item name="10">
|
||||
<value xml:lang="ko"><![CDATA[2칸 (내용 왼쪽)]]></value>
|
||||
|
|
@ -406,7 +406,7 @@
|
|||
<value xml:lang="de"><![CDATA[s]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Hücre 2 (içeriğin sol kısmında)]]></value>
|
||||
<value xml:lang="vi"><![CDATA[2 ô (Trái của nội dung)]]></value>
|
||||
<value xml:lang="mn"><![CDATA[Ñ]]></value>
|
||||
|
||||
</item>
|
||||
<item name="11">
|
||||
<value xml:lang="ko"><![CDATA[2칸 (내용 오른쪽)]]></value>
|
||||
|
|
@ -417,7 +417,7 @@
|
|||
<value xml:lang="de"><![CDATA[t]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Hücre 2 (içeriğin sağ kısmında)]]></value>
|
||||
<value xml:lang="vi"><![CDATA[2 ô (Phải của nội dung)]]></value>
|
||||
<value xml:lang="mn"><![CDATA[‚]]></value>
|
||||
|
||||
</item>
|
||||
<item name="12">
|
||||
<value xml:lang="ko"><![CDATA[3칸 (내용 왼쪽)]]></value>
|
||||
|
|
@ -428,7 +428,7 @@
|
|||
<value xml:lang="de"><![CDATA[e]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Hücre 3 (içeriğin sol kısmında)]]></value>
|
||||
<value xml:lang="vi"><![CDATA[3 ô (Trái của nội dung)]]></value>
|
||||
<value xml:lang="mn"><![CDATA[ ]]></value>
|
||||
|
||||
</item>
|
||||
<item name="13">
|
||||
<value xml:lang="ko"><![CDATA[3칸 (내용 가운데)]]></value>
|
||||
|
|
@ -439,7 +439,7 @@
|
|||
<value xml:lang="de"><![CDATA[l]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Hücre 3 (içeriğin orta kısmında)]]></value>
|
||||
<value xml:lang="vi"><![CDATA[3 ô (Giữa của nội dung)]]></value>
|
||||
<value xml:lang="mn"><![CDATA[Ñ]]></value>
|
||||
|
||||
</item>
|
||||
<item name="14">
|
||||
<value xml:lang="ko"><![CDATA[3칸 (내용 오른쪽)]]></value>
|
||||
|
|
@ -450,7 +450,7 @@
|
|||
<value xml:lang="de"><![CDATA[l]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Hücre 3 (içeriğin sol kısmında)]]></value>
|
||||
<value xml:lang="vi"><![CDATA[3 ô (Phải của nội dung)]]></value>
|
||||
<value xml:lang="mn"><![CDATA[ƒ]]></value>
|
||||
|
||||
</item>
|
||||
<item name="15">
|
||||
<value xml:lang="ko"><![CDATA[왼쪽]]></value>
|
||||
|
|
@ -461,7 +461,7 @@
|
|||
<value xml:lang="de"><![CDATA[u]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Sol]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Trái]]></value>
|
||||
<value xml:lang="mn"><![CDATA[Ð]]></value>
|
||||
|
||||
</item>
|
||||
<item name="16">
|
||||
<value xml:lang="ko"><![CDATA[가운데]]></value>
|
||||
|
|
@ -472,7 +472,7 @@
|
|||
<value xml:lang="de"><![CDATA[n]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Orta]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Giữa]]></value>
|
||||
<value xml:lang="mn"><![CDATA[´]]></value>
|
||||
|
||||
</item>
|
||||
<item name="17">
|
||||
<value xml:lang="ko"><![CDATA[오른쪽]]></value>
|
||||
|
|
@ -483,7 +483,7 @@
|
|||
<value xml:lang="de"><![CDATA[g]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Sağ]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Phải]]></value>
|
||||
<value xml:lang="mn"><![CDATA[Ð]]></value>
|
||||
|
||||
</item>
|
||||
<item name="18">
|
||||
<value xml:lang="ko"><![CDATA[전체]]></value>
|
||||
|
|
@ -494,7 +494,7 @@
|
|||
<value xml:lang="de"><![CDATA[e]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Tümü]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Dàn đều]]></value>
|
||||
<value xml:lang="mn"><![CDATA[¸]]></value>
|
||||
|
||||
</item>
|
||||
<item name="19">
|
||||
<value xml:lang="ko"><![CDATA[레이아웃]]></value>
|
||||
|
|
@ -505,7 +505,7 @@
|
|||
<value xml:lang="de"><![CDATA[n]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Yerleşim Düzeni]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Giao diện]]></value>
|
||||
<value xml:lang="mn"><![CDATA[Ñ]]></value>
|
||||
|
||||
</item>
|
||||
<item name="20">
|
||||
<value xml:lang="ko"><![CDATA[위젯 추가]]></value>
|
||||
|
|
@ -515,7 +515,7 @@
|
|||
<value xml:lang="zh-TW"><![CDATA[新增Widget]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Widget ekle]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Thêm Widget]]></value>
|
||||
<value xml:lang="mn"><![CDATA[€]]></value>
|
||||
|
||||
</item>
|
||||
<item name="21">
|
||||
<value xml:lang="ko"><![CDATA[내용 위젯 추가]]></value>
|
||||
|
|
@ -525,7 +525,7 @@
|
|||
<value xml:lang="zh-TW"><![CDATA[新增內容]]></value>
|
||||
<value xml:lang="tr"><![CDATA[İçerik Widgetı ekle]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Thêm Widget nội dung]]></value>
|
||||
<value xml:lang="mn"><![CDATA[Ð]]></value>
|
||||
|
||||
</item>
|
||||
<item name="22">
|
||||
<value xml:lang="ko"><![CDATA[속성]]></value>
|
||||
|
|
@ -535,7 +535,7 @@
|
|||
<value xml:lang="zh-TW"><![CDATA[屬性]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Öznitelik]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Thuộc tính]]></value>
|
||||
<value xml:lang="mn"><![CDATA[´]]></value>
|
||||
|
||||
</item>
|
||||
<item name="23">
|
||||
<value xml:lang="ko"><![CDATA[위젯 스타일]]></value>
|
||||
|
|
@ -545,7 +545,7 @@
|
|||
<value xml:lang="zh-TW"><![CDATA[Widget樣式]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Widget Tarzı]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Kiểu dáng Widget]]></value>
|
||||
<value xml:lang="mn"><![CDATA[Ð]]></value>
|
||||
|
||||
</item>
|
||||
<item name="24">
|
||||
<value xml:lang="ko"><![CDATA[수정]]></value>
|
||||
|
|
@ -555,7 +555,7 @@
|
|||
<value xml:lang="zh-TW"><![CDATA[修改]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Düzenle]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Điều chỉnh]]></value>
|
||||
<value xml:lang="mn"><![CDATA[°]]></value>
|
||||
|
||||
</item>
|
||||
<item name="25">
|
||||
<value xml:lang="ko"><![CDATA[삭제]]></value>
|
||||
|
|
@ -565,7 +565,7 @@
|
|||
<value xml:lang="zh-TW"><![CDATA[刪除]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Sil]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Xóa]]></value>
|
||||
<value xml:lang="mn"><![CDATA[Ñ]]></value>
|
||||
|
||||
</item>
|
||||
<item name="26">
|
||||
<value xml:lang="ko"><![CDATA[정렬]]></value>
|
||||
|
|
@ -575,7 +575,7 @@
|
|||
<value xml:lang="zh-TW"><![CDATA[對齊]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Hizala]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Căn chỉnh]]></value>
|
||||
<value xml:lang="mn"><![CDATA[…]]></value>
|
||||
|
||||
</item>
|
||||
<item name="27">
|
||||
<value xml:lang="ko"><![CDATA[한줄 차지]]></value>
|
||||
|
|
@ -1001,4 +1001,8 @@
|
|||
<value xml:lang="tr"><![CDATA[Hareketli cihazlarla bağlanırken, bağlı tüm modüller hareketli görünüme geçerler.]]></value>
|
||||
<value xml:lang="vi"><![CDATA[All connected module use mobile view to display when accessing with mobile device.]]></value>
|
||||
</item>
|
||||
<item name="installed_layout">
|
||||
<value xml:lang="ko"><![CDATA[설치된 레이아웃]]></value>
|
||||
<value xml:lang="en"><![CDATA[Installed Layout]]></value>
|
||||
</item>
|
||||
</lang>
|
||||
|
|
@ -13,6 +13,7 @@
|
|||
function init() {
|
||||
}
|
||||
|
||||
// deprecated
|
||||
/**
|
||||
* @brief Create a new layout
|
||||
* Insert a title into "layouts" table in order to create a layout
|
||||
|
|
@ -26,19 +27,20 @@
|
|||
$args->title = Context::get('title');
|
||||
$args->layout_type = Context::get('layout_type');
|
||||
if(!$args->layout_type) $args->layout_type = "P";
|
||||
// Insert into the DB
|
||||
|
||||
// Insert into the DB
|
||||
$output = $this->insertLayout($args);
|
||||
if(!$output->toBool()) return $output;
|
||||
// initiate if it is faceoff layout
|
||||
$this->initLayout($args->layout_srl, $args->layout);
|
||||
// Return result
|
||||
$this->add('layout_srl', $args->layout_srl);
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispLayoutAdminContent');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
// initiate if it is faceoff layout
|
||||
$this->initLayout($args->layout_srl, $args->layout);
|
||||
|
||||
// update layout info
|
||||
Context::set('layout_srl', $args->layout_srl);
|
||||
$output = $this->procLayoutAdminUpdate();
|
||||
if (!$output->toBool()) return $output;
|
||||
|
||||
$this->setRedirectUrl(Context::get('success_return_url'));
|
||||
}
|
||||
|
||||
// Insert layout information into the DB
|
||||
|
|
@ -157,7 +159,7 @@
|
|||
$extra_vars->{$name} = $filename;
|
||||
}
|
||||
}
|
||||
// Save header script into "config" of layout module
|
||||
// Save header script into "config" of layout module
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleController = &getController('module');
|
||||
$layout_config->header_script = Context::get('header_script');
|
||||
|
|
@ -170,15 +172,8 @@
|
|||
$output = $this->updateLayout($args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
//$this->setLayoutPath('./common/tpl');
|
||||
//$this->setLayoutFile('default_layout.html');
|
||||
//$this->setTemplatePath($this->module_path.'tpl');
|
||||
//$this->setTemplateFile("top_refresh.html");
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispLayoutAdminModify', 'layout_srl', Context::get('layout_srl'));
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
$this->setRedirectUrl(Context::get('error_return_url'));
|
||||
return new Object();
|
||||
}
|
||||
|
||||
function updateLayout($args) {
|
||||
|
|
@ -189,7 +184,7 @@
|
|||
FileHandler::removeFile($cache_file);
|
||||
//remove from cache
|
||||
$oCacheHandler = &CacheHandler::getInstance('object');
|
||||
if($oCacheHandler->isSupport())
|
||||
if($oCacheHandler->isSupport())
|
||||
{
|
||||
$cache_key = 'object:'.$args->layout_srl;
|
||||
$oCacheHandler->delete($cache_key);
|
||||
|
|
@ -204,6 +199,7 @@
|
|||
**/
|
||||
function procLayoutAdminDelete() {
|
||||
$layout_srl = Context::get('layout_srl');
|
||||
$this->setRedirectUrl(Context::get('error_return_url'));
|
||||
return $this->deleteLayout($layout_srl);
|
||||
}
|
||||
|
||||
|
|
@ -220,7 +216,7 @@
|
|||
$output = executeQuery("layout.deleteLayout", $args);
|
||||
//remove from cache
|
||||
$oCacheHandler = &CacheHandler::getInstance('object');
|
||||
if($oCacheHandler->isSupport())
|
||||
if($oCacheHandler->isSupport())
|
||||
{
|
||||
$cache_key = 'object:'.$layout_srl;
|
||||
$oCacheHandler->delete($cache_key);
|
||||
|
|
@ -234,10 +230,12 @@
|
|||
* @brief Adding Layout Code
|
||||
**/
|
||||
function procLayoutAdminCodeUpdate() {
|
||||
$mode = Context::get('mode');
|
||||
if ($mode == 'reset') return $this->procLayoutAdminCodeReset();
|
||||
|
||||
$layout_srl = Context::get('layout_srl');
|
||||
$code = Context::get('code');
|
||||
$code_css = Context::get('code_css');
|
||||
$return_url = Context::get('_return_url');
|
||||
$is_post = (Context::getRequestMethod() == 'POST');
|
||||
if(!$layout_srl || !$code) return new Object(-1, 'msg_invalid_request');
|
||||
|
||||
|
|
@ -248,11 +246,7 @@
|
|||
$layout_css_file = $oLayoutModel->getUserLayoutCss($layout_srl);
|
||||
FileHandler::writeFile($layout_css_file, $code_css);
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispLayoutAdminEdit', 'layout_srl', $layout_srl);
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
$this->setRedirectUrl(Context::get('error_return_url'));
|
||||
$this->setMessage('success_updated');
|
||||
}
|
||||
|
||||
|
|
@ -279,6 +273,7 @@
|
|||
|
||||
$this->initLayout($layout_srl, $info->layout);
|
||||
$this->setMessage('success_reset');
|
||||
$this->setRedirectUrl(Context::get('error_return_url'));
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -297,11 +292,7 @@
|
|||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
$this->setTemplateFile("top_refresh.html");
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispLayoutAdminEdit', 'layout_srl', Context::get('layout_srl'));
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
$this->setRedirectUrl(Context::get('error_return_url'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -344,9 +335,10 @@
|
|||
$layout_srl = Context::get('layout_srl');
|
||||
$this->removeUserLayoutImage($layout_srl,$filename);
|
||||
$this->setMessage('success_deleted');
|
||||
$this->setRedirectUrl(Context::get('error_return_url'));
|
||||
}
|
||||
|
||||
|
||||
// deprecated
|
||||
/**
|
||||
* @brief Save layout configuration
|
||||
* save in "ini" format for faceoff
|
||||
|
|
@ -449,6 +441,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
// deprecated
|
||||
/**
|
||||
* @brief faceoff export
|
||||
*
|
||||
|
|
@ -483,6 +476,7 @@
|
|||
exit();
|
||||
}
|
||||
|
||||
// deprecated
|
||||
/**
|
||||
* @brief faceoff import
|
||||
*
|
||||
|
|
|
|||
|
|
@ -14,10 +14,168 @@
|
|||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Display a installed layout list
|
||||
**/
|
||||
function dispLayoutAdminInstalledList() {
|
||||
// Set a layout list
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_list = $oLayoutModel->getDownloadedLayoutList('P', true);
|
||||
Context::set('type', 'P');
|
||||
|
||||
$pcLayoutCount = $oLayoutModel->getInstalledLayoutCount('P');
|
||||
$mobileLayoutCount = $oLayoutModel->getInstalledLayoutCount('M');
|
||||
Context::set('pcLayoutCount', $pcLayoutCount);
|
||||
Context::set('mobileLayoutCount', $mobileLayoutCount);
|
||||
$this->setTemplateFile('installed_layout_list');
|
||||
|
||||
$security = new Security($layout_list);
|
||||
$layout_list = $security->encodeHTML('..', '..author..');
|
||||
|
||||
foreach($layout_list as $no => $layout_info)
|
||||
{
|
||||
$layout_list[$no]->description = nl2br(trim($layout_info->description));
|
||||
}
|
||||
Context::set('layout_list', $layout_list);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Display a installed mobile layout list
|
||||
*/
|
||||
function dispLayoutAdminInstalledMobileList() {
|
||||
// Set a layout list
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_list = $oLayoutModel->getDownloadedLayoutList('M', true);
|
||||
Context::set('type', 'M');
|
||||
|
||||
$pcLayoutCount = $oLayoutModel->getInstalledLayoutCount('P');
|
||||
$mobileLayoutCount = $oLayoutModel->getInstalledLayoutCount('M');
|
||||
Context::set('pcLayoutCount', $pcLayoutCount);
|
||||
Context::set('mobileLayoutCount', $mobileLayoutCount);
|
||||
$this->setTemplateFile('installed_layout_list');
|
||||
|
||||
$security = new Security($layout_list);
|
||||
$layout_info = $security->encodeHTML('..', '..author..');
|
||||
|
||||
foreach($layout_list as $no => $layout_info)
|
||||
{
|
||||
$layout_list[$no]->description = nl2br(trim($layout_info->description));
|
||||
}
|
||||
Context::set('layout_list', $layout_list);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Display list of pc layout instance
|
||||
*/
|
||||
function dispLayoutAdminInstanceList()
|
||||
{
|
||||
$type = Context::get('type');
|
||||
$layout = Context::get('layout');
|
||||
|
||||
if (!in_array($type, array('P', 'M'))) $type = 'P';
|
||||
if (!$layout) return $this->stop('msg_invalid_request');
|
||||
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_info = $oLayoutModel->getLayoutInfo($layout, null, $type);
|
||||
if (!$layout_info) return $this->stop('msg_invalid_request');
|
||||
|
||||
Context::set('layout_info', $layout_info);
|
||||
|
||||
$columnList = array('layout_srl', 'layout', 'module_srl', 'title', 'regdate');
|
||||
$layout_list = $oLayoutModel->getLayoutInstanceList(0, $type, $layout, $columnList);
|
||||
Context::set('layout_list', $layout_list);
|
||||
|
||||
$this->setTemplateFile('layout_instance_list');
|
||||
|
||||
$security = new Security();
|
||||
$security->encodeHTML('layout_list..');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Layout setting page
|
||||
* Once select a layout with empty value in the DB, then adjust values
|
||||
**/
|
||||
function dispLayoutAdminInsert() {
|
||||
$oModel = &getModel('layout');
|
||||
$type = Context::get('type');
|
||||
if (!in_array($type, array('P', 'M'))) $type = 'P';
|
||||
|
||||
// Get layout info
|
||||
$layout = Context::get('layout');
|
||||
$layout_info = $oModel->getLayoutInfo($layout, null, $type);
|
||||
if (!$layout_info) return $this->stop('msg_invalid_request');
|
||||
|
||||
// get Menu list
|
||||
$oMenuAdminModel = &getAdminModel('menu');
|
||||
$menu_list = $oMenuAdminModel->getMenus();
|
||||
Context::set('menu_list', $menu_list);
|
||||
|
||||
$security = new Security();
|
||||
$security->encodeHTML('menu_list..');
|
||||
|
||||
$security = new Security($layout_info);
|
||||
$layout_info = $security->encodeHTML('.', 'author..', 'extra_var..', 'extra_var....');
|
||||
|
||||
$layout_info->description = nl2br(trim($layout_info->description));
|
||||
if (!is_object($layout_info->extra_var)) $layout_info->extra_var = new StdClass();
|
||||
foreach($layout_info->extra_var as $var_name => $val)
|
||||
{
|
||||
if (isset($layout_info->{$var_name}->description))
|
||||
$layout_info->{$var_name}->description = nl2br(trim($val->description));
|
||||
}
|
||||
Context::set('selected_layout', $layout_info);
|
||||
|
||||
$this->setTemplateFile('layout_modify');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Insert Layout details
|
||||
**/
|
||||
function dispLayoutAdminModify() {
|
||||
// Set the layout after getting layout information
|
||||
$layout_srl = Context::get('layout_srl');
|
||||
|
||||
// Get layout information
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_info = $oLayoutModel->getLayout($layout_srl);
|
||||
|
||||
// Error appears if there is no layout information is registered
|
||||
if(!$layout_info) return $this->stop('msg_invalid_request');
|
||||
|
||||
// If faceoff, no need to display the path
|
||||
if($layout_info->type == 'faceoff') unset($layout_info->path);
|
||||
|
||||
// Get a menu list
|
||||
$oMenuAdminModel = &getAdminModel('menu');
|
||||
$menu_list = $oMenuAdminModel->getMenus();
|
||||
Context::set('menu_list', $menu_list);
|
||||
|
||||
$security = new Security();
|
||||
$security->encodeHTML('menu_list..');
|
||||
|
||||
$security = new Security($layout_info);
|
||||
$layout_info = $security->encodeHTML('.', 'author..', 'extra_var..', 'extra_var....');
|
||||
|
||||
$layout_info->description = nl2br(trim($layout_info->description));
|
||||
if (!is_object($layout_info->extra_var)) $layout_info->extra_var = new StdClass();
|
||||
foreach($layout_info->extra_var as $var_name => $val)
|
||||
{
|
||||
if (isset($layout_info->{$var_name}->description))
|
||||
$layout_info->{$var_name}->description = nl2br(trim($val->description));
|
||||
}
|
||||
Context::set('selected_layout', $layout_info);
|
||||
|
||||
$this->setTemplateFile('layout_modify');
|
||||
}
|
||||
|
||||
// deprecated
|
||||
/**
|
||||
* @brief The first page of the layout admin
|
||||
**/
|
||||
function dispLayoutAdminContent() {
|
||||
$path = Context::get('path');
|
||||
if (!$path) return $this->stop('msg_invalid_request');
|
||||
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$columnList = array('layout_srl', 'layout', 'module_srl', 'title', 'regdate');
|
||||
$layout_list = $oLayoutModel->getLayoutList(0, 'P', $columnList);
|
||||
|
|
@ -26,6 +184,7 @@
|
|||
$this->setTemplateFile('index');
|
||||
}
|
||||
|
||||
// deprecated
|
||||
function dispLayoutAdminMobileContent() {
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$columnList = array('layout_srl', 'layout', 'module_srl', 'title', 'regdate');
|
||||
|
|
@ -36,42 +195,6 @@
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Layout setting page
|
||||
* Once select a layout with empty value in the DB, then adjust values
|
||||
**/
|
||||
function dispLayoutAdminInsert() {
|
||||
// Set layout list
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_type = Context::get('layout_type');
|
||||
$layout_list = $oLayoutModel->getDownloadedLayoutList($layout_type);
|
||||
Context::set('layout_list', $layout_list);
|
||||
|
||||
$this->setTemplateFile('insert_layout');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Insert Layout details
|
||||
**/
|
||||
function dispLayoutAdminModify() {
|
||||
// Set the layout after getting layout information
|
||||
$layout_srl = Context::get('layout_srl');
|
||||
// Get layout information
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_info = $oLayoutModel->getLayout($layout_srl);
|
||||
// Error appears if there is no layout information is registered
|
||||
if(!$layout_info) return $this->dispLayoutAdminContent();
|
||||
// If faceoff, no need to display the path
|
||||
if($layout_info->type == 'faceoff') unset($layout_info->path);
|
||||
Context::set('selected_layout', $layout_info);
|
||||
// Get a menu list
|
||||
$oMenuAdminModel = &getAdminModel('menu');
|
||||
$menu_list = $oMenuAdminModel->getMenus();
|
||||
Context::set('menu_list', $menu_list);
|
||||
|
||||
$this->setTemplateFile('layout_modify');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Edit layout codes
|
||||
**/
|
||||
|
|
@ -83,7 +206,7 @@
|
|||
$layout_info = $oLayoutModel->getLayout($layout_srl);
|
||||
// Error appears if there is no layout information is registered
|
||||
if(!$layout_info) return $this->dispLayoutAdminContent();
|
||||
Context::set('selected_layout', $layout_info);
|
||||
|
||||
// Get Layout Code
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_file = $oLayoutModel->getUserLayoutHtml($layout_info->layout_srl);
|
||||
|
|
@ -117,29 +240,21 @@
|
|||
Context::set('widget_list', $widget_list);
|
||||
|
||||
$this->setTemplateFile('layout_edit');
|
||||
|
||||
$security = new Security($layout_info);
|
||||
$layout_info = $security->encodeHTML('.', '.author..');
|
||||
Context::set('selected_layout', $layout_info);
|
||||
|
||||
$security = new Security();
|
||||
$security->encodeHTML('layout_code_css', 'layout_code', 'widget_list..title');
|
||||
// debugPrint(Context::get('selected_layout'));
|
||||
// debugPrint(Context::get('layout_code_css'));
|
||||
// debugPrint(Context::get('layout_code'));
|
||||
// debugPrint(Context::get('layout_image_list'));
|
||||
// debugPrint(Context::get('layout_image_path'));
|
||||
// debugPrint(Context::get('widget_list'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Display a layout list
|
||||
**/
|
||||
function dispLayoutAdminDownloadedList() {
|
||||
// Set a layout list
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_list = $oLayoutModel->getDownloadedLayoutList();
|
||||
Context::set('layout_list', $layout_list);
|
||||
|
||||
$this->setTemplateFile('downloaded_layout_list');
|
||||
}
|
||||
|
||||
function dispLayoutAdminDownloadedMobileList() {
|
||||
// Set a layout list
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_list = $oLayoutModel->getDownloadedLayoutList(0, "M");
|
||||
Context::set('layout_list', $layout_list);
|
||||
|
||||
$this->setTemplateFile('downloaded_mlayout_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Preview a layout
|
||||
**/
|
||||
|
|
@ -175,6 +290,7 @@
|
|||
// Temporary save the codes
|
||||
$edited_layout_file = sprintf('./files/cache/layout/tmp.tpl');
|
||||
FileHandler::writeFile($edited_layout_file, $code);
|
||||
|
||||
// Compile
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
|
||||
|
|
@ -192,6 +308,7 @@
|
|||
|
||||
}
|
||||
|
||||
// deprecated
|
||||
/**
|
||||
* @brief Pop-up details of the layout(conf/info.xml)
|
||||
**/
|
||||
|
|
@ -206,7 +323,7 @@
|
|||
$this->setTemplateFile('layout_detail_info');
|
||||
}
|
||||
|
||||
|
||||
// deprecated
|
||||
/**
|
||||
* @brief Modify admin layout of faceoff
|
||||
**/
|
||||
|
|
@ -253,6 +370,7 @@
|
|||
$this->setTemplateFile('faceoff_layout_edit');
|
||||
}
|
||||
|
||||
// deprecated
|
||||
function dispLayoutAdminLayoutImageList(){
|
||||
$layout_srl = Context::get('layout_srl');
|
||||
$oLayoutModel = &getModel('layout');
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
function init() {
|
||||
}
|
||||
|
||||
// deprecated
|
||||
/**
|
||||
* @brief Get a layout list created in the DB
|
||||
* If you found a new list, it means that the layout list is inserted to the DB
|
||||
|
|
@ -26,12 +27,27 @@
|
|||
}
|
||||
$args->site_srl = $site_srl;
|
||||
$args->layout_type = $layout_type;
|
||||
$output = executeQuery('layout.getLayoutList', $args, $columnList);
|
||||
if(!$output->data) return;
|
||||
if(is_array($output->data)) return $output->data;
|
||||
return array($output->data);
|
||||
$output = executeQueryArray('layout.getLayoutList', $args, $columnList);
|
||||
return $output->data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get layout instance list
|
||||
**/
|
||||
function getLayoutInstanceList($siteSrl = 0, $layoutType = 'P', $layout = null, $columnList = array())
|
||||
{
|
||||
if (!$siteSrl)
|
||||
{
|
||||
$siteModuleInfo = Context::get('site_module_info');
|
||||
$siteSrl = (int)$siteModuleInfo->site_srl;
|
||||
}
|
||||
$args->site_srl = $siteSrl;
|
||||
$args->layout_type = $layoutType;
|
||||
$args->layout = $layout;
|
||||
$output = executeQueryArray('layout.getLayoutList', $args, $columnList);
|
||||
return $output->data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get one of layout information created in the DB
|
||||
* Return DB info + XML info of the generated layout
|
||||
|
|
@ -52,9 +68,9 @@
|
|||
$layout_info = $this->getLayoutInfo($layout, $output->data, $output->data->layout_type);
|
||||
//insert in cache
|
||||
if($oCacheHandler->isSupport()) $oCacheHandler->put($cache_key,$layout_info);
|
||||
}
|
||||
}
|
||||
return $layout_info;
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -63,10 +79,7 @@
|
|||
function getLayoutPath($layout_name, $layout_type = "P") {
|
||||
if($layout_name == 'faceoff'){
|
||||
$class_path = './modules/layout/faceoff/';
|
||||
}else if(strpos($layout_name, '.') !== false){
|
||||
$layout_parse = explode('.', $layout_name);
|
||||
$class_path = sprintf('./themes/%s/layout/%s/', $layout_parse[0], $layout_parse[1]);
|
||||
}else if($layout_type == "M") {
|
||||
}else if($layout_type == "M") {
|
||||
$class_path = sprintf("./m.layouts/%s/", $layout_name);
|
||||
}
|
||||
else
|
||||
|
|
@ -79,36 +92,84 @@
|
|||
|
||||
/**
|
||||
* @brief Get a type and information of the layout
|
||||
* A type of downloaded layout
|
||||
* A type of downloaded layout
|
||||
**/
|
||||
function getDownloadedLayoutList($layout_type = "P") {
|
||||
// Get a list of downloaded layout and installed layout
|
||||
if($layout_type == "M")
|
||||
{
|
||||
$directory = "./m.layouts";
|
||||
}
|
||||
else
|
||||
{
|
||||
$directory = "./layouts";
|
||||
}
|
||||
function getDownloadedLayoutList($layout_type = "P", $withAutoinstallInfo = false) {
|
||||
if ($withAutoinstallInfo) $oAutoinstallModel = &getModel('autoinstall');
|
||||
|
||||
$searched_list = FileHandler::readDir($directory);
|
||||
// Get a list of downloaded layout and installed layout
|
||||
$searched_list = $this->_getInstalledLayoutDirectories($layout_type);
|
||||
$searched_count = count($searched_list);
|
||||
if(!$searched_count) return;
|
||||
|
||||
natcasesort($searched_list);
|
||||
// Return information for looping searched list of layouts
|
||||
$list = array();
|
||||
for($i=0;$i<$searched_count;$i++) {
|
||||
// Name of the layout
|
||||
$layout = $searched_list[$i];
|
||||
// Get information of the layout
|
||||
$layout_info = $this->getLayoutInfo($layout, null, $layout_type);
|
||||
|
||||
if ($withAutoinstallInfo)
|
||||
{
|
||||
// get easyinstall remove url
|
||||
$packageSrl = $oAutoinstallModel->getPackageSrlByPath($layout_info->path);
|
||||
$layout_info->remove_url = $oAutoinstallModel->getRemoveUrlByPackageSrl($packageSrl);
|
||||
|
||||
// get easyinstall need update
|
||||
$package = $oAutoinstallModel->getInstalledPackages($packageSrl);
|
||||
$layout_info->need_update = $package[$packageSrl]->need_update;
|
||||
|
||||
// get easyinstall update url
|
||||
if ($layout_info->need_update)
|
||||
{
|
||||
$layout_info->update_url = $oAutoinstallModel->getUpdateUrlByPackageSrl($packageSrl);
|
||||
}
|
||||
}
|
||||
$list[] = $layout_info;
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get a count of layout
|
||||
* @param $layout_type: a type of layout(P|M)
|
||||
* @return int
|
||||
**/
|
||||
function getInstalledLayoutCount($layoutType = 'P')
|
||||
{
|
||||
$searchedList = $this->_getInstalledLayoutDirectories($layoutType);
|
||||
return count($searchedList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get list of layouts directory
|
||||
* @param $layoutType: a type of layout(P|M)
|
||||
* @return array
|
||||
**/
|
||||
function _getInstalledLayoutDirectories($layoutType = 'P')
|
||||
{
|
||||
if ($layoutType == 'M')
|
||||
{
|
||||
$directory = './m.layouts';
|
||||
$globalValueKey = 'MOBILE_LAYOUT_DIRECTOIES';
|
||||
}
|
||||
else
|
||||
{
|
||||
$directory = './layouts';
|
||||
$globalValueKey = 'PC_LAYOUT_DIRECTORIES';
|
||||
}
|
||||
|
||||
if ($GLOBALS[$globalValueKey]) return $GLOBALS[$globalValueKey];
|
||||
|
||||
$searchedList = FileHandler::readDir($directory);
|
||||
if (!$searchedList) $searchedList = array();
|
||||
$GLOBALS[$globalValueKey] = $searchedList;
|
||||
|
||||
return $searchedList;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get information by reading conf/info.xml in the module
|
||||
* It uses caching to reduce time for xml parsing ..
|
||||
|
|
@ -296,21 +357,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
if ($xml_obj->skins){
|
||||
$buff .= '$layout_info->skins = array();';
|
||||
$buff .= '$layout_info->skins["module"] = array();';
|
||||
$buff .= '$layout_info->skins["widget"] = array();';
|
||||
|
||||
$skins = $xml_obj->skins->skin;
|
||||
|
||||
if (is_array($skins)){
|
||||
foreach($skins as $val){
|
||||
$buff .= '$layout_info->skins["'.$val->attrs->type.'"]["'.$val->attrs->name.'"] = "'.$val->attrs->skin.'";';
|
||||
}
|
||||
}else{
|
||||
$buff .= '$layout_info->skins["'.$skins->attrs->type.'"]["'.$skins->attrs->name.'"] = "'.$skins->attrs->skin.'";';
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
// Layout title, version and other information
|
||||
|
|
@ -515,7 +562,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief user layout cache
|
||||
* @brief user layout cache
|
||||
* todo It may need to remove the file itself
|
||||
**/
|
||||
function getUserLayoutCache($layout_srl,$lang_type){
|
||||
|
|
@ -523,7 +570,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief layout cache
|
||||
* @brief layout cache
|
||||
**/
|
||||
function getLayoutCache($layout_name,$lang_type){
|
||||
return sprintf("./files/cache/layout/%s.%s.cache.php",$layout_name,$lang_type);
|
||||
|
|
@ -633,36 +680,5 @@
|
|||
Context::addBodyHeader($oTemplate->compile($this->module_path.'/tpl', 'faceoff_layout_menu'));
|
||||
}
|
||||
}
|
||||
|
||||
function getThemaXml($layout_path){
|
||||
if(!$layout_path) return;
|
||||
|
||||
$xml_file = sprintf("%sconf/thema.xml", $layout_path);
|
||||
if(!file_exists($xml_file)) return;
|
||||
|
||||
$oXmlParser = new XmlParser();
|
||||
$tmp_xml_obj = $oXmlParser->loadXmlFile($xml_file);
|
||||
$xml_obj = $tmp_xml_obj->thema;
|
||||
|
||||
if(!$xml_obj) return;
|
||||
|
||||
$thema_info->layout_name = $xml_obj->name->body;
|
||||
$thema_info->skins = array();
|
||||
$thema_info->skins['module'] = array();
|
||||
$thema_info->skins['widget'] = array();
|
||||
|
||||
$skins = $xml_obj->skins->skin;
|
||||
if ($skins){
|
||||
if (is_array($skins)){
|
||||
foreach($skins as $val){
|
||||
$thema_info->skins[$val->attrs->type][$val->attrs->name] = $val->attrs->skin;
|
||||
}
|
||||
}else{
|
||||
$thema_info->skins[$skins->attrs->type][$skins->attrs->name] = $skins->attrs->skin;
|
||||
}
|
||||
}
|
||||
return $thema_info;
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -27,6 +27,64 @@
|
|||
$this->setLayoutFile('popup_layout');
|
||||
// Set a template file
|
||||
$this->setTemplateFile('layout_detail_info');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Preview a layout
|
||||
**/
|
||||
function dispLayoutPreview() {
|
||||
// admin check
|
||||
// this act is admin view but in normal view because do not load admin css/js files
|
||||
$logged_info = Context::get('logged_info');
|
||||
if ($logged_info->is_admin != 'Y') return $this->stop('msg_invalid_request');
|
||||
|
||||
$layout_srl = Context::get('layout_srl');
|
||||
$code = Context::get('code');
|
||||
$code_css = Context::get('code_css');
|
||||
if(!$layout_srl || !$code) return new Object(-1, 'msg_invalid_request');
|
||||
// Get the layout information
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_info = $oLayoutModel->getLayout($layout_srl);
|
||||
if(!$layout_info) return new Object(-1, 'msg_invalid_request');
|
||||
// Separately handle the layout if its type is faceoff
|
||||
if($layout_info && $layout_info->type == 'faceoff') $oLayoutModel->doActivateFaceOff($layout_info);
|
||||
// Apply CSS directly
|
||||
Context::addHtmlHeader("<style type=\"text/css\" charset=\"UTF-8\">".$code_css."</style>");
|
||||
// Set names and values of extra_vars to $layout_info
|
||||
if($layout_info->extra_var_count) {
|
||||
foreach($layout_info->extra_var as $var_id => $val) {
|
||||
$layout_info->{$var_id} = $val->value;
|
||||
}
|
||||
}
|
||||
// menu in layout information becomes an argument for Context:: set
|
||||
if($layout_info->menu_count) {
|
||||
foreach($layout_info->menu as $menu_id => $menu) {
|
||||
if(file_exists($menu->php_file)) @include($menu->php_file);
|
||||
Context::set($menu_id, $menu);
|
||||
}
|
||||
}
|
||||
|
||||
Context::set('layout_info', $layout_info);
|
||||
Context::set('content', Context::getLang('layout_preview_content'));
|
||||
// Temporary save the codes
|
||||
$edited_layout_file = sprintf('./files/cache/layout/tmp.tpl');
|
||||
FileHandler::writeFile($edited_layout_file, $code);
|
||||
|
||||
// Compile
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
|
||||
$layout_path = $layout_info->path;
|
||||
$layout_file = 'layout';
|
||||
|
||||
$layout_tpl = $oTemplate->compile($layout_path, $layout_file, $edited_layout_file);
|
||||
Context::set('layout','none');
|
||||
// Convert widgets and others
|
||||
$oContext = &Context::getInstance();
|
||||
Context::set('layout_tpl', $layout_tpl);
|
||||
// Delete Temporary Files
|
||||
FileHandler::removeFile($edited_layout_file);
|
||||
$this->setTemplateFile('layout_preview');
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
<conditions>
|
||||
<condition operation="equal" column="site_srl" var="site_srl" filter="number" default="0" notnull="notnull" />
|
||||
<condition operation="equal" column="layout_type" var="layout_type" default="P" pipe="and" />
|
||||
<condition operation="equal" column="layout" var="layout" pipe="and" />
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="sort_index" default="layout_srl" order="desc" />
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ruleset version="1.5.0">
|
||||
<customrules>
|
||||
<rule name="imageExtension" type="regex" test="/\.(gif|jpg|jpeg|gif|png|swf|flv)$/i" />
|
||||
</customrules>
|
||||
<fields>
|
||||
<field name="user_layout_image['name']" required="true" rule="imageExtension" />
|
||||
<field name="code" required="true" />
|
||||
<field name="layout_srl" required="true" rule="number" />
|
||||
</fields>
|
||||
</ruleset>
|
||||
|
|
|
|||
6
modules/layout/ruleset/deleteLayout.xml
Normal file
6
modules/layout/ruleset/deleteLayout.xml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ruleset version="1.5.0">
|
||||
<fields>
|
||||
<field name="layout_srl" required="true" rule="number" />
|
||||
</fields>
|
||||
</ruleset>
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
<rule name="imageExtension" type="regex" test="/\.(gif|jpg|jpeg|gif|png|swf|flv)$/i" />
|
||||
</customrules>
|
||||
<fields>
|
||||
<field name="user_layout_image['name']" required="true" rule="imageExtension" />
|
||||
<field name="user_layout_image" required="true" rule="imageExtension" />
|
||||
<field name="layout_srl" required="true" rule="number" />
|
||||
</fields>
|
||||
</ruleset>
|
||||
|
|
|
|||
3
modules/layout/tpl/css/adminEdit.css
Normal file
3
modules/layout/tpl/css/adminEdit.css
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
.uploaded_image_list {list-style: none; margin: 0; padding: 0;}
|
||||
.uploaded_image_list li {display: inline-block; margin-right: 10px;}
|
||||
.uploaded_image_list img {border: 1px #ccc solid; padding: 3px; width: 96px; height: 96px;}
|
||||
|
|
@ -1,17 +1,5 @@
|
|||
<!--%import("js/layout_admin.js")-->
|
||||
<h1 class="h1">{$lang->installed_layout}</h1>
|
||||
|
||||
<h3 class="xeAdmin"><span class="gray">{$lang->layout_management}</span></h3>
|
||||
|
||||
<div class="infoText">{nl2br($lang->about_layout)}</div>
|
||||
|
||||
<!-- 관리자 페이지용 메뉴 -->
|
||||
<!--@if($module == 'admin')-->
|
||||
<div class="header4">
|
||||
<ul class="localNavigation">
|
||||
<li <!--@if($act=='dispLayoutAdminContent')-->class="on"<!--@end-->><a href="{getUrl('act','dispLayoutAdminContent','layout_type','')}">{$lang->layout_list}</a></li>
|
||||
<li <!--@if($act=='dispLayoutAdminDownloadedList')-->class="on"<!--@end-->><a href="{getUrl('act','dispLayoutAdminDownloadedList','layout_type','')}">{$lang->downloaded_list}</a></li>
|
||||
<li <!--@if($act=='dispLayoutAdminMobileContent')-->class="on"<!--@end-->><a href="{getUrl('act','dispLayoutAdminMobileContent','layout_type','')}">{$lang->mobile_layout_list}</a></li>
|
||||
<li <!--@if($act=='dispLayoutAdminDownloadedMobileList')-->class="on"<!--@end-->><a href="{getUrl('act','dispLayoutAdminDownloadedMobileList','layout_type','')}">{$lang->mobile_downloaded_list}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--@end-->
|
||||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
57
modules/layout/tpl/installed_layout_list.html
Normal file
57
modules/layout/tpl/installed_layout_list.html
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
<include target="header.html" />
|
||||
<div class="table even easyList">
|
||||
<table width="100%" border="1" cellspacing="0">
|
||||
<caption>
|
||||
<a cond="$act != 'dispLayoutAdminInstalledList'" href="{getUrl('act', 'dispLayoutAdminInstalledList')}">PC({$pcLayoutCount})</a>
|
||||
<block cond="$act == 'dispLayoutAdminInstalledList'">PC({$pcLayoutCount})</block>
|
||||
|
|
||||
<a cond="$act != 'dispLayoutAdminInstalledMobileList'" href="{getUrl('act', 'dispLayoutAdminInstalledMobileList')}">Mobile({$mobileLayoutCount})</a>
|
||||
<block cond="$act == 'dispLayoutAdminInstalledMobileList'">Mobile({$mobileLayoutCount})</block>
|
||||
</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="title">{$lang->layout_name}</th>
|
||||
<th scope="col">{$lang->version}</th>
|
||||
<th scope="col">{$lang->author}</th>
|
||||
<th scope="col">{$lang->path}</th>
|
||||
<th scope="col">{$lang->cmd_delete}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<block loop="$layout_list => $key, $layout">
|
||||
<tr>
|
||||
<block cond="$layout->title">
|
||||
<td class="title">
|
||||
<p><a href="{getUrl('act', 'dispLayoutAdminInstanceList', 'type', $type, 'layout', $layout->layout)}">{$layout->title}</a></p>
|
||||
<p>{$layout->description}</p>
|
||||
<p cond="$layout->need_update == 'Y'" class="update">
|
||||
{$lang->msg_avail_update} <a href="{$layout->update_url}&return_url={urlencode(getRequestUriByServerEnviroment())}">{$lang->msg_do_you_like_update}</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>{$layout->version}</td>
|
||||
<td>
|
||||
<block loop="$layout->author => $author">
|
||||
<a cond="$author->homepage" href="{$author->homepage}" target="_blank">{$author->name}</a>
|
||||
<block cond="!$author->homepage">{$author->name}</block>
|
||||
</block>
|
||||
</td>
|
||||
<td>{$layout->path}</td>
|
||||
<td><a cond="$layout->remove_url" href="{$layout->remove_url}&return_url={urlencode(getRequestUriByServerEnviroment())}">{$lang->cmd_delete}</a></td>
|
||||
</block>
|
||||
<block cond="!$layout->title">
|
||||
<td class="title">
|
||||
<p><a href="{getUrl('act', 'dispLayoutAdminInstanceList', 'path', urlencode($layout->path))}">{$layout->layout}</a></p>
|
||||
<p cond="$layout->need_update == 'Y'" class="update">
|
||||
{$lang->msg_avail_update} <a href="{$layout->update_url}&return_url={urlencode(getRequestUriByServerEnviroment())}">{$lang->msg_do_you_like_update}</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>{$layout->path}</td>
|
||||
<td><a cond="$layout->remove_url" href="{$layout->remove_url}&return_url={urlencodegetRequestUriByServerEnviroment())}">{$lang->cmd_delete}</a></td>
|
||||
</block>
|
||||
</tr>
|
||||
</block>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
24
modules/layout/tpl/js/adminEdit.js
Normal file
24
modules/layout/tpl/js/adminEdit.js
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
jQuery(document).ready(function($){
|
||||
$('.uploaded_image').css('cursor', 'pointer');
|
||||
$('.uploaded_image_path').hide();
|
||||
$('.uploaded_image').bind('click', function(e){
|
||||
var path = $(this).siblings('.uploaded_image_path').html();
|
||||
var html = '<div class="selected_image_path">' + path + '</div>';
|
||||
|
||||
$('.selected_image_path').remove();
|
||||
$('.uploaded_image_list').after(html);
|
||||
});
|
||||
});
|
||||
|
||||
function doPreviewLayoutCode()
|
||||
{
|
||||
var $form = jQuery('#fo_layout'), $act = $form.find('input[name=act]');
|
||||
var og_act = $act.val();
|
||||
|
||||
$form.attr('target', '_LayoutPreview');
|
||||
$act.val('dispLayoutPreview');
|
||||
$form.submit();
|
||||
|
||||
$form.removeAttr('target');
|
||||
$act.val(og_act);
|
||||
}
|
||||
8
modules/layout/tpl/js/adminList.js
Normal file
8
modules/layout/tpl/js/adminList.js
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
var ConfirmCheck = xe.createPlugin('confirm_check', {
|
||||
API_BEFORE_VALIDATE: function(sender, params){
|
||||
return confirm(xe.lang.confirm_delete);
|
||||
}
|
||||
});
|
||||
|
||||
var Validator = xe.getApp('Validator')[0];
|
||||
Validator.registerPlugin(new ConfirmCheck());
|
||||
|
|
@ -1,127 +1,102 @@
|
|||
<!--%import("filter/update_layout_code.xml")-->
|
||||
<!--%import("filter/reset_layout_code.xml")-->
|
||||
<include target="header.html" />
|
||||
<load target="css/adminEdit.css" />
|
||||
<load target="js/adminEdit.js" />
|
||||
|
||||
<!--#include("header.html")-->
|
||||
<h3 class="xeAdmin">{$selected_layout->layout_title}</h3>
|
||||
<h2 class="h2">{$selected_layout->layout_title}</h2>
|
||||
|
||||
<div class="header4">
|
||||
<ul class="localNavigation">
|
||||
<li><a href="{getUrl('act','dispLayoutAdminModify')}">{$lang->cmd_layout_management}</a></li>
|
||||
<li class="on"><a href="#" onclick="return false;">{$lang->cmd_layout_edit}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<h3 class="h3">{$selected_layout->title} ver {$selected_layout->version} ({$selected_layout->layout})</h3>
|
||||
<p>{nl2br($lang->about_layout_code)}</p>
|
||||
|
||||
<h4 class="xeAdmin">{$selected_layout->title} ver {$selected_layout->version} ({$selected_layout->layout})</h4>
|
||||
<p class="summary">{nl2br($lang->about_layout_code)}</p>
|
||||
<h3 class="h3">{$lang->layout_image_repository}</h3>
|
||||
<p>{nl2br($lang->about_layout_image_repository)}</p>
|
||||
|
||||
<h4 class="xeAdmin">{$lang->layout_image_repository}</h4>
|
||||
<p class="summary">{nl2br($lang->about_layout_image_repository)}</p>
|
||||
<fieldset class="section">
|
||||
<ul class="uploaded_image_list">
|
||||
<li loop="$layout_image_list => $no, $file">
|
||||
{@$ext=substr(strrchr($file,'.'),1)}
|
||||
<div class="a uploaded_image">
|
||||
<script cond="$ext == 'swf' || $ext == 'flv'" type="text/javascript">
|
||||
//<![CDATA[
|
||||
displayMultimedia('{getUrl('')}{$layout_image_path}{$file}', '100px', '100px');
|
||||
//]]>
|
||||
</script>
|
||||
<img cond="$ext != 'swf' && $ext != 'flv'" src="{getUrl('')}{$layout_image_path}{$file}" />
|
||||
</div>
|
||||
<div class="uploaded_image_path">{$layout_image_path}{$file}</div>
|
||||
<form action="./" method="post">
|
||||
<input type="hidden" name="module" value="layout" />
|
||||
<input type="hidden" name="act" value="procLayoutAdminUserImageDelete" />
|
||||
<input type="hidden" name="layout_srl" value="{$layout_srl}" />
|
||||
<input type="hidden" name="filename" value="{$file}" />
|
||||
|
||||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<form ruleset="imageUpload" action="{Context::getRequestUri()}" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="module" value="layout" />
|
||||
<input type="hidden" name="act" value="procLayoutAdminUserImageUpload" />
|
||||
<input type="hidden" name="layout_srl" value="{$layout_srl}" />
|
||||
<input class="text" type="submit" value="{$lang->cmd_delete}" />
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form" action="./" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="module" value="layout" />
|
||||
<input type="hidden" name="act" value="procLayoutAdminUserImageUpload" />
|
||||
<input type="hidden" name="layout_srl" value="{$layout_srl}" />
|
||||
<ul>
|
||||
<li>
|
||||
<p class="a"><input type="file" name="user_layout_image" value="" /> <span class="desc">{$lang->msg_layout_image_target}</span></p>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="btnArea">
|
||||
<span class="btn medium"><input type="submit" value="{$lang->cmd_save}" /></span>
|
||||
</div>
|
||||
</form>
|
||||
</fieldset>
|
||||
|
||||
<table cellspacing="0" class="crossTable">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<!--@foreach($layout_image_list as $no => $file)-->
|
||||
{@$ext=substr(strrchr($file,'.'),1)}
|
||||
<div class="preview_image" style="width:100px;height:100px;float:left; position:relative;margin-right:10px; ">
|
||||
<!--@if($ext=='swf'||$ext=='flv')-->
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
displayMultimedia('{getUrl('')}{$layout_image_path}{$file}', '100%', '100%');
|
||||
//]]></script>
|
||||
<!--@elseif(in_array($ext,array('gif','png','jpg','jpeg')))-->
|
||||
<img src="{getUrl('')}{$layout_image_path}{$file}" width="100%" height="100%" />
|
||||
<!--@end-->
|
||||
<a href="#" onclick="deleteFile({$layout_srl},'{$file}');return false" onmouseover="jQuery('div.imagePath').html('{$layout_image_path}{$file}')" style="position:absolute; left:3px; top:3px;" class="small button red"><span>{$lang->cmd_delete}</span></a>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="imagePath"></div>
|
||||
<input name="user_layout_image" type="file" />
|
||||
<span class="button black strong"><button type="submit">{$lang->cmd_save}</button></span>
|
||||
{$lang->msg_layout_image_target}
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</form>
|
||||
<block cond="$selected_layout->type == 'faceoff'">
|
||||
<h3 class="h3">{$lang->layout_migration}</h3>
|
||||
<p>{nl2br($lang->about_layout_migration)}</p>
|
||||
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->layout_export}</div></th>
|
||||
<td>
|
||||
<a href="{getUrl('','act','procLayoutAdminUserLayoutExport','layout_srl',$layout_srl)}" class="button black strong"><span>{$lang->layout_btn_export}</span></a>
|
||||
<p>{$lang->about_layout_export}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->layout_import}</div></th>
|
||||
<td>
|
||||
<form ruleset="userLayoutImport" action="{getUrl('')}" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="module" value="layout" />
|
||||
<input type="hidden" name="act" value="procLayoutAdminUserLayoutImport" />
|
||||
<input type="hidden" name="layout_srl" value="{$layout_srl}" />
|
||||
<input type="file" name="file" />
|
||||
<span class="button black strong"><button type="submit">{$lang->cmd_submit}</button></span>
|
||||
</form>
|
||||
<p>{$lang->about_layout_import}</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</block>
|
||||
|
||||
<!--@if($selected_layout->type=='faceoff')-->
|
||||
<h4 class="xeAdmin">{$lang->layout_migration}</h4>
|
||||
<p class="summary">{nl2br($lang->about_layout_migration)}</p>
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->layout_export}</div></th>
|
||||
<td>
|
||||
<a href="{getUrl('','act','procLayoutAdminUserLayoutExport','layout_srl',$layout_srl)}" class="button black strong"><span>{$lang->layout_btn_export}</span></a>
|
||||
<p>{$lang->about_layout_export}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->layout_import}</div></th>
|
||||
<td>
|
||||
<form ruleset="userLayoutImport" action="{getUrl('')}" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="module" value="layout" />
|
||||
<input type="hidden" name="act" value="procLayoutAdminUserLayoutImport" />
|
||||
<input type="hidden" name="layout_srl" value="{$layout_srl}" />
|
||||
<input type="file" name="file" />
|
||||
<span class="button black strong"><button type="submit">{$lang->cmd_submit}</button></span>
|
||||
</form>
|
||||
<p>{$lang->about_layout_import}</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--@end-->
|
||||
|
||||
|
||||
<form ruleset="codeUpdate" id="fo_layout" action="{getUrl('','module','admin')}" method="post">
|
||||
<form id="fo_layout" class="form" ruleset="codeUpdate" action="./" method="post">
|
||||
<input type="hidden" name="layout_srl" value="{$layout_srl}" />
|
||||
<input type="hidden" name="act" value="procLayoutAdminCodeUpdate" />
|
||||
<input type="hidden" name="_filter" value="update_layout_code" />
|
||||
<input type="hidden" name="_return_url" value="{htmlspecialchars($current_url)}" />
|
||||
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<tbody>
|
||||
<tr><th class="title">HTML</th></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<textarea name="code" style="width:100%;height:300px;font-size:11px;">{htmlspecialchars($layout_code)}</textarea>
|
||||
<!--@foreach($widget_list as $widget)-->
|
||||
<a href="{getUrl('','module','widget','act','dispWidgetGenerateCode','selected_widget',$widget->widget,'module_srl',$module_srl)}" onclick="popopen(this.href,'GenerateCodeInPage');return false;" class="button"><span>{$widget->title}</span></a>
|
||||
<!--@end-->
|
||||
</td>
|
||||
</tr>
|
||||
<tr><th class="title">CSS</th></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<textarea name="code_css" style="width:100%;height:300px;font-size:11px;">{htmlspecialchars($layout_code_css)}</textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="button">
|
||||
<span class="button black strong"><button type="submit">{$lang->cmd_save}</button></span>
|
||||
<span class="button"><button type="button" onclick="doPreviewLayoutCode();">{$lang->cmd_preview}</button></span>
|
||||
<span class="button red"><button type="reset" onclick="doResetLayoutCode('{$layout_srl}')">{$lang->cmd_reset}</button></span>
|
||||
<!--button type="submit" name="act" value="procCommunicationMoveFriend">{$lang->cmd_move}</button>
|
||||
<button type="submit" name="act" value="procCommunicationDeleteFriend">{$lang->cmd_delete}</button-->
|
||||
</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3 class="h3">HTML</h3>
|
||||
<div>
|
||||
<textarea name="code" style="width:100%;height:300px;font-size:11px;">{$layout_code}</textarea>
|
||||
<!--@foreach($widget_list as $widget)-->
|
||||
<span class="btn"><a href="{getUrl('','module','widget','act','dispWidgetGenerateCode','selected_widget',$widget->widget,'module_srl',$module_srl)}" onclick="popopen(this.href,'GenerateCodeInPage');return false;">{$widget->title}</a></span>
|
||||
<!--@end-->
|
||||
</div>
|
||||
|
||||
<h3 class="h3">CSS</h3>
|
||||
<div>
|
||||
<textarea name="code_css" style="width:100%;height:300px;font-size:11px;">{$layout_code_css}</textarea>
|
||||
</div>
|
||||
<div class="btnArea" style="float: left" >
|
||||
<span class="btn medium"><button type="submit" name="mode" value="reset">{$lang->cmd_reset}</button></span>
|
||||
</div>
|
||||
<div class="btnArea">
|
||||
<span class="btn medium"><button type="button" onclick="doPreviewLayoutCode();">{$lang->cmd_preview}</button></span>
|
||||
<span class="btn medium"><button type="submit" name="mode" value="save">{$lang->cmd_save}</button></span>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<iframe name="hidden_iframe" style="width:0;height:0;border:0" ></iframe>
|
||||
|
|
|
|||
43
modules/layout/tpl/layout_instance_list.html
Normal file
43
modules/layout/tpl/layout_instance_list.html
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
<include target="header.html" />
|
||||
<load target="js/adminList.js" />
|
||||
|
||||
<script type="text/javascript">
|
||||
xe.lang.confirm_delete = '{$lang->confirm_delete}';
|
||||
</script>
|
||||
|
||||
<h2 class="h2">{$layout_info->title} ver {$layout_info->version} ({$layout_info->layout})</h2>
|
||||
<div class="table even easyList">
|
||||
<table width="100%" border="1" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">{$lang->no}</th>
|
||||
<th scope="col" class="title">{$lang->title}</th>
|
||||
<th scope="col">{$lang->regdate}</th>
|
||||
<th scope="col">{$lang->cmd_layout_management}</th>
|
||||
<th scope="col">{$lang->cmd_layout_edit}</th>
|
||||
<th scope="col">{$lang->cmd_delete}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr loop="$layout_list => $no, $layout">
|
||||
<td>{$no+1}</td>
|
||||
<td class="title">{$layout->title}</td>
|
||||
<td>{zdate($layout->regdate, "Y-m-d")}</td>
|
||||
<td><a href="{getUrl('act', 'dispLayoutAdminModify', 'layout_srl', $layout->layout_srl)}">{$lang->cmd_layout_management}</a></td>
|
||||
<td><a href="{getUrl('act', 'dispLayoutAdminEdit', 'layout_srl', $layout->layout_srl)}">{$lang->cmd_layout_edit}</a></td>
|
||||
<td>
|
||||
<form class="layout_delete_form" ruleset="deleteLayout" action="./" method="post">
|
||||
<input type="hidden" name="module" value="layout" />
|
||||
<input type="hidden" name="act" value="procLayoutAdminDelete" />
|
||||
<input type="hidden" name="layout_srl" value="{$layout->layout_srl}" />
|
||||
|
||||
<input class="text" type="submit" value="{$lang->cmd_delete}" />
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="btnArea">
|
||||
<span class="btn small"><a href="{getUrl('act', 'dispLayoutAdminInsert', 'layout', $layout_info->layout)}">{$lang->cmd_insert}</a></span>
|
||||
</div>
|
||||
|
|
@ -1,184 +1,145 @@
|
|||
<!--%import("filter/update_layout_info.xml")-->
|
||||
<include target="header.html" />
|
||||
|
||||
<!--#include("header.html")-->
|
||||
<h2 cond="$act == 'dispLayoutAdminModify'" class="h2">{$selected_layout->layout_title}</h2>
|
||||
<h2 cond="$act == 'dispLayoutAdminInsert'" class="h2">{$selected_layout->title}</h2>
|
||||
|
||||
<h3 class="xeAdmin">{$selected_layout->layout_title}</h3>
|
||||
<div class="header4">
|
||||
<ul class="localNavigation">
|
||||
<li class="on"><a href="#" onclick="return false;">{$lang->cmd_layout_management}</a></li>
|
||||
<li><a href="{getUrl('act','dispLayoutAdminEdit')}">{$lang->cmd_layout_edit}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<form ruleset="updateLayout" id="fo_layout" action="./" method="post" enctype="multipart/form-data">
|
||||
<form ruleset="updateLayout"|cond="$act == 'dispLayoutAdminModify'" ruleset="insertLayout"|cond="$act == 'dispLayoutAdminInsert'" action="./" class="form" enctype="multipart/form-data" method="post">
|
||||
<input type="hidden" name="module" value="layout" />
|
||||
<input type="hidden" name="act" value="procLayoutAdminUpdate" />
|
||||
<input type="hidden" name="act" value="procLayoutAdminUpdate"|cond="$act == 'dispLayoutAdminModify'" value="procLayoutAdminInsert"|cond="$act == 'dispLayoutAdminInsert'" />
|
||||
<input type="hidden" name="layout_srl" value="{$layout_srl}" />
|
||||
<input type="hidden" name="layout" value="{$selected_layout->layout}" />
|
||||
<input type="hidden" name="layout_type" value="{$selected_layout->layout_type}" />
|
||||
<input type="hidden" name="success_return_url" value="{getUrl('act', 'dispLayoutAdminInstanceList')}" />
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p class="q">{$lang->layout}</p>
|
||||
<p class="a">{$selected_layout->title} ver {$selected_layout->version} ({$selected_layout->layout})</p>
|
||||
</li>
|
||||
<li cond="$selected_layout->path">
|
||||
<p class="q">{$lang->path}</p>
|
||||
<p class="a">{$selected_layout->path}</p>
|
||||
</li>
|
||||
<li cond="$selected_layout->description">
|
||||
<p class="q">{$lang->description}</p>
|
||||
<p class="a">{$selected_layout->description}</p>
|
||||
</li>
|
||||
<li cond="$selected_layout->author->homepage">
|
||||
<p class="q">{$lang->author}</p>
|
||||
<p class="a"><a href="{$selected_layout->author->homepage}" target="_blank">{$selected_layout->author->name}</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q">{$lang->header_script}</p>
|
||||
<p class="a">
|
||||
<textarea name="header_script" cols="42" rows="5">{$selected_layout->header_script}</textarea>
|
||||
</p>
|
||||
<p class="desc">{$lang->about_header_script}</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q">{$lang->title}</p>
|
||||
<p class="a">
|
||||
<input type="text" name="title" value="{$selected_layout->layout_title}" />
|
||||
</p>
|
||||
<p class="desc">{$lang->about_title}</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<col width="200" />
|
||||
<col width="*" />
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->layout}</div></th>
|
||||
<td class="wide">{$selected_layout->title} ver {$selected_layout->version} ({$selected_layout->layout})</td>
|
||||
</tr>
|
||||
<block loop="$selected_layout->extra_var => $name, $var">
|
||||
<block cond="!$not_first && !$var->group"><ul></block>
|
||||
<block cond="$group != $var->group">
|
||||
<block cond="$not_first"></ul></block>
|
||||
<h3 class="h3">{$var->group}</h3>
|
||||
<ul>
|
||||
{@$group = $var->group}
|
||||
</block>
|
||||
{@$not_first = true}
|
||||
<li>
|
||||
<p class="q">{$var->title}</p>
|
||||
<div class="a">
|
||||
<input cond="$var->type == 'text'" type="text" name="{$name}" value="{htmlspecialchars($var->value)}" />
|
||||
|
||||
<!--@if($selected_layout->path)-->
|
||||
<tr class="row2">
|
||||
<th scope="row"><div>{$lang->path}</div></th>
|
||||
<td>{$selected_layout->path}</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<textarea cond="$var->type == 'textarea'" name="{$name}" cols="42" rows="5">{htmlspecialchars($var->value)}</textarea>
|
||||
|
||||
<!--@if($selected_layout->description)-->
|
||||
<tr class="row2">
|
||||
<th scope="row"><div>{$lang->description}</div></th>
|
||||
<td>{nl2br(trim($selected_layout->description))}</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<block cond="$var->type == 'image'">
|
||||
<block cond="$var->value">
|
||||
<p><img src="../../../{$var->value}" alt="" /> <input type="checkbox" name="del_{$name}" value="Y" id="del_{$name}" /><label for="del_{$name}">{$lang->cmd_delete}</label></p>
|
||||
</block>
|
||||
<p><input type="file" name="{$name}" value="" /></p>
|
||||
</block>
|
||||
|
||||
<!--@if($selected_layout->author->homepage)-->
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->author}</div></th>
|
||||
<td><a href="{$selected_layout->author->homepage}" onclick="window.open(this.href);return false;" class="blue">{$selected_layout->author->name}</a></td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<select cond="$var->type == 'select'" name="{$name}">
|
||||
<option loop="$var->options => $key, $val" value="{$key}" selected="selected"|cond="$key == $var->value">{$val->val}</option>
|
||||
</select>
|
||||
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->header_script}</div></th>
|
||||
<td>
|
||||
<textarea name="header_script" class="inputTypeTextArea w400">{htmlspecialchars($selected_layout->header_script)}</textarea>
|
||||
<p>{$lang->about_header_script}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="row2">
|
||||
<th scope="row"><div>{$lang->title}</div></th>
|
||||
<td>
|
||||
<input type="text" name="title" value="{htmlspecialchars($selected_layout->layout_title)}" class="inputTypeText w400" />
|
||||
<p>{$lang->about_title}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<block cond="$var->type == 'radio'">
|
||||
<block loop="$var->options => $key, $val">
|
||||
<block cond="$val->thumbnail">
|
||||
{@
|
||||
$_img_info = getImageSize($val->thumbnail);
|
||||
$_height = $_img_info[1] + 40;
|
||||
$_width = $img_info[0] + 20;
|
||||
$_talign = 'center';
|
||||
}
|
||||
</block>
|
||||
<block cond="!$val->thumbnail">
|
||||
{@
|
||||
$_width = 200;
|
||||
$_height = 20;
|
||||
$_talign = 'left';
|
||||
}
|
||||
</block>
|
||||
|
||||
<!--@foreach($selected_layout->extra_var as $name => $var)-->
|
||||
<block cond="$var->thumbnail_exist">
|
||||
<div cond= style="float:left;text-align:{$_talign};margin-bottom:1em;width:{$_width}px;height:{$_height}px;margin-right:10px;">
|
||||
</block>
|
||||
<label>
|
||||
<input type="radio" name="{$name}" value="{$key}" />{$val->val}
|
||||
<block cond="$val->thumbnail">
|
||||
<br />
|
||||
<img src="../../../{$val->thumbnail}" alt="{$val->val}" style="border:1px solid #888888;padding:2px;margin:2px;"/>
|
||||
</block>
|
||||
</label>
|
||||
<block cond="$var->thumbnail_exist">
|
||||
</div>
|
||||
</block>
|
||||
</block>
|
||||
</block>
|
||||
</div>
|
||||
<p class="desc">{$var->description}</p>
|
||||
</li>
|
||||
</block>
|
||||
</ul>
|
||||
|
||||
<!--@if($var->group && ((!$group) || $group != $var->group))-->
|
||||
</table>
|
||||
<h3 class="h3">{$lang->menu}</h3>
|
||||
<ul>
|
||||
<li loop="$selected_layout->menu => $menu_name, $menu_info">
|
||||
<p class="q">{$menu_info->title} ({$menu_name})</p>
|
||||
<p class="a">
|
||||
<select name="{$menu_name}">
|
||||
<option value="0">------------------------</option>
|
||||
<option loop="$menu_list => $key, $val" value="{$val->menu_srl}" selected="selected"|cond="$val->menu_srl == $menu_info->menu_srl">{$val->title}</option>
|
||||
</select>
|
||||
<a href="#">{$lang->cmd_management}</a>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q">{$lang->not_apply_menu}</p>
|
||||
<p class="a">
|
||||
<input type="checkbox" name="apply_layout" value="Y" />{$lang->about_not_apply_menu}
|
||||
</p>
|
||||
</li>
|
||||
<li cond="$selected_layout->layout_type == 'M'">
|
||||
<p class="q">{$lang->apply_mobile_view}</p>
|
||||
<p class="a">
|
||||
<input type="checkbox" name="apply_mobile_view" value="Y" />{$lang->about_apply_mobile_view}
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
{@$group = $var->group}
|
||||
<h4 class="xeAdmin">{$group}</h4>
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<col width="200" />
|
||||
<col width="*" />
|
||||
<!--@end-->
|
||||
<div class="btnArea">
|
||||
<span class="btn medium">
|
||||
<input type="submit" value="{$lang->cmd_insert}"|cond="$act == 'dispLayoutAdminInsert'" value="{$lang->cmd_save}"|cond="$act == 'dispLayoutAdminModify'" />
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<tr>
|
||||
<th scope="row"><div>{$var->title}</div></th>
|
||||
<td>
|
||||
<!--@if($var->type == "text")-->
|
||||
<input type="text" name="{$name}" value="{htmlspecialchars($var->value)}" class="inputTypeText w400"/>
|
||||
|
||||
<!--@elseif($var->type == "textarea")-->
|
||||
<textarea name="{$name}" class="inputTypeTextArea w400">{htmlspecialchars($var->value)}</textarea>
|
||||
|
||||
<!--@elseif($var->type=="image")-->
|
||||
|
||||
<!--@if($var->value)-->
|
||||
<div>
|
||||
<img src="../../../{$var->value}" alt="image" /><br />
|
||||
<input type="checkbox" name="del_{$name}" value="Y" id="del_{$name}" class="checkbox" />
|
||||
<label for="del_{$name}">{$lang->cmd_delete}</label>
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
<input type="file" name="{$name}" value="" />
|
||||
|
||||
<!--@elseif($var->type == "select")-->
|
||||
<select name="{$name}">
|
||||
<!--@foreach($var->options as $key => $val)-->
|
||||
<option value="{$key}" <!--@if($key==$var->value)-->selected="selected"<!--@end-->>{$val->val}</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
|
||||
<!--@elseif($var->type == "radio")-->
|
||||
<!--@foreach($var->options as $key => $val)-->
|
||||
<!--@if($val->thumbnail)-->
|
||||
{@ $_img_info = getImageSize($val->thumbnail); $_height = $_img_info[1]+40; $_width = $_img_info[0]+20; $_talign = "center"; }
|
||||
<!--@else-->
|
||||
{@ $_width = 200; $_height = 20; $_talign = "left"; }
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($var->thumbnail_exist)-->
|
||||
<div style="float:left;text-align:{$_talign};margin-bottom:1em;width:{$_width}px;height:{$_height}px;margin-right:10px;">
|
||||
<!--@endif-->
|
||||
|
||||
<label>
|
||||
<input type="radio" name="colorset" value="{$key}" /> {$val->val}
|
||||
<!--@if($val->thumbnail)-->
|
||||
<br />
|
||||
<img src="../../../{$val->thumbnail}" alt="{$val->val}" style="border:1px solid #888888;padding:2px;margin:2px;"/>
|
||||
<!--@endif-->
|
||||
</label>
|
||||
|
||||
<!--@if($var->thumbnail_exist)-->
|
||||
</div>
|
||||
<!--@endif-->
|
||||
<!--@endforeach-->
|
||||
<!--@endif-->
|
||||
<p style="clear:both;">{$var->description}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
</table>
|
||||
|
||||
<h4 class="xeAdmin">{$lang->menu}</h4>
|
||||
<table cellspacing="0" class="rowTable">
|
||||
<col width="200" />
|
||||
<col width="*" />
|
||||
<!--@foreach($selected_layout->menu as $menu_name => $menu_info)-->
|
||||
<tr class="row{$cycle_idx}">
|
||||
<th scope="row"><div>{$menu_info->title}<br />({$menu_name})</div></th>
|
||||
<td class="left tahoma">
|
||||
<select name="{$menu_name}">
|
||||
<option value="0">------------------------</option>
|
||||
<!--@foreach($menu_list as $key => $val)-->
|
||||
<option value="{$val->menu_srl}" <!--@if($val->menu_srl == $menu_info->menu_srl)-->selected="selected"<!--@end-->>{$val->title}</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
<a href="#" onclick="doMenuManagement('{$menu_name}');return false;" class="button"><span>{$lang->cmd_management}</span></a>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->not_apply_menu}</div></th>
|
||||
<td>
|
||||
<input type="checkbox" name="apply_layout" value="Y" />
|
||||
{$lang->about_not_apply_menu}
|
||||
</td>
|
||||
</tr>
|
||||
<!--@if($selected_layout->layout_type == "M")-->
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->apply_mobile_view}</div></th>
|
||||
<td>
|
||||
<input type="checkbox" name="apply_mobile_view" value="Y" />
|
||||
{$lang->about_apply_mobile_view}
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
</table>
|
||||
|
||||
<div class="buttonArea">
|
||||
<span class="button black strong"><input type="submit" value="{$lang->cmd_save}" /></span>
|
||||
<!--@if($module=="admin")-->
|
||||
<a href="{getUrl('act','dispLayoutAdminContent')}" class="button"><span>{$lang->cmd_list}</span></a>
|
||||
<!--@else-->
|
||||
<a href="{getUrl('act','')}" class="button"><span>{$lang->cmd_back}</span></a>
|
||||
<!--@end-->
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<iframe name="hidden_iframe" frameborder="0" style="display:none"></iframe>
|
||||
</form>
|
||||
Loading…
Add table
Add a link
Reference in a new issue