mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-08 03:01:43 +09:00
issue 2370, issue 2373, issue 2374 add the site design info.
git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@11303 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
abef8deda9
commit
ffde9607d9
5 changed files with 233 additions and 9 deletions
|
|
@ -158,7 +158,27 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
$layoutSrl = $module_info->layout_srl;
|
||||
// use the site default layout.
|
||||
if($module_info->layout_srl == -1000)
|
||||
{
|
||||
$designInfoFile = sprintf(_XE_PATH_.'/files/site_design/design_%s.php', $module_info->site_srl);
|
||||
@include($designInfoFile);
|
||||
if(!$designInfo->layout_srl)
|
||||
{
|
||||
$layoutSrl = $site_module_info->layout_srl;
|
||||
}
|
||||
else
|
||||
{
|
||||
$layoutSrl = $designInfo->layout_srl;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$layoutSrl = $module_info->layout_srl;
|
||||
}
|
||||
|
||||
// reset a layout_srl in module_info.
|
||||
$module_info->layout_srl = $layoutSrl;
|
||||
}
|
||||
|
||||
$part_config= $oModuleModel->getModulePartConfig('layout',$layoutSrl);
|
||||
|
|
|
|||
|
|
@ -338,12 +338,42 @@
|
|||
$this->stop("msg_not_permitted_act");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// integrate skin information of the module(change to sync skin info with the target module only by seperating its table)
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleModel->syncSkinInfoToModuleInfo($this->module_info);
|
||||
Context::set('module_info', $this->module_info);
|
||||
// Run
|
||||
$output = $this->{$this->act}();
|
||||
if($this->module_info->is_skin_fix == 'N' && $this->module != 'admin' && strpos($this->act, 'Admin') === false)
|
||||
{
|
||||
$designInfoFile = sprintf(_XE_PATH_.'files/site_design/design_%s.php', $this->module_info->site_srl);
|
||||
if(is_readable($designInfoFile))
|
||||
{
|
||||
@include($designInfoFile);
|
||||
|
||||
$skinName = $designInfo->module->{$this->module_info->module}->skin;
|
||||
|
||||
if($skinName)
|
||||
{
|
||||
$this->setTemplatePath(sprintf('%sskins/%s/', $this->module_path, $skinName));
|
||||
}
|
||||
|
||||
$skinVars = $designInfo->module->{$this->module_info->module}->skin_vars;
|
||||
|
||||
if($skinVars)
|
||||
{
|
||||
$skinVars = unserialize($skinVars);
|
||||
foreach($skinVars as $key => $val)
|
||||
{
|
||||
$this->module_info->{$key} = $val;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleModel->syncSkinInfoToModuleInfo($this->module_info);
|
||||
}
|
||||
Context::set('module_info', $this->module_info);
|
||||
// Run
|
||||
$output = $this->{$this->act}();
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -108,6 +108,82 @@
|
|||
header('Location: '.getNotEncodedUrl('', 'module','admin'));
|
||||
}
|
||||
|
||||
|
||||
public function procAdminInsertDefaultDesignInfo()
|
||||
{
|
||||
$vars = Context::getRequestVars();
|
||||
if(!$vars->site_srl)
|
||||
{
|
||||
$vars->site_srl = 0;
|
||||
}
|
||||
|
||||
// create a DesignInfo file
|
||||
$output = $this->updateDefaultDesignInfo($vars);
|
||||
return $this->setRedirectUrl(Context::get('error_return_url'), $output);
|
||||
}
|
||||
|
||||
public function updateDefaultDesignInfo($vars)
|
||||
{
|
||||
$siteDesignPath = _XE_PATH_.'files/site_design/';
|
||||
|
||||
if(!is_dir($siteDesignPath))
|
||||
{
|
||||
FileHandler::makeDir($siteDesignPath);
|
||||
}
|
||||
|
||||
$siteDesignFile = _XE_PATH_.'files/site_design/design_'.$vars->site_srl.'.php';
|
||||
|
||||
$buff = '';
|
||||
if(is_readable($siteDesignFile))
|
||||
{
|
||||
@include($siteDesignFile);
|
||||
}
|
||||
else
|
||||
{
|
||||
$designInfo = new stdClass();
|
||||
}
|
||||
|
||||
$layoutSrl = (!$vars->layout_srl) ? $designInfo->layout_srl : $vars->layout_srl;
|
||||
|
||||
if($layoutSrl)
|
||||
{
|
||||
$buff .= sprintf('$designInfo->layout_srl = %s;', $layoutSrl);
|
||||
}
|
||||
|
||||
if($vars->module)
|
||||
{
|
||||
if($designInfo->module)
|
||||
{
|
||||
foreach($designInfo->module as $key => $val)
|
||||
{
|
||||
if($key == $vars->module)
|
||||
{
|
||||
$skin = $vars->module_skin;
|
||||
$skin_vars = serialize($vars->skin_vars);
|
||||
}
|
||||
else
|
||||
{
|
||||
$skin = $val->skin;
|
||||
$skin_vars = $val->skin_vars;
|
||||
}
|
||||
$buff .= sprintf('$designInfo->module->%s->skin = \'%s\';', $key, $skin);
|
||||
$buff .= sprintf('$designInfo->module->%s->skin_vars = \'%s\';', $key, $skin_vars);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$buff .= sprintf('$designInfo->module->%s->skin = \'%s\';', $vars->module, $vars->module_skin);
|
||||
$buff .= sprintf('$designInfo->module->%s->skin_vars = \'%s\';', $vars->module, serialize($vars->skin_vars));
|
||||
}
|
||||
}
|
||||
|
||||
$buff = sprintf('<?php if(!defined("__ZBXE__")) exit(); if(!defined("__XE__")) exit(); %s ?>', $buff);
|
||||
|
||||
FileHandler::writeFile($siteDesignFile, $buff);
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert theme information
|
||||
* @return void|object
|
||||
|
|
|
|||
|
|
@ -319,7 +319,8 @@
|
|||
$oModuleModel = &getModel('module');
|
||||
$columnList = array('module_srl', 'module', 'skin', 'mskin');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl, $columnList);
|
||||
if($module_info->module_srl) {
|
||||
if($module_info->module_srl)
|
||||
{
|
||||
if($mode === 'M')
|
||||
{
|
||||
$skin = $module_info->mskin;
|
||||
|
|
@ -353,8 +354,10 @@
|
|||
unset($obj->module);
|
||||
unset($obj->_mode);
|
||||
// Separately handle if a type of extra_vars is an image in the original skin_info
|
||||
if($skin_info->extra_vars) {
|
||||
foreach($skin_info->extra_vars as $vars) {
|
||||
if($skin_info->extra_vars)
|
||||
{
|
||||
foreach($skin_info->extra_vars as $vars)
|
||||
{
|
||||
if($vars->type!='image') continue;
|
||||
|
||||
$image_obj = $obj->{$vars->name};
|
||||
|
|
|
|||
95
tests/modules/admin/admin.Test.php
Normal file
95
tests/modules/admin/admin.Test.php
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
<?php
|
||||
error_reporting(0);
|
||||
|
||||
class adminAdminControllerTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
private $oAdminAdminController;
|
||||
|
||||
protected function setUp()
|
||||
{
|
||||
define('__ZBXE__', TRUE);
|
||||
define('__XE__', TRUE);
|
||||
require_once '../../../config/config.inc.php';
|
||||
require_once _XE_PATH_.'classes/file/FileHandler.class.php';
|
||||
require_once _XE_PATH_.'classes/context/Context.class.php';
|
||||
require_once _XE_PATH_.'modules/admin/admin.class.php';
|
||||
require_once _XE_PATH_.'modules/admin/admin.admin.controller.php';
|
||||
|
||||
$logged_info = new stdclass;
|
||||
$logged_info->member_srl = 4;
|
||||
$logged_info->user_id = 'admin';
|
||||
$logged_info->email_address = 'admin@admin.com';
|
||||
$logged_info->password = 'c4ca4238a0b923820dcc509a6f75849b';
|
||||
$logged_info->email_id = 'admin';
|
||||
$logged_info->email_host = 'admin.com';
|
||||
$logged_info->user_name = 'admin';
|
||||
$logged_info->nick_name = 'admin';
|
||||
$logged_info->find_account_question = 1;
|
||||
$logged_info->find_account_answer = 'admin@naver.com';
|
||||
$logged_info->allow_mailing = 'Y';
|
||||
$logged_info->allow_message = 'Y';
|
||||
$logged_info->denied = 'N';
|
||||
$logged_info->regdate = '20110520142031';
|
||||
$logged_info->last_login = '20120905135102';
|
||||
$logged_info->change_password_date = '20110520142031';
|
||||
$logged_info->is_admin = 'Y';
|
||||
$logged_info->list_order = -1;
|
||||
|
||||
$oContext = &Context::getInstance();
|
||||
//$oContext->init();
|
||||
$oContext->set('is_logged', true);
|
||||
$oContext->set('logged_info', $logged_info);
|
||||
$oContext->set('is_admin', 'Y');
|
||||
|
||||
$this->oAdminAdminController = &getAdminController('admin');
|
||||
}
|
||||
|
||||
public function testInsertLayout()
|
||||
{
|
||||
$args->layout_srl = 62;
|
||||
$args->module = 'board';
|
||||
$args->module_skin = 'xe_board';
|
||||
$args->site_srl = 0;
|
||||
|
||||
$args->skin_vars->colorset = 'white';
|
||||
$args->skin_vars->colorset = 'red';
|
||||
$args->skin_vars->default_style = 'gallery';
|
||||
$args->skin_vars->display_login_info = 'N';
|
||||
$args->skin_vars->display_setup_button = 'N';
|
||||
$args->skin_vars->header_title_format = 'h1';
|
||||
$args->skin_vars->document_title_format = 'h1';
|
||||
$args->skin_vars->display_number = 'Y';
|
||||
$args->skin_vars->display_author = 'Y';
|
||||
$args->skin_vars->display_regdate = 'Y';
|
||||
$args->skin_vars->display_readed_count = 'Y';
|
||||
$args->skin_vars->display_voted_count = 'Y';
|
||||
$args->skin_vars->display_blamed_count = 'Y';
|
||||
$args->skin_vars->display_ip_address = 'Y';
|
||||
$args->skin_vars->display_last_update = 'Y';
|
||||
$args->skin_vars->display_sign = 'Y';
|
||||
$args->skin_vars->duration_new = '24';
|
||||
$args->skin_vars->thumbnail_type = 'crop';
|
||||
$args->skin_vars->thumbnail_width = '100';
|
||||
$args->skin_vars->thumbnail_height = '100';
|
||||
|
||||
$oContext = &Context::getInstance();
|
||||
//$oContext->init();
|
||||
$oContext->set('layout_srl', $args->layout_srl);
|
||||
$oContext->set('module', $args->module);
|
||||
$oContext->set('module_skin', $args->module_skin);
|
||||
$oContext->set('skin_vars', $args->skin_vars);
|
||||
$oContext->set('site_srl', $args->site_srl);
|
||||
|
||||
$this->oAdminAdminController->updateDefaultDesignInfo($args);
|
||||
|
||||
$file = _XE_PATH_.'files/site_design/design_0.php';
|
||||
|
||||
$this->assertFileExists($file);
|
||||
|
||||
@include($file);
|
||||
|
||||
$this->assertEquals($designInfo->layout_srl, $args->layout_srl);
|
||||
$this->assertEquals($designInfo->module->{$args->module}->skin, $args->module_skin);
|
||||
}
|
||||
}
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue