Add icon option to menu item

This commit is contained in:
Kijin Sung 2021-01-20 22:43:14 +09:00
parent 537a500dbf
commit 2944bfc71a
9 changed files with 57 additions and 11 deletions

View file

@ -126,4 +126,7 @@ $lang->img_uploaded = 'Button image is uploaded.';
$lang->img_deleted = 'Button image is deleted.';
$lang->do_not_display_again = 'Do not display again.';
$lang->skin_settings = 'Skin settings';
$lang->no_use_skin = 'Will not use any skin';
$lang->no_use_skin = 'Will not use any skin';
$lang->menu_desc = 'Description';
$lang->menu_icon = 'Icon';
$lang->about_menu_icon = 'If and how the icon code is interpreted is up to the layout designer.';

View file

@ -145,3 +145,5 @@ $lang->skin_settings = '스킨 설정';
$lang->no_skin = '스킨 없음';
$lang->no_use_skin = '스킨 사용 안 함';
$lang->menu_desc = '메뉴 설명';
$lang->menu_icon = '메뉴 아이콘';
$lang->about_menu_icon = '아이콘 코드를 어떻게 해석하는지는 레이아웃에 따라 다를 수 있습니다.';

View file

@ -552,8 +552,8 @@ class menuAdminController extends menu
$args->url = '#';
}
if($request->menu_desc) $args->desc = $request->menu_desc;
else $args->desc = '';
$args->icon = trim($request->menu_icon ?? '') ?: '';
$args->desc = trim($request->menu_desc ?? '') ?: '';
$args->menu_item_srl = getNextSequence();
$args->listorder = -1*$args->menu_item_srl;
@ -587,8 +587,8 @@ class menuAdminController extends menu
if($request->menu_name_key) $args->name = $request->menu_name_key;
else $args->name = $request->menu_name;
if($request->menu_desc) $args->desc = $request->menu_desc;
else $args->desc = '';
$args->icon = trim($request->menu_icon ?? '') ?: '';
$args->desc = trim($request->menu_desc ?? '') ?: '';
if($request->module_id && strncasecmp('http', $request->module_id, 4) === 0)
{
@ -773,8 +773,8 @@ class menuAdminController extends menu
$args->name = $request->menu_name;
}
if($request->menu_desc) $args->desc = $request->menu_desc;
else $args->desc = '';
$args->icon = trim($request->menu_icon ?? '') ?: '';
$args->desc = trim($request->menu_desc ?? '') ?: '';
unset($args->group_srls);
$args->open_window = $request->menu_open_window;
@ -1959,6 +1959,7 @@ class menuAdminController extends menu
$name_str = sprintf('$_names = array(%s); print $_names[$lang_type];', $name_arr_str);
$url = escape($node->url);
$icon = escape($node->icon, false);
$desc = escape($node->desc, false);
if(preg_match('/^([0-9a-zA-Z\_\-]+)$/', $node->url))
{
@ -2006,7 +2007,7 @@ class menuAdminController extends menu
}
$attribute = sprintf(
'node_srl="%d" parent_srl="%d" menu_name_key=%s text="<?php if(%s) { %s }?>" url="<?php print(%s?%s:"")?>" href="<?php print(%s?%s:"")?>" is_shortcut=%s desc=%s open_window=%s expand=%s normal_btn=%s hover_btn=%s active_btn=%s link="<?php if(%s) {?>%s<?php }?>"',
'node_srl="%d" parent_srl="%d" menu_name_key=%s text="<?php if(%s) { %s }?>" url="<?php print(%s?%s:"")?>" href="<?php print(%s?%s:"")?>" is_shortcut=%s icon=%s desc=%s open_window=%s expand=%s normal_btn=%s hover_btn=%s active_btn=%s link="<?php if(%s) {?>%s<?php }?>"',
$menu_item_srl,
($node->parent_srl) ? $node->parent_srl : '',
var_export(($node->name) ? $node->name : '', true),
@ -2017,6 +2018,7 @@ class menuAdminController extends menu
$group_check_code,
$href,
var_export($is_shortcut, true),
var_export($icon, true),
var_export($desc, true),
var_export($open_window, true),
var_export($expand, true),
@ -2102,7 +2104,8 @@ class menuAdminController extends menu
// List variables
$href = escape($node->href ?? '', false);
$url = escape($node->url ?? '', false);
$desc = escape($node->desc ?? '', false);
$icon = Rhymix\Framework\Filters\HTMLFilter::clean($node->icon ?? '', true);
$desc = Rhymix\Framework\Filters\HTMLFilter::clean($node->desc ?? '', true);
if(preg_match('/^([0-9a-zA-Z\_\-]+)$/i', $node->url))
{
$href = "getSiteUrl('$domain', '','mid','$node->url')";
@ -2162,6 +2165,7 @@ class menuAdminController extends menu
"href" => (%s ? %s : ""),
"url" => (%s ? %s : ""),
"is_shortcut" => %s,
"icon" => %s,
"desc" => %s,
"open_window" => %s,
"normal_btn" => %s,
@ -2182,6 +2186,7 @@ class menuAdminController extends menu
$group_check_code,
var_export($url, true),
var_export($is_shortcut, true),
var_export($icon, true),
var_export($desc, true),
var_export($open_window, true),
var_export($normal_btn, true),

View file

@ -34,6 +34,12 @@ class menu extends ModuleObject
return true;
}
// 2021. 01. 20 add column icon
if(!$oDB->isColumnExists('menu_item', 'icon'))
{
return true;
}
return false;
}
@ -48,7 +54,13 @@ class menu extends ModuleObject
// 2015. 06. 15 add column desc
if(!$oDB->isColumnExists('menu_item', 'desc'))
{
$oDB->addColumn('menu_item', 'desc','varchar',250,"",true);
$oDB->addColumn('menu_item', 'desc', 'varchar', 250, null, false, 'name');
}
// 2021. 01. 20 add column icon
if(!$oDB->isColumnExists('menu_item', 'icon'))
{
$oDB->addColumn('menu_item', 'icon', 'varchar', 250, null, false, 'name');
}
}

