Issue 2380: Admin UI Refactoring - Advanced - Layouts

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@11610 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
flyskyko 2012-10-08 05:48:02 +00:00
parent 2d4b235146
commit b8eb83cd94
16 changed files with 219 additions and 1313 deletions

View file

@ -1079,4 +1079,7 @@
<value xml:lang="ko"><![CDATA[복사할 Layout이 지정되어 있지 않습니다.]]></value>
<value xml:lang="en"><![CDATA[Target layout is not assigned]]></value>
</item>
<item name="msg_at_least_one_layout">
<value xml:lang="ko"><![CDATA[해당 레이아웃의 마지막 한개 레이아웃은 삭제할 수 없습니다.]]></value>
</item>
</lang>

View file

@ -229,9 +229,19 @@
* @param int $layout_srl
* @return Object
**/
function deleteLayout($layout_srl) {
function deleteLayout($layout_srl, $force = FALSE) {
$oLayoutModel = &getModel('layout');
if(!$force)
{
$layoutInfo = $oLayoutModel->getLayout($layout_srl);
$layoutList = $oLayoutModel->getLayoutInstanceList($layoutInfo->site_srl, $layoutInfo->layout_type, $layoutInfo->layout, array('layout_srl'));
if(count($layoutList) <= 1)
{
return new Object(-1, 'msg_at_least_one_layout');
}
}
$path = $oLayoutModel->getUserLayoutPath($layout_srl);
FileHandler::removeDir($path);

View file

@ -240,38 +240,6 @@
$this->setTemplateFile('layout_modify');
}
/**
* The first page of the layout admin
* @deprecated
* @return void|Object (void : success, Object : fail)
**/
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);
Context::set('layout_list', $layout_list);
$this->setTemplateFile('index');
}
/**
* The first page of the mobile layout admin
* @deprecated
* @return void
**/
function dispLayoutAdminMobileContent() {
$oLayoutModel = &getModel('layout');
$columnList = array('layout_srl', 'layout', 'module_srl', 'title', 'regdate');
$layout_list = $oLayoutModel->getLayoutList(0, 'M', $columnList);
Context::set('layout_list', $layout_list);
$this->setTemplateFile('mindex');
}
/**
* Edit layout codes
* @return void

View file

@ -122,28 +122,48 @@
{
foreach($_downloadedList as $dLayoutInfo)
{
$downloadedList[] = $dLayoutInfo->layout;
$downloadedList[$dLayoutInfo->layout] = $dLayoutInfo->layout;
$titleList[$dLayoutInfo->layout] = $dLayoutInfo->title;
}
}
// Get downloaded name list have no instance
$noInstanceList = array_diff($downloadedList, $instanceList);
foreach($noInstanceList as $layoutName)
if($layout)
{
$insertArgs = new stdClass();
$insertArgs->site_srl = $siteSrl;
$insertArgs->layout_srl = getNextSequence();
$insertArgs->layout = $layoutName;
$insertArgs->title = $titleList[$layoutName];
$insertArgs->layout_type = $layoutType;
if(!count($instanceList) && $downloadedList[$layout])
{
$insertArgs = new stdClass();
$insertArgs->site_srl = $siteSrl;
$insertArgs->layout_srl = getNextSequence();
$insertArgs->layout = $layout;
$insertArgs->title = $titleList[$layout];
$insertArgs->layout_type = $layoutType;
$oLayoutAdminController = getAdminController('layout');
$oLayoutAdminController->insertLayout($insertArgs);
$oLayoutAdminController = getAdminController('layout');
$oLayoutAdminController->insertLayout($insertArgs);
$isCreateInstance = TRUE;
}
}
else
{
// Get downloaded name list have no instance
$noInstanceList = array_diff($downloadedList, $instanceList);
foreach($noInstanceList as $layoutName)
{
$insertArgs = new stdClass();
$insertArgs->site_srl = $siteSrl;
$insertArgs->layout_srl = getNextSequence();
$insertArgs->layout = $layoutName;
$insertArgs->title = $titleList[$layoutName];
$insertArgs->layout_type = $layoutType;
$oLayoutAdminController = getAdminController('layout');
$oLayoutAdminController->insertLayout($insertArgs);
$isCreateInstance = TRUE;
}
}
// If create layout instance, reload instance list
if(count($noInstanceList))
if($isCreateInstance)
{
$output = executeQueryArray('layout.getLayoutList', $args, $columnList);
}

View file

@ -1,9 +0,0 @@
<div class="aboutFaceOff">
<h3>{$lang->about_faceoff['title']}</h3>
<p>{$lang->about_faceoff['description']}</p>
<img src="./images/faceoff.gif" border="0" />
<p>{$lang->about_faceoff['layout']}</p>
<p>{$lang->about_faceoff['setting']}</p>
<p>{$lang->about_faceoff['hotkey']}</p>
<p>{$lang->about_faceoff['attribute']}</p>
</div>

View file

@ -1,40 +1,49 @@
<script>
var addLang = '{$lang->cmd_insert}';
</script>
<load target="js/layout_admin.js" usecdn="true" />
<h1 class="h1">{$lang->cmd_layout_copy}</h1>
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
<div class="x_modal" id="__layout_copy">
<div class="x_modal-header">
<h3>{$lang->cmd_layout_copy}</h3>
</div>
<div class="x_modal-body">
<form action="./" method="post">
<input type="hidden" name="layout" value="{$layout->layout}" />
<input type="hidden" name="act" value="procLayoutAdminCopyLayout" />
<input type="hidden" name="layout_srl" value="{$layout->layout_srl}" />
<div class="table">
<table width="100%" border="1" cellspacing="0">
<tr>
<th scope="row">{$lang->layout_name}</th>
<td>{$layout->title}</td>
</tr>
<tr>
<th scope="row">{$lang->title}</th>
<td>{$layout->layout_title}</td>
</tr>
</table>
</div>
<div class="table">
<table width="100%" border="1" cellspacing="0" id="inputTable">
<tr>
<th scope="col"><div>{$lang->title}<div></th>
<th scope="col"><div>{$lang->cmd_insert}</div></th>
</tr>
<tr>
<td><input type="text" name="title[]" size="50" /></td>
<td><span class="btn"><input type="button" value="{$lang->cmd_insert}" onclick="addLayoutCopyInputbox()" /></span></td>
</tr>
</table>
</div>
<div class="btnArea">
<span class="btn"><input type="submit" value="{$lang->cmd_save}" /></span>
</div>
</form>
</div>
<div class="x_modal-footer">
<button type="button" class="x_btn x_pull-left" data-hide="#__layout_copy">{$lang->cmd_close}</button>
<span class="x_btn-group x_pull-right">
<button type="submit" class="x_btn">{$lang->cmd_insert}</button>
</span>
</div>
</div>
<form action="./" method="post">
<input type="hidden" name="layout" value="{$layout->layout}" />
<input type="hidden" name="act" value="procLayoutAdminCopyLayout" />
<input type="hidden" name="layout_srl" value="{$layout->layout_srl}" />
<div class="table">
<table width="100%" border="1" cellspacing="0">
<tr>
<th scope="row">{$lang->layout_name}</th>
<td>{$layout->title}</td>
</tr>
<tr>
<th scope="row">{$lang->title}</th>
<td>{$layout->layout_title}</td>
</tr>
</table>
</div>
<div class="table">
<table width="100%" border="1" cellspacing="0" id="inputTable">
<tr>
<th scope="col"><div>{$lang->title}<div></th>
<th scope="col"><div>{$lang->cmd_insert}</div></th>
</tr>
<tr>
<td><input type="text" name="title[]" size="50" /></td>
<td><span class="btn"><input type="button" value="{$lang->cmd_insert}" onclick="addLayoutCopyInputbox()" /></span></td>
</tr>
</table>
</div>
<div class="btnArea">
<span class="btn"><input type="submit" value="{$lang->cmd_save}" /></span>
</div>
</form>

View file

@ -1,51 +0,0 @@
<!--#include("header.html")-->
<!-- 레이아웃의 목록 -->
<div class="table">
<table width="100%" border="1" cellspacing="0">
<thead>
<tr>
<th scope="col" class="halfwide">{$lang->layout_name}</th>
<th scope="col">{$lang->version}</th>
<th scope="col">{$lang->author}</th>
<th scope="col">{$lang->menu_count}</th>
<th scope="col">{$lang->date}</th>
<th scope="col">{$lang->path}</th>
<th scope="col">{$lang->cmd_make}</th>
</tr>
</thead>
<tbody>
<!--@foreach($layout_list as $key => $val)-->
<!--// 레이아웃 정보 파일(conf/info.xml)가 있는 경우-->
<!--@if($val->title)-->
<tr class="row{$cycle_idx}">
<th rowspan="2"> <a href="{getUrl('','module','layout','act','dispLayoutAdminInfo','selected_layout',$val->layout)}" onclick="popopen(this.href,'layout_info');return false" class="blue">{$val->title}</a> <br />
({$val->layout}) </th>
<td>{$val->version}</td>
<td>
<!--@foreach($val->author as $author)-->
<!--@if($author->homepage)--><a href="{$author->homepage}" onclick="window.open(this.href);return false;"><!--@end-->{$author->name}<!--@if($author->homepage)--></a><!--@end-->
<!--@endforeach-->
</td>
<td>{$val->menu_count}</td>
<td>{zdate($val->date, 'Y-m-d')}</td>
<td>{$val->path}</td>
<td><a href="{getUrl('act','dispLayoutAdminInsert','layout',$val->layout)}">{$lang->cmd_make}</a></td>
</tr>
<tr>
<td colspan="6" >
{nl2br(trim($val->description))}
</td>
</tr>
<!--// 레이아웃 정보 파일(conf/info.xml)이 없는 경우 -->
<!--@else-->
<tr>
<td colspan="6">{$val->layout}</td>
<td class="tahoma">{$val->path}</td>
<td class="tahoma blue"><a href="{getUrl('act','dispLayoutAdminInsert','layout',$val->layout)}">{$lang->cmd_make}</a></td>
</tr>
<!--@end-->
<!--@end-->
</tbody>
</table>
</div>

View file

@ -1,53 +0,0 @@
<!--#include("header.html")-->
<!-- 레이아웃의 목록 -->
<div class="table">
<table width="100%" border="1" cellspacing="0">
<thead>
<tr>
<th scope="col" class="halfwide">{$lang->layout_name}</th>
<th scope="col">{$lang->version}</th>
<th scope="col">{$lang->author}</th>
<th scope="col">{$lang->menu_count}</th>
<th scope="col">{$lang->date}</th>
<th scope="col">{$lang->path}</th>
<th scope="col">{$lang->cmd_make}</th>
</tr>
</thead>
<tbody>
<!--@foreach($layout_list as $key => $val)-->
<!--// 레이아웃 정보 파일(conf/info.xml)가 있는 경우-->
<!--@if($val->title)-->
<tr class="row{$cycle_idx}">
<th rowspan="2"> <a href="{getUrl('','module','layout','act','dispLayoutAdminInfo','selected_layout',$val->layout)}" onclick="popopen(this.href,'layout_info');return false" class="blue">{$val->title}</a> <br />
({$val->layout}) </th>
<td>{$val->version}</td>
<td>
<!--@foreach($val->author as $author)-->
<!--@if($author->homepage)--><a href="{$author->homepage}" onclick="window.open(this.href);return false;"><!--@end-->{$author->name}<!--@if($author->homepage)--></a><!--@end-->
<!--@endforeach-->
</td>
<td>{$val->menu_count}</td>
<td>{zdate($val->date, 'Y-m-d')}</td>
<td>{$val->path}</td>
<td><a href="{getUrl('act','dispLayoutAdminInsert','layout',$val->layout,'layout_type','M')}">{$lang->cmd_make}</a></td>
</tr>
<tr>
<td colspan="6" >
{nl2br(trim($val->description))}
</td>
</tr>
<!--// 레이아웃 정보 파일(conf/info.xml)이 없는 경우 -->
<!--@else-->
<tr>
<td colspan="6">{$val->layout}</td>
<td class="tahoma">{$val->path}</td>
<td class="tahoma blue"><a href="{getUrl('act','dispLayoutAdminInsert','layout',$val->layout,'layout_type','M')}">{$lang->cmd_make}</a></td>
</tr>
<!--@end-->
<!--@end-->
</tbody>
</table>
</div>

View file

@ -2,14 +2,19 @@
#faceoff_migration_info img { border: 1px solid #ccc; padding: 5px; }
</style>
<h1 class="h1">{$lang->installed_layout}</h1>
<div class="x_page-header">
<h1>{$lang->installed_layout}</h1>
</div>
<div cond="$layout == 'faceoff'" class="message error">
<div cond="$layout == 'faceoff'" class="x_alert x_alert-block">
<p>{$lang->faceoff_migration[0]}</p>
<p><a href="#faceoff_migration_info" class="modalAnchor">{$lang->faceoff_migration[1]}</a></p>
</div>
<div cond="$layout == 'faceoff'" id="faceoff_migration_info" class="modal">
<div class="fg">
<div cond="$layout == 'faceoff'" id="faceoff_migration_info" class="x_modal">
<div class="x_modal-header">
<h3>{$lang->faceoff_migration[1]}<h3>
</div>
<div class="x_modal-body">
<ol>
<li>
<p>{$lang->faceoff_migration[2]}</p>
@ -37,8 +42,11 @@
</li>
</ol>
</div>
<div class="x_modal-footer">
<button type="button" class="x_btn x_pull-left" data-hide="#faceoff_migration_info">{$lang->cmd_close}</button>
</div>
</div>
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<div cond="$XE_VALIDATOR_MESSAGE" class="x_alert x_alert-{$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>

View file

@ -1,50 +0,0 @@
<!--%import("filter/delete_layout.xml")-->
<!--#include("header.html")-->
<!-- 삭제를 위한 임시 form -->
<form id="fo_layout" action="./" method="get" onsubmit="return procFilter(this, delete_layout)">
<input type="hidden" name="layout_srl" value="" />
</form>
<!-- 목록 -->
<div class="table">
<table width="100%" border="1" cellspacing="0">
<thead>
<tr>
<th scope="col">{$lang->no}</th>
<th scope="col">{$lang->layout}</th>
<th scope="col">{$lang->title}</th>
<th scope="col">{$lang->regdate}</th>
<th scope="col" colspan="3">&nbsp;</th>
</tr>
</thead>
<tbody>
<!--@foreach($layout_list as $no => $val)-->
<tr class="row{$cycle_idx}">
<td>{$no+1}</td>
<td>
{$val->layout}
<!--@if($val->module_srl)-->
(module)
<!--@end-->
</td>
<td >{$val->title}</td>
<td>{zdate($val->regdate,"Y-m-d")}</td>
<td>
<!--@if(!$val->module_srl)-->
<a href="{getUrl('act','dispLayoutAdminModify','layout_srl',$val->layout_srl)}" title="{htmlspecialchars($lang->cmd_layout_management)}" class="buttonSet buttonSetting"><span>{$lang->cmd_layout_management}</span></a>
<!--@else-->
&nbsp;
<!--@end-->
</td>
<td><a href="{getUrl('act','dispLayoutAdminEdit','layout_srl',$val->layout_srl)}" title="{htmlspecialchars($lang->cmd_layout_edit)}" class="buttonSet buttonLayoutEditor"><span>{$lang->cmd_layout_edit}</span></a></td>
<td><a href="#" onclick="doDeleteLayout('{$val->layout_srl}');return false;" title="{htmlspecialchars($lang->cmd_delete)}" class="buttonSet buttonDelete"><span>{$lang->cmd_delete}</span></a></td>
</tr>
<!--@end-->
</tbody>
</table>
</div>
<div class="btnArea">
<span class="btn"><a href="{getUrl('act','dispLayoutAdminInsert','layout_srl','')}">{$lang->cmd_make}</a></span>
</div>

View file

@ -1,39 +0,0 @@
<!--#include("header.html")-->
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<form ruleset="insertLayout" action="./" method="post">
<input type="hidden" name="module" value="layout" />
<input type="hidden" name="act" value="procLayoutAdminInsert" />
<input type="hidden" name="layout_type" value="{$layout_type}" />
<div class="table">
<table width="100%" border="1" cellspacing="0">
<tr>
<th scope="row">{$lang->layout_name}</th>
<td>
<select name="layout">
<option value="faceoff">faceoff</option>
<optgroup label="{$lang->downloaded_list}">
<!--@foreach($layout_list as $key => $val)-->
<option value="{$val->layout}" <!--@if($layout == $val->layout)-->selected="selected"<!--@end-->> <!--@if($val->title)-->{$val->title} ({$val->layout})<!--@else-->{$val->layout}<!--@end--></option>
<!--@end-->
</optgroup>
</select>
</td>
</tr>
<tr>
<th scope="row">{$lang->title}</th>
<td>
<input type="text" name="title" value="{$info->title}" />
<p>{$lang->about_title}</p>
</td>
</tr>
</table>
</div>
<div class="btnArea">
<span class="btn"><input type="submit" value="{$lang->cmd_next}" /></span>
</div>
</form>

View file

@ -1,54 +1,56 @@
<include target="header.html" />
<div class="table even easyList dsTg">
<include target="sub_tab.html" />
<table width="100%" border="1" cellspacing="0">
<caption>
<span class="side"><button type="button" class="text"><span class="hide">{$lang->simple_view}</span><span class="show">{$lang->detail_view}</span></button></span>
</caption>
<thead>
<tr>
<th scope="col" class="title">{$lang->layout_name}</th>
<th scope="col" class="nowr">{$lang->version}</th>
<th scope="col" class="nowr">{$lang->author}</th>
<th scope="col" class="nowr">{$lang->path}</th>
<th scope="col" class="nowr">{$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_easy_update} <a href="{$layout->update_url}&amp;return_url={urlencode(getRequestUriByServerEnviroment())}">{$lang->msg_do_you_like_update}</a>
</p>
</td>
<td class="nowr">{$layout->version}</td>
<td class="nowr">
<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 class="nowr">{$layout->path}</td>
<td class="nowr"><a cond="$layout->remove_url" href="{$layout->remove_url}&amp;return_url={urlencode(getRequestUriByServerEnviroment())}">{$lang->cmd_delete}</a></td>
</block>
<block cond="!$layout->title">
<td class="title">
<p><a href="{getUrl('act', 'dispLayoutAdminInstanceList', 'type', $type, 'layout', $layout->layout)}">{$layout->layout}</a></p>
<p cond="$layout->need_update == 'Y'" class="update">
{$lang->msg_avail_easy_update} <a href="{$layout->update_url}&amp;return_url={urlencode(getRequestUriByServerEnviroment())}">{$lang->msg_do_you_like_update}</a>
</p>
</td>
<td class="nowr">-</td>
<td class="nowr">-</td>
<td class="nowr">{$layout->path}</td>
<td class="nowr"><a cond="$layout->remove_url" href="{$layout->remove_url}&amp;return_url={urlencodegetRequestUriByServerEnviroment()}">{$lang->cmd_delete}</a></td>
</block>
</tr>
<table class="x_table x_table-striped x_table-hover dsTg">
<caption>
<div class="x_pull-right x_btn-group">
<button class="x_btn x_btn-mini x_active __simple">{$lang->simple_view}</button>
<button class="x_btn x_btn-mini __detail">{$lang->detail_view}</button>
</div>
</caption>
<thead>
<tr>
<th scope="col" class="title">{$lang->layout_name}</th>
<th scope="col" class="nowr">{$lang->version}</th>
<th scope="col" class="nowr">{$lang->author}</th>
<th scope="col" class="nowr">{$lang->path}</th>
<th scope="col" class="nowr">{$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_easy_update} <a href="{$layout->update_url}&amp;return_url={urlencode(getRequestUriByServerEnviroment())}">{$lang->msg_do_you_like_update}</a>
</p>
</td>
<td class="nowr">{$layout->version}</td>
<td class="nowr">
<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 class="nowr">{$layout->path}</td>
<td class="nowr"><a cond="$layout->remove_url" class="x_btn x_btn-primary" href="{$layout->remove_url}&amp;return_url={urlencode(getRequestUriByServerEnviroment())}">{$lang->cmd_delete}</a></td>
</block>
</tbody>
</table>
</div>
<block cond="!$layout->title">
<td class="title">
<p><a href="{getUrl('act', 'dispLayoutAdminInstanceList', 'type', $type, 'layout', $layout->layout)}">{$layout->layout}</a></p>
<p cond="$layout->need_update == 'Y'" class="update">
{$lang->msg_avail_easy_update} <a href="{$layout->update_url}&amp;return_url={urlencode(getRequestUriByServerEnviroment())}">{$lang->msg_do_you_like_update}</a>
</p>
</td>
<td class="nowr">-</td>
<td class="nowr">-</td>
<td class="nowr">{$layout->path}</td>
<td class="nowr"><a cond="$layout->remove_url" class="x_btn x_btn-primary" href="{$layout->remove_url}&amp;return_url={urlencodegetRequestUriByServerEnviroment()}">{$lang->cmd_delete}</a></td>
</block>
</tr>
</block>
</tbody>
</table>

View file

@ -1,50 +0,0 @@
<!--%import("filter/delete_layout.xml")-->
<!--#include("header.html")-->
<!-- 삭제를 위한 임시 form -->
<form id="fo_layout" action="./" method="get" onsubmit="return procFilter(this, delete_layout)">
<input type="hidden" name="layout_srl" value="" />
</form>
<!-- 목록 -->
<div class="table">
<table width="100%" border="1" cellspacing="0">
<thead>
<tr>
<th scope="col">{$lang->no}</th>
<th scope="col">{$lang->layout}</th>
<th scope="col">{$lang->title}</th>
<th scope="col">{$lang->regdate}</th>
<th scope="col" colspan="3">&nbsp;</th>
</tr>
</thead>
<tbody>
<!--@foreach($layout_list as $no => $val)-->
<tr class="row{$cycle_idx}">
<td>{$no+1}</td>
<td>
{$val->layout}
<!--@if($val->module_srl)-->
(module)
<!--@end-->
</td>
<td >{$val->title}</td>
<td>{zdate($val->regdate,"Y-m-d")}</td>
<td>
<!--@if(!$val->module_srl)-->
<a href="{getUrl('act','dispLayoutAdminModify','layout_srl',$val->layout_srl)}" title="{htmlspecialchars($lang->cmd_layout_management)}" class="buttonSet buttonSetting"><span>{$lang->cmd_layout_management}</span></a>
<!--@else-->
&nbsp;
<!--@end-->
</td>
<td><a href="{getUrl('act','dispLayoutAdminEdit','layout_srl',$val->layout_srl)}" title="{htmlspecialchars($lang->cmd_layout_edit)}" class="buttonSet buttonLayoutEditor"><span>{$lang->cmd_layout_edit}</span></a></td>
<td><a href="#" onclick="doDeleteLayout('{$val->layout_srl}');return false;" title="{htmlspecialchars($lang->cmd_delete)}" class="buttonSet buttonDelete"><span>{$lang->cmd_delete}</span></a></td>
</tr>
<!--@end-->
</tbody>
</table>
</div>
<div class="btnArea">
<span class="btn"><a href="{getUrl('act','dispLayoutAdminInsert','layout_srl','','layout_type','M')}">{$lang->cmd_make}</a></span>
</div>

View file

@ -1,14 +1,8 @@
<div class="cnb">
<a cond="$type == 'M'" href="{getUrl('act', 'dispLayoutAdminInstalledList', 'type', 'P')}">PC({$pcLayoutCount})</a>
<block cond="$type != 'M'">PC({$pcLayoutCount})</block>
|
<a cond="$type != 'M'" href="{getUrl('act', 'dispLayoutAdminInstalledList', 'type', 'M')}">Mobile({$mobileLayoutCount})</a>
<block cond="$type == 'M'">Mobile({$mobileLayoutCount})</block>
</div>
<div class="cnb">
<a cond="$act != 'dispLayoutAdminAllInstanceList'" href="{getUrl('act', 'dispLayoutAdminAllInstanceList', 'layout_srl', '')}">{$lang->instance_layout}</a>
<block cond="$act == 'dispLayoutAdminAllInstanceList'">{$lang->instance_layout}</block>
|
<a cond="$act != 'dispLayoutAdminInstalledList'" href="{getUrl('act', 'dispLayoutAdminInstalledList')}">{$lang->installed_layout}</a>
<block cond="$act == 'dispLayoutAdminInstalledList'">{$lang->installed_layout}</block>
<ul class="x_nav x_nav-tabs">
<li class="x_active"|cond="$type != 'M'"><a href="{getUrl('act', 'dispLayoutAdminInstalledList', 'type', 'P')}">PC({$pcLayoutCount})</a></li>
<li class="x_active"|cond="$type == 'M'"><a href="{getUrl('act', 'dispLayoutAdminInstalledList', 'type', 'M')}">Mobile({$mobileLayoutCount})</a></li>
</ul>
<div>
<a class="active"|cond="$act == 'dispLayoutAdminAllInstanceList'" href="{getUrl('act', 'dispLayoutAdminAllInstanceList', 'layout_srl', '')}">{$lang->instance_layout}</a> <i>|</i>
<a class="active"|cond="$act == 'dispLayoutAdminInstalledList'" href="{getUrl('act', 'dispLayoutAdminInstalledList')}">{$lang->installed_layout}</a>
</div>