merge from branch luminous (version 1.5.4.2, ~r12561)

git-svn-id: http://xe-core.googlecode.com/svn/trunk@12611 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
flyskyko 2013-01-30 05:53:14 +00:00
parent 2263200ce4
commit cc47d2b247
196 changed files with 3655 additions and 2033 deletions

View file

@ -216,6 +216,54 @@
return $this->setRedirectUrl(Context::get('error_return_url'), $output);
}
/**
* Cleanning favorite
* @return Object
*/
function cleanFavorite()
{
$oModel = getAdminModel('admin');
$output = $oModel->getFavoriteList();
if(!$output->toBool())
{
return $output;
}
$favoriteList = $output->get('favoriteList');
if(!$favoriteList)
{
return new Object();
}
$deleteTargets = array();
foreach($favoriteList as $favorite)
{
if($favorite->type == 'module')
{
$modulePath = './modules/' . $favorite->module;
$modulePath = FileHandler::getRealPath($modulePath);
if(!is_dir($modulePath))
{
$deleteTargets[] = $favorite->admin_favorite_srl;
}
}
}
if(!count($deleteTargets))
{
return new Object();
}
$args->admin_favorite_srls = $deleteTargets;
$output = executeQuery('admin.deleteFavorites', $args);
if(!$output->toBool())
{
return $output;
}
return new Object();
}
/**
* Enviroment gathering agreement
* @return void

View file

@ -462,41 +462,54 @@
*/
function getSiteAllList()
{
if(Context::get('domain')) $args->domain = Context::get('domain');
$columnList = array('domain', 'site_srl');
$siteList = array();
$output = executeQueryArray('admin.getSiteAllList', $args, $columnList);
if($output->toBool()) $siteList = $output->data;
$oModuleModel = &getModel('module');
foreach($siteList as $key => $value)
{
$args->site_srl = $value->site_srl;
$list = $oModuleModel->getModuleSrlList($args);
if(!is_array($list))
{
$list = array($list);
}
foreach($list as $k => $v)
{
if(!is_dir('./modules/' . $v->module))
{
unset($list[$k]);
}
}
if(!count($list))
{
unset($siteList[$key]);
}
}
$this->add('site_list', $siteList);
if(Context::get('domain')) $domain = Context::get('domain');
$siteList = $this->getAllSitesThatHaveModules($domain);
$this->add('site_list', $siteList);
}
/**
* Returns a list of all sites that contain modules
* For each site domain and site_srl are retrieved
*
* @return array
*/
function getAllSitesThatHaveModules($domain = null)
{
$args = new stdClass();
if($domain) $args->domain = $domain;
$columnList = array('domain', 'site_srl');
$siteList = array();
$output = executeQueryArray('admin.getSiteAllList', $args, $columnList);
if($output->toBool()) $siteList = $output->data;
$oModuleModel = &getModel('module');
foreach($siteList as $key => $value)
{
$args->site_srl = $value->site_srl;
$list = $oModuleModel->getModuleSrlList($args);
if(!is_array($list))
{
$list = array($list);
}
foreach($list as $k => $v)
{
if(!is_dir('./modules/' . $v->module))
{
unset($list[$k]);
}
}
if(!count($list))
{
unset($siteList[$key]);
}
}
return $siteList;
}
/**
* Return site count
* @param string $date

View file

@ -468,7 +468,7 @@
unset($layout_info);
$layout_info = $oLayoutModel->getLayout($val->layout_srl);
if (!$layout_info) continue;
$layout_parse = explode('.', $layout_info->layout);
$layout_parse = explode('|@|', $layout_info->layout);
if (count($layout_parse) == 2){
$thumb_path = sprintf('./themes/%s/layouts/%s/thumbnail.png', $layout_parse[0], $layout_parse[1]);
}

View file

@ -712,16 +712,16 @@
</item>
</item>
<item name="about_use_ssl">
<value xml:lang="ko"><![CDATA['선택적으로'는 회원가입, 정보수정 등의 지정된 동작(action)에서 보안접속(SSL)을 사용합니다.<br /> '항상 사용'은 모든 서비스에 SSL을 사용 합니다.]]></value>
<value xml:lang="en"><![CDATA[Select 'Optional' to use SSL for the specified actions such as signing up and changing information.<br /> 'Always' to use SSL for all services.]]></value>
<value xml:lang="jp"><![CDATA[「部分的に使う」は、「会員登録/会員情報変更」など指定のアクションでSSLを利用する場合。「常に使う」は、すべてのサービスにSSLを使う場合に選択します。]]></value>
<value xml:lang="zh-CN"><![CDATA[选择性使用选项应用于新用户注册/修改用户信息等已指定的action当中使用选项应用于所有服务。]]></value>
<value xml:lang="zh-TW"><![CDATA[選擇手動時,在會員註冊或修改資料等動作時才會使用 SSL功能。<br/>選擇開啟時,所有的服務都會使用 SSL功能。]]></value>
<value xml:lang="fr"><![CDATA[Si l'on choisit 'Optionnel' , on utilise protocole SSL seulement dans quelques services comme inscription ou modification. Si l'on choisit 'Toujours', on utilise protocole SSL dans tous les services.]]></value>
<value xml:lang="ru"><![CDATA[In case of "Optional", SSL will be used for actions such as signing up / changing information. And for "Always", your site will be served only via https]]></value>
<value xml:lang="es"><![CDATA[Opcionalmente, la composición de suscripción / editar la información y el uso de SSL especificada en la acción es siempre el uso de SSL para todos los servicios que se utilizarán]]></value>
<value xml:lang="tr"><![CDATA['İsteği Bağlı' seçiminde; SSL, kayıt olma/bilgi değiştirme gibi eylemler için kullanılacaktır. 'Her zaman' seçiminde, siteniz sadece http yoluyla hizmet verecektir.]]></value>
<value xml:lang="vi"><![CDATA[Nếu bạn chọn 'Tùy chỉnh', SSL sẽ sử dụng và những công việc như đăng kí, sửa thông tin thành viên, .<br />Chỉ chọn 'Luôn luôn' khi Website của bạn đang chạy trên Server có hỗ trợ https.]]></value>
<value xml:lang="ko"><![CDATA['선택적으로'는 회원가입, 정보수정 등의 지정된 동작(action)에서 보안접속(SSL)을 사용합니다.<br /> '항상 사용'은 모든 서비스에 SSL을 사용 합니다.<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
<value xml:lang="en"><![CDATA[Select 'Optional' to use SSL for the specified actions such as signing up and changing information.<br /> 'Always' to use SSL for all services.<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
<value xml:lang="jp"><![CDATA[「部分的に使う」は、「会員登録/会員情報変更」など指定のアクションでSSLを利用する場合。「常に使う」は、すべてのサービスにSSLを使う場合に選択します。<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
<value xml:lang="zh-CN"><![CDATA[选择性使用选项应用于新用户注册/修改用户信息等已指定的action当中使用选项应用于所有服务。<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
<value xml:lang="zh-TW"><![CDATA[選擇手動時,在會員註冊或修改資料等動作時才會使用 SSL功能。<br/>選擇開啟時,所有的服務都會使用 SSL功能。<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
<value xml:lang="fr"><![CDATA[Si l'on choisit 'Optionnel' , on utilise protocole SSL seulement dans quelques services comme inscription ou modification. Si l'on choisit 'Toujours', on utilise protocole SSL dans tous les services.<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
<value xml:lang="ru"><![CDATA[In case of "Optional", SSL will be used for actions such as signing up / changing information. And for "Always", your site will be served only via https<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
<value xml:lang="es"><![CDATA[Opcionalmente, la composición de suscripción / editar la información y el uso de SSL especificada en la acción es siempre el uso de SSL para todos los servicios que se utilizarán<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
<value xml:lang="tr"><![CDATA['İsteği Bağlı' seçiminde; SSL, kayıt olma/bilgi değiştirme gibi eylemler için kullanılacaktır. 'Her zaman' seçiminde, siteniz sadece http yoluyla hizmet verecektir.<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
<value xml:lang="vi"><![CDATA[Nếu bạn chọn 'Tùy chỉnh', SSL sẽ sử dụng và những công việc như đăng kí, sửa thông tin thành viên, .<br />Chỉ chọn 'Luôn luôn' khi Website của bạn đang chạy trên Server có hỗ trợ https.<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
</item>
<item name="server_ports">
<value xml:lang="ko"><![CDATA[서버 포트 지정]]></value>
@ -1484,4 +1484,4 @@
<value xml:lang="zh-CN"><![CDATA[管理设置]]></value>
<value xml:lang="tr"><![CDATA[Yönetici Ayarları]]></value>
</item>
</lang>
</lang>

View file

@ -0,0 +1,8 @@
<query id="deleteFavorite" action="delete">
<tables>
<table name="admin_favorite" />
</tables>
<conditions>
<condition operation="in" column="admin_favorite_srl" var="admin_favorite_srls" filter="number" notnull="notnull" />
</conditions>
</query>

View file

@ -58,7 +58,7 @@ header,footer,section,article,aside,nav,hgroup,details,menu,figure,figcaption{di
.x .table caption .side{float:right;font-weight:normal;margin-left:1em}
.x .table th,
.x .table td{border:0;padding:8px;vertical-align:top;text-align:left;border-bottom:1px solid #ddd}
.x .table th{background:#f8f8f8;white-space:nowrap}
.x .table th{background:#f8f8f8}
.x .table thead th{border-bottom:1px solid #999}
.x .table tfoot td{font-weight:bold;background:#f8f8f8}
.x .table.even tbody tr:nth-of-type(even){background-color:#fafafa}
@ -68,10 +68,6 @@ header,footer,section,article,aside,nav,hgroup,details,menu,figure,figcaption{di
.x .table em{font-style:normal;font-weight:normal;color:#e00}
.x .table th.nowr,
.x .table td.nowr{white-space:nowrap}
.x .table th.title,
.x .table td.title,
.x .table th.text,
.x .table td.text{width:100%}
/* Form */
.x .form{margin:0 0 1em 0;padding:0}
.x .form fieldset{margin:0 0 2em 0;padding:0;border:0}
@ -149,7 +145,7 @@ header,footer,section,article,aside,nav,hgroup,details,menu,figure,figcaption{di
.x .gnb .mnv{display:block}
}
/* Local Navigation */
.x .lnb{position:relative;float:left;width:210px;margin:0 0 1em -230px;line-height:normal;zoom:1;display:inline}
.x .lnb{position:relative;float:left;width:210px;left:-230px;margin:0 0 20px 0;line-height:normal;zoom:1;display:inline}
.x .lnb .h2{position:relative;z-index:2;margin:0 0 -1px 0;padding:0 10px;border:1px solid #444;border-bottom:0;border-radius:4px 4px 0 0;background:#555;font-size:13px;color:#fff;line-height:36px}
.x .lnb ul{margin:0 !important;padding:0;list-style:none;position:relative;z-index:1}
.x .lnb li{position:relative;margin:0 0 -1px 0;vertical-align:top;zoom:1}
@ -170,11 +166,11 @@ header,footer,section,article,aside,nav,hgroup,details,menu,figure,figcaption{di
.x .lnb li:last-child a,
.x .lnb li.active:last-child{border-radius:0 0 4px 4px !important}
/* Shortcut */
.x .sct{float:right;width:138px;position:relative;right:-160px;margin:0 0 0 -140px;padding:8px 0}
.x .sct h2{margin:0 0 5px 15px;font-size:13px}
.x .sct{float:left;width:210px;position:relative;left:-230px;margin:0;padding:8px 0;border:0;box-shadow:inset 0 0 1px rgba(0,0,0,0.5)}
.x .sct h2{margin:0 0 5px 10px;font-size:13px}
.x .sct ul{margin:0;font-size:12px}
.x .sct li{position:relative}
.x .sct a{text-decoration:none}
.x .sct a{text-decoration:none;padding:3px 18px 3px 10px}
.x .sct form{position:absolute;margin:0;padding:0;top:2px;right:-10px}
.x .sct .text{text-decoration:none;font-weight:bold;color:#999 !important;width:16px;height:16px;margin:0}
.x .sct .text:hover,
@ -305,10 +301,10 @@ body.modalContainer{_height:100%;_width:100%} /* IE6 only */
.x .footer .cache{float:right}
.x .footer .vr{color:#ccc}
/* Body */
.x .body{position:relative;z-index:1;padding:30px 170px 30px 240px;zoom:1}
.x .body{position:relative;z-index:1;padding:30px 10px 30px 240px;zoom:1}
.x .body:after{content:"";display:block;clear:both}
/* Content */
.x .content{float:right;width:100%;margin-left:-100%;zoom:1;outline:0}
.x .content{float:right;width:100%;margin-left:-210px;zoom:1;outline:0;min-height:500px}
.x .content:after{content:"";display:block;clear:both}
.x .content a{color:#33a}
.x .content a:hover,
@ -320,15 +316,12 @@ body.modalContainer{_height:100%;_width:100%} /* IE6 only */
.x .content .portlet a:focus{text-decoration:underline}
/* Dashboard */
.x .dashboard .section{margin-top:0}
.x .dashboard .portlet{float:left;width:48%;margin-right:1em;margin-top:0}
.x .dashboard .portlet{float:left;width:48%;margin-right:1em;margin-top:0;min-height:188px}
.x .dashboard .portlet:nth-of-type(odd){float:left;width:49%;margin-right:0}
.x .dashboard .portlet:nth-of-type(even){float:right;width:49%;margin-right:0}
@media all and (min-width:1300px){
.x .dashboard .portlet{float:left !important;width:32% !important;margin-right:1em !important}
}
/* Single Column*/
.x .single{padding-left:10px}
.x .single .content{position:relative;float:left;width:100%;margin:0}
/* Search */
.x .search{zoom:1}
.x .search:after{content:"";display:block;clear:both}
@ -587,7 +580,7 @@ body.modalContainer{_height:100%;_width:100%} /* IE6 only */
.x .header .account ul{padding-right:10px}
.x .body{padding:1em 0 0 0}
.x .content{float:none;margin-left:0}
.x .lnb{float:none;width:auto;margin:1em 0}
.x .lnb{float:none;width:auto;margin:1em 0;left:auto}
.x .dashboard .portlet{float:none !important;width:auto !important;margin-right:0}
.modal .fg,
.wfsr .fg{width:auto}

File diff suppressed because one or more lines are too long

View file

@ -23,19 +23,6 @@ jQuery(function($){
.parent()
.css('position', 'relative');
// Make selected checkbox elements bold
var $rc_label = $('input:radio+label,input:checkbox+label'), $input_rc = $rc_label.prev('input');
$input_rc
.change(function(){
var name = $(this).attr('name');
$input_rc
.filter(function(){ return this.name == name })
.next('label').css('font-weight', 'normal').end()
.filter(':checked')
.next('label').css('font-weight', 'bold').end();
})
.change();
// Toogle checkbox all
$('.form th>input:checkbox')
.change(function() {
@ -1388,22 +1375,19 @@ function completeInstallModule(ret_obj) {
jQuery(function($){
$('body').ajaxComplete(function(){ hideWaitingFogLayer() });
// admin single column layout
if($('.x>.body .lnb').length == 0){ // When it have no lnb
$('.x>.body').addClass('single'); // Add class single
}
// Details toggle in admin table
var viewBtn = $('.x .dsTg span.side>button.text');
var tdTitle = $('.x .dsTg td.title');
tdTitle.each(function(){
var $t = $(this)
if($t.find('p.update').length==0){
$t.addClass('tg').find('>p:not(:first-child)').hide();
$t.addClass('tg').find('>*:not(:first-child)').hide();
} else {
$t.addClass('up');
}
});
var details = $('.x .dsTg td.tg>p:not(:first-child)');
$('.x .dsTg .thumb').hide();
var details = $('.x .dsTg td.tg>*:not(:first-child), .x .dsTg .thumb');
viewBtn.click(function(){
viewBtn.toggleClass('details');
details.slideToggle(200);

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,5 @@
jQuery(function(c){function o(a,c){for(var b=0,g=0;a&&a!=c;)b+=a.offsetTop,g+=a.offsetLeft,a=a.offsetParent;return{top:b,left:g}}var l=!1,k=c('<li class="placeholder">');c("form.siteMap").delegate("li:not(.placeholder)",{"mousedown.st":function(a){var d,b,g,h,n,p,i,m,j;if(!(c(a.target).is("a,input,label,textarea")||1!=a.which)){l=!0;b=c(this);p=b.height();n=b.width();g=b.parentsUntil(".siteMap").filter("ul");h=g.eq(-1);h.css("position","relative");d=a.pageY;i=o(this,h.get(0));$clone=b.clone(!0).attr("target",
!0);for(a=g.length-1;a;a--)$clone=$clone.wrap("<li><ul /></li>").parent().parent();m=[];h.find("li").each(function(){if(b[0]===this||b.has(this).length)return!0;var a=o(this,h.get(0));m.push({top:a.top,bottom:a.top+32,item:this})});$clone.find(".side,input").remove().end().addClass("draggable").css({position:"absolute",opacity:0.6,width:n,height:p,left:i.left,top:i.top,zIndex:100}).appendTo(h.eq(0));k.css({position:"absolute",opacity:0.6,width:n,height:"5px",left:i.left,top:i.top,zIndex:99}).appendTo(h.eq(0));
jQuery(function(c){function p(a,c){for(var b=0,g=0;a&&a!=c;)b+=a.offsetTop,g+=a.offsetLeft,a=a.offsetParent;return{top:b,left:g}}var l=!1,k=c('<li class="placeholder">');c("form.siteMap").delegate("li:not(.placeholder)",{"mousedown.st":function(a){var d,b,g,h,n,q,i,m,j;if(!(c(a.target).is("a,input,label,textarea")||1!=a.which)){l=!0;b=c(this);q=b.height();n=b.width();g=b.parentsUntil(".siteMap").filter("ul");h=g.eq(-1);h.css("position","relative");d=a.pageY;i=p(this,h.get(0));$clone=b.clone(!0).attr("target",
!0);for(a=g.length-1;a;a--)$clone=$clone.wrap("<li><ul /></li>").parent().parent();m=[];h.find("li").each(function(){if(b[0]===this||b.has(this).length)return!0;var a=p(this,h.get(0));m.push({top:a.top,bottom:a.top+32,item:this})});$clone.find(".side,input").remove().end().addClass("draggable").css({position:"absolute",opacity:0.6,width:n,height:q,left:i.left,top:i.top,zIndex:100}).appendTo(h.eq(0));k.css({position:"absolute",opacity:0.6,width:n,height:"5px",left:i.left,top:i.top,zIndex:99}).appendTo(h.eq(0));
b.css("opacity",0.6);c(document).unbind("mousemove.st mouseup.st").bind("mousemove.st",function(a){var b,c,e,f;j=null;a=i.top-(d-a.pageY);b=0;for(c=m.length;b<c;b++)if(f=a,e=m[b],0==b&&f<e.top&&(f=e.top),b==c-1&&f>e.bottom&&(f=e.bottom),e.top<=f&&e.bottom>=f){b=e.item;3>=Math.abs(e.top-f)?(k.css({top:e.top-3,height:"5px"}),f="before"):3>=Math.abs(e.bottom-f)?(k.css({top:e.bottom-3,height:"5px"}),f="after"):(k.css({top:e.top+3,height:"27px"}),f="prepend");j={element:b,state:f};break}$clone.css({top:a})}).bind("mouseup.st",
function(){var a,d;l=!1;c(document).unbind("mousemove.st mouseup.st");b.css("opacity","");$clone.remove();k.remove();d=c("<li />").height(b.height());if(j){a=c(j.element);b.before(d);if("prepend"==j.state)a.find(">ul").length||a.find(">.side").after("<ul>"),a.find(">ul").prepend(b.hide());else a[j.state](b.hide());b.slideDown(100,function(){b.removeClass("active")});d.slideUp(100,function(){var a=d.parent();d.remove();a.children("li").length||a.remove()});b.trigger("dropped.st")}});return!1}},"mouseover.st":function(){l||
c(this).addClass("active");return!1},"mouseout.st":function(){l||c(this).removeClass("active");return!1}}).find("li").prepend('<button type="button" class="moveTo">Move to</button>').append('<span class="vr"></span><span class="hr"></span>').find("input:text").focus(function(){var a=c(this),d=a.prev("label"),b=a.parent();a.width(b.width()-(parseInt(b.css("text-indent"))||0)-a.next(".side").width()-60).css("opacity","");d.hide()}).blur(function(){var a=c(this),d=a.prev("label"),b=a.val();a.width(0).css("opacity",