View file

@ -7,6 +7,7 @@
<column name="parent_srl" var="parent_srl" filter="number" default="0" />
<column name="menu_srl" var="menu_srl" filter="number" notnull="notnull" />
<column name="name" var="name" notnull="notnull" />
<column name="icon" var="icon" />
<column name="desc" var="desc" />
<column name="url" var="url" />
<column name="is_shortcut" var="is_shortcut" notnull="notnull" default="N" />

View file

@ -6,6 +6,7 @@
<column name="menu_srl" var="menu_srl" />
<column name="parent_srl" var="parent_srl" />
<column name="name" var="name" />
<column name="icon" var="icon" />
<column name="desc" var="desc" />
<column name="url" var="url" />
<column name="is_shortcut" var="is_shortcut" />

View file

@ -3,6 +3,7 @@
<column name="parent_srl" type="number" notnull="notnull" default="0" />
<column name="menu_srl" type="number" notnull="notnull" index="idx_menu_srl" />
<column name="name" type="text" />
<column name="icon" type="varchar" size="250" />
<column name="desc" type="varchar" size="250" />
<column name="url" type="varchar" size="250" />
<column name="is_shortcut" type="char" size="1" default="N" />

View file

@ -276,8 +276,10 @@ padding:0;list-style:none}
/* Default */
#default .menuType{border:1px solid #ddd;border-left:0;border-right:0}
#default [for="lang_menuName"],
#default [for="lang_menuDesc"],
#default [for="lang_pageTitle"],
#default [for="mid2"]{font-weight:bold}
#default [for="menuIcon"],
#default [for="mid2"]{font-weight:bold;}
#default .btnBoth{position:relative;margin:5px 0;box-sizing:border-box;width:100%;}
/* Auth */
#auth li>label:first-child{font-weight:bold;line-height:30px;margin:0}

View file

@ -190,6 +190,13 @@
<input id="menuName2" class="_menuName lang_code" type="text" required>
</div>
</li>
<li>
<div class="x_input-append">
<label for="menuIcon2">{$lang->menu_icon}</label>
<input id="menuIcon2" class="_menuIcon" type="text" />
</div>
<p>{$lang->about_menu_icon}</p>
</li>
<li>
<div class="multilingual x_input-append">
<label for="lang_menuDesc2">{$lang->menu_desc}</label>
@ -253,6 +260,13 @@
<input id="menuName" class="_menuName lang_code" type="text" required>
</div>
</li>
<li>
<div class="x_input-append">
<label for="menuIcon">{$lang->menu_icon}</label>
<input id="menuIcon" class="_menuIcon" type="text" />
</div>
<p style="width:220px;min-width:100%">{$lang->about_menu_icon}</p>
</li>
<li>
<div class="multilingual x_input-append">
<label for="lang_menuDesc">{$lang->menu_desc}</label>
@ -1850,6 +1864,7 @@ jQuery(function($){
});
$('#add_menu ._save').bind("click", function(){
var sMenuName = $('#add_menu ._menuName').val();
var sMenuIcon = $('#add_menu ._menuIcon').val();
var sMenuDesc = $('#add_menu ._menuDesc').val();
var sUrl = $('#add_menu ._mid').val();
var sTargetKey = "module_id";
@ -1899,6 +1914,7 @@ jQuery(function($){
params['act'] = "procMenuAdminInsertItem";
params['menu_name_key'] = "";
params['menu_name'] = sMenuName;
params['menu_icon'] = sMenuIcon;
params['menu_desc'] = sMenuDesc;
params['module_type'] = sSelectedModuleName;
params['menu_open_window'] = "N";
@ -1933,6 +1949,7 @@ jQuery(function($){
}
$(this).find('#menuName').val(htInfo.sMenuNameKey.match(/\$user_lang->/) ? htInfo.sMenuNameKey : htInfo.sText);
$(this).find('#menuIcon').val(htInfo.icon);
$(this).find('#menuDesc').val(htInfo.desc);
//menu_name_key
@ -1987,6 +2004,7 @@ jQuery(function($){
var htInfo = htNodeInfo[$._xeAdminVar.sSelectedMenuSrl];
var sMenuName = $('#default ._menuName').val();
var sMenuIcon = $('#default ._menuIcon').val();
var sMenuDesc = $('#default ._menuDesc').val();
var sMID;
@ -2013,6 +2031,7 @@ jQuery(function($){
}
params['menu_item_srl'] = sSelectedMenuSrl;
params['menu_name'] = sMenuName;
params['menu_icon'] = sMenuIcon;
params['menu_desc'] = sMenuDesc;
params['menu_open_window'] = sNewWindow;
params['menu_expand'] = sLeaveUnfolded;