From f5bfc2199a1d6154d0cdbc6521f3a0c70f6dc09e Mon Sep 17 00:00:00 2001 From: Nate Date: Wed, 20 May 2020 21:24:19 -0600 Subject: [PATCH] Theme: Side Menu default state controls. --- .../default_settings/default_setting_edit.php | 6 + core/default_settings/default_settings.php | 3 + core/domain_settings/domain_setting_edit.php | 6 + core/domain_settings/domain_settings.php | 3 + core/user_settings/user_setting_edit.php | 6 + core/user_settings/user_setting_set.php | 121 +++++++++++++++ core/user_settings/user_settings.php | 7 +- resources/app_languages.php | 48 +++++- resources/classes/menu.php | 43 ++++-- resources/footer.php | 1 + themes/default/app_config.php | 8 + themes/default/app_languages.php | 140 +++++++++++++++++- themes/default/css.php | 52 ++++++- themes/default/template.php | 136 ++++++++++------- 14 files changed, 498 insertions(+), 82 deletions(-) create mode 100644 core/user_settings/user_setting_set.php diff --git a/core/default_settings/default_setting_edit.php b/core/default_settings/default_setting_edit.php index 27b4491881..75c6ed4509 100644 --- a/core/default_settings/default_setting_edit.php +++ b/core/default_settings/default_setting_edit.php @@ -609,6 +609,12 @@ echo " \n"; echo " \n"; } + elseif ($category == "theme" && $subcategory == "menu_side_state" && $name == "text" ) { + echo " \n"; + } elseif ($category == "voicemail" && $subcategory == "voicemail_file" && $name == "text" ) { echo " \n"; } + elseif ($category == "theme" && $subcategory == "menu_side_state" && $name == "text" ) { + echo " \n"; + } elseif ($category == "voicemail" && $subcategory == "voicemail_file" && $name == "text" ) { echo " \n"; } + elseif ($user_setting_category == "theme" && $user_setting_subcategory == "menu_side_state" && $user_setting_name == "text" ) { + echo " \n"; + } else { echo " \n"; } diff --git a/core/user_settings/user_setting_set.php b/core/user_settings/user_setting_set.php new file mode 100644 index 0000000000..9aea30f50c --- /dev/null +++ b/core/user_settings/user_setting_set.php @@ -0,0 +1,121 @@ + +Portions created by the Initial Developer are Copyright (C) 2020 +the Initial Developer. All Rights Reserved. + +Contributor(s): +Mark J Crane +*/ + +//includes + require_once "root.php"; + require_once "resources/require.php"; + require_once "resources/check_auth.php"; + +//add multi-lingual support + $language = new text; + $text = $language->get(); + +//get http post variables and set them to php variables + if (is_array($_GET) && @sizeof($_GET) != 0) { + $user_setting_category = strtolower($_GET['category']); + $user_setting_subcategory = strtolower($_GET['subcategory']); + $user_setting_name = strtolower($_GET['name']); + $submitted_value = $_GET['value']; + //$submitted_order = is_numeric($_GET['order']) ? $_GET['order'] : null; + $submitted_enabled = strtolower($_GET['enabled']); + } + +//validate allowed user setting + switch ($user_setting_category) { + case 'theme': + switch ($user_setting_subcategory) { + case 'menu_side_state': + if ($submitted_value == 'expanded' || $submitted_value == 'contracted') { + $user_setting_value = $submitted_value; + $user_setting_enabled = 'true'; + } + break 2; + default: + //setting not allowed + echo 'false'; + exit; + } + break; + default: + //setting not allowed + echo 'false'; + exit; + } + +//add/update user setting + if (isset($user_setting_value) && isset($user_setting_enabled)) { + + //get existing user setting uuid, if exists + $sql = "select user_setting_uuid from v_user_settings "; + $sql .= "where user_uuid = :user_uuid "; + $sql .= "and domain_uuid = :domain_uuid "; + $sql .= "and user_setting_category = :user_setting_category "; + $sql .= "and user_setting_subcategory = :user_setting_subcategory "; + $sql .= "and user_setting_name = :user_setting_name "; + $parameters['user_uuid'] = $_SESSION['user_uuid']; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $parameters['user_setting_category'] = $user_setting_category; + $parameters['user_setting_subcategory'] = $user_setting_subcategory; + $parameters['user_setting_name'] = $user_setting_name; + $database = new database; + $user_setting_uuid = $database->select($sql, $parameters, 'column'); + unset($sql, $parameters); + + //create data array + $array['user_settings'][0]['user_setting_uuid'] = is_uuid($user_setting_uuid) ? $user_setting_uuid : uuid(); + $array['user_settings'][0]['user_uuid'] = $_SESSION['user_uuid']; + $array['user_settings'][0]['domain_uuid'] = $_SESSION['domain_uuid']; + $array['user_settings'][0]['user_setting_category'] = $user_setting_category; + $array['user_settings'][0]['user_setting_subcategory'] = $user_setting_subcategory; + $array['user_settings'][0]['user_setting_name'] = $user_setting_name; + $array['user_settings'][0]['user_setting_value'] = $user_setting_value; + //$array['user_settings'][0]['user_setting_order'] = $user_setting_order; + $array['user_settings'][0]['user_setting_enabled'] = $user_setting_enabled; + + //grant temporary permissions + $p = new permissions; + $p->add('user_setting_add', 'temp'); + $p->add('user_setting_edit', 'temp'); + + //execute + $database = new database; + $database->app_name = 'user_settings'; + $database->app_uuid = '3a3337f7-78d1-23e3-0cfd-f14499b8ed97'; + $database->save($array); + unset($array); + + //revoke temporary permissions + $p->delete('user_setting_add', 'temp'); + $p->delete('user_setting_edit', 'temp'); + + //update session variable + $_SESSION[$user_setting_category][$user_setting_subcategory][$user_setting_name] = $user_setting_value; + + //set response + echo 'true'; + } + +?> \ No newline at end of file diff --git a/core/user_settings/user_settings.php b/core/user_settings/user_settings.php index 81a0dca8be..ea1dbd69fc 100644 --- a/core/user_settings/user_settings.php +++ b/core/user_settings/user_settings.php @@ -280,14 +280,17 @@ echo " ".str_repeat('*', strlen(escape($row['user_setting_value']))); } else if ($category == 'theme' && $subcategory == 'button_icons' && $name == 'text') { - echo " ".$text['option-button_icons_'.$row['domain_setting_value']]."\n"; + echo " ".$text['option-button_icons_'.$row['user_setting_value']]."\n"; + } + else if ($category == 'theme' && $subcategory == 'menu_side_state' && $name == 'text') { + echo " ".$text['option-'.$row['user_setting_value']]."\n"; } else if ($category == "theme" && substr_count($subcategory, "_color") > 0 && ($name == "text" || $name == 'array')) { echo " ".(img_spacer('15px', '15px', 'background: '.escape($row['user_setting_value']).'; margin-right: 4px; vertical-align: middle; border: 1px solid '.(color_adjust($row['user_setting_value'], -0.18)).'; padding: -1px;')); echo "".escape($row['user_setting_value'])."\n"; } else if ($category == 'recordings' && $subcategory == 'storage_type' && $name == 'text') { - echo " ".$text['label-'.$row['domain_setting_value']]."\n"; + echo " ".$text['label-'.$row['user_setting_value']]."\n"; } else { echo " ".escape($row['user_setting_value'])."\n"; diff --git a/resources/app_languages.php b/resources/app_languages.php index 51f3f160ea..0cae7fbc28 100644 --- a/resources/app_languages.php +++ b/resources/app_languages.php @@ -4403,4 +4403,50 @@ $text['title-login']['sv-se'] = "Logga In"; $text['title-login']['uk-ua'] = "Логін"; $text['title-login']['tr-tr'] = "Giriş Yap"; -?> +$text['option-expanded']['en-us'] = "Expanded"; +$text['option-expanded']['en-gb'] = "Expanded"; +$text['option-expanded']['ar-eg'] = "Expanded"; +$text['option-expanded']['de-at'] = "Expanded"; +$text['option-expanded']['de-ch'] = "Expanded"; +$text['option-expanded']['de-de'] = "Expanded"; +$text['option-expanded']['el-gr'] = "Expanded"; +$text['option-expanded']['es-cl'] = "Expanded"; +$text['option-expanded']['es-mx'] = "Expanded"; +$text['option-expanded']['fr-ca'] = "Expanded"; +$text['option-expanded']['fr-fr'] = "Expanded"; +$text['option-expanded']['he-il'] = "Expanded"; +$text['option-expanded']['it-it'] = "Expanded"; +$text['option-expanded']['nl-nl'] = "Expanded"; +$text['option-expanded']['pl-pl'] = "Expanded"; +$text['option-expanded']['pt-br'] = "Expanded"; +$text['option-expanded']['pt-pt'] = "Expanded"; +$text['option-expanded']['ro-ro'] = "Expanded"; +$text['option-expanded']['ru-ru'] = "Expanded"; +$text['option-expanded']['sv-se'] = "Expanded"; +$text['option-expanded']['uk-ua'] = "Expanded"; +$text['option-expanded']['tr-tr'] = "Expanded"; + +$text['option-contracted']['en-us'] = "Contracted"; +$text['option-contracted']['en-gb'] = "Contracted"; +$text['option-contracted']['ar-eg'] = "Contracted"; +$text['option-contracted']['de-at'] = "Contracted"; +$text['option-contracted']['de-ch'] = "Contracted"; +$text['option-contracted']['de-de'] = "Contracted"; +$text['option-contracted']['el-gr'] = "Contracted"; +$text['option-contracted']['es-cl'] = "Contracted"; +$text['option-contracted']['es-mx'] = "Contracted"; +$text['option-contracted']['fr-ca'] = "Contracted"; +$text['option-contracted']['fr-fr'] = "Contracted"; +$text['option-contracted']['he-il'] = "Contracted"; +$text['option-contracted']['it-it'] = "Contracted"; +$text['option-contracted']['nl-nl'] = "Contracted"; +$text['option-contracted']['pl-pl'] = "Contracted"; +$text['option-contracted']['pt-br'] = "Contracted"; +$text['option-contracted']['pt-pt'] = "Contracted"; +$text['option-contracted']['ro-ro'] = "Contracted"; +$text['option-contracted']['ru-ru'] = "Contracted"; +$text['option-contracted']['sv-se'] = "Contracted"; +$text['option-contracted']['uk-ua'] = "Contracted"; +$text['option-contracted']['tr-tr'] = "Contracted"; + +?> \ No newline at end of file diff --git a/resources/classes/menu.php b/resources/classes/menu.php index 3234d37ba3..b971e6fea2 100644 --- a/resources/classes/menu.php +++ b/resources/classes/menu.php @@ -951,7 +951,7 @@ if (!class_exists('menu')) { $menu_brand_text = ($_SESSION['theme']['menu_brand_text']['text'] != '') ? escape($_SESSION['theme']['menu_brand_text']['text']) : "FusionPBX"; switch ($_SESSION['theme']['menu_brand_type']['text']) { case 'text': - $html .= " ".$menu_brand_text."\n"; + $html .= " ".$menu_brand_text."\n"; break; case 'image_text': $menu_brand_image = ($_SESSION['theme']['menu_brand_image']['text'] != '') ? escape($_SESSION['theme']['menu_brand_image']['text']) : PROJECT_PATH."/themes/default/images/logo.png"; @@ -1079,17 +1079,25 @@ if (!class_exists('menu')) { //menu brand image and/or text if ($_SESSION['theme']['menu_brand_type']['text'] == 'none') { - $html = "
\n"; - $html .= ""; - $html .= ""; - $html .= "
\n"; + $html = " \n"; } else { $html = " \n"; } + //main menu items if (is_array($menu_array) && sizeof($menu_array) != 0) { foreach ($menu_array as $menu_index_main => $menu_item_main) { @@ -1121,14 +1130,14 @@ if (!class_exists('menu')) { if ($menu_item_main['menu_item_icon'] != '') { $html .= ""; } - $html .= ""; + $html .= "".$menu_item_main['menu_language_title'].""; $html .= "\n"; //sub menu items if (is_array($menu_item_main['menu_items']) && sizeof($menu_item_main['menu_items']) != 0) { $html .= " \n"; @@ -1137,7 +1146,13 @@ if (!class_exists('menu')) { $html .= "
\n"; } $html .= "\n"; - $html .= "
\n"; + if ($_SESSION['theme']['menu_side_state']['text'] == 'expanded') { + $content_container_width = is_numeric($_SESSION['theme']['menu_side_width_expanded']['text']) ? $_SESSION['theme']['menu_side_width_expanded']['text'] : '225'; + } + else { + $content_container_width = is_numeric($_SESSION['theme']['menu_side_width_contracted']['text']) ? $_SESSION['theme']['menu_side_width_contracted']['text'] : '60'; + } + $html .= "
\n"; $html .= "
\n"; //header: left $html .= "
\n"; diff --git a/resources/footer.php b/resources/footer.php index 0b94f30fe6..c0c0085201 100644 --- a/resources/footer.php +++ b/resources/footer.php @@ -187,6 +187,7 @@ $menu->text = $text; $menu_html = $menu->menu_vertical($_SESSION['menu']['array']); unset($menu); + $view->assign('menu_side_state', (isset($_SESSION['theme']['menu_side_state']['text']) && $_SESSION['theme']['menu_side_state']['text'] != '' ? $_SESSION['theme']['menu_side_state']['text'] : 'contracted')); break; case 'inline': $container_open = "
\n"; diff --git a/themes/default/app_config.php b/themes/default/app_config.php index e819bfc2db..d98d0c4c0e 100644 --- a/themes/default/app_config.php +++ b/themes/default/app_config.php @@ -1703,6 +1703,14 @@ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false"; $apps[$x]['default_settings'][$y]['default_setting_description'] = "Set the expanded brand image path for the Side menu."; $y++; + $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "66d37950-15db-4dd0-888a-17ded7b5c0dc"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "theme"; + $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "menu_side_state"; + $apps[$x]['default_settings'][$y]['default_setting_name'] = "text"; + $apps[$x]['default_settings'][$y]['default_setting_value'] = "contracted"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "Set the default state of the Side Menu: expanded (pinned) or contracted (unpinned)."; + $y++; $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "97a620e1-d7b2-4550-8648-726c3029143d"; $apps[$x]['default_settings'][$y]['default_setting_category'] = "theme"; $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "action_bar_border_top"; diff --git a/themes/default/app_languages.php b/themes/default/app_languages.php index ea25b0511f..d58e7d09ff 100644 --- a/themes/default/app_languages.php +++ b/themes/default/app_languages.php @@ -231,4 +231,142 @@ $text['theme-label-domain']['sv-se'] = "Domän"; $text['theme-label-domain']['uk-ua'] = "Домен"; $text['theme-label-domain']['tr-tr'] = "Alan Adı"; -?> +$text['theme-label-expand_menu']['en-us'] = "Expand Menu"; +$text['theme-label-expand_menu']['en-gb'] = "Expand Menu"; +$text['theme-label-expand_menu']['ar-eg'] = "Expand Menu"; +$text['theme-label-expand_menu']['de-at'] = "Expand Menu"; +$text['theme-label-expand_menu']['de-ch'] = "Expand Menu"; +$text['theme-label-expand_menu']['de-de'] = "Expand Menu"; +$text['theme-label-expand_menu']['el-gr'] = "Expand Menu"; +$text['theme-label-expand_menu']['es-cl'] = "Expand Menu"; +$text['theme-label-expand_menu']['es-mx'] = "Expand Menu"; +$text['theme-label-expand_menu']['fr-ca'] = "Expand Menu"; +$text['theme-label-expand_menu']['fr-fr'] = "Expand Menu"; +$text['theme-label-expand_menu']['he-il'] = "Expand Menu"; +$text['theme-label-expand_menu']['it-it'] = "Expand Menu"; +$text['theme-label-expand_menu']['nl-nl'] = "Expand Menu"; +$text['theme-label-expand_menu']['pl-pl'] = "Expand Menu"; +$text['theme-label-expand_menu']['pt-br'] = "Expand Menu"; +$text['theme-label-expand_menu']['pt-pt'] = "Expand Menu"; +$text['theme-label-expand_menu']['ro-ro'] = "Expand Menu"; +$text['theme-label-expand_menu']['ru-ru'] = "Expand Menu"; +$text['theme-label-expand_menu']['sv-se'] = "Expand Menu"; +$text['theme-label-expand_menu']['uk-ua'] = "Expand Menu"; +$text['theme-label-expand_menu']['tr-tr'] = "Expand Menu"; + +$text['theme-label-contract_menu']['en-us'] = "Contract Menu"; +$text['theme-label-contract_menu']['en-gb'] = "Contract Menu"; +$text['theme-label-contract_menu']['ar-eg'] = "Contract Menu"; +$text['theme-label-contract_menu']['de-at'] = "Contract Menu"; +$text['theme-label-contract_menu']['de-ch'] = "Contract Menu"; +$text['theme-label-contract_menu']['de-de'] = "Contract Menu"; +$text['theme-label-contract_menu']['el-gr'] = "Contract Menu"; +$text['theme-label-contract_menu']['es-cl'] = "Contract Menu"; +$text['theme-label-contract_menu']['es-mx'] = "Contract Menu"; +$text['theme-label-contract_menu']['fr-ca'] = "Contract Menu"; +$text['theme-label-contract_menu']['fr-fr'] = "Contract Menu"; +$text['theme-label-contract_menu']['he-il'] = "Contract Menu"; +$text['theme-label-contract_menu']['it-it'] = "Contract Menu"; +$text['theme-label-contract_menu']['nl-nl'] = "Contract Menu"; +$text['theme-label-contract_menu']['pl-pl'] = "Contract Menu"; +$text['theme-label-contract_menu']['pt-br'] = "Contract Menu"; +$text['theme-label-contract_menu']['pt-pt'] = "Contract Menu"; +$text['theme-label-contract_menu']['ro-ro'] = "Contract Menu"; +$text['theme-label-contract_menu']['ru-ru'] = "Contract Menu"; +$text['theme-label-contract_menu']['sv-se'] = "Contract Menu"; +$text['theme-label-contract_menu']['uk-ua'] = "Contract Menu"; +$text['theme-label-contract_menu']['tr-tr'] = "Contract Menu"; + +$text['theme-label-pin_menu']['en-us'] = "Pin Menu"; +$text['theme-label-pin_menu']['en-gb'] = "Pin Menu"; +$text['theme-label-pin_menu']['ar-eg'] = "Pin Menu"; +$text['theme-label-pin_menu']['de-at'] = "Pin Menu"; +$text['theme-label-pin_menu']['de-ch'] = "Pin Menu"; +$text['theme-label-pin_menu']['de-de'] = "Pin Menu"; +$text['theme-label-pin_menu']['el-gr'] = "Pin Menu"; +$text['theme-label-pin_menu']['es-cl'] = "Pin Menu"; +$text['theme-label-pin_menu']['es-mx'] = "Pin Menu"; +$text['theme-label-pin_menu']['fr-ca'] = "Pin Menu"; +$text['theme-label-pin_menu']['fr-fr'] = "Pin Menu"; +$text['theme-label-pin_menu']['he-il'] = "Pin Menu"; +$text['theme-label-pin_menu']['it-it'] = "Pin Menu"; +$text['theme-label-pin_menu']['nl-nl'] = "Pin Menu"; +$text['theme-label-pin_menu']['pl-pl'] = "Pin Menu"; +$text['theme-label-pin_menu']['pt-br'] = "Pin Menu"; +$text['theme-label-pin_menu']['pt-pt'] = "Pin Menu"; +$text['theme-label-pin_menu']['ro-ro'] = "Pin Menu"; +$text['theme-label-pin_menu']['ru-ru'] = "Pin Menu"; +$text['theme-label-pin_menu']['sv-se'] = "Pin Menu"; +$text['theme-label-pin_menu']['uk-ua'] = "Pin Menu"; +$text['theme-label-pin_menu']['tr-tr'] = "Pin Menu"; + +$text['theme-label-unpin_menu']['en-us'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['en-gb'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['ar-eg'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['de-at'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['de-ch'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['de-de'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['el-gr'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['es-cl'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['es-mx'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['fr-ca'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['fr-fr'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['he-il'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['it-it'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['nl-nl'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['pl-pl'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['pt-br'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['pt-pt'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['ro-ro'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['ru-ru'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['sv-se'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['uk-ua'] = "Unpin Menu"; +$text['theme-label-unpin_menu']['tr-tr'] = "Unpin Menu"; + +$text['theme-message-menu_expanded']['en-us'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['en-gb'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['ar-eg'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['de-at'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['de-ch'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['de-de'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['el-gr'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['es-cl'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['es-mx'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['fr-ca'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['fr-fr'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['he-il'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['it-it'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['nl-nl'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['pl-pl'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['pt-br'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['pt-pt'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['ro-ro'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['ru-ru'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['sv-se'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['uk-ua'] = "Menu Pinned"; +$text['theme-message-menu_expanded']['tr-tr'] = "Menu Pinned"; + +$text['theme-message-menu_contracted']['en-us'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['en-gb'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['ar-eg'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['de-at'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['de-ch'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['de-de'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['el-gr'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['es-cl'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['es-mx'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['fr-ca'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['fr-fr'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['he-il'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['it-it'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['nl-nl'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['pl-pl'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['pt-br'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['pt-pt'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['ro-ro'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['ru-ru'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['sv-se'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['uk-ua'] = "Menu Unpinned"; +$text['theme-message-menu_contracted']['tr-tr'] = "Menu Unpinned"; + +?> \ No newline at end of file diff --git a/themes/default/css.php b/themes/default/css.php index 28f0ed433c..dee6f2da7c 100644 --- a/themes/default/css.php +++ b/themes/default/css.php @@ -457,7 +457,14 @@ header('Expires: '.gmdate('D, d M Y H:i:s',time()+3600).' GMT'); position: fixed; top: 0; left: 0; - width: px; + height: 100%; overflow: auto; @@ -538,9 +545,37 @@ header('Expires: '.gmdate('D, d M Y H:i:s',time()+3600).' GMT'); text-decoration: none; } + /* menu side control container */ + div#menu_side_control_container { + position: -webkit-sticky; + position: sticky; + z-index: 99901; + top: 0; + padding: 0; + min-height: 75px; + text-align: left; + + background-image: url(""); + background-position: 0px 0px; + background-repeat: repeat-y; + + background: ; + + + -moz-border-radius: ; + -webkit-border-radius: ; + -khtml-border-radius: ; + border-radius: ; + } + div#menu_side_container > a.menu_side_item_main, div#menu_side_container > div > a.menu_side_item_main, - div#menu_side_container > div#menu_side_brand_container > div > a.menu_side_item_main { + div#menu_side_container > div#menu_side_brand_container a.menu_side_item_main, + div#menu_side_container > div#menu_side_control_container a.menu_side_item_main { display: block; width: 100%; padding: 10px 20px; @@ -552,14 +587,17 @@ header('Expires: '.gmdate('D, d M Y H:i:s',time()+3600).' GMT'); } div#menu_side_container > a.menu_side_item_main:hover, - div#menu_side_container a.menu_side_item_main:focus, - div#menu_side_container a.menu_side_item_main:active, + div#menu_side_container > a.menu_side_item_main:focus, + div#menu_side_container > a.menu_side_item_main:active, div#menu_side_container > div > a.menu_side_item_main:hover, div#menu_side_container > div > a.menu_side_item_main:focus, div#menu_side_container > div > a.menu_side_item_main:active, - div#menu_side_container > div#menu_side_brand_container > div > a.menu_side_item_main:hover, - div#menu_side_container > div#menu_side_brand_container > div > a.menu_side_item_main:focus, - div#menu_side_container > div#menu_side_brand_container > div > a.menu_side_item_main:active { + div#menu_side_container > div#menu_side_control_container > div a.menu_side_item_main:hover, + div#menu_side_container > div#menu_side_control_container > div a.menu_side_item_main:focus, + div#menu_side_container > div#menu_side_control_container > div a.menu_side_item_main:active, + div#menu_side_container > div#menu_side_brand_container > div a.menu_side_item_main:hover, + div#menu_side_container > div#menu_side_brand_container > div a.menu_side_item_main:focus, + div#menu_side_container > div#menu_side_brand_container > div a.menu_side_item_main:active { color: ; background: ; text-decoration: none; diff --git a/themes/default/template.php b/themes/default/template.php index 1eeb910705..d8dee8ef59 100644 --- a/themes/default/template.php +++ b/themes/default/template.php @@ -82,76 +82,97 @@ {if $settings.theme.menu_style == 'side'} //side menu visibility toggle + var menu_side_state_current = '{$menu_side_state}'; {literal} - var menu_side_state = 'contracted'; function menu_side_contract() { - $('.menu_side_sub').slideUp(180); - $('.menu_side_item_title').hide(); - {/literal} - {if $settings.theme.menu_brand_type == 'image' || $settings.theme.menu_brand_type == ''} + if (menu_side_state_current == 'expanded') { + $('.menu_side_sub').slideUp(180); + $('.menu_side_item_title').hide(); + {/literal} + {if $settings.theme.menu_brand_type == 'image' || $settings.theme.menu_brand_type == ''} + {literal} + $('#menu_brand_image_expanded').fadeOut(180, function() { + $('#menu_brand_image_contracted').fadeIn(180); + }); + {/literal} + {elseif $settings.theme.menu_brand_type == 'image_text'} + {literal} + $('.menu_brand_text').hide(); + $('#menu_brand_image_contracted').animate({ width: '20px', 'margin-left': '-2px' }, 250); + {/literal} + {else if $settings.theme.menu_brand_type == 'text'} + {literal} + $('.menu_brand_text').fadeOut(180); + {/literal} + {/if} {literal} - $('#menu_brand_image_expanded').fadeOut(180, function() { - $('#menu_brand_image_contracted').fadeIn(180); + $('#menu_side_container').animate({ width: '{/literal}{$settings.theme.menu_side_width_contracted}{literal}px' }, 250); + $('#content_container').animate({ width: $(window).width() - {/literal}{$settings.theme.menu_side_width_contracted}{literal} }, 250, function() { + menu_side_state_current = 'contracted'; }); - {/literal} - {elseif $settings.theme.menu_brand_type == 'image_text'} - {literal} - $('.menu_brand_text').hide(); - $('#menu_brand_image_contracted').animate({ width: '20px', 'margin-left': '-2px' }, 250); - {/literal} - {else if $settings.theme.menu_brand_type == 'text'} - {literal} - $('.menu_brand_text').fadeOut(180); - {/literal} - {/if} - {literal} - $('#menu_side_container').animate({ width: '{/literal}{$settings.theme.menu_side_width_contracted}{literal}px' }, 250); - $('#content_container').animate({ width: $(window).width() - {/literal}{$settings.theme.menu_side_width_contracted}{literal} }, 250, function() { - menu_side_state = 'contracted'; - }); - $('.menu_side_contract').hide(); - $('.menu_side_expand').show(); + $('.menu_side_contract').hide(); + $('.menu_side_expand').show(); + } } function menu_side_expand() { - {/literal} - {if $settings.theme.menu_brand_type == 'image_text'} - {literal} - $('#menu_brand_image_contracted').animate({ width: '30px', 'margin-left': '0' }, 250); + if (menu_side_state_current == 'contracted') { {/literal} - {elseif $settings.theme.menu_brand_type == 'image' || $settings.theme.menu_brand_type == ''} - {literal} - $('#menu_brand_image_contracted').fadeOut(180); - {/literal} - {/if} - {literal} - $('#menu_side_container').animate({ width: '{/literal}{$settings.theme.menu_side_width_expanded}{literal}px' }, 250); - $('#content_container').animate({ width: $(window).width() - {/literal}{$settings.theme.menu_side_width_expanded}{literal} }, 250, function() { - $('.menu_brand_text').fadeIn(180); - $('.menu_side_item_title').fadeIn(180); - {/literal} - {if $settings.theme.menu_brand_type != 'none'} + {if $settings.theme.menu_brand_type == 'image_text'} {literal} + $('#menu_brand_image_contracted').animate({ width: '30px', 'margin-left': '0' }, 250); + {/literal} + {elseif $settings.theme.menu_brand_type == 'image' || $settings.theme.menu_brand_type == ''} + {literal} + $('#menu_brand_image_contracted').fadeOut(180); + {/literal} + {/if} + {literal} + $('#menu_side_container').animate({ width: '{/literal}{$settings.theme.menu_side_width_expanded}{literal}px' }, 250, function() { $('.menu_side_contract').fadeIn(180); + }); + $('#content_container').animate({ width: $(window).width() - {/literal}{$settings.theme.menu_side_width_expanded}{literal} }, 250, function() { + $('.menu_brand_text').fadeIn(180); + $('.menu_side_item_title').fadeIn(180); {/literal} - {/if} - {if $settings.theme.menu_brand_type == 'image' || $settings.theme.menu_brand_type == ''} + {if $settings.theme.menu_brand_type == 'image' || $settings.theme.menu_brand_type == ''} + {literal} + $('#menu_brand_image_expanded').fadeIn(180); + {/literal} + {/if} {literal} - $('#menu_brand_image_expanded').fadeIn(180); - {/literal} - {/if} - {literal} - menu_side_state = 'expanded'; - }); - {/literal} - {if $settings.theme.menu_brand_type == 'none'} - {literal} - $('.menu_side_contract').show(); - {/literal} - {/if} - {literal} - $('.menu_side_expand').hide(); + menu_side_state_current = 'expanded'; + }); + $('.menu_side_expand').hide(); + } + } + + function menu_side_state_set(state) { + var user_setting_set_path = '{/literal}{$project_path}{literal}/core/user_settings/user_setting_set.php?category=theme&subcategory=menu_side_state&name=text&value='+state; + var xhr = new XMLHttpRequest(); + xhr.open('GET', user_setting_set_path); + xhr.send(null); + xhr.onreadystatechange = function () { + var setting_modified; + if (xhr.readyState === 4) { + if (xhr.status === 200) { + setting_modified = xhr.responseText; + if (setting_modified == 'true') { + document.getElementById('menu_side_state_set_expanded').style.display = state == 'expanded' ? 'none' : 'block'; + document.getElementById('menu_side_state_set_contracted').style.display = state == 'contracted' ? 'none' : 'block'; + if (state == 'expanded') { + document.getElementById('menu_side_state_current').value = 'expanded'; + display_message("{/literal}{$text.theme_message_menu_expanded}{literal}", 'positive', 1000); + } + else { + document.getElementById('menu_side_state_current').value = 'contracted'; + display_message("{/literal}{$text.theme_message_menu_contracted}{literal}", 'positive', 1000); + } + } + } + } + } } {/literal} {/if} @@ -912,6 +933,7 @@ {if $settings.theme.menu_style == 'inline'}{$logo}{/if} {$menu} {if $settings.theme.menu_style == 'inline' || $settings.theme.menu_style == 'static'}
{/if} + {if $settings.theme.menu_style == 'side'}{/if} {else} {*//default: fixed *} {$menu} {$container_open}