mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-03 16:51:40 +09:00
Fix unnecessary assignment by reference, which causes E_NOTICE
This commit is contained in:
parent
ed15587c4f
commit
6c113c22ed
35 changed files with 80 additions and 84 deletions
|
|
@ -65,7 +65,7 @@ class BoardAdminModel extends Board
|
||||||
$admin_member = $oModuleModel->getAdminId($moduleSrl);
|
$admin_member = $oModuleModel->getAdminId($moduleSrl);
|
||||||
Context::set('admin_member', $admin_member);
|
Context::set('admin_member', $admin_member);
|
||||||
|
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
$html = $oTemplate->compile($this->module_path.'tpl/', 'board_setup_basic');
|
$html = $oTemplate->compile($this->module_path.'tpl/', 'board_setup_basic');
|
||||||
|
|
||||||
return $html;
|
return $html;
|
||||||
|
|
|
||||||
|
|
@ -666,7 +666,7 @@ class DocumentAdminController extends Document
|
||||||
$oDocumentController = getController('document');
|
$oDocumentController = getController('document');
|
||||||
$oDocumentModel = getModel('document');
|
$oDocumentModel = getModel('document');
|
||||||
|
|
||||||
$oDB = &DB::getInstance();
|
$oDB = DB::getInstance();
|
||||||
$oDB->begin();
|
$oDB->begin();
|
||||||
|
|
||||||
//DB restore
|
//DB restore
|
||||||
|
|
|
||||||
|
|
@ -1016,7 +1016,7 @@ class DocumentModel extends Document
|
||||||
$security->encodeHTML('extra_keys..', 'selected_var_idx');
|
$security->encodeHTML('extra_keys..', 'selected_var_idx');
|
||||||
|
|
||||||
// Get information of module_grants
|
// Get information of module_grants
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($this->module_path.'tpl', 'extra_keys');
|
return $oTemplate->compile($this->module_path.'tpl', 'extra_keys');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1037,7 +1037,7 @@ class DocumentModel extends Document
|
||||||
$security->encodeHTML('group_list..title');
|
$security->encodeHTML('group_list..title');
|
||||||
|
|
||||||
// Get information of module_grants
|
// Get information of module_grants
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($this->module_path.'tpl', 'category_list');
|
return $oTemplate->compile($this->module_path.'tpl', 'category_list');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,7 @@ class emoticon extends EditorHandler
|
||||||
$tpl_path = $this->component_path.'tpl';
|
$tpl_path = $this->component_path.'tpl';
|
||||||
$tpl_file = 'popup.html';
|
$tpl_file = 'popup.html';
|
||||||
|
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($tpl_path, $tpl_file);
|
return $oTemplate->compile($tpl_path, $tpl_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ class image_gallery extends EditorHandler
|
||||||
|
|
||||||
Context::set("tpl_path", $tpl_path);
|
Context::set("tpl_path", $tpl_path);
|
||||||
|
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($tpl_path, $tpl_file);
|
return $oTemplate->compile($tpl_path, $tpl_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -86,7 +86,7 @@ class image_gallery extends EditorHandler
|
||||||
if($gallery_info->gallery_style == "list") $tpl_file = 'list_gallery.html';
|
if($gallery_info->gallery_style == "list") $tpl_file = 'list_gallery.html';
|
||||||
else $tpl_file = 'slide_gallery.html';
|
else $tpl_file = 'slide_gallery.html';
|
||||||
|
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($tpl_path, $tpl_file);
|
return $oTemplate->compile($tpl_path, $tpl_file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ class image_link extends EditorHandler
|
||||||
|
|
||||||
Context::set("tpl_path", $tpl_path);
|
Context::set("tpl_path", $tpl_path);
|
||||||
|
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($tpl_path, $tpl_file);
|
return $oTemplate->compile($tpl_path, $tpl_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ class poll_maker extends EditorHandler
|
||||||
$tpl_path = $this->component_path.'tpl';
|
$tpl_path = $this->component_path.'tpl';
|
||||||
$tpl_file = 'popup.html';
|
$tpl_file = 'popup.html';
|
||||||
|
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($tpl_path, $tpl_file);
|
return $oTemplate->compile($tpl_path, $tpl_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -71,7 +71,7 @@ class poll_maker extends EditorHandler
|
||||||
Context::set('style', $args->style);
|
Context::set('style', $args->style);
|
||||||
|
|
||||||
// Compile a template
|
// Compile a template
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($tpl_path, $tpl_file);
|
return $oTemplate->compile($tpl_path, $tpl_file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,8 +52,8 @@ class EditorController extends Editor
|
||||||
throw new Rhymix\Framework\Exception('msg_component_is_not_founded', $component);
|
throw new Rhymix\Framework\Exception('msg_component_is_not_founded', $component);
|
||||||
}
|
}
|
||||||
|
|
||||||
$oEditorModel = getModel('editor');
|
$oEditorModel = EditorModel::getInstance();
|
||||||
$oComponent = &$oEditorModel->getComponentObject($component);
|
$oComponent = $oEditorModel->getComponentObject($component);
|
||||||
if(!$oComponent->toBool()) return $oComponent;
|
if(!$oComponent->toBool()) return $oComponent;
|
||||||
|
|
||||||
if(!method_exists($oComponent, $method))
|
if(!method_exists($oComponent, $method))
|
||||||
|
|
@ -211,11 +211,11 @@ class EditorController extends Editor
|
||||||
$module_srl = $module_info->module_srl ?? 0;
|
$module_srl = $module_info->module_srl ?? 0;
|
||||||
if($module_srl)
|
if($module_srl)
|
||||||
{
|
{
|
||||||
$editor_config = getModel('editor')->getEditorConfig($module_srl);
|
$editor_config = EditorModel::getEditorConfig($module_srl);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$editor_config = getModel('module')->getModuleConfig('editor');
|
$editor_config = ModuleModel::getModuleConfig('editor');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($editor_config)
|
if ($editor_config)
|
||||||
|
|
@ -280,8 +280,8 @@ class EditorController extends Editor
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get converted codes by using component::transHTML()
|
// Get converted codes by using component::transHTML()
|
||||||
$oEditorModel = getModel('editor');
|
$oEditorModel = EditorModel::getInstance();
|
||||||
$oComponent = &$oEditorModel->getComponentObject($xml_obj->attrs->editor_component, 0);
|
$oComponent = $oEditorModel->getComponentObject($xml_obj->attrs->editor_component, 0);
|
||||||
if(!is_object($oComponent) || !method_exists($oComponent, 'transHTML'))
|
if(!is_object($oComponent) || !method_exists($oComponent, 'transHTML'))
|
||||||
{
|
{
|
||||||
return $match[0];
|
return $match[0];
|
||||||
|
|
@ -327,9 +327,7 @@ class EditorController extends Editor
|
||||||
{
|
{
|
||||||
$editor_sequence = Context::get('editor_sequence');
|
$editor_sequence = Context::get('editor_sequence');
|
||||||
$primary_key = Context::get('primary_key');
|
$primary_key = Context::get('primary_key');
|
||||||
$oEditorModel = getModel('editor');
|
$saved_doc = EditorModel::getSavedDoc(null);
|
||||||
|
|
||||||
$saved_doc = $oEditorModel->getSavedDoc(null);
|
|
||||||
|
|
||||||
FileController::setUploadInfo($editor_sequence, $saved_doc->document_srl, intval($saved_doc->module_srl));
|
FileController::setUploadInfo($editor_sequence, $saved_doc->document_srl, intval($saved_doc->module_srl));
|
||||||
$vars = $this->getVariables();
|
$vars = $this->getVariables();
|
||||||
|
|
|
||||||
|
|
@ -62,8 +62,7 @@ class EditorView extends Editor
|
||||||
$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;
|
||||||
// Get compoenet object
|
// Get compoenet object
|
||||||
$oEditorModel = getModel('editor');
|
$oComponent = EditorModel::getComponentObject($component, $editor_sequence, $site_srl);
|
||||||
$oComponent = &$oEditorModel->getComponentObject($component, $editor_sequence, $site_srl);
|
|
||||||
if(!$oComponent->toBool())
|
if(!$oComponent->toBool())
|
||||||
{
|
{
|
||||||
Context::set('message', sprintf($oComponent->getMessage(), $component));
|
Context::set('message', sprintf($oComponent->getMessage(), $component));
|
||||||
|
|
@ -174,7 +173,7 @@ class EditorView extends Editor
|
||||||
$security->encodeHTML('editor_comment_colorset_list..title');
|
$security->encodeHTML('editor_comment_colorset_list..title');
|
||||||
|
|
||||||
// Set a template file
|
// Set a template file
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
$tpl = $oTemplate->compile($this->module_path.'tpl', 'editor_module_config');
|
$tpl = $oTemplate->compile($this->module_path.'tpl', 'editor_module_config');
|
||||||
$obj .= $tpl;
|
$obj .= $tpl;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1827,7 +1827,7 @@ class FileController extends File
|
||||||
$args->file_srl = $vars->file_srl;
|
$args->file_srl = $vars->file_srl;
|
||||||
$args->upload_target_srl = $upload_target_srl;
|
$args->upload_target_srl = $upload_target_srl;
|
||||||
|
|
||||||
$oDB = &DB::getInstance();
|
$oDB = DB::getInstance();
|
||||||
$oDB->begin();
|
$oDB->begin();
|
||||||
|
|
||||||
$args->cover_image = 'N';
|
$args->cover_image = 'N';
|
||||||
|
|
|
||||||
|
|
@ -726,7 +726,7 @@ class LayoutAdminController extends Layout
|
||||||
$args->layout_type = $layout->layout_type;
|
$args->layout_type = $layout->layout_type;
|
||||||
if(!$args->layout_type) $args->layout_type = "P";
|
if(!$args->layout_type) $args->layout_type = "P";
|
||||||
|
|
||||||
$oDB = &DB::getInstance();
|
$oDB = DB::getInstance();
|
||||||
$oDB->begin();
|
$oDB->begin();
|
||||||
|
|
||||||
if(is_array($sourceArgs->title))
|
if(is_array($sourceArgs->title))
|
||||||
|
|
|
||||||
|
|
@ -158,7 +158,7 @@ class LayoutAdminModel extends Layout
|
||||||
$security->encodeHTML('layout_code_css', 'layout_code', 'widget_list..title');
|
$security->encodeHTML('layout_code_css', 'layout_code', 'widget_list..title');
|
||||||
|
|
||||||
$script = '<script src="./modules/layout/tpl/js/layout_admin_set_html.js"></script>';
|
$script = '<script src="./modules/layout/tpl/js/layout_admin_set_html.js"></script>';
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
$html = $oTemplate->compile($this->module_path.'tpl/', 'layout_html_css_view');
|
$html = $oTemplate->compile($this->module_path.'tpl/', 'layout_html_css_view');
|
||||||
|
|
||||||
$this->add('html', $script.$html);
|
$this->add('html', $script.$html);
|
||||||
|
|
|
||||||
|
|
@ -214,7 +214,7 @@ class LayoutAdminView extends Layout
|
||||||
|
|
||||||
Context::set('is_sitemap', '0');
|
Context::set('is_sitemap', '0');
|
||||||
$script = '<script src="./modules/layout/tpl/js/layout_modify.js"></script>';
|
$script = '<script src="./modules/layout/tpl/js/layout_modify.js"></script>';
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
$content = $oTemplate->compile($this->module_path.'tpl/', 'layout_info_view');
|
$content = $oTemplate->compile($this->module_path.'tpl/', 'layout_info_view');
|
||||||
|
|
||||||
Context::set('content', $content);
|
Context::set('content', $content);
|
||||||
|
|
@ -336,7 +336,7 @@ class LayoutAdminView extends Layout
|
||||||
FileHandler::writeFile($edited_layout_file, $code);
|
FileHandler::writeFile($edited_layout_file, $code);
|
||||||
|
|
||||||
// Compile
|
// Compile
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
|
|
||||||
$layout_path = $layout_info->path;
|
$layout_path = $layout_info->path;
|
||||||
$layout_file = 'layout';
|
$layout_file = 'layout';
|
||||||
|
|
@ -344,7 +344,6 @@ class LayoutAdminView extends Layout
|
||||||
$layout_tpl = $oTemplate->compile($layout_path, $layout_file, $edited_layout_file);
|
$layout_tpl = $oTemplate->compile($layout_path, $layout_file, $edited_layout_file);
|
||||||
Context::set('layout','none');
|
Context::set('layout','none');
|
||||||
// Convert widgets and others
|
// Convert widgets and others
|
||||||
$oContext = &Context::getInstance();
|
|
||||||
Context::set('layout_tpl', $layout_tpl);
|
Context::set('layout_tpl', $layout_tpl);
|
||||||
// Delete Temporary Files
|
// Delete Temporary Files
|
||||||
FileHandler::removeFile($edited_layout_file);
|
FileHandler::removeFile($edited_layout_file);
|
||||||
|
|
@ -395,7 +394,7 @@ class LayoutAdminView extends Layout
|
||||||
Context::addHtmlHeader($script);
|
Context::addHtmlHeader($script);
|
||||||
}
|
}
|
||||||
|
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
Context::set('content', $oTemplate->compile($this->module_path.'tpl','about_faceoff'));
|
Context::set('content', $oTemplate->compile($this->module_path.'tpl','about_faceoff'));
|
||||||
// Change widget codes in Javascript mode
|
// Change widget codes in Javascript mode
|
||||||
$oWidgetController = getController('widget');
|
$oWidgetController = getController('widget');
|
||||||
|
|
|
||||||
|
|
@ -1102,7 +1102,7 @@ class LayoutModel extends Layout
|
||||||
// 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'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -227,7 +227,6 @@ class LayoutView extends Layout
|
||||||
Context::set('layout','none');
|
Context::set('layout','none');
|
||||||
|
|
||||||
// Convert widgets and others
|
// Convert widgets and others
|
||||||
$oContext = Context::getInstance();
|
|
||||||
Context::set('layout_tpl', $layout_tpl);
|
Context::set('layout_tpl', $layout_tpl);
|
||||||
$this->setTemplatePath($this->module_path.'tpl');
|
$this->setTemplatePath($this->module_path.'tpl');
|
||||||
$this->setTemplateFile('layout_preview');
|
$this->setTemplateFile('layout_preview');
|
||||||
|
|
@ -371,7 +370,7 @@ class LayoutView extends Layout
|
||||||
FileHandler::writeFile($edited_layout_file, $code);
|
FileHandler::writeFile($edited_layout_file, $code);
|
||||||
|
|
||||||
// Compile
|
// Compile
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
|
|
||||||
$layout_path = $layout_info->path;
|
$layout_path = $layout_info->path;
|
||||||
$layout_file = 'layout';
|
$layout_file = 'layout';
|
||||||
|
|
@ -379,7 +378,6 @@ class LayoutView extends Layout
|
||||||
$layout_tpl = $oTemplate->compile($layout_path, $layout_file, $edited_layout_file);
|
$layout_tpl = $oTemplate->compile($layout_path, $layout_file, $edited_layout_file);
|
||||||
Context::set('layout','none');
|
Context::set('layout','none');
|
||||||
// Convert widgets and others
|
// Convert widgets and others
|
||||||
$oContext = &Context::getInstance();
|
|
||||||
Context::set('layout_tpl', $layout_tpl);
|
Context::set('layout_tpl', $layout_tpl);
|
||||||
// Delete Temporary Files
|
// Delete Temporary Files
|
||||||
FileHandler::removeFile($edited_layout_file);
|
FileHandler::removeFile($edited_layout_file);
|
||||||
|
|
|
||||||
|
|
@ -222,7 +222,7 @@ class MemberAdminModel extends Member
|
||||||
if(!$config->colorset) $config->colorset = "white";
|
if(!$config->colorset) $config->colorset = "white";
|
||||||
Context::set('config', $config);
|
Context::set('config', $config);
|
||||||
|
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
$tpl = $oTemplate->compile($this->module_path.'tpl', 'new_colorset_list');
|
$tpl = $oTemplate->compile($this->module_path.'tpl', 'new_colorset_list');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -307,7 +307,7 @@ class MemberAdminModel extends Member
|
||||||
$id_list = implode(',',$list);
|
$id_list = implode(',',$list);
|
||||||
Context::set('id_list',$id_list);
|
Context::set('id_list',$id_list);
|
||||||
|
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
$tpl = $oTemplate->compile($this->module_path.'tpl', 'insert_join_form');
|
$tpl = $oTemplate->compile($this->module_path.'tpl', 'insert_join_form');
|
||||||
|
|
||||||
$this->add('tpl', str_replace("\n"," ",$tpl));
|
$this->add('tpl', str_replace("\n"," ",$tpl));
|
||||||
|
|
|
||||||
|
|
@ -3233,7 +3233,7 @@ class MemberController extends Member
|
||||||
}
|
}
|
||||||
if(!$args->birthday) $args->birthday = $orgMemberInfo->birthday;
|
if(!$args->birthday) $args->birthday = $orgMemberInfo->birthday;
|
||||||
|
|
||||||
$oDB = &DB::getInstance();
|
$oDB = DB::getInstance();
|
||||||
$oDB->begin();
|
$oDB->begin();
|
||||||
|
|
||||||
$output = executeQuery('member.updateMember', $args);
|
$output = executeQuery('member.updateMember', $args);
|
||||||
|
|
|
||||||
|
|
@ -325,7 +325,7 @@ class MenuAdminModel extends Menu
|
||||||
$security->encodeHTML('item_info.name');
|
$security->encodeHTML('item_info.name');
|
||||||
|
|
||||||
// Compile the template file into tpl variable and then return it
|
// Compile the template file into tpl variable and then return it
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
$tpl = $oTemplate->compile($this->module_path.'tpl', 'menu_item_info');
|
$tpl = $oTemplate->compile($this->module_path.'tpl', 'menu_item_info');
|
||||||
|
|
||||||
$this->add('tpl', str_replace("\n"," ",$tpl));
|
$this->add('tpl', str_replace("\n"," ",$tpl));
|
||||||
|
|
|
||||||
|
|
@ -43,12 +43,12 @@ class MenuMobile extends moduleObject
|
||||||
function dispMenuMenu()
|
function dispMenuMenu()
|
||||||
{
|
{
|
||||||
$menu_srl = Context::get('menu_srl');
|
$menu_srl = Context::get('menu_srl');
|
||||||
$oAdminModel =& getAdminModel('menu');
|
$oAdminModel = MenuAdminModel::getInstance();
|
||||||
$menu_info = $oAdminModel->getMenu($menu_srl);
|
$menu_info = $oAdminModel->getMenu($menu_srl);
|
||||||
|
|
||||||
if(!$menu_srl)
|
if(!$menu_srl)
|
||||||
{
|
{
|
||||||
$oMenuAdminController = getAdminController('menu');
|
$oMenuAdminController = MenuAdminController::getInstance();
|
||||||
$homeMenuCacheFile = $oMenuAdminController->getHomeMenuCacheFile();
|
$homeMenuCacheFile = $oMenuAdminController->getHomeMenuCacheFile();
|
||||||
|
|
||||||
if(file_exists($homeMenuCacheFile))
|
if(file_exists($homeMenuCacheFile))
|
||||||
|
|
|
||||||
|
|
@ -168,7 +168,7 @@ class ModuleAdminController extends Module
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$oDB = &DB::getInstance();
|
$oDB = DB::getInstance();
|
||||||
$oDB->begin();
|
$oDB->begin();
|
||||||
// Copy a module
|
// Copy a module
|
||||||
$triggerObj = new stdClass();
|
$triggerObj = new stdClass();
|
||||||
|
|
|
||||||
|
|
@ -130,7 +130,7 @@ class ModuleAdminModel extends Module
|
||||||
Context::set('tabChoice', $tabChoice);
|
Context::set('tabChoice', $tabChoice);
|
||||||
|
|
||||||
// Get information of module_grants
|
// Get information of module_grants
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($this->module_path.'tpl', 'include.manage_selected.html');
|
return $oTemplate->compile($this->module_path.'tpl', 'include.manage_selected.html');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -208,7 +208,7 @@ class ModuleAdminModel extends Module
|
||||||
$security->encodeHTML('admin_member..nick_name');
|
$security->encodeHTML('admin_member..nick_name');
|
||||||
|
|
||||||
// Get information of module_grants
|
// Get information of module_grants
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($this->module_path.'tpl', 'module_grants');
|
return $oTemplate->compile($this->module_path.'tpl', 'module_grants');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -392,7 +392,7 @@ class ModuleAdminModel extends Module
|
||||||
$security->encodeHTML('module_info.browser_title');
|
$security->encodeHTML('module_info.browser_title');
|
||||||
$security->encodeHTML('skin_info...');
|
$security->encodeHTML('skin_info...');
|
||||||
|
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($this->module_path.'tpl', 'skin_config');
|
return $oTemplate->compile($this->module_path.'tpl', 'skin_config');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -699,7 +699,7 @@ class ModuleController extends Module
|
||||||
if(!$output->toBool()) return $output;
|
if(!$output->toBool()) return $output;
|
||||||
|
|
||||||
// begin transaction
|
// begin transaction
|
||||||
$oDB = &DB::getInstance();
|
$oDB = DB::getInstance();
|
||||||
$oDB->begin();
|
$oDB->begin();
|
||||||
|
|
||||||
$args = new stdClass();
|
$args = new stdClass();
|
||||||
|
|
|
||||||
|
|
@ -930,7 +930,7 @@ class ModuleModel extends Module
|
||||||
|
|
||||||
$tmpPath = strtr($path, array('/' => ' '));
|
$tmpPath = strtr($path, array('/' => ' '));
|
||||||
$tmpPath = trim($tmpPath);
|
$tmpPath = trim($tmpPath);
|
||||||
$module = array_pop(explode(' ', $tmpPath));
|
$module = array_last(explode(' ', $tmpPath));
|
||||||
|
|
||||||
if($dir == 'skins')
|
if($dir == 'skins')
|
||||||
{
|
{
|
||||||
|
|
@ -1525,7 +1525,7 @@ class ModuleModel extends Module
|
||||||
|
|
||||||
public static function checkNeedInstall($module_name)
|
public static function checkNeedInstall($module_name)
|
||||||
{
|
{
|
||||||
$oDB = &DB::getInstance();
|
$oDB = DB::getInstance();
|
||||||
$info = null;
|
$info = null;
|
||||||
|
|
||||||
$moduledir = ModuleHandler::getModulePath($module_name);
|
$moduledir = ModuleHandler::getModulePath($module_name);
|
||||||
|
|
@ -2489,7 +2489,7 @@ class ModuleModel extends Module
|
||||||
$security = new Security();
|
$security = new Security();
|
||||||
$security->encodeHTML('filebox_list..comment', 'filebox_list..attributes.');
|
$security->encodeHTML('filebox_list..comment', 'filebox_list..attributes.');
|
||||||
|
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
$html = $oTemplate->compile(RX_BASEDIR . 'modules/module/tpl/', 'filebox_list_html');
|
$html = $oTemplate->compile(RX_BASEDIR . 'modules/module/tpl/', 'filebox_list_html');
|
||||||
|
|
||||||
$this->add('html', $html);
|
$this->add('html', $html);
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ class PointView extends Point
|
||||||
$module_config['point_name'] = $config->point_name;
|
$module_config['point_name'] = $config->point_name;
|
||||||
Context::set('module_config', $module_config);
|
Context::set('module_config', $module_config);
|
||||||
// Set the template file
|
// Set the template file
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
$tpl = $oTemplate->compile($this->module_path.'tpl', 'point_module_config');
|
$tpl = $oTemplate->compile($this->module_path.'tpl', 'point_module_config');
|
||||||
$obj .= $tpl;
|
$obj .= $tpl;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@ class PollAdminController extends Poll
|
||||||
|
|
||||||
$args->poll_index_srl = $poll_index_srl;
|
$args->poll_index_srl = $poll_index_srl;
|
||||||
|
|
||||||
$oDB = &DB::getInstance();
|
$oDB = DB::getInstance();
|
||||||
$oDB->begin();
|
$oDB->begin();
|
||||||
|
|
||||||
$output = executeQueryArray('poll.getPollByDeletePollTitle', $args);
|
$output = executeQueryArray('poll.getPollByDeletePollTitle', $args);
|
||||||
|
|
@ -145,7 +145,7 @@ class PollAdminController extends Poll
|
||||||
$args = new stdClass;
|
$args = new stdClass;
|
||||||
$args->poll_srl = $poll_srl;
|
$args->poll_srl = $poll_srl;
|
||||||
|
|
||||||
$oDB = &DB::getInstance();
|
$oDB = DB::getInstance();
|
||||||
$oDB->begin();
|
$oDB->begin();
|
||||||
|
|
||||||
$output = $oDB->executeQuery('poll.deletePoll', $args);
|
$output = $oDB->executeQuery('poll.deletePoll', $args);
|
||||||
|
|
|
||||||
|
|
@ -263,7 +263,7 @@ class PollModel extends Poll
|
||||||
// The skin for the default configurations, and the colorset configurations
|
// The skin for the default configurations, and the colorset configurations
|
||||||
$tpl_path = sprintf("%sskins/%s/", $this->module_path, $skin);
|
$tpl_path = sprintf("%sskins/%s/", $this->module_path, $skin);
|
||||||
|
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($tpl_path, $tpl_file);
|
return $oTemplate->compile($tpl_path, $tpl_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -312,7 +312,7 @@ class PollModel extends Poll
|
||||||
// The skin for the default configurations, and the colorset configurations
|
// The skin for the default configurations, and the colorset configurations
|
||||||
$tpl_path = sprintf("%sskins/%s/", $this->module_path, $skin);
|
$tpl_path = sprintf("%sskins/%s/", $this->module_path, $skin);
|
||||||
|
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($tpl_path, $tpl_file);
|
return $oTemplate->compile($tpl_path, $tpl_file);
|
||||||
}
|
}
|
||||||
/** [TO REVIEW]
|
/** [TO REVIEW]
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ class Session extends ModuleObject
|
||||||
*/
|
*/
|
||||||
function moduleInstall()
|
function moduleInstall()
|
||||||
{
|
{
|
||||||
$oDB = &DB::getInstance();
|
$oDB = DB::getInstance();
|
||||||
$oDB->addIndex("session","idx_session_update_mid", array("member_srl","last_update","cur_mid"));
|
$oDB->addIndex("session","idx_session_update_mid", array("member_srl","last_update","cur_mid"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -43,7 +43,7 @@ class Session extends ModuleObject
|
||||||
*/
|
*/
|
||||||
function moduleUpdate()
|
function moduleUpdate()
|
||||||
{
|
{
|
||||||
$oDB = &DB::getInstance();
|
$oDB = DB::getInstance();
|
||||||
if(!$oDB->isIndexExists("session","idx_session_update_mid"))
|
if(!$oDB->isIndexExists("session","idx_session_update_mid"))
|
||||||
{
|
{
|
||||||
$oDB->addIndex("session","idx_session_update_mid", array("member_srl","last_update","cur_mid"));
|
$oDB->addIndex("session","idx_session_update_mid", array("member_srl","last_update","cur_mid"));
|
||||||
|
|
|
||||||
|
|
@ -140,7 +140,7 @@ class TrashAdminController extends Trash
|
||||||
if(is_array($trashSrlList))
|
if(is_array($trashSrlList))
|
||||||
{
|
{
|
||||||
// begin transaction
|
// begin transaction
|
||||||
$oDB = &DB::getInstance();
|
$oDB = DB::getInstance();
|
||||||
$oDB->begin();
|
$oDB->begin();
|
||||||
// eache restore method call in each classfile
|
// eache restore method call in each classfile
|
||||||
foreach($trashSrlList as $value)
|
foreach($trashSrlList as $value)
|
||||||
|
|
|
||||||
|
|
@ -111,11 +111,11 @@ class TrashAdminView extends Trash
|
||||||
Context::set('oTrashVO',$output->data);
|
Context::set('oTrashVO',$output->data);
|
||||||
Context::set('oOrigin',$originObject);
|
Context::set('oOrigin',$originObject);
|
||||||
|
|
||||||
$oMemberModel = &getModel('member');
|
$oMemberModel = getModel('member');
|
||||||
$remover_info = $oMemberModel->getMemberInfoByMemberSrl($output->data->getRemoverSrl());
|
$remover_info = $oMemberModel->getMemberInfoByMemberSrl($output->data->getRemoverSrl());
|
||||||
Context::set('remover_info', $remover_info);
|
Context::set('remover_info', $remover_info);
|
||||||
|
|
||||||
$oModuleModel = &getModel('module');
|
$oModuleModel = getModel('module');
|
||||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($originObject->module_srl);
|
$module_info = $oModuleModel->getModuleInfoByModuleSrl($originObject->module_srl);
|
||||||
Context::set('module_info', $module_info);
|
Context::set('module_info', $module_info);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -682,7 +682,6 @@ class content extends WidgetHandler
|
||||||
|
|
||||||
function _compile($args,$content_items)
|
function _compile($args,$content_items)
|
||||||
{
|
{
|
||||||
$oTemplate = TemplateHandler::getInstance();
|
|
||||||
// Set variables for widget
|
// Set variables for widget
|
||||||
$widget_info = new stdClass();
|
$widget_info = new stdClass();
|
||||||
$widget_info->modules_info = $args->modules_info;
|
$widget_info->modules_info = $args->modules_info;
|
||||||
|
|
@ -741,6 +740,8 @@ class content extends WidgetHandler
|
||||||
Context::set('widget_info', $widget_info);
|
Context::set('widget_info', $widget_info);
|
||||||
|
|
||||||
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
|
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
|
||||||
|
|
||||||
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($tpl_path, "content");
|
return $oTemplate->compile($tpl_path, "content");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ class counter_status extends WidgetHandler
|
||||||
$output = $oCounterModel->getStatus(array('00000000', date('Ymd', $_SERVER['REQUEST_TIME']-60*60*24), date('Ymd')), $site_module_info->site_srl);
|
$output = $oCounterModel->getStatus(array('00000000', date('Ymd', $_SERVER['REQUEST_TIME']-60*60*24), date('Ymd')), $site_module_info->site_srl);
|
||||||
if(count($output))
|
if(count($output))
|
||||||
{
|
{
|
||||||
foreach($output as $key => $val)
|
foreach($output as $key => $val)
|
||||||
{
|
{
|
||||||
if(!$key) Context::set('total_counter', $val);
|
if(!$key) Context::set('total_counter', $val);
|
||||||
elseif($key == date("Ymd")) Context::set('today_counter', $val);
|
elseif($key == date("Ymd")) Context::set('today_counter', $val);
|
||||||
|
|
@ -35,7 +35,7 @@ class counter_status extends WidgetHandler
|
||||||
// Specify a template file
|
// Specify a template file
|
||||||
$tpl_file = 'counter_status';
|
$tpl_file = 'counter_status';
|
||||||
// Compile a template
|
// Compile a template
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($tpl_path, $tpl_file);
|
return $oTemplate->compile($tpl_path, $tpl_file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
/* Copyright (C) NAVER <http://www.navercorp.com> */
|
/* Copyright (C) NAVER <http://www.navercorp.com> */
|
||||||
/**
|
/**
|
||||||
* @class language_select
|
* @class language_select
|
||||||
* @author NAVER (developers@xpressengine.com)
|
* @author NAVER (developers@xpressengine.com)
|
||||||
* @brief Language selector
|
* @brief Language selector
|
||||||
* @version 0.1
|
* @version 0.1
|
||||||
|
|
@ -23,7 +23,7 @@ class language_select extends WidgetHandler
|
||||||
Context::set('colorset', $args->colorset);
|
Context::set('colorset', $args->colorset);
|
||||||
|
|
||||||
// Compile a template
|
// Compile a template
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($tpl_path, $tpl_file);
|
return $oTemplate->compile($tpl_path, $tpl_file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,7 @@ class login_info extends WidgetHandler
|
||||||
Context::set('ssl_mode', $ssl_mode);
|
Context::set('ssl_mode', $ssl_mode);
|
||||||
|
|
||||||
// Compile a template
|
// Compile a template
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($tpl_path, $tpl_file);
|
return $oTemplate->compile($tpl_path, $tpl_file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -381,19 +381,19 @@ class mcontent extends WidgetHandler
|
||||||
{
|
{
|
||||||
// Remove tags
|
// Remove tags
|
||||||
$content = strip_tags($content);
|
$content = strip_tags($content);
|
||||||
|
|
||||||
// Convert temporarily html entity for truncate
|
// Convert temporarily html entity for truncate
|
||||||
$content = html_entity_decode($content, ENT_QUOTES);
|
$content = html_entity_decode($content, ENT_QUOTES);
|
||||||
|
|
||||||
// Replace all whitespaces to single space
|
// Replace all whitespaces to single space
|
||||||
$content = utf8_trim(utf8_normalize_spaces($content));
|
$content = utf8_trim(utf8_normalize_spaces($content));
|
||||||
|
|
||||||
// Truncate string
|
// Truncate string
|
||||||
$content = cut_str($content, $str_size, '...');
|
$content = cut_str($content, $str_size, '...');
|
||||||
|
|
||||||
return escape($content);
|
return escape($content);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief function to receive contents from rss url
|
* @brief function to receive contents from rss url
|
||||||
* For Tistory blog in Korea, the original RSS url has location header without contents. Fixed to work as same as rss_reader widget.
|
* For Tistory blog in Korea, the original RSS url has location header without contents. Fixed to work as same as rss_reader widget.
|
||||||
|
|
@ -496,7 +496,7 @@ class mcontent extends WidgetHandler
|
||||||
$content_items[] = $content_item;
|
$content_items[] = $content_item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if($xml_doc->feed && $xml_doc->feed->attrs->xmlns == 'http://www.w3.org/2005/Atom')
|
else if($xml_doc->feed && $xml_doc->feed->attrs->xmlns == 'http://www.w3.org/2005/Atom')
|
||||||
{
|
{
|
||||||
// Atom 1.0 spec supported by misol
|
// Atom 1.0 spec supported by misol
|
||||||
$rss->title = $xml_doc->feed->title->body;
|
$rss->title = $xml_doc->feed->title->body;
|
||||||
|
|
@ -513,25 +513,25 @@ class mcontent extends WidgetHandler
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if($links->attrs->rel == 'alternate') $rss->link = $links->attrs->href;
|
else if($links->attrs->rel == 'alternate') $rss->link = $links->attrs->href;
|
||||||
|
|
||||||
$items = $xml_doc->feed->entry;
|
$items = $xml_doc->feed->entry;
|
||||||
|
|
||||||
if(!$items) return;
|
if(!$items) return;
|
||||||
if($items && !is_array($items)) $items = array($items);
|
if($items && !is_array($items)) $items = array($items);
|
||||||
|
|
||||||
$content_items = array();
|
$content_items = array();
|
||||||
|
|
||||||
foreach ($items as $key => $value)
|
foreach ($items as $key => $value)
|
||||||
{
|
{
|
||||||
if($key >= $args->list_count) break;
|
if($key >= $args->list_count) break;
|
||||||
unset($item);
|
unset($item);
|
||||||
|
|
||||||
foreach($value as $key2 => $value2)
|
foreach($value as $key2 => $value2)
|
||||||
{
|
{
|
||||||
if(is_array($value2)) $value2 = array_shift($value2);
|
if(is_array($value2)) $value2 = array_shift($value2);
|
||||||
$item->{$key2} = $this->_getRssBody($value2);
|
$item->{$key2} = $this->_getRssBody($value2);
|
||||||
}
|
}
|
||||||
|
|
||||||
$content_item = new mcontentItem($rss->title);
|
$content_item = new mcontentItem($rss->title);
|
||||||
$links = $value->link;
|
$links = $value->link;
|
||||||
if(is_array($links))
|
if(is_array($links))
|
||||||
|
|
@ -546,7 +546,7 @@ class mcontent extends WidgetHandler
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if($links->attrs->rel == 'alternate') $item->link = $links->attrs->href;
|
else if($links->attrs->rel == 'alternate') $item->link = $links->attrs->href;
|
||||||
|
|
||||||
$content_item->setContentsLink($rss->link);
|
$content_item->setContentsLink($rss->link);
|
||||||
if($item->title)
|
if($item->title)
|
||||||
{
|
{
|
||||||
|
|
@ -555,22 +555,22 @@ class mcontent extends WidgetHandler
|
||||||
$content_item->setTitle($item->title);
|
$content_item->setTitle($item->title);
|
||||||
$content_item->setNickName(max($item->author,$item->{'dc:creator'}));
|
$content_item->setNickName(max($item->author,$item->{'dc:creator'}));
|
||||||
$content_item->setAuthorSite($value->author->uri->body);
|
$content_item->setAuthorSite($value->author->uri->body);
|
||||||
|
|
||||||
//$content_item->setCategory($item->category);
|
//$content_item->setCategory($item->category);
|
||||||
$item->description = ($item->content) ? $item->content : $item->description = $item->summary;
|
$item->description = ($item->content) ? $item->content : $item->description = $item->summary;
|
||||||
$item->description = preg_replace('!<a href=!is','<a target="_blank" rel="noopener" href=', $item->description);
|
$item->description = preg_replace('!<a href=!is','<a target="_blank" rel="noopener" href=', $item->description);
|
||||||
|
|
||||||
if(($item->content && stripos($value->content->attrs->type, "html") === FALSE) || (!$item->content && stripos($value->summary->attrs->type, "html") === FALSE))
|
if(($item->content && stripos($value->content->attrs->type, "html") === FALSE) || (!$item->content && stripos($value->summary->attrs->type, "html") === FALSE))
|
||||||
{
|
{
|
||||||
$item->description = htmlspecialchars($item->description, ENT_COMPAT | ENT_HTML401, 'UTF-8', false);
|
$item->description = htmlspecialchars($item->description, ENT_COMPAT | ENT_HTML401, 'UTF-8', false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$content_item->setContent($this->_getSummary($item->description, $args->content_cut_size));
|
$content_item->setContent($this->_getSummary($item->description, $args->content_cut_size));
|
||||||
$content_item->setLink($item->link);
|
$content_item->setLink($item->link);
|
||||||
$date = date('YmdHis', strtotime(max($item->published,$item->updated,$item->{'dc:date'})));
|
$date = date('YmdHis', strtotime(max($item->published,$item->updated,$item->{'dc:date'})));
|
||||||
$content_item->setRegdate($date);
|
$content_item->setRegdate($date);
|
||||||
|
|
||||||
$content_items[] = $content_item;
|
$content_items[] = $content_item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -621,7 +621,6 @@ class mcontent extends WidgetHandler
|
||||||
|
|
||||||
function _compile($args,$content_items)
|
function _compile($args,$content_items)
|
||||||
{
|
{
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
|
||||||
// Set variables for widget
|
// Set variables for widget
|
||||||
$widget_info = new stdClass();
|
$widget_info = new stdClass();
|
||||||
$widget_info->modules_info = $args->modules_info;
|
$widget_info->modules_info = $args->modules_info;
|
||||||
|
|
@ -654,6 +653,8 @@ class mcontent extends WidgetHandler
|
||||||
Context::set('widget_info', $widget_info);
|
Context::set('widget_info', $widget_info);
|
||||||
|
|
||||||
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
|
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
|
||||||
|
|
||||||
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($tpl_path, "content");
|
return $oTemplate->compile($tpl_path, "content");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
/* Copyright (C) NAVER <http://www.navercorp.com> */
|
/* Copyright (C) NAVER <http://www.navercorp.com> */
|
||||||
/**
|
/**
|
||||||
* @class language_select
|
* @class language_select
|
||||||
* @author NAVER (developers@xpressengine.com)
|
* @author NAVER (developers@xpressengine.com)
|
||||||
* @brief Language selector
|
* @brief Language selector
|
||||||
* @version 0.1
|
* @version 0.1
|
||||||
|
|
@ -32,7 +32,7 @@ class pollWidget extends WidgetHandler
|
||||||
Context::set('style', $args->style);
|
Context::set('style', $args->style);
|
||||||
|
|
||||||
// Compile a template
|
// Compile a template
|
||||||
$oTemplate = &TemplateHandler::getInstance();
|
$oTemplate = TemplateHandler::getInstance();
|
||||||
return $oTemplate->compile($tpl_path, $tpl_file);
|
return $oTemplate->compile($tpl_path, $tpl_file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue