issue 2662 member, layout

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12251 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ovclas 2012-11-19 06:03:22 +00:00
parent aba8de04be
commit cec308eef1
15 changed files with 8864 additions and 8331 deletions

View file

@ -1,17 +1,17 @@
<?php <?php
/** /**
* @class layoutAdminController * @class layoutAdminController
* @author NHN (developers@xpressengine.com) * @author NHN (developers@xpressengine.com)
* admin controller class of the layout module * admin controller class of the layout module
**/ */
class layoutAdminController extends layout
class layoutAdminController extends layout { {
/** /**
* Initialization * Initialization
* @return void * @return void
**/ */
function init() { function init()
{
} }
/** /**
@ -19,8 +19,9 @@
* Insert a title into "layouts" table in order to create a layout * Insert a title into "layouts" table in order to create a layout
* @deprecated * @deprecated
* @return void|Object (void : success, Object : fail) * @return void|Object (void : success, Object : fail)
**/ */
function procLayoutAdminInsert() { function procLayoutAdminInsert()
{
if(Context::get('layout') == 'faceoff') return $this->stop('not supported'); if(Context::get('layout') == 'faceoff') return $this->stop('not supported');
// Get information to create a layout // Get information to create a layout
@ -51,8 +52,9 @@
* Insert layout information into the DB * Insert layout information into the DB
* @param object $args layout information * @param object $args layout information
* @return Object * @return Object
**/ */
function insertLayout($args) { function insertLayout($args)
{
$output = executeQuery("layout.insertLayout", $args); $output = executeQuery("layout.insertLayout", $args);
return $output; return $output;
} }
@ -62,14 +64,18 @@
* @param int $layout_srl * @param int $layout_srl
* @param string $layout_name * @param string $layout_name
* @return void * @return void
**/ */
function initLayout($layout_srl, $layout_name){ function initLayout($layout_srl, $layout_name)
{
$oLayoutModel = &getModel('layout'); $oLayoutModel = &getModel('layout');
// Import a sample layout if it is faceoff // Import a sample layout if it is faceoff
if($oLayoutModel->useDefaultLayout($layout_name)) { if($oLayoutModel->useDefaultLayout($layout_name))
{
$this->importLayout($layout_srl, $this->module_path.'tpl/faceOff_sample.tar'); $this->importLayout($layout_srl, $this->module_path.'tpl/faceOff_sample.tar');
// Remove a directory // Remove a directory
} else { }
else
{
FileHandler::removeDir($oLayoutModel->getUserLayoutPath($layout_srl)); FileHandler::removeDir($oLayoutModel->getUserLayoutPath($layout_srl));
} }
} }
@ -78,8 +84,9 @@
* Update layout information * Update layout information
* Apply a title of the new layout and extra vars * Apply a title of the new layout and extra vars
* @return Object * @return Object
**/ */
function procLayoutAdminUpdate() { function procLayoutAdminUpdate()
{
// Consider the rest of items as extra vars, except module, act, layout_srl, layout, and title .. Some gurida .. // Consider the rest of items as extra vars, except module, act, layout_srl, layout, and title .. Some gurida ..
$extra_vars = Context::getRequestVars(); $extra_vars = Context::getRequestVars();
unset($extra_vars->module); unset($extra_vars->module);
@ -99,11 +106,14 @@
$oMenuAdminModel = &getAdminModel('menu'); $oMenuAdminModel = &getAdminModel('menu');
$layout_info = $oLayoutModel->getLayout($args->layout_srl); $layout_info = $oLayoutModel->getLayout($args->layout_srl);
if($layout_info->menu) { if($layout_info->menu)
{
$menus = get_object_vars($layout_info->menu); $menus = get_object_vars($layout_info->menu);
} }
if(count($menus) ) { if(count($menus))
foreach($menus as $menu_id => $val) { {
foreach($menus as $menu_id => $val)
{
$menu_srl = Context::get($menu_id); $menu_srl = Context::get($menu_id);
if(!$menu_srl) continue; if(!$menu_srl) continue;
@ -114,20 +124,25 @@
$apply_layout = Context::get('apply_layout'); $apply_layout = Context::get('apply_layout');
$apply_mobile_view = Context::get('apply_mobile_view'); $apply_mobile_view = Context::get('apply_mobile_view');
if($apply_layout=='Y' || $apply_mobile_view=='Y') { if($apply_layout=='Y' || $apply_mobile_view=='Y')
{
$menu_args = null; $menu_args = null;
$menu_args->menu_srl = $menu_srl; $menu_args->menu_srl = $menu_srl;
$menu_args->site_srl = $layout_info->site_srl; $menu_args->site_srl = $layout_info->site_srl;
$output = executeQueryArray('layout.getLayoutModules', $menu_args); $output = executeQueryArray('layout.getLayoutModules', $menu_args);
if($output->data) { if($output->data)
{
$modules = array(); $modules = array();
for($i=0;$i<count($output->data);$i++) { for($i=0;$i<count($output->data);$i++)
{
$modules[] = $output->data[$i]->module_srl; $modules[] = $output->data[$i]->module_srl;
} }
if(count($modules)) { if(count($modules))
{
$update_args->module_srls = implode(',',$modules); $update_args->module_srls = implode(',',$modules);
if($apply_layout == "Y") { if($apply_layout == "Y")
{
$update_args->layout_srl = $args->layout_srl; $update_args->layout_srl = $args->layout_srl;
} }
if($layout_info->layout_type == "M") if($layout_info->layout_type == "M")
@ -150,8 +165,10 @@
$tmpDir = sprintf('./files/attach/images/%s/tmp', $args->layout_srl); $tmpDir = sprintf('./files/attach/images/%s/tmp', $args->layout_srl);
// Separately handle if a type of extra_vars is an image // Separately handle if a type of extra_vars is an image
if($layout_info->extra_var) { if($layout_info->extra_var)
foreach($layout_info->extra_var as $name => $vars) { {
foreach($layout_info->extra_var as $name => $vars)
{
if($vars->type!='image') continue; if($vars->type!='image') continue;
$fileName = $extra_vars->{$name}; $fileName = $extra_vars->{$name};
@ -211,10 +228,11 @@
* Update layout information into the DB * Update layout information into the DB
* @param object $args * @param object $args
* @return Object * @return Object
**/ */
function updateLayout($args) { function updateLayout($args) {
$output = executeQuery('layout.updateLayout', $args); $output = executeQuery('layout.updateLayout', $args);
if($output->toBool()) { if($output->toBool())
{
$oLayoutModel = &getModel('layout'); $oLayoutModel = &getModel('layout');
$cache_file = $oLayoutModel->getUserLayoutCache($args->layout_srl, Context::getLangType()); $cache_file = $oLayoutModel->getUserLayoutCache($args->layout_srl, Context::getLangType());
FileHandler::removeFile($cache_file); FileHandler::removeFile($cache_file);
@ -233,8 +251,9 @@
* Delete Layout * Delete Layout
* Delete xml cache file too when deleting a layout * Delete xml cache file too when deleting a layout
* @return Object * @return Object
**/ */
function procLayoutAdminDelete() { function procLayoutAdminDelete()
{
$layout_srl = Context::get('layout_srl'); $layout_srl = Context::get('layout_srl');
$this->setRedirectUrl(Context::get('error_return_url')); $this->setRedirectUrl(Context::get('error_return_url'));
return $this->deleteLayout($layout_srl); return $this->deleteLayout($layout_srl);
@ -244,8 +263,9 @@
* Delete layout xml cache file * Delete layout xml cache file
* @param int $layout_srl * @param int $layout_srl
* @return Object * @return Object
**/ */
function deleteLayout($layout_srl, $force = FALSE) { function deleteLayout($layout_srl, $force = FALSE)
{
$oLayoutModel = &getModel('layout'); $oLayoutModel = &getModel('layout');
if(!$force) if(!$force)
@ -284,8 +304,9 @@
/** /**
* Adding Layout Code * Adding Layout Code
* @return void|Object (void : success, Object : fail) * @return void|Object (void : success, Object : fail)
**/ */
function procLayoutAdminCodeUpdate() { function procLayoutAdminCodeUpdate()
{
$mode = Context::get('mode'); $mode = Context::get('mode');
if ($mode == 'reset') if ($mode == 'reset')
{ {
@ -316,8 +337,9 @@
/** /**
* Reset layout code * Reset layout code
* @return void|Object (void : success, Object : fail) * @return void|Object (void : success, Object : fail)
**/ */
function procLayoutAdminCodeReset() { function procLayoutAdminCodeReset()
{
$layout_srl = Context::get('layout_srl'); $layout_srl = Context::get('layout_srl');
if(!$layout_srl) return new Object(-1, 'msg_invalid_request'); if(!$layout_srl) return new Object(-1, 'msg_invalid_request');
@ -329,7 +351,8 @@
$info = $oLayoutModel->getLayout($layout_srl); $info = $oLayoutModel->getLayout($layout_srl);
// if face off delete, tmp file // if face off delete, tmp file
if($oLayoutModel->useDefaultLayout($info->layout)){ if($oLayoutModel->useDefaultLayout($info->layout))
{
$this->deleteUserLayoutTempFile($layout_srl); $this->deleteUserLayoutTempFile($layout_srl);
$faceoff_css = $oLayoutModel->getUserLayoutFaceOffCss($layout_srl); $faceoff_css = $oLayoutModel->getUserLayoutFaceOffCss($layout_srl);
FileHandler::removeFile($faceoff_css); FileHandler::removeFile($faceoff_css);
@ -340,12 +363,12 @@
$this->setRedirectUrl(Context::get('error_return_url')); $this->setRedirectUrl(Context::get('error_return_url'));
} }
/** /**
* Layout setting page -> Upload an image * Layout setting page -> Upload an image
* @return void * @return void
**/ */
function procLayoutAdminUserImageUpload(){ function procLayoutAdminUserImageUpload()
{
if(!Context::isUploaded()) exit(); if(!Context::isUploaded()) exit();
$image = Context::get('user_layout_image'); $image = Context::get('user_layout_image');
@ -364,14 +387,16 @@
* @param int $layout_srl * @param int $layout_srl
* @param object $source file data * @param object $source file data
* @return boolean (true : success, false : fail) * @return boolean (true : success, false : fail)
**/ */
function insertUserLayoutImage($layout_srl,$source){ function insertUserLayoutImage($layout_srl,$source)
{
$oLayoutModel = &getModel('layout'); $oLayoutModel = &getModel('layout');
$path = $oLayoutModel->getUserLayoutImagePath($layout_srl); $path = $oLayoutModel->getUserLayoutImagePath($layout_srl);
if(!is_dir($path)) FileHandler::makeDir($path); if(!is_dir($path)) FileHandler::makeDir($path);
$filename = strtolower($source['name']); $filename = strtolower($source['name']);
if($filename != urlencode($filename)){ if($filename != urlencode($filename))
{
$ext = substr(strrchr($filename,'.'),1); $ext = substr(strrchr($filename,'.'),1);
$filename = sprintf('%s.%s', md5($filename), $ext); $filename = sprintf('%s.%s', md5($filename), $ext);
} }
@ -384,8 +409,9 @@
/** /**
* Layout setting page -> Delete an image * Layout setting page -> Delete an image
* @return void * @return void
**/ */
function procLayoutAdminUserImageDelete(){ function procLayoutAdminUserImageDelete()
{
$filename = Context::get('filename'); $filename = Context::get('filename');
$layout_srl = Context::get('layout_srl'); $layout_srl = Context::get('layout_srl');
$this->removeUserLayoutImage($layout_srl,$filename); $this->removeUserLayoutImage($layout_srl,$filename);
@ -398,8 +424,9 @@
* @param int $layout_srl * @param int $layout_srl
* @param string $filename * @param string $filename
* @return void * @return void
**/ */
function removeUserLayoutImage($layout_srl,$filename){ function removeUserLayoutImage($layout_srl,$filename)
{
$oLayoutModel = &getModel('layout'); $oLayoutModel = &getModel('layout');
$path = $oLayoutModel->getUserLayoutImagePath($layout_srl); $path = $oLayoutModel->getUserLayoutImagePath($layout_srl);
@unlink($path . $filename); @unlink($path . $filename);
@ -411,8 +438,9 @@
* save in "ini" format for faceoff * save in "ini" format for faceoff
* @deprecated * @deprecated
* @return void|Object (void : success, Object : fail) * @return void|Object (void : success, Object : fail)
**/ */
function procLayoutAdminUserValueInsert(){ function procLayoutAdminUserValueInsert()
{
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
$mid = Context::get('mid'); $mid = Context::get('mid');
@ -428,9 +456,12 @@
// save tmp? // save tmp?
$temp = Context::get('saveTemp'); $temp = Context::get('saveTemp');
if($temp =='Y'){ if($temp =='Y')
{
$oLayoutModel->setUseUserLayoutTemp(); $oLayoutModel->setUseUserLayoutTemp();
}else{ }
else
{
// delete temp files // delete temp files
$this->deleteUserLayoutTempFile($layout_srl); $this->deleteUserLayoutTempFile($layout_srl);
} }
@ -464,8 +495,9 @@
* @param int $layout_srl * @param int $layout_srl
* @param object $arr layout ini * @param object $arr layout ini
* @return void * @return void
**/ */
function insertUserLayoutValue($layout_srl,$arr){ function insertUserLayoutValue($layout_srl,$arr)
{
$oLayoutModel = &getModel('layout'); $oLayoutModel = &getModel('layout');
$file = $oLayoutModel->getUserLayoutIni($layout_srl); $file = $oLayoutModel->getUserLayoutIni($layout_srl);
FileHandler::writeIniFile($file, $arr); FileHandler::writeIniFile($file, $arr);
@ -477,8 +509,9 @@
* @param object $arg * @param object $arg
* @param string $content * @param string $content
* @return string * @return string
**/ */
function addExtension($layout_srl,$arg,$content){ function addExtension($layout_srl,$arg,$content)
{
$oLayoutModel = &getModel('layout'); $oLayoutModel = &getModel('layout');
$reg = '/(<\!\-\- start\-e1 \-\->)(.*)(<\!\-\- end\-e1 \-\->)/i'; $reg = '/(<\!\-\- start\-e1 \-\->)(.*)(<\!\-\- end\-e1 \-\->)/i';
$extension_content = '\1' .stripslashes($arg->e1) . '\3'; $extension_content = '\1' .stripslashes($arg->e1) . '\3';
@ -498,16 +531,17 @@
return $content; return $content;
} }
/** /**
* Delete temp files for faceoff * Delete temp files for faceoff
* @param int $layout_srl * @param int $layout_srl
* @return void * @return void
**/ */
function deleteUserLayoutTempFile($layout_srl){ function deleteUserLayoutTempFile($layout_srl)
{
$oLayoutModel = &getModel('layout'); $oLayoutModel = &getModel('layout');
$file_list = $oLayoutModel->getUserLayoutTempFileList($layout_srl); $file_list = $oLayoutModel->getUserLayoutTempFileList($layout_srl);
foreach($file_list as $key => $file){ foreach($file_list as $key => $file)
{
FileHandler::removeFile($file); FileHandler::removeFile($file);
} }
} }
@ -515,8 +549,9 @@
/** /**
* export user layout * export user layout
* @return void * @return void
**/ */
function procLayoutAdminUserLayoutExport(){ function procLayoutAdminUserLayoutExport()
{
$layout_srl = Context::get('layout_srl'); $layout_srl = Context::get('layout_srl');
if(!$layout_srl) return new Object('-1','msg_invalid_request'); if(!$layout_srl) return new Object('-1','msg_invalid_request');
@ -535,13 +570,13 @@
foreach($file_list as $file) foreach($file_list as $file)
{ {
if (preg_match('/^images/', $file)) continue; if(preg_match('/^images/', $file)) continue;
// replace path // replace path
$file = $target_path . $file; $file = $target_path . $file;
$content = FileHandler::readFile($file); $content = FileHandler::readFile($file);
$pattern = '/(http:\/\/[^ ]+)?(\.\/)?' . str_replace('/', '\/', (str_replace('./', '', $file_path))) . '/'; $pattern = '/(http:\/\/[^ ]+)?(\.\/)?' . str_replace('/', '\/', (str_replace('./', '', $file_path))) . '/';
if (basename($file) == 'faceoff.css' || basename($file) == 'layout.css') if(basename($file) == 'faceoff.css' || basename($file) == 'layout.css')
$content = preg_replace($pattern, '../', $content); $content = preg_replace($pattern, '../', $content);
else else
$content = preg_replace($pattern, './', $content); $content = preg_replace($pattern, './', $content);
@ -593,7 +628,7 @@
header("Pragma: "); header("Pragma: ");
header("Content-Type: application/x-compressed"); header("Content-Type: application/x-compressed");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// header("Content-Length: " .strlen($stream)); ?? why?? // header("Content-Length: " .strlen($stream)); ?? why??
header('Content-Disposition: attachment; filename="'. $filename .'"'); header('Content-Disposition: attachment; filename="'. $filename .'"');
header("Content-Transfer-Encoding: binary\n"); header("Content-Transfer-Encoding: binary\n");
echo $stream; echo $stream;
@ -610,8 +645,9 @@
* faceoff import * faceoff import
* @deprecated * @deprecated
* @return void * @return void
**/ */
function procLayoutAdminUserLayoutImport(){ function procLayoutAdminUserLayoutImport()
{
return $this->stop('not supported'); return $this->stop('not supported');
// check upload // check upload
@ -790,12 +826,14 @@
* @param int $layout_srl * @param int $layout_srl
* @param string $source_file path of imported file * @param string $source_file path of imported file
* @return void * @return void
**/ */
function importLayout($layout_srl, $source_file) { function importLayout($layout_srl, $source_file)
{
$oLayoutModel = &getModel('layout'); $oLayoutModel = &getModel('layout');
$user_layout_path = FileHandler::getRealPath($oLayoutModel->getUserLayoutPath($layout_srl)); $user_layout_path = FileHandler::getRealPath($oLayoutModel->getUserLayoutPath($layout_srl));
$file_list = $oLayoutModel->getUserLayoutFileList($layout_srl); $file_list = $oLayoutModel->getUserLayoutFileList($layout_srl);
foreach($file_list as $key => $file){ foreach($file_list as $key => $file)
{
FileHandler::removeFile($user_layout_path . $file); FileHandler::removeFile($user_layout_path . $file);
} }
@ -808,7 +846,8 @@
if(!$tar->getFile('layout.ini')) return; if(!$tar->getFile('layout.ini')) return;
$replace_path = getNumberingPath($layout_srl,3); $replace_path = getNumberingPath($layout_srl,3);
foreach($tar->files as $key => $info) { foreach($tar->files as $key => $info)
{
FileHandler::writeFile($user_layout_path . $info['name'],str_replace('__LAYOUT_PATH__',$replace_path,$info['file'])); FileHandler::writeFile($user_layout_path . $info['name'],str_replace('__LAYOUT_PATH__',$replace_path,$info['file']));
} }
// Remove uploaded file // Remove uploaded file
@ -899,5 +938,6 @@
FileHandler::removeFile($layoutInfo->extra_var->{$name}->value); FileHandler::removeFile($layoutInfo->extra_var->{$name}->value);
Context::set('name', $name); Context::set('name', $name);
} }
} }
?> /* End of file layout.admin.controller.php */
/* Location: ./modules/layout/layout.admin.controller.php */

View file

@ -3,10 +3,9 @@
* @class layoutAdminView * @class layoutAdminView
* @author NHN (developers@xpressengine.com) * @author NHN (developers@xpressengine.com)
* admin view class of the layout module * admin view class of the layout module
**/ */
class layoutAdminModel extends layout
class layoutAdminModel extends layout { {
/** /**
* init * init
*/ */
@ -61,14 +60,14 @@ class layoutAdminModel extends layout {
$layout_info = $security->encodeHTML('.', 'author..', 'extra_var..'); $layout_info = $security->encodeHTML('.', 'author..', 'extra_var..');
$layout_info->description = nl2br(trim($layout_info->description)); $layout_info->description = nl2br(trim($layout_info->description));
if (!is_object($layout_info->extra_var)) if(!is_object($layout_info->extra_var))
{ {
$layout_info->extra_var = new StdClass(); $layout_info->extra_var = new StdClass();
} }
foreach($layout_info->extra_var as $var_name => $val) foreach($layout_info->extra_var as $var_name => $val)
{ {
if (isset($layout_info->{$var_name}->description)) if(isset($layout_info->{$var_name}->description))
{ {
$layout_info->{$var_name}->description = nl2br(trim($val->description)); $layout_info->{$var_name}->description = nl2br(trim($val->description));
} }
@ -127,7 +126,6 @@ class layoutAdminModel extends layout {
$widget_list = $oWidgetModel->getDownloadedWidgetList(); $widget_list = $oWidgetModel->getDownloadedWidgetList();
Context::set('widget_list', $widget_list); Context::set('widget_list', $widget_list);
$security = new Security($layout_info); $security = new Security($layout_info);
$layout_info = $security->encodeHTML('.', '.author..'); $layout_info = $security->encodeHTML('.', '.author..');
Context::set('selected_layout', $layout_info); Context::set('selected_layout', $layout_info);
@ -175,3 +173,5 @@ class layoutAdminModel extends layout {
return $designInfo->{$target}; return $designInfo->{$target};
} }
} }
/* End of file layout.admin.model.php */
/* Location: ./modules/layout/layout.admin.model.php */

View file

@ -1,25 +1,26 @@
<?php <?php
/** /**
* @class layoutAdminView * @class layoutAdminView
* @author NHN (developers@xpressengine.com) * @author NHN (developers@xpressengine.com)
* admin view class of the layout module * admin view class of the layout module
**/ */
class layoutAdminView extends layout
class layoutAdminView extends layout { {
/** /**
* Initialization * Initialization
* @return void * @return void
**/ */
function init() { function init()
{
$this->setTemplatePath($this->module_path.'tpl'); $this->setTemplatePath($this->module_path.'tpl');
} }
/** /**
* Display a installed layout list * Display a installed layout list
* @return void * @return void
**/ */
function dispLayoutAdminInstalledList() { function dispLayoutAdminInstalledList()
{
$type = Context::get('type'); $type = Context::get('type');
$type = ($type != 'M') ? 'P' : 'M'; $type = ($type != 'M') ? 'P' : 'M';
@ -37,7 +38,8 @@
$oAdminModel = &getAdminModel('admin'); $oAdminModel = &getAdminModel('admin');
$themeList = $oAdminModel->getThemeList(); $themeList = $oAdminModel->getThemeList();
$themeLayoutList = array(); $themeLayoutList = array();
foreach($themeList as $themeInfo){ foreach($themeList as $themeInfo)
{
if(strpos($themeInfo->layout_info->name, '.') === false) continue; if(strpos($themeInfo->layout_info->name, '.') === false) continue;
$themeLayoutList[] = $oLayoutModel->getLayoutInfo($themeInfo->layout_info->name, null, 'P'); $themeLayoutList[] = $oLayoutModel->getLayoutInfo($themeInfo->layout_info->name, null, 'P');
} }
@ -73,7 +75,7 @@
{ {
$type = Context::get('type'); $type = Context::get('type');
if (!in_array($type, array('P', 'M'))) $type = 'P'; if(!in_array($type, array('P', 'M'))) $type = 'P';
$oLayoutModel = &getModel('layout'); $oLayoutModel = &getModel('layout');
@ -136,12 +138,12 @@
$type = Context::get('type'); $type = Context::get('type');
$layout = Context::get('layout'); $layout = Context::get('layout');
if (!in_array($type, array('P', 'M'))) $type = 'P'; if(!in_array($type, array('P', 'M'))) $type = 'P';
if (!$layout) return $this->stop('msg_invalid_request'); if(!$layout) return $this->stop('msg_invalid_request');
$oLayoutModel = &getModel('layout'); $oLayoutModel = &getModel('layout');
$layout_info = $oLayoutModel->getLayoutInfo($layout, null, $type); $layout_info = $oLayoutModel->getLayoutInfo($layout, null, $type);
if (!$layout_info) return $this->stop('msg_invalid_request'); if(!$layout_info) return $this->stop('msg_invalid_request');
Context::set('layout_info', $layout_info); Context::set('layout_info', $layout_info);
@ -159,11 +161,12 @@
* Layout setting page * Layout setting page
* Once select a layout with empty value in the DB, then adjust values * Once select a layout with empty value in the DB, then adjust values
* @return void|Object (void : success, Object : fail) * @return void|Object (void : success, Object : fail)
**/ */
function dispLayoutAdminInsert() { function dispLayoutAdminInsert()
{
$oModel = &getModel('layout'); $oModel = &getModel('layout');
$type = Context::get('type'); $type = Context::get('type');
if (!in_array($type, array('P', 'M'))) $type = 'P'; if(!in_array($type, array('P', 'M'))) $type = 'P';
//Security //Security
$security = new Security(); $security = new Security();
@ -171,10 +174,10 @@
// Get layout info // Get layout info
$layout = Context::get('layout'); $layout = Context::get('layout');
if ($layout == 'faceoff') return $this->stop('not supported'); if($layout == 'faceoff') return $this->stop('not supported');
$layout_info = $oModel->getLayoutInfo($layout, null, $type); $layout_info = $oModel->getLayoutInfo($layout, null, $type);
if (!$layout_info) return $this->stop('msg_invalid_request'); if(!$layout_info) return $this->stop('msg_invalid_request');
// get Menu list // get Menu list
$oMenuAdminModel = &getAdminModel('menu'); $oMenuAdminModel = &getAdminModel('menu');
@ -188,10 +191,10 @@
$layout_info = $security->encodeHTML('.', 'author..', 'extra_var..', 'extra_var....'); $layout_info = $security->encodeHTML('.', 'author..', 'extra_var..', 'extra_var....');
$layout_info->description = nl2br(trim($layout_info->description)); $layout_info->description = nl2br(trim($layout_info->description));
if (!is_object($layout_info->extra_var)) $layout_info->extra_var = new StdClass(); if(!is_object($layout_info->extra_var)) $layout_info->extra_var = new StdClass();
foreach($layout_info->extra_var as $var_name => $val) foreach($layout_info->extra_var as $var_name => $val)
{ {
if (isset($layout_info->{$var_name}->description)) if(isset($layout_info->{$var_name}->description))
$layout_info->{$var_name}->description = nl2br(trim($val->description)); $layout_info->{$var_name}->description = nl2br(trim($val->description));
} }
Context::set('selected_layout', $layout_info); Context::set('selected_layout', $layout_info);
@ -202,8 +205,9 @@
/** /**
* Insert Layout details * Insert Layout details
* @return void * @return void
**/ */
function dispLayoutAdminModify() { function dispLayoutAdminModify()
{
$oLayoutAdminModel = &getAdminModel('layout'); $oLayoutAdminModel = &getAdminModel('layout');
$oLayoutAdminModel->setLayoutAdminSetInfoView(); $oLayoutAdminModel->setLayoutAdminSetInfoView();
@ -220,8 +224,9 @@
/** /**
* Edit layout codes * Edit layout codes
* @return void * @return void
**/ */
function dispLayoutAdminEdit() { function dispLayoutAdminEdit()
{
// Set the layout with its information // Set the layout with its information
$layout_srl = Context::get('layout_srl'); $layout_srl = Context::get('layout_srl');
// Get layout information // Get layout information
@ -233,17 +238,22 @@
// Get Layout Code // Get Layout Code
$oLayoutModel = &getModel('layout'); $oLayoutModel = &getModel('layout');
$layout_file = $oLayoutModel->getUserLayoutHtml($layout_info->layout_srl); $layout_file = $oLayoutModel->getUserLayoutHtml($layout_info->layout_srl);
if(!file_exists($layout_file)){ if(!file_exists($layout_file))
{
// If faceoff // If faceoff
if($oLayoutModel->useDefaultLayout($layout_info->layout_srl)){ if($oLayoutModel->useDefaultLayout($layout_info->layout_srl))
{
$layout_file = $oLayoutModel->getDefaultLayoutHtml($layout_info->layout); $layout_file = $oLayoutModel->getDefaultLayoutHtml($layout_info->layout);
}else{ }
else
{
$layout_file = sprintf('%s%s', $layout_info->path, 'layout.html'); $layout_file = sprintf('%s%s', $layout_info->path, 'layout.html');
} }
} }
$layout_css_file = $oLayoutModel->getUserLayoutCss($layout_info->layout_srl); $layout_css_file = $oLayoutModel->getUserLayoutCss($layout_info->layout_srl);
if(file_exists($layout_css_file)){ if(file_exists($layout_css_file))
{
$layout_code_css = FileHandler::readFile($layout_css_file); $layout_code_css = FileHandler::readFile($layout_css_file);
Context::set('layout_code_css', $layout_code_css); Context::set('layout_code_css', $layout_code_css);
} }
@ -280,8 +290,9 @@
/** /**
* Preview a layout * Preview a layout
* @return void|Object (void : success, Object : fail) * @return void|Object (void : success, Object : fail)
**/ */
function dispLayoutAdminPreview() { function dispLayoutAdminPreview()
{
$layout_srl = Context::get('layout_srl'); $layout_srl = Context::get('layout_srl');
$code = Context::get('code'); $code = Context::get('code');
$code_css = Context::get('code_css'); $code_css = Context::get('code_css');
@ -295,14 +306,18 @@
// Apply CSS directly // Apply CSS directly
Context::addHtmlHeader("<style type=\"text/css\" charset=\"UTF-8\">".$code_css."</style>"); Context::addHtmlHeader("<style type=\"text/css\" charset=\"UTF-8\">".$code_css."</style>");
// Set names and values of extra_vars to $layout_info // Set names and values of extra_vars to $layout_info
if($layout_info->extra_var_count) { if($layout_info->extra_var_count)
foreach($layout_info->extra_var as $var_id => $val) { {
foreach($layout_info->extra_var as $var_id => $val)
{
$layout_info->{$var_id} = $val->value; $layout_info->{$var_id} = $val->value;
} }
} }
// menu in layout information becomes an argument for Context:: set // menu in layout information becomes an argument for Context:: set
if($layout_info->menu_count) { if($layout_info->menu_count)
foreach($layout_info->menu as $menu_id => $menu) { {
foreach($layout_info->menu as $menu_id => $menu)
{
if(file_exists($menu->php_file)) @include($menu->php_file); if(file_exists($menu->php_file)) @include($menu->php_file);
Context::set($menu_id, $menu); Context::set($menu_id, $menu);
} }
@ -335,15 +350,17 @@
* Modify admin layout of faceoff * Modify admin layout of faceoff
* @deprecated * @deprecated
* @return void * @return void
**/ */
function dispLayoutAdminLayoutModify(){ function dispLayoutAdminLayoutModify()
{
// Get layout_srl // Get layout_srl
$current_module_info = Context::get('current_module_info'); $current_module_info = Context::get('current_module_info');
$layout_srl = $current_module_info->layout_srl; $layout_srl = $current_module_info->layout_srl;
// Remove the remaining tmp files because of temporarily saving // Remove the remaining tmp files because of temporarily saving
// This part needs to be modified // This part needs to be modified
$delete_tmp = Context::get('delete_tmp'); $delete_tmp = Context::get('delete_tmp');
if($delete_tmp =='Y'){ if($delete_tmp =='Y')
{
$oLayoutAdminController = &getAdminController('layout'); $oLayoutAdminController = &getAdminController('layout');
$oLayoutAdminController->deleteUserLayoutTempFile($layout_srl); $oLayoutAdminController->deleteUserLayoutTempFile($layout_srl);
} }
@ -357,7 +374,8 @@
$css = FileHandler::readFile($faceoffcss); $css = FileHandler::readFile($faceoffcss);
$match = null; $match = null;
preg_match_all('/([^\{]+)\{([^\}]*)\}/is',$css,$match); preg_match_all('/([^\{]+)\{([^\}]*)\}/is',$css,$match);
for($i=0,$c=count($match[1]);$i<$c;$i++) { for($i=0,$c=count($match[1]);$i<$c;$i++)
{
$name = trim($match[1][$i]); $name = trim($match[1][$i]);
$css = trim($match[2][$i]); $css = trim($match[2][$i]);
if(!$css) continue; if(!$css) continue;
@ -365,7 +383,8 @@
$style[] .= sprintf('"%s":"%s"',$name,$css); $style[] .= sprintf('"%s":"%s"',$name,$css);
} }
if(count($style)) { if(count($style))
{
$script = '<script type="text/javascript"> var faceOffStyle = {'.implode(',',$style).'}; </script>'; $script = '<script type="text/javascript"> var faceOffStyle = {'.implode(',',$style).'}; </script>';
Context::addHtmlHeader($script); Context::addHtmlHeader($script);
} }
@ -383,7 +402,8 @@
* Copy layout instance * Copy layout instance
* @return void * @return void
*/ */
function dispLayoutAdminCopyLayout(){ function dispLayoutAdminCopyLayout()
{
$layoutSrl = Context::get('layout_srl'); $layoutSrl = Context::get('layout_srl');
$oLayoutModel = &getModel('layout'); $oLayoutModel = &getModel('layout');
@ -392,5 +412,6 @@
Context::set('layout', $layout); Context::set('layout', $layout);
$this->setTemplateFile('copy_layout'); $this->setTemplateFile('copy_layout');
} }
} }
?> /* End of file layout.admin.view.php */
/* Location: ./modules/layout/layout.admin.view.php */

View file

@ -1,17 +1,17 @@
<?php <?php
/** /**
* @class layout * @class layout
* @author NHN (developers@xpressengine.com) * @author NHN (developers@xpressengine.com)
* high class of the layout module * high class of the layout module
**/ */
class layout extends ModuleObject
class layout extends ModuleObject { {
/** /**
* Implement if additional tasks are necessary when installing * Implement if additional tasks are necessary when installing
* @return Object * @return Object
**/ */
function moduleInstall() { function moduleInstall()
{
// Create a directory to be used in the layout // Create a directory to be used in the layout
FileHandler::makeDir('./files/cache/layout'); FileHandler::makeDir('./files/cache/layout');
@ -21,14 +21,16 @@
/** /**
* a method to check if successfully installed * a method to check if successfully installed
* @return boolean * @return boolean
**/ */
function checkUpdate() { function checkUpdate()
{
$oDB = &DB::getInstance(); $oDB = &DB::getInstance();
// 2009. 02. 11 Add site_srl to layout table // 2009. 02. 11 Add site_srl to layout table
if(!$oDB->isColumnExists('layouts', 'site_srl')) return true; if(!$oDB->isColumnExists('layouts', 'site_srl')) return true;
// 2009. 02. 26 Move the previous layout for faceoff // 2009. 02. 26 Move the previous layout for faceoff
$files = FileHandler::readDir('./files/cache/layout'); $files = FileHandler::readDir('./files/cache/layout');
for($i=0,$c=count($files);$i<$c;$i++) { for($i=0,$c=count($files);$i<$c;$i++)
{
$filename = $files[$i]; $filename = $files[$i];
if(preg_match('/([0-9]+)\.html/i',$filename)) return true; if(preg_match('/([0-9]+)\.html/i',$filename)) return true;
} }
@ -53,17 +55,20 @@
/** /**
* Execute update * Execute update
* @return Object * @return Object
**/ */
function moduleUpdate() { function moduleUpdate()
{
$oDB = &DB::getInstance(); $oDB = &DB::getInstance();
// 2009. 02. 11 Add site_srl to menu table // 2009. 02. 11 Add site_srl to menu table
if(!$oDB->isColumnExists('layouts', 'site_srl')) { if(!$oDB->isColumnExists('layouts', 'site_srl'))
{
$oDB->addColumn('layouts','site_srl','number',11,0,true); $oDB->addColumn('layouts','site_srl','number',11,0,true);
} }
// 2009. 02. 26 Move the previous layout for faceoff // 2009. 02. 26 Move the previous layout for faceoff
$oLayoutModel = &getModel('layout'); $oLayoutModel = &getModel('layout');
$files = FileHandler::readDir('./files/cache/layout'); $files = FileHandler::readDir('./files/cache/layout');
for($i=0,$c=count($files);$i<$c;$i++) { for($i=0,$c=count($files);$i<$c;$i++)
{
$filename = $files[$i]; $filename = $files[$i];
if(!preg_match('/([0-9]+)\.html/i',$filename,$match)) continue; if(!preg_match('/([0-9]+)\.html/i',$filename,$match)) continue;
$layout_srl = $match[1]; $layout_srl = $match[1];
@ -74,7 +79,8 @@
@unlink('./files/cache/layout/'.$filename); @unlink('./files/cache/layout/'.$filename);
} }
if(!$oDB->isColumnExists('layouts', 'layout_type')) { if(!$oDB->isColumnExists('layouts', 'layout_type'))
{
$oDB->addColumn('layouts','layout_type','char',1,'P',true); $oDB->addColumn('layouts','layout_type','char',1,'P',true);
} }
@ -97,17 +103,19 @@
return new Object(0, 'success_updated'); return new Object(0, 'success_updated');
} }
/** /**
* Re-generate the cache file * Re-generate the cache file
* @return void * @return void
**/ */
function recompileCache() { function recompileCache()
{
$path = './files/cache/layout'; $path = './files/cache/layout';
if(!is_dir($path)) { if(!is_dir($path))
{
FileHandler::makeDir($path); FileHandler::makeDir($path);
return; return;
} }
} }
} }
?> /* End of file layout.class.php */
/* Location: ./modules/layout/layout.class.php */

View file

@ -1,24 +1,24 @@
<?php <?php
/** /**
* @class layoutModel * @class layoutModel
* @author NHN (developers@xpressengine.com) * @author NHN (developers@xpressengine.com)
* @version 0.1 * @version 0.1
* Model class of the layout module * Model class of the layout module
**/ */
class layoutModel extends layout
class layoutModel extends layout { {
/** /**
* Check user layout temp * Check user layout temp
* @var string * @var string
**/ */
var $useUserLayoutTemp = null; var $useUserLayoutTemp = null;
/** /**
* Initialization * Initialization
* @return void * @return void
**/ */
function init() { function init()
{
} }
/** /**
@ -29,9 +29,11 @@
* @param string $layout_type (P : PC, M : Mobile) * @param string $layout_type (P : PC, M : Mobile)
* @param array $columnList * @param array $columnList
* @return array layout lists in site * @return array layout lists in site
**/ */
function getLayoutList($site_srl = 0, $layout_type="P", $columnList = array()) { function getLayoutList($site_srl = 0, $layout_type="P", $columnList = array())
if(!$site_srl) { {
if(!$site_srl)
{
$site_module_info = Context::get('site_module_info'); $site_module_info = Context::get('site_module_info');
$site_srl = (int)$site_module_info->site_srl; $site_srl = (int)$site_module_info->site_srl;
} }
@ -102,7 +104,7 @@
* @param string $layout name of layout * @param string $layout name of layout
* @param array $columnList * @param array $columnList
* @return array layout lists in site * @return array layout lists in site
**/ */
function getLayoutInstanceList($siteSrl = 0, $layoutType = 'P', $layout = null, $columnList = array()) function getLayoutInstanceList($siteSrl = 0, $layoutType = 'P', $layout = null, $columnList = array())
{ {
if (!$siteSrl) if (!$siteSrl)
@ -182,21 +184,23 @@
return $output->data; return $output->data;
} }
/** /**
* Get one of layout information created in the DB * Get one of layout information created in the DB
* Return DB info + XML info of the generated layout * Return DB info + XML info of the generated layout
* @param int $layout_srl * @param int $layout_srl
* @return object info of layout * @return object info of layout
**/ */
function getLayout($layout_srl) { function getLayout($layout_srl)
{
// cache controll // cache controll
$oCacheHandler = &CacheHandler::getInstance('object'); $oCacheHandler = &CacheHandler::getInstance('object');
if($oCacheHandler->isSupport()){ if($oCacheHandler->isSupport())
{
$cache_key = 'object:'.$layout_srl; $cache_key = 'object:'.$layout_srl;
$layout_info = $oCacheHandler->get($cache_key); $layout_info = $oCacheHandler->get($cache_key);
} }
if(!$layout_info) { if(!$layout_info)
{
// Get information from the DB // Get information from the DB
$args->layout_srl = $layout_srl; $args->layout_srl = $layout_srl;
$output = executeQuery('layout.getLayout', $args); $output = executeQuery('layout.getLayout', $args);
@ -232,16 +236,24 @@
* @param string $layout_name * @param string $layout_name
* @param string $layout_type (P : PC, M : Mobile) * @param string $layout_type (P : PC, M : Mobile)
* @return string path of layout * @return string path of layout
**/ */
function getLayoutPath($layout_name, $layout_type = "P") { function getLayoutPath($layout_name, $layout_type = "P")
{
$layout_parse = explode('|@|', $layout_name); $layout_parse = explode('|@|', $layout_name);
if (count($layout_parse) > 1){ if(count($layout_parse) > 1)
{
$class_path = './themes/'.$layout_parse[0].'/layouts/'.$layout_parse[1].'/'; $class_path = './themes/'.$layout_parse[0].'/layouts/'.$layout_parse[1].'/';
}else if($layout_name == 'faceoff'){ }
else if($layout_name == 'faceoff')
{
$class_path = './modules/layout/faceoff/'; $class_path = './modules/layout/faceoff/';
}else if($layout_type == "M") { }
else if($layout_type == "M")
{
$class_path = sprintf("./m.layouts/%s/", $layout_name); $class_path = sprintf("./m.layouts/%s/", $layout_name);
}else { }
else
{
$class_path = sprintf('./layouts/%s/', $layout_name); $class_path = sprintf('./layouts/%s/', $layout_name);
} }
if(is_dir($class_path)) return $class_path; if(is_dir($class_path)) return $class_path;
@ -254,8 +266,9 @@
* @param string $layout_type (P : PC, M : Mobile) * @param string $layout_type (P : PC, M : Mobile)
* @param boolean $withAutoinstallInfo * @param boolean $withAutoinstallInfo
* @return array info of layout * @return array info of layout
**/ */
function getDownloadedLayoutList($layout_type = "P", $withAutoinstallInfo = false) { function getDownloadedLayoutList($layout_type = "P", $withAutoinstallInfo = false)
{
if ($withAutoinstallInfo) $oAutoinstallModel = &getModel('autoinstall'); if ($withAutoinstallInfo) $oAutoinstallModel = &getModel('autoinstall');
// Get a list of downloaded layout and installed layout // Get a list of downloaded layout and installed layout
@ -266,7 +279,8 @@
// natcasesort($searched_list); // natcasesort($searched_list);
// Return information for looping searched list of layouts // Return information for looping searched list of layouts
$list = array(); $list = array();
for($i=0;$i<$searched_count;$i++) { for($i=0;$i<$searched_count;$i++)
{
// Name of the layout // Name of the layout
$layout = $searched_list[$i]; $layout = $searched_list[$i];
// Get information of the layout // Get information of the layout
@ -277,7 +291,7 @@
continue; continue;
} }
if ($withAutoinstallInfo) if($withAutoinstallInfo)
{ {
// get easyinstall remove url // get easyinstall remove url
$packageSrl = $oAutoinstallModel->getPackageSrlByPath($layout_info->path); $packageSrl = $oAutoinstallModel->getPackageSrlByPath($layout_info->path);
@ -288,7 +302,7 @@
$layout_info->need_update = $package[$packageSrl]->need_update; $layout_info->need_update = $package[$packageSrl]->need_update;
// get easyinstall update url // get easyinstall update url
if ($layout_info->need_update) if($layout_info->need_update)
{ {
$layout_info->update_url = $oAutoinstallModel->getUpdateUrlByPackageSrl($packageSrl); $layout_info->update_url = $oAutoinstallModel->getUpdateUrlByPackageSrl($packageSrl);
} }
@ -330,7 +344,7 @@
* Get a count of layout * Get a count of layout
* @param string $layoutType (P : PC, M : Mobile) * @param string $layoutType (P : PC, M : Mobile)
* @return int * @return int
**/ */
function getInstalledLayoutCount($layoutType = 'P') function getInstalledLayoutCount($layoutType = 'P')
{ {
$searchedList = $this->_getInstalledLayoutDirectories($layoutType); $searchedList = $this->_getInstalledLayoutDirectories($layoutType);
@ -341,10 +355,10 @@
* Get list of layouts directory * Get list of layouts directory
* @param string $layoutType (P : PC, M : Mobile) * @param string $layoutType (P : PC, M : Mobile)
* @return array * @return array
**/ */
function _getInstalledLayoutDirectories($layoutType = 'P') function _getInstalledLayoutDirectories($layoutType = 'P')
{ {
if ($layoutType == 'M') if($layoutType == 'M')
{ {
$directory = './m.layouts'; $directory = './m.layouts';
$globalValueKey = 'MOBILE_LAYOUT_DIRECTOIES'; $globalValueKey = 'MOBILE_LAYOUT_DIRECTOIES';
@ -355,7 +369,7 @@
$globalValueKey = 'PC_LAYOUT_DIRECTORIES'; $globalValueKey = 'PC_LAYOUT_DIRECTORIES';
} }
if ($GLOBALS[$globalValueKey]) return $GLOBALS[$globalValueKey]; if($GLOBALS[$globalValueKey]) return $GLOBALS[$globalValueKey];
$searchedList = FileHandler::readDir($directory); $searchedList = FileHandler::readDir($directory);
if (!$searchedList) $searchedList = array(); if (!$searchedList) $searchedList = array();
@ -371,16 +385,19 @@
* @param object $info * @param object $info
* @param string $layoutType (P : PC, M : Mobile) * @param string $layoutType (P : PC, M : Mobile)
* @return object info of layout * @return object info of layout
**/ */
function getLayoutInfo($layout, $info = null, $layout_type = "P") { function getLayoutInfo($layout, $info = null, $layout_type = "P")
if($info) { {
if($info)
{
$layout_title = $info->title; $layout_title = $info->title;
$layout = $info->layout; $layout = $info->layout;
$layout_srl = $info->layout_srl; $layout_srl = $info->layout_srl;
$site_srl = $info->site_srl; $site_srl = $info->site_srl;
$vars = unserialize($info->extra_vars); $vars = unserialize($info->extra_vars);
if($info->module_srl) { if($info->module_srl)
{
$layout_path = preg_replace('/([a-zA-Z0-9\_\.]+)(\.html)$/','',$info->layout_path); $layout_path = preg_replace('/([a-zA-Z0-9\_\.]+)(\.html)$/','',$info->layout_path);
$xml_file = sprintf('%sskin.xml', $layout_path); $xml_file = sprintf('%sskin.xml', $layout_path);
} }
@ -390,7 +407,8 @@
if(!is_dir($layout_path)) return; if(!is_dir($layout_path)) return;
// Read the xml file for module skin information // Read the xml file for module skin information
if(!$xml_file) $xml_file = sprintf("%sconf/info.xml", $layout_path); if(!$xml_file) $xml_file = sprintf("%sconf/info.xml", $layout_path);
if(!file_exists($xml_file)) { if(!file_exists($xml_file))
{
$layout_info->title = $layout; $layout_info->title = $layout;
$layout_info->layout = $layout; $layout_info->layout = $layout;
$layout_info->path = $layout_path; $layout_info->path = $layout_path;
@ -400,18 +418,24 @@
return $layout_info; return $layout_info;
} }
// Include the cache file if it is valid and then return $layout_info variable // Include the cache file if it is valid and then return $layout_info variable
if(!$layout_srl){ if(!$layout_srl)
{
$cache_file = $this->getLayoutCache($layout, Context::getLangType()); $cache_file = $this->getLayoutCache($layout, Context::getLangType());
}else{ }
else
{
$cache_file = $this->getUserLayoutCache($layout_srl, Context::getLangType()); $cache_file = $this->getUserLayoutCache($layout_srl, Context::getLangType());
} }
if(file_exists($cache_file)&&filemtime($cache_file)>filemtime($xml_file)) { if(file_exists($cache_file)&&filemtime($cache_file)>filemtime($xml_file))
{
@include($cache_file); @include($cache_file);
if($layout_info->extra_var && $vars)
if($layout_info->extra_var && $vars) { {
foreach($vars as $key => $value) { foreach($vars as $key => $value)
if(!$layout_info->extra_var->{$key} && !$layout_info->{$key}) { {
if(!$layout_info->extra_var->{$key} && !$layout_info->{$key})
{
$layout_info->{$key} = $value; $layout_info->{$key} = $value;
} }
} }
@ -435,7 +459,8 @@
$buff = ''; $buff = '';
$buff .= sprintf('$layout_info->site_srl = "%s";', $site_srl); $buff .= sprintf('$layout_info->site_srl = "%s";', $site_srl);
if($xml_obj->version && $xml_obj->attrs->version == '0.2') { if($xml_obj->version && $xml_obj->attrs->version == '0.2')
{
// Layout title, version and other information // Layout title, version and other information
sscanf($xml_obj->date->body, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d); sscanf($xml_obj->date->body, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d);
$date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d); $date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d);
@ -456,7 +481,8 @@
if(!is_array($xml_obj->author)) $author_list[] = $xml_obj->author; if(!is_array($xml_obj->author)) $author_list[] = $xml_obj->author;
else $author_list = $xml_obj->author; else $author_list = $xml_obj->author;
for($i=0; $i < count($author_list); $i++) { for($i=0; $i < count($author_list); $i++)
{
$buff .= sprintf('$layout_info->author['.$i.']->name = "%s";', $author_list[$i]->name->body); $buff .= sprintf('$layout_info->author['.$i.']->name = "%s";', $author_list[$i]->name->body);
$buff .= sprintf('$layout_info->author['.$i.']->email_address = "%s";', $author_list[$i]->attrs->email_address); $buff .= sprintf('$layout_info->author['.$i.']->email_address = "%s";', $author_list[$i]->attrs->email_address);
$buff .= sprintf('$layout_info->author['.$i.']->homepage = "%s";', $author_list[$i]->attrs->link); $buff .= sprintf('$layout_info->author['.$i.']->homepage = "%s";', $author_list[$i]->attrs->link);
@ -465,15 +491,18 @@
$extra_var_groups = $xml_obj->extra_vars->group; $extra_var_groups = $xml_obj->extra_vars->group;
if(!$extra_var_groups) $extra_var_groups = $xml_obj->extra_vars; if(!$extra_var_groups) $extra_var_groups = $xml_obj->extra_vars;
if(!is_array($extra_var_groups)) $extra_var_groups = array($extra_var_groups); if(!is_array($extra_var_groups)) $extra_var_groups = array($extra_var_groups);
foreach($extra_var_groups as $group){ foreach($extra_var_groups as $group)
{
$extra_vars = $group->var; $extra_vars = $group->var;
if($extra_vars) { if($extra_vars)
{
if(!is_array($extra_vars)) $extra_vars = array($extra_vars); if(!is_array($extra_vars)) $extra_vars = array($extra_vars);
$extra_var_count = count($extra_vars); $extra_var_count = count($extra_vars);
$buff .= sprintf('$layout_info->extra_var_count = "%s";', $extra_var_count); $buff .= sprintf('$layout_info->extra_var_count = "%s";', $extra_var_count);
for($i=0;$i<$extra_var_count;$i++) { for($i=0;$i<$extra_var_count;$i++)
{
unset($var); unset($var);
unset($options); unset($options);
$var = $extra_vars[$i]; $var = $extra_vars[$i];
@ -491,32 +520,37 @@
if(!is_array($options)) $options = array($options); if(!is_array($options)) $options = array($options);
$options_count = count($options); $options_count = count($options);
$thumbnail_exist = false; $thumbnail_exist = false;
for($j=0; $j < $options_count; $j++) { for($j=0; $j < $options_count; $j++)
{
$thumbnail = $options[$j]->attrs->src; $thumbnail = $options[$j]->attrs->src;
if($thumbnail) { if($thumbnail)
{
$thumbnail = $layout_path.$thumbnail; $thumbnail = $layout_path.$thumbnail;
if(file_exists($thumbnail)) { if(file_exists($thumbnail))
{
$buff .= sprintf('$layout_info->extra_var->%s->options["%s"]->thumbnail = "%s";', $var->attrs->name, $options[$j]->attrs->value, $thumbnail); $buff .= sprintf('$layout_info->extra_var->%s->options["%s"]->thumbnail = "%s";', $var->attrs->name, $options[$j]->attrs->value, $thumbnail);
if(!$thumbnail_exist) { if(!$thumbnail_exist)
{
$buff .= sprintf('$layout_info->extra_var->%s->thumbnail_exist = true;', $var->attrs->name); $buff .= sprintf('$layout_info->extra_var->%s->thumbnail_exist = true;', $var->attrs->name);
$thumbnail_exist = true; $thumbnail_exist = true;
} }
} }
} }
$buff .= sprintf('$layout_info->extra_var->%s->options["%s"]->val = "%s";', $var->attrs->name, $options[$j]->attrs->value, $options[$j]->title->body); $buff .= sprintf('$layout_info->extra_var->%s->options["%s"]->val = "%s";', $var->attrs->name, $options[$j]->attrs->value, $options[$j]->title->body);
} }
} }
} }
} }
// Menu // Menu
if($xml_obj->menus->menu) { if($xml_obj->menus->menu)
{
$menus = $xml_obj->menus->menu; $menus = $xml_obj->menus->menu;
if(!is_array($menus)) $menus = array($menus); if(!is_array($menus)) $menus = array($menus);
$menu_count = count($menus); $menu_count = count($menus);
$buff .= sprintf('$layout_info->menu_count = "%s";', $menu_count); $buff .= sprintf('$layout_info->menu_count = "%s";', $menu_count);
for($i=0;$i<$menu_count;$i++) { for($i=0;$i<$menu_count;$i++)
{
$name = $menus[$i]->attrs->name; $name = $menus[$i]->attrs->name;
if($menus[$i]->attrs->default == "true") $buff .= sprintf('$layout_info->default_menu = "%s";', $name); if($menus[$i]->attrs->default == "true") $buff .= sprintf('$layout_info->default_menu = "%s";', $name);
$buff .= sprintf('$layout_info->menu->%s->name = "%s";',$name, $menus[$i]->attrs->name); $buff .= sprintf('$layout_info->menu->%s->name = "%s";',$name, $menus[$i]->attrs->name);
@ -529,43 +563,47 @@
} }
} }
// history // history
if($xml_obj->history) { if($xml_obj->history)
{
if(!is_array($xml_obj->history)) $history_list[] = $xml_obj->history; if(!is_array($xml_obj->history)) $history_list[] = $xml_obj->history;
else $history_list = $xml_obj->history; else $history_list = $xml_obj->history;
for($i=0; $i < count($history_list); $i++) { for($i=0; $i < count($history_list); $i++)
{
sscanf($history_list[$i]->attrs->date, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d); sscanf($history_list[$i]->attrs->date, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d);
$date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d); $date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d);
$buff .= sprintf('$layout_info->history['.$i.']->description = "%s";', $history_list[$i]->description->body); $buff .= sprintf('$layout_info->history['.$i.']->description = "%s";', $history_list[$i]->description->body);
$buff .= sprintf('$layout_info->history['.$i.']->version = "%s";', $history_list[$i]->attrs->version); $buff .= sprintf('$layout_info->history['.$i.']->version = "%s";', $history_list[$i]->attrs->version);
$buff .= sprintf('$layout_info->history['.$i.']->date = "%s";', $date); $buff .= sprintf('$layout_info->history['.$i.']->date = "%s";', $date);
if($history_list[$i]->author) { if($history_list[$i]->author)
{
(!is_array($history_list[$i]->author)) ? $obj->author_list[] = $history_list[$i]->author : $obj->author_list = $history_list[$i]->author; (!is_array($history_list[$i]->author)) ? $obj->author_list[] = $history_list[$i]->author : $obj->author_list = $history_list[$i]->author;
for($j=0; $j < count($obj->author_list); $j++) { for($j=0; $j < count($obj->author_list); $j++)
{
$buff .= sprintf('$layout_info->history['.$i.']->author['.$j.']->name = "%s";', $obj->author_list[$j]->name->body); $buff .= sprintf('$layout_info->history['.$i.']->author['.$j.']->name = "%s";', $obj->author_list[$j]->name->body);
$buff .= sprintf('$layout_info->history['.$i.']->author['.$j.']->email_address = "%s";', $obj->author_list[$j]->attrs->email_address); $buff .= sprintf('$layout_info->history['.$i.']->author['.$j.']->email_address = "%s";', $obj->author_list[$j]->attrs->email_address);
$buff .= sprintf('$layout_info->history['.$i.']->author['.$j.']->homepage = "%s";', $obj->author_list[$j]->attrs->link); $buff .= sprintf('$layout_info->history['.$i.']->author['.$j.']->homepage = "%s";', $obj->author_list[$j]->attrs->link);
} }
} }
if($history_list[$i]->log) { if($history_list[$i]->log)
{
(!is_array($history_list[$i]->log)) ? $obj->log_list[] = $history_list[$i]->log : $obj->log_list = $history_list[$i]->log; (!is_array($history_list[$i]->log)) ? $obj->log_list[] = $history_list[$i]->log : $obj->log_list = $history_list[$i]->log;
for($j=0; $j < count($obj->log_list); $j++) { for($j=0; $j < count($obj->log_list); $j++)
{
$buff .= sprintf('$layout_info->history['.$i.']->logs['.$j.']->text = "%s";', $obj->log_list[$j]->body); $buff .= sprintf('$layout_info->history['.$i.']->logs['.$j.']->text = "%s";', $obj->log_list[$j]->body);
$buff .= sprintf('$layout_info->history['.$i.']->logs['.$j.']->link = "%s";', $obj->log_list[$j]->attrs->link); $buff .= sprintf('$layout_info->history['.$i.']->logs['.$j.']->link = "%s";', $obj->log_list[$j]->attrs->link);
} }
} }
} }
} }
}
else
{
} else {
// Layout title, version and other information // Layout title, version and other information
sscanf($xml_obj->author->attrs->date, '%d. %d. %d', $date_obj->y, $date_obj->m, $date_obj->d); sscanf($xml_obj->author->attrs->date, '%d. %d. %d', $date_obj->y, $date_obj->m, $date_obj->d);
$date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d); $date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d);
@ -585,15 +623,18 @@
$extra_var_groups = $xml_obj->extra_vars->group; $extra_var_groups = $xml_obj->extra_vars->group;
if(!$extra_var_groups) $extra_var_groups = $xml_obj->extra_vars; if(!$extra_var_groups) $extra_var_groups = $xml_obj->extra_vars;
if(!is_array($extra_var_groups)) $extra_var_groups = array($extra_var_groups); if(!is_array($extra_var_groups)) $extra_var_groups = array($extra_var_groups);
foreach($extra_var_groups as $group){ foreach($extra_var_groups as $group)
{
$extra_vars = $group->var; $extra_vars = $group->var;
if($extra_vars) { if($extra_vars)
{
if(!is_array($extra_vars)) $extra_vars = array($extra_vars); if(!is_array($extra_vars)) $extra_vars = array($extra_vars);
$extra_var_count = count($extra_vars); $extra_var_count = count($extra_vars);
$buff .= sprintf('$layout_info->extra_var_count = "%s";', $extra_var_count); $buff .= sprintf('$layout_info->extra_var_count = "%s";', $extra_var_count);
for($i=0;$i<$extra_var_count;$i++) { for($i=0;$i<$extra_var_count;$i++)
{
unset($var); unset($var);
unset($options); unset($options);
$var = $extra_vars[$i]; $var = $extra_vars[$i];
@ -610,32 +651,33 @@
if(!is_array($options)) $options = array($options); if(!is_array($options)) $options = array($options);
$options_count = count($options); $options_count = count($options);
for($j=0;$j<$options_count;$j++) { for($j=0;$j<$options_count;$j++)
{
$buff .= sprintf('$layout_info->extra_var->%s->options["%s"]->val = "%s";', $var->attrs->name, $options[$j]->value->body, $options[$j]->title->body); $buff .= sprintf('$layout_info->extra_var->%s->options["%s"]->val = "%s";', $var->attrs->name, $options[$j]->value->body, $options[$j]->title->body);
} }
} }
} }
} }
// Menu // Menu
if($xml_obj->menus->menu) { if($xml_obj->menus->menu)
{
$menus = $xml_obj->menus->menu; $menus = $xml_obj->menus->menu;
if(!is_array($menus)) $menus = array($menus); if(!is_array($menus)) $menus = array($menus);
$menu_count = count($menus); $menu_count = count($menus);
$buff .= sprintf('$layout_info->menu_count = "%s";', $menu_count); $buff .= sprintf('$layout_info->menu_count = "%s";', $menu_count);
for($i=0;$i<$menu_count;$i++) { for($i=0;$i<$menu_count;$i++)
{
$name = $menus[$i]->attrs->name; $name = $menus[$i]->attrs->name;
if($menus[$i]->attrs->default == "true") $buff .= sprintf('$layout_info->default_menu = "%s";', $name); if($menus[$i]->attrs->default == "true") $buff .= sprintf('$layout_info->default_menu = "%s";', $name);
$buff .= sprintf('$layout_info->menu->%s->name = "%s";',$name, $menus[$i]->attrs->name); $buff .= sprintf('$layout_info->menu->%s->name = "%s";',$name, $menus[$i]->attrs->name);
$buff .= sprintf('$layout_info->menu->%s->title = "%s";',$name, $menus[$i]->title->body); $buff .= sprintf('$layout_info->menu->%s->title = "%s";',$name, $menus[$i]->title->body);
$buff .= sprintf('$layout_info->menu->%s->maxdepth = "%s";',$name, $menus[$i]->maxdepth->body); $buff .= sprintf('$layout_info->menu->%s->maxdepth = "%s";',$name, $menus[$i]->maxdepth->body);
$buff .= sprintf('$layout_info->menu->%s->menu_srl = $vars->%s;', $name, $name); $buff .= sprintf('$layout_info->menu->%s->menu_srl = $vars->%s;', $name, $name);
$buff .= sprintf('$layout_info->menu->%s->xml_file = "./files/cache/menu/".$vars->%s.".xml.php";',$name, $name); $buff .= sprintf('$layout_info->menu->%s->xml_file = "./files/cache/menu/".$vars->%s.".xml.php";',$name, $name);
$buff .= sprintf('$layout_info->menu->%s->php_file = "./files/cache/menu/".$vars->%s.".php";',$name, $name); $buff .= sprintf('$layout_info->menu->%s->php_file = "./files/cache/menu/".$vars->%s.".php";',$name, $name);
} }
} }
} }
// header_script // header_script
@ -664,8 +706,9 @@
* Return a list of images which are uploaded on the layout setting page * Return a list of images which are uploaded on the layout setting page
* @param int $layout_srl * @param int $layout_srl
* @return array image list in layout * @return array image list in layout
**/ */
function getUserLayoutImageList($layout_srl){ function getUserLayoutImageList($layout_srl)
{
$path = $this->getUserLayoutImagePath($layout_srl); $path = $this->getUserLayoutImagePath($layout_srl);
$list = FileHandler::readDir($path); $list = FileHandler::readDir($path);
return $list; return $list;
@ -676,10 +719,12 @@
* @param int $layout_srl * @param int $layout_srl
* @param string $layout_name * @param string $layout_name
* @return array * @return array
**/ */
function getUserLayoutIniConfig($layout_srl, $layout_name=null){ function getUserLayoutIniConfig($layout_srl, $layout_name=null)
{
$file = $this->getUserLayoutIni($layout_srl); $file = $this->getUserLayoutIni($layout_srl);
if($layout_name && !file_exists(FileHandler::getRealPath($file))){ if($layout_name && !file_exists(FileHandler::getRealPath($file)))
{
FileHandler::copyFile($this->getDefaultLayoutIni($layout_name),$this->getUserLayoutIni($layout_srl)); FileHandler::copyFile($this->getDefaultLayoutIni($layout_name),$this->getUserLayoutIni($layout_srl));
} }
@ -691,8 +736,9 @@
* get user layout path * get user layout path
* @param int $layout_srl * @param int $layout_srl
* @return string * @return string
**/ */
function getUserLayoutPath($layout_srl){ function getUserLayoutPath($layout_srl)
{
return sprintf("./files/faceOff/%s",getNumberingPath($layout_srl,3)); return sprintf("./files/faceOff/%s",getNumberingPath($layout_srl,3));
} }
@ -700,8 +746,9 @@
* get user layout image path * get user layout image path
* @param int $layout_srl * @param int $layout_srl
* @return string * @return string
**/ */
function getUserLayoutImagePath($layout_srl){ function getUserLayoutImagePath($layout_srl)
{
return $this->getUserLayoutPath($layout_srl). 'images/'; return $this->getUserLayoutPath($layout_srl). 'images/';
} }
@ -709,8 +756,9 @@
* css which is set by an administrator on the layout setting page * css which is set by an administrator on the layout setting page
* @param int $layout_srl * @param int $layout_srl
* @return string * @return string
**/ */
function getUserLayoutCss($layout_srl){ function getUserLayoutCss($layout_srl)
{
return $this->getUserLayoutPath($layout_srl). 'layout.css'; return $this->getUserLayoutPath($layout_srl). 'layout.css';
} }
@ -718,8 +766,9 @@
* Import faceoff css from css module handler * Import faceoff css from css module handler
* @param int $layout_srl * @param int $layout_srl
* @return string * @return string
**/ */
function getUserLayoutFaceOffCss($layout_srl){ function getUserLayoutFaceOffCss($layout_srl)
{
$src = $this->_getUserLayoutFaceOffCss($layout_srl); $src = $this->_getUserLayoutFaceOffCss($layout_srl);
if($this->useUserLayoutTemp == 'temp') return; if($this->useUserLayoutTemp == 'temp') return;
return $src; return $src;
@ -729,8 +778,9 @@
* Import faceoff css from css module handler * Import faceoff css from css module handler
* @param int $layout_srl * @param int $layout_srl
* @return string * @return string
**/ */
function _getUserLayoutFaceOffCss($layout_srl){ function _getUserLayoutFaceOffCss($layout_srl)
{
return $this->getUserLayoutPath($layout_srl). 'faceoff.css'; return $this->getUserLayoutPath($layout_srl). 'faceoff.css';
} }
@ -738,8 +788,9 @@
* get user layout tmp html * get user layout tmp html
* @param int $layout_srl * @param int $layout_srl
* @return string * @return string
**/ */
function getUserLayoutTempFaceOffCss($layout_srl){ function getUserLayoutTempFaceOffCss($layout_srl)
{
return $this->getUserLayoutPath($layout_srl). 'tmp.faceoff.css'; return $this->getUserLayoutPath($layout_srl). 'tmp.faceoff.css';
} }
@ -747,14 +798,18 @@
* user layout html * user layout html
* @param int $layout_srl * @param int $layout_srl
* @return string * @return string
**/ */
function getUserLayoutHtml($layout_srl){ function getUserLayoutHtml($layout_srl)
{
$src = $this->getUserLayoutPath($layout_srl). 'layout.html'; $src = $this->getUserLayoutPath($layout_srl). 'layout.html';
$temp = $this->getUserLayoutTempHtml($layout_srl); $temp = $this->getUserLayoutTempHtml($layout_srl);
if($this->useUserLayoutTemp == 'temp'){ if($this->useUserLayoutTemp == 'temp')
{
if(!file_exists(FileHandler::getRealPath($temp))) FileHandler::copyFile($src,$temp); if(!file_exists(FileHandler::getRealPath($temp))) FileHandler::copyFile($src,$temp);
return $temp; return $temp;
}else{ }
else
{
return $src; return $src;
} }
} }
@ -763,8 +818,9 @@
* user layout tmp html * user layout tmp html
* @param int $layout_srl * @param int $layout_srl
* @return string * @return string
**/ */
function getUserLayoutTempHtml($layout_srl){ function getUserLayoutTempHtml($layout_srl)
{
return $this->getUserLayoutPath($layout_srl). 'tmp.layout.html'; return $this->getUserLayoutPath($layout_srl). 'tmp.layout.html';
} }
@ -772,14 +828,18 @@
* user layout ini * user layout ini
* @param int $layout_srl * @param int $layout_srl
* @return string * @return string
**/ */
function getUserLayoutIni($layout_srl){ function getUserLayoutIni($layout_srl)
{
$src = $this->getUserLayoutPath($layout_srl). 'layout.ini'; $src = $this->getUserLayoutPath($layout_srl). 'layout.ini';
$temp = $this->getUserLayoutTempIni($layout_srl); $temp = $this->getUserLayoutTempIni($layout_srl);
if($this->useUserLayoutTemp == 'temp'){ if($this->useUserLayoutTemp == 'temp')
{
if(!file_exists(FileHandler::getRealPath($temp))) FileHandler::copyFile($src,$temp); if(!file_exists(FileHandler::getRealPath($temp))) FileHandler::copyFile($src,$temp);
return $temp; return $temp;
}else{ }
else
{
return $src; return $src;
} }
} }
@ -788,8 +848,9 @@
* user layout tmp ini * user layout tmp ini
* @param int $layout_srl * @param int $layout_srl
* @return string * @return string
**/ */
function getUserLayoutTempIni($layout_srl){ function getUserLayoutTempIni($layout_srl)
{
return $this->getUserLayoutPath($layout_srl). 'tmp.layout.ini'; return $this->getUserLayoutPath($layout_srl). 'tmp.layout.ini';
} }
@ -799,8 +860,9 @@
* @param int $layout_srl * @param int $layout_srl
* @param string $lang_type * @param string $lang_type
* @return string * @return string
**/ */
function getUserLayoutCache($layout_srl,$lang_type){ function getUserLayoutCache($layout_srl,$lang_type)
{
return $this->getUserLayoutPath($layout_srl). "{$lang_type}.cache.php"; return $this->getUserLayoutPath($layout_srl). "{$lang_type}.cache.php";
} }
@ -809,8 +871,9 @@
* @param int $layout_srl * @param int $layout_srl
* @param string $lang_type * @param string $lang_type
* @return string * @return string
**/ */
function getLayoutCache($layout_name,$lang_type){ function getLayoutCache($layout_name,$lang_type)
{
return sprintf("./files/cache/layout/%s.%s.cache.php",$layout_name,$lang_type); return sprintf("./files/cache/layout/%s.%s.cache.php",$layout_name,$lang_type);
} }
@ -818,8 +881,9 @@
* default layout ini to prevent arbitrary changes by a user * default layout ini to prevent arbitrary changes by a user
* @param string $layout_name * @param string $layout_name
* @return string * @return string
**/ */
function getDefaultLayoutIni($layout_name){ function getDefaultLayoutIni($layout_name)
{
return $this->getDefaultLayoutPath($layout_name). 'layout.ini'; return $this->getDefaultLayoutPath($layout_name). 'layout.ini';
} }
@ -827,8 +891,9 @@
* default layout html to prevent arbitrary changes by a user * default layout html to prevent arbitrary changes by a user
* @param string $layout_name * @param string $layout_name
* @return string * @return string
**/ */
function getDefaultLayoutHtml($layout_name){ function getDefaultLayoutHtml($layout_name)
{
return $this->getDefaultLayoutPath($layout_name). 'layout.html'; return $this->getDefaultLayoutPath($layout_name). 'layout.html';
} }
@ -836,8 +901,9 @@
* default layout css to prevent arbitrary changes by a user * default layout css to prevent arbitrary changes by a user
* @param string $layout_name * @param string $layout_name
* @return string * @return string
**/ */
function getDefaultLayoutCss($layout_name){ function getDefaultLayoutCss($layout_name)
{
return $this->getDefaultLayoutPath($layout_name). 'css/layout.css'; return $this->getDefaultLayoutPath($layout_name). 'css/layout.css';
} }
@ -845,8 +911,9 @@
* default layout path to prevent arbitrary changes by a user * default layout path to prevent arbitrary changes by a user
* @deprecated * @deprecated
* @return string * @return string
**/ */
function getDefaultLayoutPath() { function getDefaultLayoutPath()
{
return "./modules/layout/faceoff/"; return "./modules/layout/faceoff/";
} }
@ -854,8 +921,9 @@
* faceoff is * faceoff is
* @param string $layout_name * @param string $layout_name
* @return boolean (true : faceoff, false : layout) * @return boolean (true : faceoff, false : layout)
**/ */
function useDefaultLayout($layout_name){ function useDefaultLayout($layout_name)
{
$info = $this->getLayoutInfo($layout_name); $info = $this->getLayoutInfo($layout_name);
if($info->type == 'faceoff') return true; if($info->type == 'faceoff') return true;
else return false; else return false;
@ -865,8 +933,9 @@
* Set user layout as temporary save mode * Set user layout as temporary save mode
* @param string $flag (default 'temp') * @param string $flag (default 'temp')
* @return void * @return void
**/ */
function setUseUserLayoutTemp($flag='temp'){ function setUseUserLayoutTemp($flag='temp')
{
$this->useUserLayoutTemp = $flag; $this->useUserLayoutTemp = $flag;
} }
@ -874,8 +943,9 @@
* Temp file list for User Layout * Temp file list for User Layout
* @param int $layout_srl * @param int $layout_srl
* @return array temp files info * @return array temp files info
**/ */
function getUserLayoutTempFileList($layout_srl){ function getUserLayoutTempFileList($layout_srl)
{
$file_list = array( $file_list = array(
$this->getUserLayoutTempHtml($layout_srl) $this->getUserLayoutTempHtml($layout_srl)
,$this->getUserLayoutTempFaceOffCss($layout_srl) ,$this->getUserLayoutTempFaceOffCss($layout_srl)
@ -888,13 +958,14 @@
* Saved file list for User Layout * Saved file list for User Layout
* @param int $layout_srl * @param int $layout_srl
* @return array files info * @return array files info
**/ */
function getUserLayoutFileList($layout_srl){ function getUserLayoutFileList($layout_srl)
{
$file_list = array( $file_list = array(
basename($this->getUserLayoutHtml($layout_srl)) basename($this->getUserLayoutHtml($layout_srl)),
,basename($this->getUserLayoutFaceOffCss($layout_srl)) basename($this->getUserLayoutFaceOffCss($layout_srl)),
,basename($this->getUserLayoutIni($layout_srl)) basename($this->getUserLayoutIni($layout_srl)),
,basename($this->getUserLayoutCss($layout_srl)) basename($this->getUserLayoutCss($layout_srl))
); );
$image_path = $this->getUserLayoutImagePath($layout_srl); $image_path = $this->getUserLayoutImagePath($layout_srl);
@ -909,8 +980,9 @@
* @deprecated * @deprecated
* @param object $layout_info * @param object $layout_info
* @return void * @return void
**/ */
function doActivateFaceOff(&$layout_info) { function doActivateFaceOff(&$layout_info)
{
$layout_info->faceoff_ini_config = $this->getUserLayoutIniConfig($layout_info->layout_srl, $layout_info->layout); $layout_info->faceoff_ini_config = $this->getUserLayoutIniConfig($layout_info->layout_srl, $layout_info->layout);
// faceoff layout CSS // faceoff layout CSS
Context::addCSSFile($this->getDefaultLayoutCss($layout_info->layout)); Context::addCSSFile($this->getDefaultLayoutCss($layout_info->layout));
@ -924,14 +996,17 @@
// Different page displayed upon user's permission // Different page displayed upon user's permission
$logged_info = Context::get('logged_info'); $logged_info = Context::get('logged_info');
// Display edit button for faceoff layout // Display edit button for faceoff layout
if(Context::get('module')!='admin' && strpos(Context::get('act'),'Admin')===false && ($logged_info->is_admin == 'Y' || $logged_info->is_site_admin)) { if(Context::get('module')!='admin' && strpos(Context::get('act'),'Admin')===false && ($logged_info->is_admin == 'Y' || $logged_info->is_site_admin))
{
Context::addHtmlFooter('<div class="faceOffManager" style="height: 23px; position: fixed; right: 3px; top: 3px;"><a href="'.getUrl('','mid',Context::get('mid'),'act','dispLayoutAdminLayoutModify','delete_tmp','Y').'">'.Context::getLang('cmd_layout_edit').'</a></div>'); Context::addHtmlFooter('<div class="faceOffManager" style="height: 23px; position: fixed; right: 3px; top: 3px;"><a href="'.getUrl('','mid',Context::get('mid'),'act','dispLayoutAdminLayoutModify','delete_tmp','Y').'">'.Context::getLang('cmd_layout_edit').'</a></div>');
} }
// Display menu when editing the faceOff page // Display menu when editing the faceOff page
if(Context::get('act')=='dispLayoutAdminLayoutModify' && ($logged_info->is_admin == 'Y' || $logged_info->is_site_admin)) { if(Context::get('act')=='dispLayoutAdminLayoutModify' && ($logged_info->is_admin == 'Y' || $logged_info->is_site_admin))
{
$oTemplate = &TemplateHandler::getInstance(); $oTemplate = &TemplateHandler::getInstance();
Context::addBodyHeader($oTemplate->compile($this->module_path.'/tpl', 'faceoff_layout_menu')); Context::addBodyHeader($oTemplate->compile($this->module_path.'/tpl', 'faceoff_layout_menu'));
} }
} }
} }
?> /* End of file layout.model.php */
/* Location: ./modules/layout/layout.model.php */

View file

@ -1,25 +1,26 @@
<?php <?php
/** /**
* @class layoutView * @class layoutView
* @author NHN (developers@xpressengine.com) * @author NHN (developers@xpressengine.com)
* admin view class of the layout module * admin view class of the layout module
**/ */
class layoutView extends layout
class layoutView extends layout { {
/** /**
* Initialization * Initialization
* @return void * @return void
**/ */
function init() { function init()
{
$this->setTemplatePath($this->module_path.'tpl'); $this->setTemplatePath($this->module_path.'tpl');
} }
/** /**
* Pop-up layout details(conf/info.xml) * Pop-up layout details(conf/info.xml)
* @return void * @return void
**/ */
function dispLayoutInfo() { function dispLayoutInfo()
{
// Get the layout information // Get the layout information
$oLayoutModel = &getModel('layout'); $oLayoutModel = &getModel('layout');
$layout_info = $oLayoutModel->getLayoutInfo(Context::get('selected_layout')); $layout_info = $oLayoutModel->getLayoutInfo(Context::get('selected_layout'));
@ -35,7 +36,7 @@
* Preview a layout with module. * Preview a layout with module.
* *
* @return Object * @return Object
**/ */
public function dispLayoutPreviewWithModule() public function dispLayoutPreviewWithModule()
{ {
// admin check // admin check
@ -204,13 +205,13 @@
/** /**
* Preview a layout * Preview a layout
* @return void|Object (void : success, Object : fail) * @return void|Object (void : success, Object : fail)
**/ */
function dispLayoutPreview() function dispLayoutPreview()
{ {
// admin check // admin check
// this act is admin view but in normal view because do not load admin css/js files // this act is admin view but in normal view because do not load admin css/js files
$logged_info = Context::get('logged_info'); $logged_info = Context::get('logged_info');
if ($logged_info->is_admin != 'Y') return $this->stop('msg_invalid_request'); if($logged_info->is_admin != 'Y') return $this->stop('msg_invalid_request');
$layout_srl = Context::get('layout_srl'); $layout_srl = Context::get('layout_srl');
$code = Context::get('code'); $code = Context::get('code');
@ -226,14 +227,18 @@
// Apply CSS directly // Apply CSS directly
Context::addHtmlHeader("<style type=\"text/css\" charset=\"UTF-8\">".$code_css."</style>"); Context::addHtmlHeader("<style type=\"text/css\" charset=\"UTF-8\">".$code_css."</style>");
// Set names and values of extra_vars to $layout_info // Set names and values of extra_vars to $layout_info
if($layout_info->extra_var_count) { if($layout_info->extra_var_count)
foreach($layout_info->extra_var as $var_id => $val) { {
foreach($layout_info->extra_var as $var_id => $val)
{
$layout_info->{$var_id} = $val->value; $layout_info->{$var_id} = $val->value;
} }
} }
// menu in layout information becomes an argument for Context:: set // menu in layout information becomes an argument for Context:: set
if($layout_info->menu_count) { if($layout_info->menu_count)
foreach($layout_info->menu as $menu_id => $menu) { {
foreach($layout_info->menu as $menu_id => $menu)
{
if(file_exists($menu->php_file)) @include($menu->php_file); if(file_exists($menu->php_file)) @include($menu->php_file);
Context::set($menu_id, $menu); Context::set($menu_id, $menu);
} }
@ -261,5 +266,6 @@
$this->setTemplateFile('layout_preview'); $this->setTemplateFile('layout_preview');
} }
} }
?> /* End of file layout.view.php */
/* Location: ./modules/layout/layout.view.php */

View file

@ -1,42 +1,47 @@
<?php <?php
/** /**
* @class memberAdminController * @class memberAdminController
* @author NHN (developers@xpressengine.com) * @author NHN (developers@xpressengine.com)
* member module of the admin controller class * member module of the admin controller class
**/ */
class memberAdminController extends member
class memberAdminController extends member { {
/** /**
* Initialization * Initialization
* @return void * @return void
**/ */
function init() { function init()
{
} }
/** /**
* Add a user (Administrator) * Add a user (Administrator)
* @return void|Object (void : success, Object : fail) * @return void|Object (void : success, Object : fail)
**/ */
function procMemberAdminInsert() { function procMemberAdminInsert()
{
// if(Context::getRequestMethod() == "GET") return new Object(-1, "msg_invalid_request"); // if(Context::getRequestMethod() == "GET") return new Object(-1, "msg_invalid_request");
// Extract the necessary information in advance // Extract the necessary information in advance
$args = Context::gets('member_srl','email_address','find_account_answer', 'allow_mailing','allow_message','denied','is_admin','description','group_srl_list','limit_date'); $args = Context::gets('member_srl','email_address','find_account_answer', 'allow_mailing','allow_message','denied','is_admin','description','group_srl_list','limit_date');
$oMemberModel = &getModel ('member'); $oMemberModel = &getModel ('member');
$config = $oMemberModel->getMemberConfig (); $config = $oMemberModel->getMemberConfig ();
$getVars = array(); $getVars = array();
if ($config->signupForm){ if($config->signupForm)
foreach($config->signupForm as $formInfo) { {
if($formInfo->isDefaultForm && ($formInfo->isUse || $formInfo->required || $formInfo->mustRequired)){ foreach($config->signupForm as $formInfo)
{
if($formInfo->isDefaultForm && ($formInfo->isUse || $formInfo->required || $formInfo->mustRequired))
{
$getVars[] = $formInfo->name; $getVars[] = $formInfo->name;
} }
} }
} }
foreach($getVars as $val){ foreach($getVars as $val)
{
$args->{$val} = Context::get($val); $args->{$val} = Context::get($val);
} }
$args->member_srl = Context::get('member_srl'); $args->member_srl = Context::get('member_srl');
if (Context::get('reset_password')) if(Context::get('reset_password'))
$args->password = Context::get('reset_password'); $args->password = Context::get('reset_password');
else unset($args->password); else unset($args->password);
@ -53,7 +58,8 @@
$extra_vars = delObjectVars($all_args, $args); $extra_vars = delObjectVars($all_args, $args);
$args->extra_vars = serialize($extra_vars); $args->extra_vars = serialize($extra_vars);
// Check if an original member exists having the member_srl // Check if an original member exists having the member_srl
if($args->member_srl) { if($args->member_srl)
{
// Create a member model object // Create a member model object
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
// Get memebr profile // Get memebr profile
@ -66,19 +72,24 @@
// remove whitespace // remove whitespace
$checkInfos = array('user_id', 'nick_name', 'email_address'); $checkInfos = array('user_id', 'nick_name', 'email_address');
$replaceStr = array("\r\n", "\r", "\n", " ", "\t", "\xC2\xAD"); $replaceStr = array("\r\n", "\r", "\n", " ", "\t", "\xC2\xAD");
foreach($checkInfos as $val){ foreach($checkInfos as $val)
if(isset($args->{$val})){ {
if(isset($args->{$val}))
{
$args->{$val} = str_replace($replaceStr, '', $args->{$val}); $args->{$val} = str_replace($replaceStr, '', $args->{$val});
} }
} }
$oMemberController = &getController('member'); $oMemberController = &getController('member');
// Execute insert or update depending on the value of member_srl // Execute insert or update depending on the value of member_srl
if(!$args->member_srl) { if(!$args->member_srl)
{
$args->password = Context::get('password'); $args->password = Context::get('password');
$output = $oMemberController->insertMember($args); $output = $oMemberController->insertMember($args);
$msg_code = 'success_registed'; $msg_code = 'success_registed';
} else { }
else
{
$output = $oMemberController->updateMember($args); $output = $oMemberController->updateMember($args);
$msg_code = 'success_updated'; $msg_code = 'success_updated';
} }
@ -92,17 +103,20 @@
$this->setMessage($msg_code); $this->setMessage($msg_code);
$profile_image = $_FILES['profile_image']; $profile_image = $_FILES['profile_image'];
if (is_uploaded_file($profile_image['tmp_name'])){ if(is_uploaded_file($profile_image['tmp_name']))
{
$oMemberController->insertProfileImage($args->member_srl, $profile_image['tmp_name']); $oMemberController->insertProfileImage($args->member_srl, $profile_image['tmp_name']);
} }
$image_mark = $_FILES['image_mark']; $image_mark = $_FILES['image_mark'];
if (is_uploaded_file($image_mark['tmp_name'])){ if(is_uploaded_file($image_mark['tmp_name']))
{
$oMemberController->insertImageMark($args->member_srl, $image_mark['tmp_name']); $oMemberController->insertImageMark($args->member_srl, $image_mark['tmp_name']);
} }
$image_name = $_FILES['image_name']; $image_name = $_FILES['image_name'];
if (is_uploaded_file($image_name['tmp_name'])){ if (is_uploaded_file($image_name['tmp_name']))
{
$oMemberController->insertImageName($args->member_srl, $image_name['tmp_name']); $oMemberController->insertImageName($args->member_srl, $image_name['tmp_name']);
} }
@ -113,8 +127,9 @@
/** /**
* Delete a user (Administrator) * Delete a user (Administrator)
* @return void|Object (void : success, Object : fail) * @return void|Object (void : success, Object : fail)
**/ */
function procMemberAdminDelete() { function procMemberAdminDelete()
{
// Separate all the values into DB entries and others // Separate all the values into DB entries and others
$member_srl = Context::get('member_srl'); $member_srl = Context::get('member_srl');
@ -153,9 +168,6 @@
$args = Context::gets( $args = Context::gets(
'enable_confirm', 'enable_confirm',
'limit_day', 'limit_day',
'agreement', 'agreement',
'redirect_url', 'redirect_url',
'profile_image', 'profile_image_max_width', 'profile_image_max_height', 'profile_image', 'profile_image_max_width', 'profile_image_max_height',
@ -190,16 +202,6 @@
$args->signature = $args->signature != 'Y' ? 'N' : 'Y'; $args->signature = $args->signature != 'Y' ? 'N' : 'Y';
$args->identifier = $all_args->identifier; $args->identifier = $all_args->identifier;
// set default // set default
$all_args->is_nick_name_public = 'Y'; $all_args->is_nick_name_public = 'Y';
$all_args->is_find_account_question_public = 'N'; $all_args->is_find_account_question_public = 'N';
@ -223,22 +225,15 @@
$signupItem->imageType = (strpos($key, 'image') !== false); $signupItem->imageType = (strpos($key, 'image') !== false);
$signupItem->required = ($all_args->{$key} == 'required') || $signupItem->mustRequired || $signupItem->isIdentifier; $signupItem->required = ($all_args->{$key} == 'required') || $signupItem->mustRequired || $signupItem->isIdentifier;
$signupItem->isUse = in_array($key, $usable_list) || $signupItem->required; $signupItem->isUse = in_array($key, $usable_list) || $signupItem->required;
$signupItem->isPublic = ($all_args->{'is_'.$key.'_public'} == 'Y' && $signupItem->isUse) ? 'Y' : 'N'; $signupItem->isPublic = ($all_args->{'is_'.$key.'_public'} == 'Y' && $signupItem->isUse) ? 'Y' : 'N';
if($signupItem->imageType)
{
if ($signupItem->imageType){
$signupItem->max_width = $all_args->{$key.'_max_width'}; $signupItem->max_width = $all_args->{$key.'_max_width'};
$signupItem->max_height = $all_args->{$key.'_max_height'}; $signupItem->max_height = $all_args->{$key.'_max_height'};
} }
// set extends form // set extends form
if (!$signupItem->isDefaultForm) if(!$signupItem->isDefaultForm)
{ {
$extendItem = $extendItems[$all_args->{$key.'_member_join_form_srl'}]; $extendItem = $extendItems[$all_args->{$key.'_member_join_form_srl'}];
$signupItem->type = $extendItem->column_type; $signupItem->type = $extendItem->column_type;
@ -246,18 +241,9 @@
$signupItem->title = $extendItem->column_title; $signupItem->title = $extendItem->column_title;
$signupItem->description = $extendItem->description; $signupItem->description = $extendItem->description;
// check usable value change, required/option // check usable value change, required/option
if ($signupItem->isUse != ($extendItem->is_active == 'Y') || $signupItem->required != ($extendItem->required == 'Y')){ if($signupItem->isUse != ($extendItem->is_active == 'Y') || $signupItem->required != ($extendItem->required == 'Y'))
{
unset($update_args); unset($update_args);
$update_args->member_join_form_srl = $extendItem->member_join_form_srl; $update_args->member_join_form_srl = $extendItem->member_join_form_srl;
$update_args->is_active = $signupItem->isUse?'Y':'N'; $update_args->is_active = $signupItem->isUse?'Y':'N';
@ -266,26 +252,7 @@
$update_output = executeQuery('member.updateJoinForm', $update_args); $update_output = executeQuery('member.updateJoinForm', $update_args);
} }
unset($extendItem); unset($extendItem);
} }
$signupForm[] = $signupItem; $signupForm[] = $signupItem;
} }
@ -400,7 +367,8 @@
$orgUse = array('email_address', 'password', 'find_account_question', 'user_id', 'nick_name', 'user_name', 'homepage', 'blog', 'birthday'); $orgUse = array('email_address', 'password', 'find_account_question', 'user_id', 'nick_name', 'user_name', 'homepage', 'blog', 'birthday');
$list_order = array(); $list_order = array();
foreach($items as $key){ foreach($items as $key)
{
unset($signupItem); unset($signupItem);
$signupItem->isDefaultForm = true; $signupItem->isDefaultForm = true;
$signupItem->name = $key; $signupItem->name = $key;
@ -419,13 +387,15 @@
$signupItem->max_width = $config->{$key.'_max_width'}; $signupItem->max_width = $config->{$key.'_max_width'};
$signupItem->max_height = $config->{$key.'_max_height'}; $signupItem->max_height = $config->{$key.'_max_height'};
} }
if ($signupItem->isIdentifier) if($signupItem->isIdentifier)
array_unshift($list_order, $signupItem); array_unshift($list_order, $signupItem);
else else
$list_order[] = $signupItem; $list_order[] = $signupItem;
} }
if (is_array($extendItems)){ if(is_array($extendItems))
foreach($extendItems as $form_srl=>$item_info){ {
foreach($extendItems as $form_srl=>$item_info)
{
unset($signupItem); unset($signupItem);
$signupItem->name = $item_info->column_name; $signupItem->name = $item_info->column_name;
$signupItem->title = $item_info->column_title; $signupItem->title = $item_info->column_title;
@ -436,7 +406,8 @@
$signupItem->isUse = ($item_info->is_active == 'Y'); $signupItem->isUse = ($item_info->is_active == 'Y');
$signupItem->isPublic = ($signupItem->isUse) ? 'Y' : 'N'; $signupItem->isPublic = ($signupItem->isUse) ? 'Y' : 'N';
$signupItem->description = $item_info->description; $signupItem->description = $item_info->description;
if ($signupItem->imageType){ if($signupItem->imageType)
{
$signupItem->max_width = $config->{$key.'_max_width'}; $signupItem->max_width = $config->{$key.'_max_width'};
$signupItem->max_height = $config->{$key.'_max_height'}; $signupItem->max_height = $config->{$key.'_max_height'};
} }
@ -452,40 +423,58 @@
* @param object $signupForm (user define signup form) * @param object $signupForm (user define signup form)
* @param string $agreement * @param string $agreement
* @return void * @return void
**/ */
function _createSignupRuleset($signupForm, $agreement = null){ function _createSignupRuleset($signupForm, $agreement = null){
$xml_file = './files/ruleset/insertMember.xml'; $xml_file = './files/ruleset/insertMember.xml';
$buff = '<?xml version="1.0" encoding="utf-8"?>' . PHP_EOL $buff = '<?xml version="1.0" encoding="utf-8"?>' . PHP_EOL.
.'<ruleset version="1.5.0">' . PHP_EOL '<ruleset version="1.5.0">' . PHP_EOL.
.'<customrules>' . PHP_EOL '<customrules>' . PHP_EOL.
.'</customrules>' . PHP_EOL '</customrules>' . PHP_EOL.
.'<fields>' . PHP_EOL . '%s' . PHP_EOL . '</fields>' . PHP_EOL '<fields>' . PHP_EOL . '%s' . PHP_EOL . '</fields>' . PHP_EOL.
.'</ruleset>'; '</ruleset>';
$fields = array(); $fields = array();
if ($agreement){ if ($agreement)
{
$fields[] = '<field name="accept_agreement"><if test="$act == \'procMemberInsert\'" attr="required" value="true" /></field>'; $fields[] = '<field name="accept_agreement"><if test="$act == \'procMemberInsert\'" attr="required" value="true" /></field>';
} }
foreach($signupForm as $formInfo){ foreach($signupForm as $formInfo)
if ($formInfo->required || $formInfo->mustRequired){ {
if($formInfo->type == 'tel' || $formInfo->type == 'kr_zip'){ if($formInfo->required || $formInfo->mustRequired)
{
if($formInfo->type == 'tel' || $formInfo->type == 'kr_zip')
{
$fields[] = sprintf('<field name="%s[]" required="true" />', $formInfo->name); $fields[] = sprintf('<field name="%s[]" required="true" />', $formInfo->name);
}else if($formInfo->name == 'password'){ }
else if($formInfo->name == 'password')
{
$fields[] = '<field name="password"><if test="$act == \'procMemberInsert\'" attr="required" value="true" /><if test="$act == \'procMemberInsert\'" attr="length" value="3:20" /></field>'; $fields[] = '<field name="password"><if test="$act == \'procMemberInsert\'" attr="required" value="true" /><if test="$act == \'procMemberInsert\'" attr="length" value="3:20" /></field>';
$fields[] = '<field name="password2"><if test="$act == \'procMemberInsert\'" attr="required" value="true" /><if test="$act == \'procMemberInsert\'" attr="equalto" value="password" /></field>'; $fields[] = '<field name="password2"><if test="$act == \'procMemberInsert\'" attr="required" value="true" /><if test="$act == \'procMemberInsert\'" attr="equalto" value="password" /></field>';
}else if($formInfo->name == 'find_account_question'){ }
else if($formInfo->name == 'find_account_question')
{
$fields[] = '<field name="find_account_question" required="true" />'; $fields[] = '<field name="find_account_question" required="true" />';
$fields[] = '<field name="find_account_answer" required="true" length=":250" />'; $fields[] = '<field name="find_account_answer" required="true" length=":250" />';
}else if($formInfo->name == 'email_address'){ }
else if($formInfo->name == 'email_address')
{
$fields[] = sprintf('<field name="%s" required="true" rule="email"/>', $formInfo->name); $fields[] = sprintf('<field name="%s" required="true" rule="email"/>', $formInfo->name);
}else if($formInfo->name == 'user_id'){ }
else if($formInfo->name == 'user_id')
{
$fields[] = sprintf('<field name="%s" required="true" rule="userid" length="3:20" />', $formInfo->name); $fields[] = sprintf('<field name="%s" required="true" rule="userid" length="3:20" />', $formInfo->name);
}else if(strpos($formInfo->name, 'image') !== false){ }
else if(strpos($formInfo->name, 'image') !== false)
{
$fields[] = sprintf('<field name="%s"><if test="$act != \'procMemberAdminInsert\' &amp;&amp; $__%s_exist != \'true\'" attr="required" value="true" /></field>', $formInfo->name, $formInfo->name); $fields[] = sprintf('<field name="%s"><if test="$act != \'procMemberAdminInsert\' &amp;&amp; $__%s_exist != \'true\'" attr="required" value="true" /></field>', $formInfo->name, $formInfo->name);
}else if($formInfo->name == 'signature'){ }
else if($formInfo->name == 'signature')
{
$fields[] = '<field name="signature"><if test="$member_srl" attr="required" value="true" /></field>'; $fields[] = '<field name="signature"><if test="$member_srl" attr="required" value="true" /></field>';
}else{ }
else
{
$fields[] = sprintf('<field name="%s" required="true" />', $formInfo->name); $fields[] = sprintf('<field name="%s" required="true" />', $formInfo->name);
} }
} }
@ -504,15 +493,16 @@
* Create ruleset file of login * Create ruleset file of login
* @param string $identifier (login identifier) * @param string $identifier (login identifier)
* @return void * @return void
**/ */
function _createLoginRuleset($identifier){ function _createLoginRuleset($identifier)
{
$xml_file = './files/ruleset/login.xml'; $xml_file = './files/ruleset/login.xml';
$buff = '<?xml version="1.0" encoding="utf-8"?>' $buff = '<?xml version="1.0" encoding="utf-8"?>'.
.'<ruleset version="1.5.0">' '<ruleset version="1.5.0">'.
.'<customrules>' '<customrules>'.
.'</customrules>' '</customrules>'.
.'<fields>%s</fields>' '<fields>%s</fields>'.
.'</ruleset>'; '</ruleset>';
$fields = array(); $fields = array();
$trans = array('email_address'=>'email', 'user_id'=> 'userid'); $trans = array('email_address'=>'email', 'user_id'=> 'userid');
@ -531,18 +521,19 @@
* Create ruleset file of find account * Create ruleset file of find account
* @param string $identifier (login identifier) * @param string $identifier (login identifier)
* @return void * @return void
**/ */
function _createFindAccountByQuestion($identifier){ function _createFindAccountByQuestion($identifier)
{
$xml_file = './files/ruleset/find_member_account_by_question.xml'; $xml_file = './files/ruleset/find_member_account_by_question.xml';
$buff = '<?xml version="1.0" encoding="utf-8"?>' $buff = '<?xml version="1.0" encoding="utf-8"?>'.
.'<ruleset version="1.5.0">' '<ruleset version="1.5.0">'.
.'<customrules>' '<customrules>'.
.'</customrules>' '</customrules>'.
.'<fields>%s</fields>' '<fields>%s</fields>'.
.'</ruleset>'; '</ruleset>';
$fields = array(); $fields = array();
if ($identifier == 'user_id') if($identifier == 'user_id')
$fields[] = '<field name="user_id" required="true" rule="userid" />'; $fields[] = '<field name="user_id" required="true" rule="userid" />';
$fields[] = '<field name="email_address" required="true" rule="email" />'; $fields[] = '<field name="email_address" required="true" rule="email" />';
@ -560,8 +551,9 @@
/** /**
* Add a user group * Add a user group
* @return void|Object (void : success, Object : fail) * @return void|Object (void : success, Object : fail)
**/ */
function procMemberAdminInsertGroup() { function procMemberAdminInsertGroup()
{
$args = Context::gets('title','description','is_default','image_mark'); $args = Context::gets('title','description','is_default','image_mark');
$output = $this->insertGroup($args); $output = $this->insertGroup($args);
if(!$output->toBool()) return $output; if(!$output->toBool()) return $output;
@ -577,8 +569,9 @@
/** /**
* Update user group information * Update user group information
* @return void|Object (void : success, Object : fail) * @return void|Object (void : success, Object : fail)
**/ */
function procMemberAdminUpdateGroup() { function procMemberAdminUpdateGroup()
{
$group_srl = Context::get('group_srl'); $group_srl = Context::get('group_srl');
$args = Context::gets('group_srl','title','description','is_default','image_mark'); $args = Context::gets('group_srl','title','description','is_default','image_mark');
@ -597,8 +590,9 @@
/** /**
* Update user group information * Update user group information
* @return void|Object (void : success, Object : fail) * @return void|Object (void : success, Object : fail)
**/ */
function procMemberAdminDeleteGroup() { function procMemberAdminDeleteGroup()
{
$group_srl = Context::get('group_srl'); $group_srl = Context::get('group_srl');
$output = $this->deleteGroup($group_srl); $output = $this->deleteGroup($group_srl);
@ -615,7 +609,7 @@
/** /**
* Add a join form * Add a join form
* @return void|Object (void : success, Object : fail) * @return void|Object (void : success, Object : fail)
**/ */
function procMemberAdminInsertJoinForm() function procMemberAdminInsertJoinForm()
{ {
$args->member_join_form_srl = Context::get('member_join_form_srl'); $args->member_join_form_srl = Context::get('member_join_form_srl');
@ -629,18 +623,24 @@
if(!in_array(strtoupper($args->required), array('Y','N')))$args->required = 'N'; if(!in_array(strtoupper($args->required), array('Y','N')))$args->required = 'N';
$args->description = Context::get('description') ? Context::get('description') : ''; $args->description = Context::get('description') ? Context::get('description') : '';
// Default values // Default values
if(in_array($args->column_type, array('checkbox','select','radio')) && count($args->default_value) ) { if(in_array($args->column_type, array('checkbox','select','radio')) && count($args->default_value))
{
$args->default_value = serialize($args->default_value); $args->default_value = serialize($args->default_value);
} else { }
else
{
$args->default_value = ''; $args->default_value = '';
} }
// Fix if member_join_form_srl exists. Add if not exists. // Fix if member_join_form_srl exists. Add if not exists.
$isInsert; $isInsert;
if(!$args->member_join_form_srl){ if(!$args->member_join_form_srl)
{
$isInsert = true; $isInsert = true;
$args->list_order = $args->member_join_form_srl = getNextSequence(); $args->list_order = $args->member_join_form_srl = getNextSequence();
$output = executeQuery('member.insertJoinForm', $args); $output = executeQuery('member.insertJoinForm', $args);
}else{ }
else
{
$output = executeQuery('member.updateJoinForm', $args); $output = executeQuery('member.updateJoinForm', $args);
} }
@ -660,11 +660,16 @@
$config = $oMemberModel->getMemberConfig(); $config = $oMemberModel->getMemberConfig();
unset($config->agreement); unset($config->agreement);
if($isInsert){ if($isInsert)
{
$config->signupForm[] = $signupItem; $config->signupForm[] = $signupItem;
}else{ }
foreach($config->signupForm as $key=>$val){ else
if ($val->member_join_form_srl == $signupItem->member_join_form_srl){ {
foreach($config->signupForm as $key=>$val)
{
if($val->member_join_form_srl == $signupItem->member_join_form_srl)
{
$config->signupForm[$key] = $signupItem; $config->signupForm[$key] = $signupItem;
} }
} }
@ -681,8 +686,9 @@
/** /**
* Delete a join form * Delete a join form
* @return void * @return void
**/ */
function procMemberAdminDeleteJoinForm(){ function procMemberAdminDeleteJoinForm()
{
$member_join_form_srl = Context::get('member_join_form_srl'); $member_join_form_srl = Context::get('member_join_form_srl');
$this->deleteJoinForm($member_join_form_srl); $this->deleteJoinForm($member_join_form_srl);
@ -690,8 +696,10 @@
$config = $oMemberModel->getMemberConfig(); $config = $oMemberModel->getMemberConfig();
unset($config->agreement); unset($config->agreement);
foreach($config->signupForm as $key=>$val){ foreach($config->signupForm as $key=>$val)
if ($val->member_join_form_srl == $member_join_form_srl){ {
if($val->member_join_form_srl == $member_join_form_srl)
{
unset($config->signupForm[$key]); unset($config->signupForm[$key]);
break; break;
} }
@ -704,12 +712,14 @@
* Move up/down the member join form and modify it * Move up/down the member join form and modify it
* @deprecated * @deprecated
* @return void * @return void
**/ */
function procMemberAdminUpdateJoinForm() { function procMemberAdminUpdateJoinForm()
{
$member_join_form_srl = Context::get('member_join_form_srl'); $member_join_form_srl = Context::get('member_join_form_srl');
$mode = Context::get('mode'); $mode = Context::get('mode');
switch($mode) { switch($mode)
{
case 'up' : case 'up' :
$output = $this->moveJoinFormUp($member_join_form_srl); $output = $this->moveJoinFormUp($member_join_form_srl);
$msg_code = 'success_moved'; $msg_code = 'success_moved';
@ -733,8 +743,9 @@
/** /**
* selected member manager layer in dispAdminList * selected member manager layer in dispAdminList
* @return void|Object (void : success, Object : fail) * @return void|Object (void : success, Object : fail)
**/ */
function procMemberAdminSelectedMemberManage(){ function procMemberAdminSelectedMemberManage()
{
$var = Context::getRequestVars(); $var = Context::getRequestVars();
$groups = $var->groups; $groups = $var->groups;
$members = $var->member_srls; $members = $var->member_srls;
@ -743,42 +754,53 @@
$oDB->begin(); $oDB->begin();
$oMemberController = &getController('member'); $oMemberController = &getController('member');
foreach($members as $key=>$member_srl){ foreach($members as $key=>$member_srl)
{
unset($args); unset($args);
$args->member_srl = $member_srl; $args->member_srl = $member_srl;
switch($var->type){ switch($var->type)
case 'modify':{ {
if (count($groups) > 0){ case 'modify':
{
if(count($groups) > 0)
{
$args->site_srl = 0; $args->site_srl = 0;
// One of its members to delete all the group // One of its members to delete all the group
$output = executeQuery('member.deleteMemberGroupMember', $args); $output = executeQuery('member.deleteMemberGroupMember', $args);
if(!$output->toBool()) { if(!$output->toBool())
{
$oDB->rollback(); $oDB->rollback();
return $output; return $output;
} }
// Enter one of the loop a // Enter one of the loop a
foreach($groups as $group_srl) { foreach($groups as $group_srl)
{
$output = $oMemberController->addMemberToGroup($args->member_srl,$group_srl); $output = $oMemberController->addMemberToGroup($args->member_srl,$group_srl);
if(!$output->toBool()) { if(!$output->toBool())
{
$oDB->rollback(); $oDB->rollback();
return $output; return $output;
} }
} }
} }
if ($var->denied){ if($var->denied)
{
$args->denied = $var->denied; $args->denied = $var->denied;
$output = executeQuery('member.updateMemberDeniedInfo', $args); $output = executeQuery('member.updateMemberDeniedInfo', $args);
if(!$output->toBool()) { if(!$output->toBool())
{
$oDB->rollback(); $oDB->rollback();
return $output; return $output;
} }
} }
break; break;
} }
case 'delete':{ case 'delete':
{
$oMemberController->memberInfo = null; $oMemberController->memberInfo = null;
$output = $oMemberController->deleteMember($member_srl); $output = $oMemberController->deleteMember($member_srl);
if(!$output->toBool()) { if(!$output->toBool())
{
$oDB->rollback(); $oDB->rollback();
return $output; return $output;
} }
@ -788,14 +810,16 @@
$message = $var->message; $message = $var->message;
// Send a message // Send a message
if($message) { if($message)
{
$oCommunicationController = &getController('communication'); $oCommunicationController = &getController('communication');
$logged_info = Context::get('logged_info'); $logged_info = Context::get('logged_info');
$title = cut_str($message,10,'...'); $title = cut_str($message,10,'...');
$sender_member_srl = $logged_info->member_srl; $sender_member_srl = $logged_info->member_srl;
foreach($members as $member_srl){ foreach($members as $member_srl)
{
$oCommunicationController->sendMessage($sender_member_srl, $member_srl, $title, $message, false); $oCommunicationController->sendMessage($sender_member_srl, $member_srl, $title, $message, false);
} }
} }
@ -808,15 +832,18 @@
* Delete the selected members * Delete the selected members
* @return void|Object (void : success, Object : fail) * @return void|Object (void : success, Object : fail)
*/ */
function procMemberAdminDeleteMembers() { function procMemberAdminDeleteMembers()
{
$target_member_srls = Context::get('target_member_srls'); $target_member_srls = Context::get('target_member_srls');
if(!$target_member_srls) return new Object(-1, 'msg_invalid_request'); if(!$target_member_srls) return new Object(-1, 'msg_invalid_request');
$member_srls = explode(',', $target_member_srls); $member_srls = explode(',', $target_member_srls);
$oMemberController = &getController('member'); $oMemberController = &getController('member');
foreach($member_srls as $member) { foreach($member_srls as $member)
{
$output = $oMemberController->deleteMember($member); $output = $oMemberController->deleteMember($member);
if(!$output->toBool()) { if(!$output->toBool())
{
$this->setMessage('failed_deleted'); $this->setMessage('failed_deleted');
return $output; return $output;
} }
@ -828,8 +855,9 @@
/** /**
* Update a group of selected memebrs * Update a group of selected memebrs
* @return void|Object (void : success, Object : fail) * @return void|Object (void : success, Object : fail)
**/ */
function procMemberAdminUpdateMembersGroup() { function procMemberAdminUpdateMembersGroup()
{
$member_srl = Context::get('member_srl'); $member_srl = Context::get('member_srl');
if(!$member_srl) return new Object(-1,'msg_invalid_request'); if(!$member_srl) return new Object(-1,'msg_invalid_request');
$member_srls = explode(',',$member_srl); $member_srls = explode(',',$member_srl);
@ -843,17 +871,20 @@
// Delete a group of selected members // Delete a group of selected members
$args->member_srl = $member_srl; $args->member_srl = $member_srl;
$output = executeQuery('member.deleteMembersGroup', $args); $output = executeQuery('member.deleteMembersGroup', $args);
if(!$output->toBool()) { if(!$output->toBool())
{
$oDB->rollback(); $oDB->rollback();
return $output; return $output;
} }
// Add to a selected group // Add to a selected group
$group_count = count($group_srls); $group_count = count($group_srls);
$member_count = count($member_srls); $member_count = count($member_srls);
for($j=0;$j<$group_count;$j++) { for($j=0;$j<$group_count;$j++)
{
$group_srl = (int)trim($group_srls[$j]); $group_srl = (int)trim($group_srls[$j]);
if(!$group_srl) continue; if(!$group_srl) continue;
for($i=0;$i<$member_count;$i++) { for($i=0;$i<$member_count;$i++)
{
$member_srl = (int)trim($member_srls[$i]); $member_srl = (int)trim($member_srls[$i]);
if(!$member_srl) continue; if(!$member_srl) continue;
@ -862,7 +893,8 @@
$args->group_srl = $group_srl; $args->group_srl = $group_srl;
$output = executeQuery('member.addMemberToGroup', $args); $output = executeQuery('member.addMemberToGroup', $args);
if(!$output->toBool()) { if(!$output->toBool())
{
$oDB->rollback(); $oDB->rollback();
return $output; return $output;
} }
@ -871,7 +903,8 @@
$oDB->commit(); $oDB->commit();
$this->setMessage('success_updated'); $this->setMessage('success_updated');
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) { if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON')))
{
global $lang; global $lang;
htmlHeader(); htmlHeader();
alertScript($lang->success_updated); alertScript($lang->success_updated);
@ -886,14 +919,16 @@
/** /**
* Add a denied ID * Add a denied ID
* @return void * @return void
**/ */
function procMemberAdminInsertDeniedID() { function procMemberAdminInsertDeniedID()
{
$user_ids = Context::get('user_id'); $user_ids = Context::get('user_id');
$user_ids = explode(',',$user_ids); $user_ids = explode(',',$user_ids);
$success_ids = array(); $success_ids = array();
foreach($user_ids as $val){ foreach($user_ids as $val)
{
$output = $this->insertDeniedID($val, ''); $output = $this->insertDeniedID($val, '');
if($output->toBool()) $success_ids[] = $val; if($output->toBool()) $success_ids[] = $val;
} }
@ -907,7 +942,7 @@
/** /**
* Add a denied nick name * Add a denied nick name
* @return void * @return void
**/ */
function procMemberAdminUpdateDeniedNickName() function procMemberAdminUpdateDeniedNickName()
{ {
$nick_name = Context::get('nick_name'); $nick_name = Context::get('nick_name');
@ -943,12 +978,14 @@
/** /**
* Update denied ID * Update denied ID
* @return void|Object (void : success, Object : fail) * @return void|Object (void : success, Object : fail)
**/ */
function procMemberAdminUpdateDeniedID() { function procMemberAdminUpdateDeniedID()
{
$user_id = Context::get('user_id'); $user_id = Context::get('user_id');
$mode = Context::get('mode'); $mode = Context::get('mode');
switch($mode) { switch($mode)
{
case 'delete' : case 'delete' :
$output = $this->deleteDeniedID($user_id); $output = $this->deleteDeniedID($user_id);
if(!$output->toBool()) return $output; if(!$output->toBool()) return $output;
@ -964,8 +1001,9 @@
* Add an administrator * Add an administrator
* @param object $args * @param object $args
* @return object (info of added member) * @return object (info of added member)
**/ */
function insertAdmin($args) { function insertAdmin($args)
{
// Assign an administrator // Assign an administrator
$args->is_admin = 'Y'; $args->is_admin = 'Y';
// Get admin group and set // Get admin group and set
@ -982,8 +1020,9 @@
* @param int $source_group_srl * @param int $source_group_srl
* @param int $target_group_srl * @param int $target_group_srl
* @return Object * @return Object
**/ */
function changeGroup($source_group_srl, $target_group_srl) { function changeGroup($source_group_srl, $target_group_srl)
{
$args->source_group_srl = $source_group_srl; $args->source_group_srl = $source_group_srl;
$args->target_group_srl = $target_group_srl; $args->target_group_srl = $target_group_srl;
@ -994,18 +1033,22 @@
* find_account_answerInsert a group * find_account_answerInsert a group
* @param object $args * @param object $args
* @return Object * @return Object
**/ */
function insertGroup($args) { function insertGroup($args)
{
if(!$args->site_srl) $args->site_srl = 0; if(!$args->site_srl) $args->site_srl = 0;
// Check the value of is_default. // Check the value of is_default.
if($args->is_default!='Y') { if($args->is_default!='Y')
{
$args->is_default = 'N'; $args->is_default = 'N';
} else { }
else
{
$output = executeQuery('member.updateGroupDefaultClear', $args); $output = executeQuery('member.updateGroupDefaultClear', $args);
if(!$output->toBool()) return $output; if(!$output->toBool()) return $output;
} }
if (!$args->group_srl) $args->group_srl = getNextSequence(); if(!$args->group_srl) $args->group_srl = getNextSequence();
return executeQuery('member.insertGroup', $args); return executeQuery('member.insertGroup', $args);
} }
@ -1013,13 +1056,17 @@
* Modify Group Information * Modify Group Information
* @param object $args * @param object $args
* @return Object * @return Object
**/ */
function updateGroup($args) { function updateGroup($args)
{
// Check the value of is_default. // Check the value of is_default.
if(!$args->group_srl) return new Object(-1, 'lang->msg_not_founded'); if(!$args->group_srl) return new Object(-1, 'lang->msg_not_founded');
if($args->is_default!='Y') { if($args->is_default!='Y')
{
$args->is_default = 'N'; $args->is_default = 'N';
} else { }
else
{
$output = executeQuery('member.updateGroupDefaultClear', $args); $output = executeQuery('member.updateGroupDefaultClear', $args);
if(!$output->toBool()) return $output; if(!$output->toBool()) return $output;
} }
@ -1032,8 +1079,9 @@
* @param int $group_srl * @param int $group_srl
* @param int $site_srl * @param int $site_srl
* @return Object * @return Object
**/ */
function deleteGroup($group_srl, $site_srl = 0) { function deleteGroup($group_srl, $site_srl = 0)
{
// Create a member model object // Create a member model object
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
// Check the group_srl (If is_default == 'Y', it cannot be deleted) // Check the group_srl (If is_default == 'Y', it cannot be deleted)
@ -1056,8 +1104,9 @@
/** /**
* Set group config * Set group config
* @return void * @return void
**/ */
function procMemberAdminGroupConfig() { function procMemberAdminGroupConfig()
{
$vars = Context::getRequestVars(); $vars = Context::getRequestVars();
if(is_array($vars->group_titles)) if(is_array($vars->group_titles))
@ -1082,7 +1131,8 @@
// group data save // group data save
$group_srls = $vars->group_srls; $group_srls = $vars->group_srls;
foreach($group_srls as $order=>$group_srl){ foreach($group_srls as $order=>$group_srl)
{
unset($update_args); unset($update_args);
$update_args->title = $vars->group_titles[$order]; $update_args->title = $vars->group_titles[$order];
$update_args->is_default = ($vars->defaultGroup == $group_srl)?'Y':'N'; $update_args->is_default = ($vars->defaultGroup == $group_srl)?'Y':'N';
@ -1090,10 +1140,12 @@
$update_args->image_mark = $vars->image_marks[$order]; $update_args->image_mark = $vars->image_marks[$order];
$update_args->list_order = $order + 1; $update_args->list_order = $order + 1;
if (is_numeric($group_srl)){ if(is_numeric($group_srl))
{
$update_args->group_srl = $group_srl; $update_args->group_srl = $group_srl;
$output = $this->updateGroup($update_args); $output = $this->updateGroup($update_args);
}else }
else
$output = $this->insertGroup($update_args); $output = $this->insertGroup($update_args);
} }
@ -1106,11 +1158,13 @@
/** /**
* Set group order * Set group order
* @return void * @return void
**/ */
function procMemberAdminUpdateGroupOrder() { function procMemberAdminUpdateGroupOrder()
{
$vars = Context::getRequestVars(); $vars = Context::getRequestVars();
foreach($vars->group_srls as $key => $val){ foreach($vars->group_srls as $key => $val)
{
$args->group_srl = $val; $args->group_srl = $val;
$args->list_order = $key + 1; $args->list_order = $key + 1;
executeQuery('member.updateMemberGroupListOrder', $args); executeQuery('member.updateMemberGroupListOrder', $args);
@ -1124,8 +1178,9 @@
* @param string $user_id * @param string $user_id
* @param string $description * @param string $description
* @return Object * @return Object
**/ */
function insertDeniedID($user_id, $description = '') { function insertDeniedID($user_id, $description = '')
{
$args->user_id = $user_id; $args->user_id = $user_id;
$args->description = $description; $args->description = $description;
$args->list_order = -1*getNextSequence(); $args->list_order = -1*getNextSequence();
@ -1145,8 +1200,9 @@
* delete a denied id * delete a denied id
* @param string $user_id * @param string $user_id
* @return object * @return object
**/ */
function deleteDeniedID($user_id) { function deleteDeniedID($user_id)
{
$args->user_id = $user_id; $args->user_id = $user_id;
return executeQuery('member.deleteDeniedID', $args); return executeQuery('member.deleteDeniedID', $args);
} }
@ -1155,7 +1211,7 @@
* delete a denied nick name * delete a denied nick name
* @param string $nick_name * @param string $nick_name
* @return object * @return object
**/ */
function deleteDeniedNickName($nick_name) function deleteDeniedNickName($nick_name)
{ {
$args->nick_name = $nick_name; $args->nick_name = $nick_name;
@ -1166,8 +1222,9 @@
* Delete a join form * Delete a join form
* @param int $member_join_form_srl * @param int $member_join_form_srl
* @return Object * @return Object
**/ */
function deleteJoinForm($member_join_form_srl) { function deleteJoinForm($member_join_form_srl)
{
$args->member_join_form_srl = $member_join_form_srl; $args->member_join_form_srl = $member_join_form_srl;
$output = executeQuery('member.deleteJoinForm', $args); $output = executeQuery('member.deleteJoinForm', $args);
return $output; return $output;
@ -1178,8 +1235,9 @@
* @deprecated * @deprecated
* @param int $member_join_form_srl * @param int $member_join_form_srl
* @return Object * @return Object
**/ */
function moveJoinFormUp($member_join_form_srl) { function moveJoinFormUp($member_join_form_srl)
{
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
// Get information of the join form // Get information of the join form
$args->member_join_form_srl = $member_join_form_srl; $args->member_join_form_srl = $member_join_form_srl;
@ -1193,7 +1251,8 @@
if(count($join_form_srl_list)<2) return new Object(); if(count($join_form_srl_list)<2) return new Object();
$prev_member_join_form = NULL; $prev_member_join_form = NULL;
foreach($join_form_list as $key => $val) { foreach($join_form_list as $key => $val)
{
if($val->member_join_form_srl == $member_join_form_srl) break; if($val->member_join_form_srl == $member_join_form_srl) break;
$prev_member_join_form = $val; $prev_member_join_form = $val;
} }
@ -1220,8 +1279,9 @@
* @deprecated * @deprecated
* @param int $member_join_form_srl * @param int $member_join_form_srl
* @return Object * @return Object
**/ */
function moveJoinFormDown($member_join_form_srl) { function moveJoinFormDown($member_join_form_srl)
{
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
// Get information of the join form // Get information of the join form
$args->member_join_form_srl = $member_join_form_srl; $args->member_join_form_srl = $member_join_form_srl;
@ -1234,7 +1294,8 @@
$join_form_srl_list = array_keys($join_form_list); $join_form_srl_list = array_keys($join_form_list);
if(count($join_form_srl_list)<2) return new Object(); if(count($join_form_srl_list)<2) return new Object();
for($i=0;$i<count($join_form_srl_list);$i++) { for($i=0;$i<count($join_form_srl_list);$i++)
{
if($join_form_srl_list[$i]==$member_join_form_srl) break; if($join_form_srl_list[$i]==$member_join_form_srl) break;
} }
@ -1257,5 +1318,6 @@
return new Object(); return new Object();
} }
} }
?> /* End of file member.admin.controller.php */
/* Location: ./modules/member/member.admin.controller.php */

View file

@ -1,50 +1,52 @@
<?php <?php
/** /**
* @class memberAdminModel * @class memberAdminModel
* @author NHN (developers@xpressengine.com) * @author NHN (developers@xpressengine.com)
* admin model class of member module * admin model class of member module
**/ */
class memberAdminModel extends member
class memberAdminModel extends member { {
/** /**
* info of member * info of member
* @var object * @var object
**/ */
var $member_info = NULL; var $member_info = NULL;
/** /**
* info of member groups * info of member groups
* @var array * @var array
**/ */
var $member_groups = NULL; var $member_groups = NULL;
/** /**
* info of sign up form * info of sign up form
* @var array * @var array
**/ */
var $join_form_list = NULL; var $join_form_list = NULL;
/** /**
* Initialization * Initialization
* @return void * @return void
**/ */
function init() { function init()
{
} }
/** /**
* Get a member list * Get a member list
* *
* @return object|array (object : when member count is 1, array : when member count is more than 1) * @return object|array (object : when member count is 1, array : when member count is more than 1)
**/ */
function getMemberList() { function getMemberList()
{
// Search option // Search option
$args->is_admin = Context::get('is_admin')=='Y'?'Y':''; $args->is_admin = Context::get('is_admin')=='Y'?'Y':'';
$args->is_denied = Context::get('is_denied')=='Y'?'Y':''; $args->is_denied = Context::get('is_denied')=='Y'?'Y':'';
$args->selected_group_srl = Context::get('selected_group_srl'); $args->selected_group_srl = Context::get('selected_group_srl');
$filter = Context::get('filter_type'); $filter = Context::get('filter_type');
switch($filter){ switch($filter)
{
case 'super_admin' : $args->is_admin = 'Y';break; case 'super_admin' : $args->is_admin = 'Y';break;
case 'site_admin' : $args->member_srls = $this->getSiteAdminMemberSrls();break; case 'site_admin' : $args->member_srls = $this->getSiteAdminMemberSrls();break;
case 'enable' : $args->is_denied = 'N';break; case 'enable' : $args->is_denied = 'N';break;
@ -54,8 +56,10 @@
$search_target = trim(Context::get('search_target')); $search_target = trim(Context::get('search_target'));
$search_keyword = trim(Context::get('search_keyword')); $search_keyword = trim(Context::get('search_keyword'));
if($search_target && $search_keyword) { if($search_target && $search_keyword)
switch($search_target) { {
switch($search_target)
{
case 'user_id' : case 'user_id' :
if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword); if($search_keyword) $search_keyword = str_replace(' ','%',$search_keyword);
$args->s_user_id = $search_keyword; $args->s_user_id = $search_keyword;
@ -100,11 +104,13 @@
// Change the query id if selected_group_srl exists (for table join) // Change the query id if selected_group_srl exists (for table join)
$sort_order = Context::get('sort_order'); $sort_order = Context::get('sort_order');
$sort_index = Context::get('sort_index'); $sort_index = Context::get('sort_index');
if(!$sort_index) { if(!$sort_index)
{
$sort_index = "list_order"; $sort_index = "list_order";
} }
if(!$sort_order) { if(!$sort_order)
{
$sort_order = 'asc'; $sort_order = 'asc';
} }
@ -113,10 +119,13 @@
$sort_order = 'desc'; $sort_order = 'desc';
} }
if($args->selected_group_srl) { if($args->selected_group_srl)
{
$query_id = 'member.getMemberListWithinGroup'; $query_id = 'member.getMemberListWithinGroup';
$args->sort_index = "member.".$sort_index; $args->sort_index = "member.".$sort_index;
} else { }
else
{
$query_id = 'member.getMemberList'; $query_id = 'member.getMemberList';
$args->sort_index = $sort_index; $args->sort_index = $sort_index;
} }
@ -139,8 +148,9 @@
* @param int $page * @param int $page
* *
* @return array * @return array
**/ */
function getSiteMemberList($site_srl, $page = 1) { function getSiteMemberList($site_srl, $page = 1)
{
$args->site_srl = $site_srl; $args->site_srl = $site_srl;
$args->page = $page; $args->page = $page;
$args->list_count = 40; $args->list_count = 40;
@ -154,13 +164,15 @@
* Get member_srls lists about site admins * Get member_srls lists about site admins
* *
* @return array * @return array
**/ */
function getSiteAdminMemberSrls(){ function getSiteAdminMemberSrls()
{
$output = executeQueryArray('member.getSiteAdminMemberSrls'); $output = executeQueryArray('member.getSiteAdminMemberSrls');
if (!$output->toBool() || !$output->data) return array(); if(!$output->toBool() || !$output->data) return array();
$member_srls = array(); $member_srls = array();
foreach($output->data as $member_info){ foreach($output->data as $member_info)
{
$member_srls[] = $member_info->member_srl; $member_srls[] = $member_info->member_srl;
} }
@ -171,11 +183,13 @@
* Return colorset list of a skin in the member module * Return colorset list of a skin in the member module
* *
* @return void * @return void
**/ */
function getMemberAdminColorset() { function getMemberAdminColorset()
{
$skin = Context::get('skin'); $skin = Context::get('skin');
if(!$skin) $tpl = ""; if(!$skin) $tpl = "";
else { else
{
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
$skin_info = $oModuleModel->loadSkinInfo($this->module_path, $skin); $skin_info = $oModuleModel->loadSkinInfo($this->module_path, $skin);
Context::set('skin_info', $skin_info); Context::set('skin_info', $skin_info);
@ -198,8 +212,9 @@
* @param string $date * @param string $date
* *
* @return int * @return int
**/ */
function getMemberCountByDate($date = '') { function getMemberCountByDate($date = '')
{
if($date) $args->regDate = date('Ymd', strtotime($date)); if($date) $args->regDate = date('Ymd', strtotime($date));
$output = executeQuery('member.getMemberCountByDate', $args); $output = executeQuery('member.getMemberCountByDate', $args);
@ -214,8 +229,9 @@
* @param string $date * @param string $date
* *
* @return int * @return int
**/ */
function getMemberGroupMemberCountByDate($date = '') { function getMemberGroupMemberCountByDate($date = '')
{
if($date) $args->regDate = date('Ymd', strtotime($date)); if($date) $args->regDate = date('Ymd', strtotime($date));
$output = executeQuery('member.getMemberGroupMemberCountByDate', $args); $output = executeQuery('member.getMemberGroupMemberCountByDate', $args);
@ -228,17 +244,20 @@
* Return add join Form * Return add join Form
* *
* @return void * @return void
**/ */
function getMemberAdminInsertJoinForm() { function getMemberAdminInsertJoinForm()
{
$member_join_form_srl = Context::get('member_join_form_srl'); $member_join_form_srl = Context::get('member_join_form_srl');
$args->member_join_form_srl = $member_join_form_srl; $args->member_join_form_srl = $member_join_form_srl;
$output = executeQuery('member.getJoinForm', $args); $output = executeQuery('member.getJoinForm', $args);
if($output->toBool() && $output->data){ if($output->toBool() && $output->data)
{
$formInfo = $output->data; $formInfo = $output->data;
$default_value = $formInfo->default_value; $default_value = $formInfo->default_value;
if ($default_value){ if($default_value)
{
$default_value = unserialize($default_value); $default_value = unserialize($default_value);
Context::set('default_value', $default_value); Context::set('default_value', $default_value);
} }
@ -251,22 +270,23 @@
$this->add('tpl', str_replace("\n"," ",$tpl)); $this->add('tpl', str_replace("\n"," ",$tpl));
} }
/** /**
* check allowed target ip address when login for admin. * check allowed target ip address when login for admin.
* *
* @return boolean (true : allowed, false : refuse) * @return boolean (true : allowed, false : refuse)
**/ */
function getMemberAdminIPCheck() { function getMemberAdminIPCheck()
{
$db_info = Context::getDBInfo(); $db_info = Context::getDBInfo();
$admin_ip_list = $db_info->admin_ip_list; $admin_ip_list = $db_info->admin_ip_list;
$admin_ip_list = explode(",",$admin_ip_list); $admin_ip_list = explode(",",$admin_ip_list);
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
$ip = $_SERVER['REMOTE_ADDR']; $ip = $_SERVER['REMOTE_ADDR'];
$falg = false; $falg = false;
foreach($admin_ip_list as $admin_ip_list_key => $admin_ip_value) { foreach($admin_ip_list as $admin_ip_list_key => $admin_ip_value)
if(preg_match('/^\d{1,3}(?:.(\d{1,3}|\*)){3}\s*$/', $admin_ip_value, $matches) && $ip) { {
if(preg_match('/^\d{1,3}(?:.(\d{1,3}|\*)){3}\s*$/', $admin_ip_value, $matches) && $ip)
{
$admin_ip = $matches[0]; $admin_ip = $matches[0];
$admin_ip = str_replace('*','',$admin_ip); $admin_ip = str_replace('*','',$admin_ip);
$admin_ip_patterns[] = preg_quote($admin_ip); $admin_ip_patterns[] = preg_quote($admin_ip);
@ -274,10 +294,10 @@
if(preg_match($admin_ip_pattern, $ip, $matches)) return true; if(preg_match($admin_ip_pattern, $ip, $matches)) return true;
$flag = true; $flag = true;
} }
} }
if(!$flag) return true; if(!$flag) return true;
return false; return false;
} }
} }
?> /* End of file member.admin.model.php */
/* Location: ./modules/member/member.admin.model.php */

View file

@ -1,38 +1,37 @@
<?php <?php
/** /**
* @class memberAdminView * @class memberAdminView
* @author NHN (developers@xpressengine.com) * @author NHN (developers@xpressengine.com)
* member module's admin view class * member module's admin view class
**/ */
class memberAdminView extends member
class memberAdminView extends member { {
/** /**
* Group list * Group list
* *
* @var array * @var array
**/ */
var $group_list = NULL; var $group_list = NULL;
/** /**
* Selected member info * Selected member info
* *
* @var array * @var array
**/ */
var $memberInfo = NULL; var $memberInfo = NULL;
/** /**
* Member module config. * Member module config.
* *
* @var Object * @var Object
**/ */
var $memberConfig = NULL; var $memberConfig = NULL;
/** /**
* initialization * initialization
* *
* @return void * @return void
**/ */
function init() function init()
{ {
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
@ -68,15 +67,17 @@
* display member list * display member list
* *
* @return void * @return void
**/ */
function dispMemberAdminList() { function dispMemberAdminList()
{
$oMemberAdminModel = &getAdminModel('member'); $oMemberAdminModel = &getAdminModel('member');
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
$output = $oMemberAdminModel->getMemberList(); $output = $oMemberAdminModel->getMemberList();
$filter = Context::get('filter_type'); $filter = Context::get('filter_type');
global $lang; global $lang;
switch($filter){ switch($filter)
{
case 'super_admin' : Context::set('filter_type_title', $lang->cmd_show_super_admin_member);break; case 'super_admin' : Context::set('filter_type_title', $lang->cmd_show_super_admin_member);break;
case 'site_admin' : Context::set('filter_type_title', $lang->cmd_show_site_admin_member);break; case 'site_admin' : Context::set('filter_type_title', $lang->cmd_show_site_admin_member);break;
case 'enable' : Context::set('filter_type_title', $lang->approval);break; case 'enable' : Context::set('filter_type_title', $lang->approval);break;
@ -84,7 +85,8 @@
default : Context::set('filter_type_title', $lang->cmd_show_all_member);break; default : Context::set('filter_type_title', $lang->cmd_show_all_member);break;
} }
// retrieve list of groups for each member // retrieve list of groups for each member
if($output->data) { if($output->data)
{
foreach($output->data as $key => $member) foreach($output->data as $key => $member)
{ {
$output->data[$key]->group_list = $oMemberModel->getMemberGroups($member->member_srl,0); $output->data[$key]->group_list = $oMemberModel->getMemberGroups($member->member_srl,0);
@ -94,10 +96,13 @@
$memberIdentifiers = array('user_id'=>'user_id', 'user_name'=>'user_name', 'nick_name'=>'nick_name'); $memberIdentifiers = array('user_id'=>'user_id', 'user_name'=>'user_name', 'nick_name'=>'nick_name');
$usedIdentifiers = array(); $usedIdentifiers = array();
if (is_array($config->signupForm)){ if(is_array($config->signupForm))
foreach($config->signupForm as $signupItem){ {
if (!count($memberIdentifiers)) break; foreach($config->signupForm as $signupItem)
if(in_array($signupItem->name, $memberIdentifiers) && ($signupItem->required || $signupItem->isUse)){ {
if(!count($memberIdentifiers)) break;
if(in_array($signupItem->name, $memberIdentifiers) && ($signupItem->required || $signupItem->isUse))
{
unset($memberIdentifiers[$signupItem->name]); unset($memberIdentifiers[$signupItem->name]);
$usedIdentifiers[$signupItem->name] = $lang->{$signupItem->name}; $usedIdentifiers[$signupItem->name] = $lang->{$signupItem->name};
} }
@ -205,7 +210,7 @@
* default configuration for member management * default configuration for member management
* *
* @return void * @return void
**/ */
function dispMemberAdminConfigOLD() function dispMemberAdminConfigOLD()
{ {
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
@ -277,8 +282,9 @@
* display member information * display member information
* *
* @return void * @return void
**/ */
function dispMemberAdminInfo() { function dispMemberAdminInfo()
{
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
@ -308,8 +314,9 @@
* display member insert form * display member insert form
* *
* @return void * @return void
**/ */
function dispMemberAdminInsert() { function dispMemberAdminInsert()
{
// retrieve extend form // retrieve extend form
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
@ -318,7 +325,8 @@
Context::set('member_info', $memberInfo); Context::set('member_info', $memberInfo);
// get an editor for the signature // get an editor for the signature
if($memberInfo->member_srl) { if($memberInfo->member_srl)
{
$oEditorModel = &getModel('editor'); $oEditorModel = &getModel('editor');
$option->primary_key_name = 'member_srl'; $option->primary_key_name = 'member_srl';
$option->content_key_name = 'signature'; $option->content_key_name = 'signature';
@ -355,8 +363,9 @@
* @param boolean $isAdmin (true : admin, false : not admin) * @param boolean $isAdmin (true : admin, false : not admin)
* *
* @return array * @return array
**/ */
function _getMemberInputTag($memberInfo, $isAdmin = false){ function _getMemberInputTag($memberInfo, $isAdmin = false)
{
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
$extend_form_list = $oMemberModel->getCombineJoinForm($memberInfo); $extend_form_list = $oMemberModel->getCombineJoinForm($memberInfo);
@ -374,9 +383,10 @@
$formTags = array(); $formTags = array();
global $lang; global $lang;
foreach($member_config->signupForm as $no=>$formInfo){ foreach($member_config->signupForm as $no=>$formInfo)
if (!$formInfo->isUse)continue; {
if ($formInfo->name == $member_config->identifier || $formInfo->name == 'password') continue; if(!$formInfo->isUse)continue;
if($formInfo->name == $member_config->identifier || $formInfo->name == 'password') continue;
unset($formTag); unset($formTag);
$inputTag = ''; $inputTag = '';
$formTag->title = ($formInfo->isDefaultForm) ? $lang->{$formInfo->name} : $formInfo->title; $formTag->title = ($formInfo->isDefaultForm) ? $lang->{$formInfo->name} : $formInfo->title;
@ -390,131 +400,172 @@
} }
$formTag->name = $formInfo->name; $formTag->name = $formInfo->name;
if($formInfo->isDefaultForm){ if($formInfo->isDefaultForm)
if($formInfo->imageType){ {
if($formInfo->imageType)
{
$formTag->type = 'image'; $formTag->type = 'image';
if($formInfo->name == 'profile_image'){ if($formInfo->name == 'profile_image')
{
$target = $memberInfo['profile_image']; $target = $memberInfo['profile_image'];
$functionName = 'doDeleteProfileImage'; $functionName = 'doDeleteProfileImage';
}elseif($formInfo->name == 'image_name'){ }
else if($formInfo->name == 'image_name')
{
$target = $memberInfo['image_name']; $target = $memberInfo['image_name'];
$functionName = 'doDeleteImageName'; $functionName = 'doDeleteImageName';
}elseif($formInfo->name == 'image_mark'){ }
else if($formInfo->name == 'image_mark')
{
$target = $memberInfo['image_mark']; $target = $memberInfo['image_mark'];
$functionName = 'doDeleteImageMark'; $functionName = 'doDeleteImageMark';
} }
if($target->src){
$inputTag = sprintf('<p class="a"><input type="hidden" name="__%s_exist" value="true" /><span id="%s"><img src="%s" alt="%s" /> <button type="button" class="text" onclick="%s(%d);return false;">%s</button></span></p>' if($target->src)
,$formInfo->name {
,$formInfo->name.'tag' $inputTag = sprintf('<p class="a"><input type="hidden" name="__%s_exist" value="true" /><span id="%s"><img src="%s" alt="%s" /> <button type="button" class="text" onclick="%s(%d);return false;">%s</button></span></p>',
,$target->src $formInfo->name,
,$formInfo->title $formInfo->name.'tag',
,$functionName $target->src,
,$memberInfo['member_srl'] $formInfo->title,
,$lang->cmd_delete); $functionName,
}else{ $memberInfo['member_srl'],
$lang->cmd_delete);
}
else
{
$inputTag = sprintf('<input type="hidden" name="__%s_exist" value="false" />', $formInfo->name); $inputTag = sprintf('<input type="hidden" name="__%s_exist" value="false" />', $formInfo->name);
} }
$inputTag .= sprintf('<p class="a"><input type="file" name="%s" id="%s" value="" /></p><p><span class="desc">%s : %dpx, %s : %dpx</span></p>' $inputTag .= sprintf('<p class="a"><input type="file" name="%s" id="%s" value="" /></p><p><span class="desc">%s : %dpx, %s : %dpx</span></p>',
,$formInfo->name $formInfo->name,
,$formInfo->name $formInfo->name,
,$lang->{$formInfo->name.'_max_width'} $lang->{$formInfo->name.'_max_width'},
,$member_config->{$formInfo->name.'_max_width'} $member_config->{$formInfo->name.'_max_width'},
,$lang->{$formInfo->name.'_max_height'} $lang->{$formInfo->name.'_max_height'},
,$member_config->{$formInfo->name.'_max_height'}); $member_config->{$formInfo->name.'_max_height'});
}//end imageType }//end imageType
elseif($formInfo->name == 'birthday'){ else if($formInfo->name == 'birthday')
{
$formTag->type = 'date'; $formTag->type = 'date';
$inputTag = sprintf('<input type="hidden" name="birthday" id="date_birthday" value="%s" /><input type="date" placeholder="YYYY-MM-DD" class="inputDate" id="birthday" value="%s" /> <input type="button" value="%s" class="x_btn dateRemover" />' $inputTag = sprintf('<input type="hidden" name="birthday" id="date_birthday" value="%s" /><input type="date" placeholder="YYYY-MM-DD" class="inputDate" id="birthday" value="%s" /> <input type="button" value="%s" class="x_btn dateRemover" />',
,$memberInfo['birthday'] $memberInfo['birthday'],
,zdate($memberInfo['birthday'], 'Y-m-d', false) zdate($memberInfo['birthday'], 'Y-m-d', false),
,$lang->cmd_delete); $lang->cmd_delete);
}elseif($formInfo->name == 'find_account_question'){ }
else if($formInfo->name == 'find_account_question')
{
$formTag->type = 'select'; $formTag->type = 'select';
$inputTag = '<select name="find_account_question" id="find_account_question" style="display:block;margin:0 0 8px 0">%s</select>'; $inputTag = '<select name="find_account_question" id="find_account_question" style="display:block;margin:0 0 8px 0">%s</select>';
$optionTag = array(); $optionTag = array();
foreach($lang->find_account_question_items as $key=>$val){ foreach($lang->find_account_question_items as $key=>$val)
{
if($key == $memberInfo['find_account_question']) $selected = 'selected="selected"'; if($key == $memberInfo['find_account_question']) $selected = 'selected="selected"';
else $selected = ''; else $selected = '';
$optionTag[] = sprintf('<option value="%s" %s >%s</option>' $optionTag[] = sprintf('<option value="%s" %s >%s</option>',
,$key $key,
,$selected $selected,
,$val); $val);
} }
$inputTag = sprintf($inputTag, implode('', $optionTag)); $inputTag = sprintf($inputTag, implode('', $optionTag));
$inputTag .= '<input type="text" name="find_account_answer" id="find_account_answer" title="'.Context::getLang('find_account_answer').'" value="'.$memberInfo['find_account_answer'].'" />'; $inputTag .= '<input type="text" name="find_account_answer" id="find_account_answer" title="'.Context::getLang('find_account_answer').'" value="'.$memberInfo['find_account_answer'].'" />';
}elseif($formInfo->name == 'homepage'){ }
else if($formInfo->name == 'homepage')
{
$formTag->type = 'url'; $formTag->type = 'url';
$inputTag = '<input type="url" name="homepage" id="homepage" value="'.$memberInfo['homepage'].'" />'; $inputTag = '<input type="url" name="homepage" id="homepage" value="'.$memberInfo['homepage'].'" />';
}elseif($formInfo->name == 'blog'){ }
else if($formInfo->name == 'blog')
{
$formTag->type = 'url'; $formTag->type = 'url';
$inputTag = '<input type="url" name="blog" id="blog" value="'.$memberInfo['blog'].'" />'; $inputTag = '<input type="url" name="blog" id="blog" value="'.$memberInfo['blog'].'" />';
}else{ }
else
{
$formTag->type = 'text'; $formTag->type = 'text';
$inputTag = sprintf('<input type="text" name="%s" id="%s" value="%s" />' $inputTag = sprintf('<input type="text" name="%s" id="%s" value="%s" />',
,$formInfo->name $formInfo->name,
,$formInfo->name $formInfo->name,
,$memberInfo[$formInfo->name]); $memberInfo[$formInfo->name]);
} }
}//end isDefaultForm }//end isDefaultForm
else{ else
{
$extendForm = $extend_form_list[$formInfo->member_join_form_srl]; $extendForm = $extend_form_list[$formInfo->member_join_form_srl];
$replace = array('column_name' => $extendForm->column_name, $replace = array('column_name' => $extendForm->column_name, 'value' => $extendForm->value);
'value' => $extendForm->value);
$extentionReplace = array(); $extentionReplace = array();
$formTag->type = $extendForm->column_type; $formTag->type = $extendForm->column_type;
if($extendForm->column_type == 'text'){ if($extendForm->column_type == 'text')
{
$template = '<input type="text" name="%column_name%" id="%column_name%" value="%value%" />'; $template = '<input type="text" name="%column_name%" id="%column_name%" value="%value%" />';
}elseif($extendForm->column_type == 'homepage'){ }
else if($extendForm->column_type == 'homepage')
{
$template = '<input type="url" name="%column_name%" id="%column_name%" value="%value%" />'; $template = '<input type="url" name="%column_name%" id="%column_name%" value="%value%" />';
}elseif($extendForm->column_type == 'email_address'){ }
else if($extendForm->column_type == 'email_address')
{
$template = '<input type="email" name="%column_name%" id="%column_name%" value="%value%" />'; $template = '<input type="email" name="%column_name%" id="%column_name%" value="%value%" />';
}elseif($extendForm->column_type == 'tel'){ }
else if($extendForm->column_type == 'tel')
{
$extentionReplace = array('tel_0' => $extendForm->value[0], $extentionReplace = array('tel_0' => $extendForm->value[0],
'tel_1' => $extendForm->value[1], 'tel_1' => $extendForm->value[1],
'tel_2' => $extendForm->value[2]); 'tel_2' => $extendForm->value[2]);
$template = '<input type="text" name="%column_name%[]" value="%tel_0%" size="4" maxlength="4" style="width:30px" />-<input type="text" name="%column_name%[]" value="%tel_1%" size="4" maxlength="4" style="width:30px" />-<input type="text" name="%column_name%[]" value="%tel_2%" size="4" maxlength="4" style="width:30px" />'; $template = '<input type="text" name="%column_name%[]" value="%tel_0%" size="4" maxlength="4" style="width:30px" />-<input type="text" name="%column_name%[]" value="%tel_1%" size="4" maxlength="4" style="width:30px" />-<input type="text" name="%column_name%[]" value="%tel_2%" size="4" maxlength="4" style="width:30px" />';
}elseif($extendForm->column_type == 'textarea'){ }
else if($extendForm->column_type == 'textarea')
{
$template = '<textarea name="%column_name%" rows="8" cols="42">%value%</textarea>'; $template = '<textarea name="%column_name%" rows="8" cols="42">%value%</textarea>';
}elseif($extendForm->column_type == 'checkbox'){ }
else if($extendForm->column_type == 'checkbox')
{
$template = ''; $template = '';
if($extendForm->default_value){ if($extendForm->default_value)
{
$__i = 0; $__i = 0;
foreach($extendForm->default_value as $v){ foreach($extendForm->default_value as $v)
{
$checked = ''; $checked = '';
if(is_array($extendForm->value) && in_array($v, $extendForm->value))$checked = 'checked="checked"'; if(is_array($extendForm->value) && in_array($v, $extendForm->value))$checked = 'checked="checked"';
$template .= '<input type="checkbox" id="%column_name%'.$__i.'" name="%column_name%[]" value="'.htmlspecialchars($v).'" '.$checked.' /><label for="%column_name%'.$__i.'">'.$v.'</label>'; $template .= '<input type="checkbox" id="%column_name%'.$__i.'" name="%column_name%[]" value="'.htmlspecialchars($v).'" '.$checked.' /><label for="%column_name%'.$__i.'">'.$v.'</label>';
$__i++; $__i++;
} }
} }
}elseif($extendForm->column_type == 'radio'){ }
else if($extendForm->column_type == 'radio')
{
$template = ''; $template = '';
if($extendForm->default_value){ if($extendForm->default_value)
{
$template = '<ul class="radio">%s</ul>'; $template = '<ul class="radio">%s</ul>';
$optionTag = array(); $optionTag = array();
foreach($extendForm->default_value as $v){ foreach($extendForm->default_value as $v)
{
if($extendForm->value == $v)$checked = 'checked="checked"'; if($extendForm->value == $v)$checked = 'checked="checked"';
else $checked = ''; else $checked = '';
$optionTag[] = '<li><input type="radio" name="%column_name%" value="'.$v.'" '.$checked.' />'.$v.'</li>'; $optionTag[] = '<li><input type="radio" name="%column_name%" value="'.$v.'" '.$checked.' />'.$v.'</li>';
} }
$template = sprintf($template, implode('', $optionTag)); $template = sprintf($template, implode('', $optionTag));
} }
}elseif($extendForm->column_type == 'select'){ }
else if($extendForm->column_type == 'select')
{
$template = '<select name="'.$formInfo->name.'" id="'.$formInfo->name.'">%s</select>'; $template = '<select name="'.$formInfo->name.'" id="'.$formInfo->name.'">%s</select>';
$optionTag = array(); $optionTag = array();
if($extendForm->default_value){ if($extendForm->default_value)
foreach($extendForm->default_value as $v){ {
foreach($extendForm->default_value as $v)
{
if($v == $extendForm->value) $selected = 'selected="selected"'; if($v == $extendForm->value) $selected = 'selected="selected"';
else $selected = ''; else $selected = '';
$optionTag[] = sprintf('<option value="%s" %s >%s</option>' $optionTag[] = sprintf('<option value="%s" %s >%s</option>', $v, $selected, $v);
,$v
,$selected
,$v);
} }
} }
$template = sprintf($template, implode('', $optionTag)); $template = sprintf($template, implode('', $optionTag));
}elseif($extendForm->column_type == 'kr_zip'){ }
else if($extendForm->column_type == 'kr_zip')
{
Context::loadFile(array('./modules/member/tpl/js/krzip_search.js', 'body'), true); Context::loadFile(array('./modules/member/tpl/js/krzip_search.js', 'body'), true);
$extentionReplace = array( $extentionReplace = array(
'msg_kr_address' => $lang->msg_kr_address, 'msg_kr_address' => $lang->msg_kr_address,
@ -542,11 +593,14 @@
</div> </div>
<script>jQuery(function($){ $.krzip('%column_name%') });</script> <script>jQuery(function($){ $.krzip('%column_name%') });</script>
EOD; EOD;
}elseif($extendForm->column_type == 'jp_zip'){ }
else if($extendForm->column_type == 'jp_zip')
{
$template = '<input type="text" name="%column_name%" id="%column_name%" value="%value%" />'; $template = '<input type="text" name="%column_name%" id="%column_name%" value="%value%" />';
}elseif($extendForm->column_type == 'date'){ }
$extentionReplace = array('date' => zdate($extendForm->value, 'Y-m-d'), else if($extendForm->column_type == 'date')
'cmd_delete' => $lang->cmd_delete); {
$extentionReplace = array('date' => zdate($extendForm->value, 'Y-m-d'), 'cmd_delete' => $lang->cmd_delete);
$template = '<input type="hidden" name="%column_name%" id="date_%column_name%" value="%value%" /><input type="date" placeholder="YYYY-MM-DD" class="inputDate" value="%date%" readonly="readonly" /> <input type="button" value="%cmd_delete%" class="dateRemover" />'; $template = '<input type="hidden" name="%column_name%" id="date_%column_name%" value="%value%" /><input type="date" placeholder="YYYY-MM-DD" class="inputDate" value="%date%" readonly="readonly" /> <input type="button" value="%cmd_delete%" class="dateRemover" />';
} }
@ -566,7 +620,7 @@ EOD;
* display group list * display group list
* *
* @return void * @return void
**/ */
function dispMemberAdminGroupList() function dispMemberAdminGroupList()
{ {
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
@ -580,16 +634,18 @@ EOD;
* Display an admin page for memebr join forms * Display an admin page for memebr join forms
* *
* @return void * @return void
**/ */
function dispMemberAdminInsertJoinForm() { function dispMemberAdminInsertJoinForm() {
// Get the value of join_form // Get the value of join_form
$member_join_form_srl = Context::get('member_join_form_srl'); $member_join_form_srl = Context::get('member_join_form_srl');
if($member_join_form_srl) { if($member_join_form_srl)
{
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
$join_form = $oMemberModel->getJoinForm($member_join_form_srl); $join_form = $oMemberModel->getJoinForm($member_join_form_srl);
if(!$join_form) Context::set('member_join_form_srl','',true); if(!$join_form) Context::set('member_join_form_srl','',true);
else { else
{
Context::set('join_form', $join_form); Context::set('join_form', $join_form);
$security = new Security(); $security = new Security();
$security->encodeHTML('join_form..'); $security->encodeHTML('join_form..');
@ -598,6 +654,6 @@ EOD;
} }
$this->setTemplateFile('insert_join_form'); $this->setTemplateFile('insert_join_form');
} }
}
} /* End of file member.admin.view.php */
?> /* Location: ./modules/member/member.admin.view.php */

View file

@ -1,20 +1,20 @@
<?php <?php
/** /**
* @class memberAPI * @class memberAPI
* @author NHN (developers@xpressengine.com) * @author NHN (developers@xpressengine.com)
* API Processing of View Action in the member module * API Processing of View Action in the member module
**/ */
class memberAPI extends member
class memberAPI extends member { {
/** /**
* Content List * Content List
* *
* @param Object $oModule * @param Object $oModule
* *
* @return void * @return void
**/ */
function dispSavedDocumentList(&$oModule) { function dispSavedDocumentList(&$oModule)
{
$document_list = $this->arrangeContentList(Context::get('document_list')); $document_list = $this->arrangeContentList(Context::get('document_list'));
$oModule->add('document_list',$document_list); $oModule->add('document_list',$document_list);
$oModule->add('page_navigation',Context::get('page_navigation')); $oModule->add('page_navigation',Context::get('page_navigation'));
@ -26,10 +26,12 @@
* @param array $content_list * @param array $content_list
* *
* @return array * @return array
**/ */
function arrangeContentList($content_list) { function arrangeContentList($content_list)
{
$output = array(); $output = array();
if(count($content_list)) { if(count($content_list))
{
foreach($content_list as $key => $val) $output[] = $this->arrangeContent($val); foreach($content_list as $key => $val) $output[] = $this->arrangeContent($val);
} }
return $output; return $output;
@ -41,13 +43,16 @@
* @param array $content_list * @param array $content_list
* *
* @return array * @return array
**/ */
function arrangeContent($content) { function arrangeContent($content)
{
$output = null; $output = null;
if($content){ if($content)
{
$output= $content->gets('document_srl','category_srl','nick_name','user_id','user_name','title','content','tags','voted_count','blamed_count','comment_count','regdate','last_update','extra_vars','status'); $output= $content->gets('document_srl','category_srl','nick_name','user_id','user_name','title','content','tags','voted_count','blamed_count','comment_count','regdate','last_update','extra_vars','status');
} }
return $output; return $output;
} }
} }
?> /* End of file member.api.php */
/* Location: ./modules/member/member.api.php */

View file

@ -1,30 +1,31 @@
<?php <?php
/** /**
* @class member * @class member
* @author NHN (developers@xpressengine.com) * @author NHN (developers@xpressengine.com)
* high class of the member module * high class of the member module
**/ */
class member extends ModuleObject { class member extends ModuleObject {
/** /**
* Use sha1 encryption * Use sha1 encryption
* *
* @var boolean * @var boolean
**/ */
var $useSha1 = false; var $useSha1 = false;
/** /**
* constructor * constructor
* *
* @return void * @return void
**/ */
function member() { function member()
{
if(!Context::isInstalled()) return; if(!Context::isInstalled()) return;
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
$member_config = $oModuleModel->getModuleConfig('member'); $member_config = $oModuleModel->getModuleConfig('member');
// Set to use SSL upon actions related member join/information/password and so on // Set to use SSL upon actions related member join/information/password and so on
if(Context::get('_use_ssl') == 'optional') { if(Context::get('_use_ssl') == 'optional')
{
Context::addSSLAction('dispMemberModifyPassword'); Context::addSSLAction('dispMemberModifyPassword');
Context::addSSLAction('dispMemberSignUpForm'); Context::addSSLAction('dispMemberSignUpForm');
Context::addSSLAction('dispMemberModifyInfo'); Context::addSSLAction('dispMemberModifyInfo');
@ -51,8 +52,9 @@
* Implement if additional tasks are necessary when installing * Implement if additional tasks are necessary when installing
* *
* @return Object * @return Object
**/ */
function moduleInstall() { function moduleInstall()
{
// Register action forward (to use in administrator mode) // Register action forward (to use in administrator mode)
$oModuleController = &getController('module'); $oModuleController = &getController('module');
@ -102,7 +104,8 @@
} }
$groups = $oMemberModel->getGroups(); $groups = $oMemberModel->getGroups();
if(!count($groups)) { if(!count($groups))
{
// Set an administrator, regular member(group1), and associate member(group2) // Set an administrator, regular member(group1), and associate member(group2)
$group_args->title = Context::getLang('admin_group'); $group_args->title = Context::getLang('admin_group');
$group_args->is_default = 'N'; $group_args->is_default = 'N';
@ -125,9 +128,11 @@
// Configure administrator information // Configure administrator information
$admin_args->is_admin = 'Y'; $admin_args->is_admin = 'Y';
$output = executeQuery('member.getMemberList', $admin_args); $output = executeQuery('member.getMemberList', $admin_args);
if(!$output->data) { if(!$output->data)
{
$admin_info = Context::gets('password','nick_name','email_address'); $admin_info = Context::gets('password','nick_name','email_address');
if($admin_info->email_address) { if($admin_info->email_address)
{
$admin_info->user_id = 'admin'; $admin_info->user_id = 'admin';
$admin_info->user_name = 'admin'; $admin_info->user_name = 'admin';
// Insert admin information // Insert admin information
@ -139,7 +144,8 @@
// Register denied ID(default + module name) // Register denied ID(default + module name)
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
$module_list = $oModuleModel->getModuleList(); $module_list = $oModuleModel->getModuleList();
foreach($module_list as $key => $val) { foreach($module_list as $key => $val)
{
$oMemberAdminController->insertDeniedID($val->module,''); $oMemberAdminController->insertDeniedID($val->module,'');
} }
$oMemberAdminController->insertDeniedID('www',''); $oMemberAdminController->insertDeniedID('www','');
@ -161,8 +167,9 @@
* a method to check if successfully installed * a method to check if successfully installed
* *
* @return boolean * @return boolean
**/ */
function checkUpdate() { function checkUpdate()
{
$oDB = &DB::getInstance(); $oDB = &DB::getInstance();
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
// check member directory (11/08/2007 added) // check member directory (11/08/2007 added)
@ -195,15 +202,15 @@
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member'); $config = $oModuleModel->getModuleConfig('member');
// check signup form ordering info // check signup form ordering info
if (!$config->signupForm) return true; if(!$config->signupForm) return true;
// check agreement field exist // check agreement field exist
if ($config->agreement) return true; if($config->agreement) return true;
if($config->skin) if($config->skin)
{ {
$config_parse = explode('.', $config->skin); $config_parse = explode('.', $config->skin);
if (count($config_parse) > 1) if(count($config_parse) > 1)
{ {
$template_path = sprintf('./themes/%s/modules/member/', $config_parse[0]); $template_path = sprintf('./themes/%s/modules/member/', $config_parse[0]);
if(is_dir($template_path)) return true; if(is_dir($template_path)) return true;
@ -211,11 +218,11 @@
} }
// supprot multilanguage agreement. // supprot multilanguage agreement.
if (is_readable('./files/member_extra_info/agreement.txt')) return true; if(is_readable('./files/member_extra_info/agreement.txt')) return true;
if (!is_readable('./files/ruleset/insertMember.xml')) return true; if(!is_readable('./files/ruleset/insertMember.xml')) return true;
if (!is_readable('./files/ruleset/login.xml')) return true; if(!is_readable('./files/ruleset/login.xml')) return true;
if (!is_readable('./files/ruleset/find_member_account_by_question.xml')) return true; if(!is_readable('./files/ruleset/find_member_account_by_question.xml')) return true;
return false; return false;
} }
@ -224,8 +231,9 @@
* Execute update * Execute update
* *
* @return Object * @return Object
**/ */
function moduleUpdate() { function moduleUpdate()
{
$oDB = &DB::getInstance(); $oDB = &DB::getInstance();
$oModuleController = &getController('module'); $oModuleController = &getController('module');
// Check member directory // Check member directory
@ -234,54 +242,65 @@
FileHandler::makeDir('./files/member_extra_info/signature'); FileHandler::makeDir('./files/member_extra_info/signature');
FileHandler::makeDir('./files/member_extra_info/profile_image'); FileHandler::makeDir('./files/member_extra_info/profile_image');
// Add a column // Add a column
if (!$oDB->isColumnExists("member_auth_mail", "is_register")) { if(!$oDB->isColumnExists("member_auth_mail", "is_register"))
{
$oDB->addColumn("member_auth_mail", "is_register", "char", 1, "N", true); $oDB->addColumn("member_auth_mail", "is_register", "char", 1, "N", true);
} }
// Add a column(site_srl) to "member_group_member" table (11/15/2008) // Add a column(site_srl) to "member_group_member" table (11/15/2008)
if (!$oDB->isColumnExists("member_group_member", "site_srl")) { if(!$oDB->isColumnExists("member_group_member", "site_srl"))
{
$oDB->addColumn("member_group_member", "site_srl", "number", 11, 0, true); $oDB->addColumn("member_group_member", "site_srl", "number", 11, 0, true);
$oDB->addIndex("member_group_member", "idx_site_srl", "site_srl", false); $oDB->addIndex("member_group_member", "idx_site_srl", "site_srl", false);
} }
if (!$oDB->isColumnExists("member_group", "site_srl")) { if(!$oDB->isColumnExists("member_group", "site_srl"))
{
$oDB->addColumn("member_group", "site_srl", "number", 11, 0, true); $oDB->addColumn("member_group", "site_srl", "number", 11, 0, true);
$oDB->addIndex("member_group","idx_site_title", array("site_srl","title"),true); $oDB->addIndex("member_group","idx_site_title", array("site_srl","title"),true);
} }
if($oDB->isIndexExists("member_group","uni_member_group_title")) { if($oDB->isIndexExists("member_group","uni_member_group_title"))
{
$oDB->dropIndex("member_group","uni_member_group_title",true); $oDB->dropIndex("member_group","uni_member_group_title",true);
} }
// Add a column(list_order) to "member_group" table (05/18/2011) // Add a column(list_order) to "member_group" table (05/18/2011)
if (!$oDB->isColumnExists("member_group", "list_order")) { if(!$oDB->isColumnExists("member_group", "list_order"))
{
$oDB->addColumn("member_group", "list_order", "number", 11, '', true); $oDB->addColumn("member_group", "list_order", "number", 11, '', true);
$oDB->addIndex("member_group","idx_list_order", "list_order",false); $oDB->addIndex("member_group","idx_list_order", "list_order",false);
$output = executeQuery('member.updateAllMemberGroupListOrder'); $output = executeQuery('member.updateAllMemberGroupListOrder');
} }
// Add a column for image_mark (02/14/2009) // Add a column for image_mark (02/14/2009)
if(!$oDB->isColumnExists("member_group", "image_mark")) { if(!$oDB->isColumnExists("member_group", "image_mark"))
{
$oDB->addColumn("member_group", "image_mark", "text"); $oDB->addColumn("member_group", "image_mark", "text");
} }
// Add a column for password expiration date // Add a column for password expiration date
if(!$oDB->isColumnExists("member", "change_password_date")) { if(!$oDB->isColumnExists("member", "change_password_date"))
{
$oDB->addColumn("member", "change_password_date", "date"); $oDB->addColumn("member", "change_password_date", "date");
executeQuery('member.updateAllChangePasswordDate'); executeQuery('member.updateAllChangePasswordDate');
} }
// Add columns of question and answer to verify a password // Add columns of question and answer to verify a password
if(!$oDB->isColumnExists("member", "find_account_question")) { if(!$oDB->isColumnExists("member", "find_account_question"))
{
$oDB->addColumn("member", "find_account_question", "number", 11); $oDB->addColumn("member", "find_account_question", "number", 11);
} }
if(!$oDB->isColumnExists("member", "find_account_answer")) { if(!$oDB->isColumnExists("member", "find_account_answer"))
{
$oDB->addColumn("member", "find_account_answer", "varchar", 250); $oDB->addColumn("member", "find_account_answer", "varchar", 250);
} }
if(!$oDB->isColumnExists("member", "list_order")) { if(!$oDB->isColumnExists("member", "list_order"))
{
$oDB->addColumn("member", "list_order", "number", 11); $oDB->addColumn("member", "list_order", "number", 11);
set_time_limit(0); set_time_limit(0);
$args->list_order = 'member_srl'; $args->list_order = 'member_srl';
executeQuery('member.updateMemberListOrderAll',$args); executeQuery('member.updateMemberListOrderAll',$args);
executeQuery('member.updateMemberListOrderAll'); executeQuery('member.updateMemberListOrderAll');
} }
if(!$oDB->isIndexExists("member","idx_list_order")) { if(!$oDB->isIndexExists("member","idx_list_order"))
{
$oDB->addIndex("member","idx_list_order", array("list_order")); $oDB->addIndex("member","idx_list_order", array("list_order"));
} }
@ -301,7 +320,8 @@
$oMemberAdminController = &getAdminController('member'); $oMemberAdminController = &getAdminController('member');
// check signup form ordering info // check signup form ordering info
if (!$config->signupForm || !is_array($config->signupForm)){ if(!$config->signupForm || !is_array($config->signupForm))
{
$identifier = 'user_id'; $identifier = 'user_id';
$config->signupForm = $oMemberAdminController->createSignupForm($identifier); $config->signupForm = $oMemberAdminController->createSignupForm($identifier);
@ -325,7 +345,7 @@
} }
} }
if (is_readable('./files/member_extra_info/agreement.txt')) if(is_readable('./files/member_extra_info/agreement.txt'))
{ {
$source_file = _XE_PATH_.'files/member_extra_info/agreement.txt'; $source_file = _XE_PATH_.'files/member_extra_info/agreement.txt';
$target_file = _XE_PATH_.'files/member_extra_info/agreement_' . Context::get('lang_type') . '.txt'; $target_file = _XE_PATH_.'files/member_extra_info/agreement_' . Context::get('lang_type') . '.txt';
@ -334,11 +354,11 @@
} }
FileHandler::makeDir('./files/ruleset'); FileHandler::makeDir('./files/ruleset');
if (!is_readable('./files/ruleset/insertMember.xml')) if(!is_readable('./files/ruleset/insertMember.xml'))
$oMemberAdminController->_createSignupRuleset($config->signupForm); $oMemberAdminController->_createSignupRuleset($config->signupForm);
if (!is_readable('./files/ruleset/login.xml')) if(!is_readable('./files/ruleset/login.xml'))
$oMemberAdminController->_createLoginRuleset($config->identifier); $oMemberAdminController->_createLoginRuleset($config->identifier);
if (!is_readable('./files/ruleset/find_member_account_by_question.xml')) if(!is_readable('./files/ruleset/find_member_account_by_question.xml'))
$oMemberAdminController->_createFindAccountByQuestion($config->identifier); $oMemberAdminController->_createFindAccountByQuestion($config->identifier);
return new Object(0, 'success_updated'); return new Object(0, 'success_updated');
@ -348,13 +368,14 @@
* Re-generate the cache file * Re-generate the cache file
* *
* @return void * @return void
**/ */
function recompileCache() { function recompileCache()
{
} }
/** /**
* @brief Record login error and return the error, about IPaddress. * @brief Record login error and return the error, about IPaddress.
**/ */
function recordLoginError($error = 0, $message = 'success') function recordLoginError($error = 0, $message = 'success')
{ {
if($error == 0) return new Object($error, $message); if($error == 0) return new Object($error, $message);
@ -398,7 +419,7 @@
/** /**
* @brief Record login error and return the error, about MemberSrl. * @brief Record login error and return the error, about MemberSrl.
**/ */
function recordMemberLoginError($error = 0, $message = 'success', $args = NULL) function recordMemberLoginError($error = 0, $message = 'success', $args = NULL)
{ {
if($error == 0 || !$args->member_srl) return new Object($error, $message); if($error == 0 || !$args->member_srl) return new Object($error, $message);
@ -429,5 +450,6 @@
} }
return $this->recordLoginError($error, $message); return $this->recordLoginError($error, $message);
} }
} }
?> /* End of file member.class.php */
/* Location: ./modules/member/member.class.php */

File diff suppressed because it is too large Load diff

View file

@ -64,4 +64,5 @@ class memberMobile extends memberView
} }
} }
} }
?> /* End of file member.mobile.php */
/* Location: ./modules/member/member.mobile.php */

View file

@ -1,26 +1,26 @@
<?php <?php
/** /**
* @class memberModel * @class memberModel
* @author NHN (developers@xpressengine.com) * @author NHN (developers@xpressengine.com)
* @brief Model class of the member module * @brief Model class of the member module
**/ */
class memberModel extends member
class memberModel extends member { {
/** /**
* @brief Keep data internally which may be frequently called ... * @brief Keep data internally which may be frequently called ...
**/ */
var $join_form_list = NULL; var $join_form_list = NULL;
/** /**
* @brief Initialization * @brief Initialization
**/ */
function init() { function init()
{
} }
/** /**
* @brief Return member's configuration * @brief Return member's configuration
**/ */
function getMemberConfig() function getMemberConfig()
{ {
static $member_config; static $member_config;
@ -63,13 +63,13 @@
if(!$config->editor_skin || $config->editor_skin == 'default') $config->editor_skin = 'xpresseditor'; if(!$config->editor_skin || $config->editor_skin == 'default') $config->editor_skin = 'xpresseditor';
if(!$config->group_image_mark) $config->group_image_mark = "N"; if(!$config->group_image_mark) $config->group_image_mark = "N";
if (!$config->identifier) $config->identifier = 'user_id'; if(!$config->identifier) $config->identifier = 'user_id';
if (!$config->max_error_count) $config->max_error_count = 10; if(!$config->max_error_count) $config->max_error_count = 10;
if (!$config->max_error_count_time) $config->max_error_count_time = 300; if(!$config->max_error_count_time) $config->max_error_count_time = 300;
if (!$config->signature_editor_skin || $config->signature_editor_skin == 'default') $config->signature_editor_skin = 'xpresseditor'; if(!$config->signature_editor_skin || $config->signature_editor_skin == 'default') $config->signature_editor_skin = 'xpresseditor';
if (!$config->sel_editor_colorset) $config->sel_editor_colorset = 'white'; if(!$config->sel_editor_colorset) $config->sel_editor_colorset = 'white';
$member_config = $config; $member_config = $config;
@ -106,8 +106,9 @@
/** /**
* @brief Display menus of the member * @brief Display menus of the member
**/ */
function getMemberMenu() { function getMemberMenu()
{
// Get member_srl of he target member and logged info of the current user // Get member_srl of he target member and logged info of the current user
$member_srl = Context::get('target_srl'); $member_srl = Context::get('target_srl');
$mid = Context::get('cur_mid'); $mid = Context::get('cur_mid');
@ -128,7 +129,8 @@
$oMemberController = &getController('member'); $oMemberController = &getController('member');
// Display member information (Don't display to non-logged user) // Display member information (Don't display to non-logged user)
if($logged_info->member_srl) { if($logged_info->member_srl)
{
$url = getUrl('','mid',$mid,'act','dispMemberInfo','member_srl',$member_srl); $url = getUrl('','mid',$mid,'act','dispMemberInfo','member_srl',$member_srl);
$oMemberController->addMemberPopupMenu($url,'cmd_view_member_info',$icon_path,'self'); $oMemberController->addMemberPopupMenu($url,'cmd_view_member_info',$icon_path,'self');
} }
@ -136,7 +138,8 @@
if($member_srl != $logged_info->member_srl && $logged_info->member_srl) if($member_srl != $logged_info->member_srl && $logged_info->member_srl)
{ {
// Send an email // Send an email
if($member_info->email_address) { if($member_info->email_address)
{
$url = 'mailto:'.htmlspecialchars($member_info->email_address); $url = 'mailto:'.htmlspecialchars($member_info->email_address);
$oMemberController->addMemberPopupMenu($url,'cmd_send_email',$icon_path); $oMemberController->addMemberPopupMenu($url,'cmd_send_email',$icon_path);
} }
@ -150,7 +153,8 @@
// Call a trigger (after) // Call a trigger (after)
ModuleHandler::triggerCall('member.getMemberMenu', 'after', $null); ModuleHandler::triggerCall('member.getMemberMenu', 'after', $null);
// Display a menu for editting member info to a top administrator // Display a menu for editting member info to a top administrator
if($logged_info->is_admin == 'Y') { if($logged_info->is_admin == 'Y')
{
$url = getUrl('','module','admin','act','dispMemberAdminInsert','member_srl',$member_srl); $url = getUrl('','module','admin','act','dispMemberAdminInsert','member_srl',$member_srl);
$oMemberController->addMemberPopupMenu($url,'cmd_manage_member_info',$icon_path,'MemberModifyInfo'); $oMemberController->addMemberPopupMenu($url,'cmd_manage_member_info',$icon_path,'MemberModifyInfo');
@ -163,7 +167,8 @@
// Change a language of pop-up menu // Change a language of pop-up menu
$menus = Context::get('member_popup_menu_list'); $menus = Context::get('member_popup_menu_list');
$menus_count = count($menus); $menus_count = count($menus);
for($i=0;$i<$menus_count;$i++) { for($i=0;$i<$menus_count;$i++)
{
$menus[$i]->str = Context::getLang($menus[$i]->str); $menus[$i]->str = Context::getLang($menus[$i]->str);
} }
// Get a list of finalized pop-up menu // Get a list of finalized pop-up menu
@ -172,7 +177,7 @@
/** /**
* @brief Check if logged-in * @brief Check if logged-in
**/ */
function isLogged() { function isLogged() {
if($_SESSION['is_logged']&&$_SESSION['ipaddress']==$_SERVER['REMOTE_ADDR']) return true; if($_SESSION['is_logged']&&$_SESSION['ipaddress']==$_SERVER['REMOTE_ADDR']) return true;
@ -182,22 +187,28 @@
/** /**
* @brief Return session information of the logged-in user * @brief Return session information of the logged-in user
**/ */
function getLoggedInfo() { function getLoggedInfo()
{
// Return session info if session info is requested and the user is logged-in // Return session info if session info is requested and the user is logged-in
if($this->isLogged()) { if($this->isLogged())
{
$logged_info = Context::get('logged_info'); $logged_info = Context::get('logged_info');
// Admin/Group list defined depending on site_module_info // Admin/Group list defined depending on site_module_info
$site_module_info = Context::get('site_module_info'); $site_module_info = Context::get('site_module_info');
if($site_module_info->site_srl) { if($site_module_info->site_srl)
{
$logged_info->group_list = $this->getMemberGroups($logged_info->member_srl, $site_module_info->site_srl); $logged_info->group_list = $this->getMemberGroups($logged_info->member_srl, $site_module_info->site_srl);
// Add is_site_admin bool variable into logged_info if site_administrator is // Add is_site_admin bool variable into logged_info if site_administrator is
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
if($oModuleModel->isSiteAdmin($logged_info)) $logged_info->is_site_admin = true; if($oModuleModel->isSiteAdmin($logged_info)) $logged_info->is_site_admin = true;
else $logged_info->is_site_admin = false; else $logged_info->is_site_admin = false;
} else { }
else
{
// Register a default group if the site doesn't have a member group // Register a default group if the site doesn't have a member group
if(!count($logged_info->group_list)) { if(!count($logged_info->group_list))
{
$default_group = $this->getDefaultGroup(0); $default_group = $this->getDefaultGroup(0);
$oMemberController = &getController('member'); $oMemberController = &getController('member');
$oMemberController->addMemberToGroup($logged_info->member_srl, $default_group->group_srl, 0); $oMemberController->addMemberToGroup($logged_info->member_srl, $default_group->group_srl, 0);
@ -216,8 +227,9 @@
/** /**
* @brief Return member information with user_id * @brief Return member information with user_id
**/ */
function getMemberInfoByUserID($user_id, $columnList = array()) { function getMemberInfoByUserID($user_id, $columnList = array())
{
if(!$user_id) return; if(!$user_id) return;
$args->user_id = $user_id; $args->user_id = $user_id;
@ -232,8 +244,9 @@
/** /**
* @brief Return member information with email_address * @brief Return member information with email_address
**/ */
function getMemberInfoByEmailAddress($email_address) { function getMemberInfoByEmailAddress($email_address)
{
if(!$email_address) return; if(!$email_address) return;
$args->email_address = $email_address; $args->email_address = $email_address;
@ -247,8 +260,9 @@
/** /**
* @brief Return member information with member_srl * @brief Return member information with member_srl
**/ */
function getMemberInfoByMemberSrl($member_srl, $site_srl = 0, $columnList = array()) { function getMemberInfoByMemberSrl($member_srl, $site_srl = 0, $columnList = array())
{
if(!$member_srl) return; if(!$member_srl) return;
//columnList size zero... get full member info //columnList size zero... get full member info
@ -278,9 +292,11 @@
/** /**
* @brief Add member info from extra_vars and other information * @brief Add member info from extra_vars and other information
**/ */
function arrangeMemberInfo($info, $site_srl = 0) { function arrangeMemberInfo($info, $site_srl = 0)
if(!$GLOBALS['__member_info__'][$info->member_srl]) { {
if(!$GLOBALS['__member_info__'][$info->member_srl])
{
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member'); $config = $oModuleModel->getModuleConfig('member');
@ -288,7 +304,8 @@
$info->profile_image = $this->getProfileImage($info->member_srl); $info->profile_image = $this->getProfileImage($info->member_srl);
$info->image_name = $this->getImageName($info->member_srl); $info->image_name = $this->getImageName($info->member_srl);
$info->image_mark = $this->getImageMark($info->member_srl); $info->image_mark = $this->getImageMark($info->member_srl);
if($config->group_image_mark=='Y'){ if($config->group_image_mark=='Y')
{
$info->group_mark = $this->getGroupImageMark($info->member_srl,$site_srl); $info->group_mark = $this->getGroupImageMark($info->member_srl,$site_srl);
} }
$info->signature = $this->getSignature($info->member_srl); $info->signature = $this->getSignature($info->member_srl);
@ -296,8 +313,10 @@
$extra_vars = unserialize($info->extra_vars); $extra_vars = unserialize($info->extra_vars);
unset($info->extra_vars); unset($info->extra_vars);
if($extra_vars) { if($extra_vars)
foreach($extra_vars as $key => $val) { {
foreach($extra_vars as $key => $val)
{
if(!is_array($val)) if(preg_match('/\|\@\|/i', $val)) $val = explode('|@|', $val); if(!is_array($val)) if(preg_match('/\|\@\|/i', $val)) $val = explode('|@|', $val);
if(!$info->{$key}) $info->{$key} = $val; if(!$info->{$key}) $info->{$key} = $val;
} }
@ -335,8 +354,9 @@
/** /**
* @brief Get member_srl corresponding to userid * @brief Get member_srl corresponding to userid
**/ */
function getMemberSrlByUserID($user_id) { function getMemberSrlByUserID($user_id)
{
$args->user_id = $user_id; $args->user_id = $user_id;
$output = executeQuery('member.getMemberSrl', $args); $output = executeQuery('member.getMemberSrl', $args);
return $output->data->member_srl; return $output->data->member_srl;
@ -344,8 +364,9 @@
/** /**
* @brief Get member_srl corresponding to EmailAddress * @brief Get member_srl corresponding to EmailAddress
**/ */
function getMemberSrlByEmailAddress($email_address) { function getMemberSrlByEmailAddress($email_address)
{
$args->email_address = $email_address; $args->email_address = $email_address;
$output = executeQuery('member.getMemberSrl', $args); $output = executeQuery('member.getMemberSrl', $args);
return $output->data->member_srl; return $output->data->member_srl;
@ -353,8 +374,9 @@
/** /**
* @brief Get member_srl corresponding to nickname * @brief Get member_srl corresponding to nickname
**/ */
function getMemberSrlByNickName($nick_name) { function getMemberSrlByNickName($nick_name)
{
$args->nick_name = $nick_name; $args->nick_name = $nick_name;
$output = executeQuery('member.getMemberSrl', $args); $output = executeQuery('member.getMemberSrl', $args);
return $output->data->member_srl; return $output->data->member_srl;
@ -362,16 +384,18 @@
/** /**
* @brief Return member_srl of the current logged-in user * @brief Return member_srl of the current logged-in user
**/ */
function getLoggedMemberSrl() { function getLoggedMemberSrl()
{
if(!$this->isLogged()) return; if(!$this->isLogged()) return;
return $_SESSION['member_srl']; return $_SESSION['member_srl'];
} }
/** /**
* @brief Return user_id of the current logged-in user * @brief Return user_id of the current logged-in user
**/ */
function getLoggedUserID() { function getLoggedUserID()
{
if(!$this->isLogged()) return; if(!$this->isLogged()) return;
$logged_info = Context::get('logged_info'); $logged_info = Context::get('logged_info');
return $logged_info->user_id; return $logged_info->user_id;
@ -379,17 +403,21 @@
/** /**
* @brief Get a list of groups which the member_srl belongs to * @brief Get a list of groups which the member_srl belongs to
**/ */
function getMemberGroups($member_srl, $site_srl = 0, $force_reload = false) { function getMemberGroups($member_srl, $site_srl = 0, $force_reload = false)
{
// cache controll // cache controll
$oCacheHandler = &CacheHandler::getInstance('object'); $oCacheHandler = &CacheHandler::getInstance('object');
if($oCacheHandler->isSupport()){ if($oCacheHandler->isSupport())
{
$cache_key = 'object_member_groups:'.$member_srl.'_'.$site_srl; $cache_key = 'object_member_groups:'.$member_srl.'_'.$site_srl;
$output = $oCacheHandler->get($cache_key); $output = $oCacheHandler->get($cache_key);
} }
static $member_groups = array(); static $member_groups = array();
if(!$member_groups[$member_srl][$site_srl] || $force_reload) { if(!$member_groups[$member_srl][$site_srl] || $force_reload)
if(!$output){ {
if(!$output)
{
$args->member_srl = $member_srl; $args->member_srl = $member_srl;
$args->site_srl = $site_srl; $args->site_srl = $site_srl;
$output = executeQuery('member.getMemberGroups', $args); $output = executeQuery('member.getMemberGroups', $args);
@ -398,11 +426,11 @@
} }
if(!$output->data) return array(); if(!$output->data) return array();
$group_list = $output->data; $group_list = $output->data;
if(!is_array($group_list)) $group_list = array($group_list); if(!is_array($group_list)) $group_list = array($group_list);
foreach($group_list as $group) { foreach($group_list as $group)
{
$result[$group->group_srl] = $group->title; $result[$group->group_srl] = $group->title;
} }
$member_groups[$member_srl][$site_srl] = $result; $member_groups[$member_srl][$site_srl] = $result;
@ -412,8 +440,9 @@
/** /**
* @brief Get a list of groups which member_srls belong to * @brief Get a list of groups which member_srls belong to
**/ */
function getMembersGroups($member_srls, $site_srl = 0) { function getMembersGroups($member_srls, $site_srl = 0)
{
$args->member_srls = implode(',',$member_srls); $args->member_srls = implode(',',$member_srls);
$args->site_srl = $site_srl; $args->site_srl = $site_srl;
$args->sort_index = 'list_order'; $args->sort_index = 'list_order';
@ -421,7 +450,8 @@
if(!$output->data) return array(); if(!$output->data) return array();
$result = array(); $result = array();
foreach($output->data as $key=>$val) { foreach($output->data as $key=>$val)
{
$result[$val->member_srl][] = $val->title; $result[$val->member_srl][] = $val->title;
} }
return $result; return $result;
@ -429,8 +459,9 @@
/** /**
* @brief Get a default group * @brief Get a default group
**/ */
function getDefaultGroup($site_srl = 0, $columnList = array()) { function getDefaultGroup($site_srl = 0, $columnList = array())
{
$args->site_srl = $site_srl; $args->site_srl = $site_srl;
$output = executeQuery('member.getDefaultGroup', $args, $columnList); $output = executeQuery('member.getDefaultGroup', $args, $columnList);
return $output->data; return $output->data;
@ -438,16 +469,18 @@
/** /**
* @brief Get an admin group * @brief Get an admin group
**/ */
function getAdminGroup($columnList = array()) { function getAdminGroup($columnList = array())
{
$output = executeQuery('member.getAdminGroup', $args, $columnList); $output = executeQuery('member.getAdminGroup', $args, $columnList);
return $output->data; return $output->data;
} }
/** /**
* @brief Get group info corresponding to group_srl * @brief Get group info corresponding to group_srl
**/ */
function getGroup($group_srl, $columnList = array()) { function getGroup($group_srl, $columnList = array())
{
$args->group_srl = $group_srl; $args->group_srl = $group_srl;
$output = executeQuery('member.getGroup', $args, $columnList); $output = executeQuery('member.getGroup', $args, $columnList);
return $output->data; return $output->data;
@ -455,8 +488,9 @@
/** /**
* @brief Get a list of groups * @brief Get a list of groups
**/ */
function getGroups($site_srl = 0) { function getGroups($site_srl = 0)
{
if(!$GLOBALS['__group_info__'][$site_srl]) if(!$GLOBALS['__group_info__'][$site_srl])
{ {
$result = array(); $result = array();
@ -500,13 +534,15 @@
* This method works as an extend filter of modules/member/tpl/filter/insert.xml. * This method works as an extend filter of modules/member/tpl/filter/insert.xml.
* To use as extend_filter, the argument should be boolean. * To use as extend_filter, the argument should be boolean.
* When the argument is true, it returns object result in type of filter. * When the argument is true, it returns object result in type of filter.
**/ */
function getJoinFormList($filter_response = false) { function getJoinFormList($filter_response = false)
{
global $lang; global $lang;
// Set to ignore if a super administrator. // Set to ignore if a super administrator.
$logged_info = Context::get('logged_info'); $logged_info = Context::get('logged_info');
if(!$this->join_form_list) { if(!$this->join_form_list)
{
// Argument setting to sort list_order column // Argument setting to sort list_order column
$args->sort_index = "list_order"; $args->sort_index = "list_order";
$output = executeQuery('member.getJoinFormList', $args); $output = executeQuery('member.getJoinFormList', $args);
@ -516,7 +552,8 @@
// Need to unserialize because serialized array is inserted into DB in case of default_value // Need to unserialize because serialized array is inserted into DB in case of default_value
if(!is_array($join_form_list)) $join_form_list = array($join_form_list); if(!is_array($join_form_list)) $join_form_list = array($join_form_list);
$join_form_count = count($join_form_list); $join_form_count = count($join_form_list);
for($i=0;$i<$join_form_count;$i++) { for($i=0;$i<$join_form_count;$i++)
{
$join_form_list[$i]->column_name = strtolower($join_form_list[$i]->column_name); $join_form_list[$i]->column_name = strtolower($join_form_list[$i]->column_name);
$member_join_form_srl = $join_form_list[$i]->member_join_form_srl; $member_join_form_srl = $join_form_list[$i]->member_join_form_srl;
@ -527,10 +564,13 @@
// Add language variable // Add language variable
$lang->extend_vars[$column_name] = $column_title; $lang->extend_vars[$column_name] = $column_title;
// unserialize if the data type if checkbox, select and so on // unserialize if the data type if checkbox, select and so on
if(in_array($column_type, array('checkbox','select','radio'))) { if(in_array($column_type, array('checkbox','select','radio')))
{
$join_form_list[$i]->default_value = unserialize($default_value); $join_form_list[$i]->default_value = unserialize($default_value);
if(!$join_form_list[$i]->default_value[0]) $join_form_list[$i]->default_value = ''; if(!$join_form_list[$i]->default_value[0]) $join_form_list[$i]->default_value = '';
} else { }
else
{
$join_form_list[$i]->default_value = ''; $join_form_list[$i]->default_value = '';
} }
@ -539,9 +579,10 @@
$this->join_form_list = $list; $this->join_form_list = $list;
} }
// Get object style if the filter_response is true // Get object style if the filter_response is true
if($filter_response && count($this->join_form_list)) { if($filter_response && count($this->join_form_list))
{
foreach($this->join_form_list as $key => $val) { foreach($this->join_form_list as $key => $val)
{
if($val->is_active != 'Y') continue; if($val->is_active != 'Y') continue;
unset($obj); unset($obj);
$obj->type = $val->column_type; $obj->type = $val->column_type;
@ -558,7 +599,6 @@
} }
return $filter_output; return $filter_output;
} }
// Return the result // Return the result
return $this->join_form_list; return $this->join_form_list;
@ -568,7 +608,7 @@
* get used join form list. * get used join form list.
* *
* @return array $joinFormList * @return array $joinFormList
**/ */
function getUsedJoinFormList() function getUsedJoinFormList()
{ {
$args->sort_index = "list_order"; $args->sort_index = "list_order";
@ -595,23 +635,27 @@
/** /**
* @brief Combine extend join form and member information (used to modify member information) * @brief Combine extend join form and member information (used to modify member information)
**/ */
function getCombineJoinForm($member_info) { function getCombineJoinForm($member_info)
{
$extend_form_list = $this->getJoinFormlist(); $extend_form_list = $this->getJoinFormlist();
if(!$extend_form_list) return; if(!$extend_form_list) return;
// Member info is open only to an administrator and him/herself when is_private is true. // Member info is open only to an administrator and him/herself when is_private is true.
$logged_info = Context::get('logged_info'); $logged_info = Context::get('logged_info');
foreach($extend_form_list as $srl => $item) { foreach($extend_form_list as $srl => $item)
{
$column_name = $item->column_name; $column_name = $item->column_name;
$value = $member_info->{$column_name}; $value = $member_info->{$column_name};
if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_info->member_srl && $member_info->{'open_'.$column_name}!='Y') { if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_info->member_srl && $member_info->{'open_'.$column_name}!='Y')
{
$extend_form_list[$srl]->is_private = true; $extend_form_list[$srl]->is_private = true;
continue; continue;
} }
// Change values depening on the type of extend form // Change values depening on the type of extend form
switch($item->column_type) { switch($item->column_type)
{
case 'checkbox' : case 'checkbox' :
if($value && !is_array($value)) $value = array($value); if($value && !is_array($value)) $value = array($value);
break; break;
@ -635,8 +679,9 @@
/** /**
* @brief Get a join form * @brief Get a join form
**/ */
function getJoinForm($member_join_form_srl) { function getJoinForm($member_join_form_srl)
{
$args->member_join_form_srl = $member_join_form_srl; $args->member_join_form_srl = $member_join_form_srl;
$output = executeQuery('member.getJoinForm', $args); $output = executeQuery('member.getJoinForm', $args);
$join_form = $output->data; $join_form = $output->data;
@ -645,9 +690,12 @@
$column_type = $join_form->column_type; $column_type = $join_form->column_type;
$default_value = $join_form->default_value; $default_value = $join_form->default_value;
if(in_array($column_type, array('checkbox','select','radio'))) { if(in_array($column_type, array('checkbox','select','radio')))
{
$join_form->default_value = unserialize($default_value); $join_form->default_value = unserialize($default_value);
} else { }
else
{
$join_form->default_value = ''; $join_form->default_value = '';
} }
@ -656,9 +704,11 @@
/** /**
* @brief Get a list of denied IDs * @brief Get a list of denied IDs
**/ */
function getDeniedIDList() { function getDeniedIDList()
if(!$this->denied_id_list) { {
if(!$this->denied_id_list)
{
$args->sort_index = "list_order"; $args->sort_index = "list_order";
$args->page = Context::get('page'); $args->page = Context::get('page');
$args->list_count = 40; $args->list_count = 40;
@ -670,7 +720,8 @@
return $this->denied_id_list; return $this->denied_id_list;
} }
function getDeniedIDs(){ function getDeniedIDs()
{
$output = executeQueryArray('member.getDeniedIDs'); $output = executeQueryArray('member.getDeniedIDs');
if(!$output->toBool()) return array(); if(!$output->toBool()) return array();
return $output->data; return $output->data;
@ -689,8 +740,9 @@
/** /**
* @brief Verify if ID is denied * @brief Verify if ID is denied
**/ */
function isDeniedID($user_id) { function isDeniedID($user_id)
{
$args->user_id = $user_id; $args->user_id = $user_id;
$output = executeQuery('member.chkDeniedID', $args); $output = executeQuery('member.chkDeniedID', $args);
if($output->data->count) return true; if($output->data->count) return true;
@ -699,7 +751,7 @@
/** /**
* @brief Verify if nick name is denied * @brief Verify if nick name is denied
**/ */
function isDeniedNickName($nickName) function isDeniedNickName($nickName)
{ {
$args->nick_name = $nickName; $args->nick_name = $nickName;
@ -713,14 +765,18 @@
} }
/** /**
* @brief Get information of the profile image * @brief Get information of the profile image
**/ */
function getProfileImage($member_srl) { function getProfileImage($member_srl)
if(!isset($GLOBALS['__member_info__']['profile_image'][$member_srl])) { {
if(!isset($GLOBALS['__member_info__']['profile_image'][$member_srl]))
{
$GLOBALS['__member_info__']['profile_image'][$member_srl] = null; $GLOBALS['__member_info__']['profile_image'][$member_srl] = null;
$exts = array('gif','jpg','png'); $exts = array('gif','jpg','png');
for($i=0;$i<3;$i++) { for($i=0;$i<3;$i++)
{
$image_name_file = sprintf('files/member_extra_info/profile_image/%s%d.%s', getNumberingPath($member_srl), $member_srl, $exts[$i]); $image_name_file = sprintf('files/member_extra_info/profile_image/%s%d.%s', getNumberingPath($member_srl), $member_srl, $exts[$i]);
if(file_exists($image_name_file)) { if(file_exists($image_name_file))
{
list($width, $height, $type, $attrs) = getimagesize($image_name_file); list($width, $height, $type, $attrs) = getimagesize($image_name_file);
$info = null; $info = null;
$info->width = $width; $info->width = $width;
@ -738,36 +794,44 @@
/** /**
* @brief Get the image name * @brief Get the image name
**/ */
function getImageName($member_srl) { function getImageName($member_srl)
if(!isset($GLOBALS['__member_info__']['image_name'][$member_srl])) { {
if(!isset($GLOBALS['__member_info__']['image_name'][$member_srl]))
{
$image_name_file = sprintf('files/member_extra_info/image_name/%s%d.gif', getNumberingPath($member_srl), $member_srl); $image_name_file = sprintf('files/member_extra_info/image_name/%s%d.gif', getNumberingPath($member_srl), $member_srl);
if(file_exists($image_name_file)) { if(file_exists($image_name_file))
{
list($width, $height, $type, $attrs) = getimagesize($image_name_file); list($width, $height, $type, $attrs) = getimagesize($image_name_file);
$info->width = $width; $info->width = $width;
$info->height = $height; $info->height = $height;
$info->src = Context::getRequestUri().$image_name_file; $info->src = Context::getRequestUri().$image_name_file;
$info->file = './'.$image_name_file; $info->file = './'.$image_name_file;
$GLOBALS['__member_info__']['image_name'][$member_srl] = $info; $GLOBALS['__member_info__']['image_name'][$member_srl] = $info;
} else $GLOBALS['__member_info__']['image_name'][$member_srl] = null; }
else $GLOBALS['__member_info__']['image_name'][$member_srl] = null;
} }
return $GLOBALS['__member_info__']['image_name'][$member_srl]; return $GLOBALS['__member_info__']['image_name'][$member_srl];
} }
/** /**
* @brief Get the image mark * @brief Get the image mark
**/ */
function getImageMark($member_srl) { function getImageMark($member_srl)
if(!isset($GLOBALS['__member_info__']['image_mark'][$member_srl])) { {
if(!isset($GLOBALS['__member_info__']['image_mark'][$member_srl]))
{
$image_mark_file = sprintf('files/member_extra_info/image_mark/%s%d.gif', getNumberingPath($member_srl), $member_srl); $image_mark_file = sprintf('files/member_extra_info/image_mark/%s%d.gif', getNumberingPath($member_srl), $member_srl);
if(file_exists($image_mark_file)) { if(file_exists($image_mark_file))
{
list($width, $height, $type, $attrs) = getimagesize($image_mark_file); list($width, $height, $type, $attrs) = getimagesize($image_mark_file);
$info->width = $width; $info->width = $width;
$info->height = $height; $info->height = $height;
$info->src = Context::getRequestUri().$image_mark_file; $info->src = Context::getRequestUri().$image_mark_file;
$info->file = './'.$image_mark_file; $info->file = './'.$image_mark_file;
$GLOBALS['__member_info__']['image_mark'][$member_srl] = $info; $GLOBALS['__member_info__']['image_mark'][$member_srl] = $info;
} else $GLOBALS['__member_info__']['image_mark'][$member_srl] = null; }
else $GLOBALS['__member_info__']['image_mark'][$member_srl] = null;
} }
return $GLOBALS['__member_info__']['image_mark'][$member_srl]; return $GLOBALS['__member_info__']['image_mark'][$member_srl];
@ -776,14 +840,15 @@
/** /**
* @brief Get the image mark of the group * @brief Get the image mark of the group
**/ */
function getGroupImageMark($member_srl,$site_srl=0) function getGroupImageMark($member_srl,$site_srl=0)
{ {
if(!isset($GLOBALS['__member_info__']['group_image_mark'][$member_srl])) if(!isset($GLOBALS['__member_info__']['group_image_mark'][$member_srl]))
{ {
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member'); $config = $oModuleModel->getModuleConfig('member');
if($config->group_image_mark!='Y'){ if($config->group_image_mark!='Y')
{
return null; return null;
} }
$member_group = $this->getMemberGroups($member_srl,$site_srl); $member_group = $this->getMemberGroups($member_srl,$site_srl);
@ -816,30 +881,36 @@
/** /**
* @brief Get user's signature * @brief Get user's signature
**/ */
function getSignature($member_srl) { function getSignature($member_srl)
if(!isset($GLOBALS['__member_info__']['signature'][$member_srl])) { {
if(!isset($GLOBALS['__member_info__']['signature'][$member_srl]))
{
$filename = sprintf('files/member_extra_info/signature/%s%d.signature.php', getNumberingPath($member_srl), $member_srl); $filename = sprintf('files/member_extra_info/signature/%s%d.signature.php', getNumberingPath($member_srl), $member_srl);
if(file_exists($filename)) { if(file_exists($filename))
{
$buff = FileHandler::readFile($filename); $buff = FileHandler::readFile($filename);
$signature = trim(substr($buff, 40)); $signature = trim(substr($buff, 40));
$GLOBALS['__member_info__']['signature'][$member_srl] = $signature; $GLOBALS['__member_info__']['signature'][$member_srl] = $signature;
} else $GLOBALS['__member_info__']['signature'][$member_srl] = null; }
else $GLOBALS['__member_info__']['signature'][$member_srl] = null;
} }
return $GLOBALS['__member_info__']['signature'][$member_srl]; return $GLOBALS['__member_info__']['signature'][$member_srl];
} }
/** /**
* @brief Compare plain text password to the password saved in DB * @brief Compare plain text password to the password saved in DB
**/ */
function isValidPassword($hashed_password, $password_text, $member_srl=null) { function isValidPassword($hashed_password, $password_text, $member_srl=null)
{
// False if no password in entered // False if no password in entered
if(!$password_text) return false; if(!$password_text) return false;
$isSha1 = ($this->useSha1 && function_exists('sha1')); $isSha1 = ($this->useSha1 && function_exists('sha1'));
// Return true if the user input is equal to md5 hash value // Return true if the user input is equal to md5 hash value
if($hashed_password == md5($password_text)){ if($hashed_password == md5($password_text))
{
if($isSha1 && $member_srl > 0) if($isSha1 && $member_srl > 0)
{ {
$args = new stdClass(); $args = new stdClass();
@ -852,7 +923,8 @@
} }
// Return true if the user input is equal to the value of mysql_pre4_hash_password // Return true if the user input is equal to the value of mysql_pre4_hash_password
if(mysql_pre4_hash_password($password_text) == $hashed_password){ if(mysql_pre4_hash_password($password_text) == $hashed_password)
{
if($isSha1 && $member_srl > 0) if($isSha1 && $member_srl > 0)
{ {
$args = new stdClass(); $args = new stdClass();
@ -865,9 +937,11 @@
} }
// Verify the password by using old_password if the current db is MySQL. If correct, return true. // Verify the password by using old_password if the current db is MySQL. If correct, return true.
if(substr(Context::getDBType(),0,5)=='mysql') { if(substr(Context::getDBType(),0,5)=='mysql')
{
$oDB = &DB::getInstance(); $oDB = &DB::getInstance();
if($oDB->isValidOldPassword($password_text, $hashed_password)){ if($oDB->isValidOldPassword($password_text, $hashed_password))
{
if($isSha1 && $member_srl > 0) if($isSha1 && $member_srl > 0)
{ {
$args = new stdClass(); $args = new stdClass();
@ -902,5 +976,6 @@
} }
return $groupSrl; return $groupSrl;
} }
} }
?> /* End of file member.model.php */
/* Location: ./modules/member/member.model.php */

View file

@ -1,20 +1,20 @@
<?php <?php
/** /**
* @class memberView * @class memberView
* @author NHN (developers@xpressengine.com) * @author NHN (developers@xpressengine.com)
* @brief View class of member module * @brief View class of member module
**/ */
class memberView extends member
class memberView extends member { {
var $group_list = NULL; // /< Group list information var $group_list = NULL; // /< Group list information
var $member_info = NULL; // /< Member information of the user var $member_info = NULL; // /< Member information of the user
var $skin = 'default'; var $skin = 'default';
/** /**
* @brief Initialization * @brief Initialization
**/ */
function init() { function init()
{
// Get the member configuration // Get the member configuration
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
$this->member_config = $oMemberModel->getMemberConfig(); $this->member_config = $oMemberModel->getMemberConfig();
@ -54,17 +54,21 @@
/** /**
* @brief Display member information * @brief Display member information
**/ */
function dispMemberInfo() { function dispMemberInfo()
{
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
$logged_info = Context::get('logged_info'); $logged_info = Context::get('logged_info');
// Don't display member info to non-logged user // Don't display member info to non-logged user
if(!$logged_info->member_srl) return $this->stop('msg_not_permitted'); if(!$logged_info->member_srl) return $this->stop('msg_not_permitted');
$member_srl = Context::get('member_srl'); $member_srl = Context::get('member_srl');
if(!$member_srl && Context::get('is_logged')) { if(!$member_srl && Context::get('is_logged'))
{
$member_srl = $logged_info->member_srl; $member_srl = $logged_info->member_srl;
} elseif(!$member_srl) { }
elseif(!$member_srl)
{
return $this->dispMemberSignUpForm(); return $this->dispMemberSignUpForm();
} }
@ -179,7 +183,7 @@
/** /**
* @brief Display member join form * @brief Display member join form
**/ */
function dispMemberSignUpForm() function dispMemberSignUpForm()
{ {
//setcookie for redirect url in case of going to member sign up //setcookie for redirect url in case of going to member sign up
@ -212,7 +216,6 @@
$this->setTemplateFile('signup_form'); $this->setTemplateFile('signup_form');
} }
function dispMemberModifyInfoBefore() function dispMemberModifyInfoBefore()
{ {
$logged_info = Context::get('logged_info'); $logged_info = Context::get('logged_info');
@ -247,7 +250,7 @@
/** /**
* @brief Modify member information * @brief Modify member information
**/ */
function dispMemberModifyInfo() function dispMemberModifyInfo()
{ {
if($_SESSION['rechecked_password_step'] != 'VALIDATE_PASSWORD' && $_SESSION['rechecked_password_step'] != 'INPUT_DATA') if($_SESSION['rechecked_password_step'] != 'VALIDATE_PASSWORD' && $_SESSION['rechecked_password_step'] != 'INPUT_DATA')
@ -276,7 +279,8 @@
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($member_info)); Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($member_info));
// Editor of the module set for signing by calling getEditor // Editor of the module set for signing by calling getEditor
if($member_info->member_srl) { if($member_info->member_srl)
{
$oEditorModel = &getModel('editor'); $oEditorModel = &getModel('editor');
$option->primary_key_name = 'member_srl'; $option->primary_key_name = 'member_srl';
$option->content_key_name = 'signature'; $option->content_key_name = 'signature';
@ -311,11 +315,11 @@
$this->setTemplateFile('modify_info'); $this->setTemplateFile('modify_info');
} }
/** /**
* @brief Display documents written by the member * @brief Display documents written by the member
**/ */
function dispMemberOwnDocument() { function dispMemberOwnDocument()
{
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
// A message appears if the user is not logged-in // A message appears if the user is not logged-in
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged'); if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
@ -337,8 +341,9 @@
/** /**
* @brief Display documents scrapped by the member * @brief Display documents scrapped by the member
**/ */
function dispMemberScrappedDocument() { function dispMemberScrappedDocument()
{
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
// A message appears if the user is not logged-in // A message appears if the user is not logged-in
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged'); if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
@ -359,8 +364,9 @@
/** /**
* @brief Display documents saved by the member * @brief Display documents saved by the member
**/ */
function dispMemberSavedDocument() { function dispMemberSavedDocument()
{
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
// A message appears if the user is not logged-in // A message appears if the user is not logged-in
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged'); if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
@ -383,9 +389,11 @@
/** /**
* @brief Display the login form * @brief Display the login form
**/ */
function dispMemberLoginForm() { function dispMemberLoginForm()
if(Context::get('is_logged')) { {
if(Context::get('is_logged'))
{
Context::set('redirect_url', getNotEncodedUrl('act','')); Context::set('redirect_url', getNotEncodedUrl('act',''));
$this->setTemplatePath($this->module_path.'tpl'); $this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('redirect.html'); $this->setTemplateFile('redirect.html');
@ -404,7 +412,7 @@
/** /**
* @brief Change the user password * @brief Change the user password
**/ */
function dispMemberModifyPassword() function dispMemberModifyPassword()
{ {
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
@ -436,8 +444,9 @@
/** /**
* @brief Member withdrawl * @brief Member withdrawl
**/ */
function dispMemberLeave() { function dispMemberLeave()
{
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
// A message appears if the user is not logged-in // A message appears if the user is not logged-in
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged'); if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
@ -466,8 +475,9 @@
/** /**
* @brief Member log-out * @brief Member log-out
**/ */
function dispMemberLogout() { function dispMemberLogout()
{
$oMemberController = &getController('member'); $oMemberController = &getController('member');
$output = $oMemberController->procMemberLogout(); $output = $oMemberController->procMemberLogout();
if(!$output->redirect_url) if(!$output->redirect_url)
@ -481,15 +491,17 @@
/** /**
* @brief Display a list of saved articles * @brief Display a list of saved articles
* @Deplicated - instead Document View - dispTempSavedList method use * @Deplicated - instead Document View - dispTempSavedList method use
**/ */
function dispSavedDocumentList() { function dispSavedDocumentList()
{
return new Object(0, 'Deplicated method'); return new Object(0, 'Deplicated method');
} }
/** /**
* @brief Find user ID and password * @brief Find user ID and password
**/ */
function dispMemberFindAccount() { function dispMemberFindAccount()
{
if(Context::get('is_logged')) return $this->stop('already_logged'); if(Context::get('is_logged')) return $this->stop('already_logged');
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
@ -502,8 +514,9 @@
/** /**
* @brief Generate a temporary password * @brief Generate a temporary password
**/ */
function dispMemberGetTempPassword() { function dispMemberGetTempPassword()
{
if(Context::get('is_logged')) return $this->stop('already_logged'); if(Context::get('is_logged')) return $this->stop('already_logged');
$user_id = Context::get('user_id'); $user_id = Context::get('user_id');
@ -519,7 +532,7 @@
/** /**
* @brief Page of re-sending an authentication mail * @brief Page of re-sending an authentication mail
**/ */
function dispMemberResendAuthMail() function dispMemberResendAuthMail()
{ {
$authMemberSrl = $_SESSION['auth_member_srl']; $authMemberSrl = $_SESSION['auth_member_srl'];
@ -545,10 +558,8 @@
} }
} }
/** function dispMemberModifyEmailAddress()
* @brief ?´ë©”??주소ë¥?기본 로그??계정 ?¬ìš©???´ë©”??주소 변경ì<EFBFBD> ?„한 ?”ë©´ ì¶”ê? {
**/
function dispMemberModifyEmailAddress(){
if(!Context::get('is_logged')) return $this->stop('msg_not_logged'); if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
$this->setTemplateFile('modify_email_address'); $this->setTemplateFile('modify_email_address');
@ -558,7 +569,8 @@
* Add javascript codes into the header by checking values of member join form, required and others * Add javascript codes into the header by checking values of member join form, required and others
* @return void * @return void
*/ */
function addExtraFormValidatorMessage() { function addExtraFormValidatorMessage()
{
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
$extraList = $oMemberModel->getUsedJoinFormList(); $extraList = $oMemberModel->getUsedJoinFormList();
@ -579,7 +591,6 @@
{ {
$js_code[] = sprintf('validator.cast("ADD_MESSAGE", ["%s","%s"]);', $val->column_name, $val->column_title); $js_code[] = sprintf('validator.cast("ADD_MESSAGE", ["%s","%s"]);', $val->column_name, $val->column_title);
} }
$errorLang[$val->column_name] = $val->column_title; $errorLang[$val->column_name] = $val->column_title;
} }
$_SESSION['XE_VALIDATOR_ERROR_LANG'] = $errorLang; $_SESSION['XE_VALIDATOR_ERROR_LANG'] = $errorLang;
@ -590,5 +601,6 @@
Context::addHtmlHeader($js_code); Context::addHtmlHeader($js_code);
} }
} }
?> /* End of file member.view.php */
/* Location: ./modules/member/member.view.php */