فهرست منبع

#2113 Dashboard page realign - core changes

RomanL 7 سال پیش
والد
کامیت
3a874e362f

+ 1 - 1
inc/classes/BxDolTemplate.php

@@ -274,7 +274,7 @@ class BxDolTemplate extends BxDolFactory implements iBxDolSingleton
         $this->_sFolderCss = 'css/';
         $this->_sFolderImages = 'images/';
         $this->_sFolderIcons = 'images/icons/';
-        $this->_aTemplates = array('html_tags', 'menu_item_addon', 'menu_item_addon_small', 'menu_item_addon_middle');
+        $this->_aTemplates = array('html_tags', 'menu_item_addon', 'menu_item_addon_small', 'menu_item_addon_middle', 'menu_item_dashboard_manage_tools_addon');
 
         $this->addLocation('system', $this->_sRootPath, $this->_sRootUrl);
 

+ 8 - 7
install/sql/system.sql

@@ -3475,7 +3475,8 @@ INSERT INTO `sys_menu_templates` (`id`, `template`, `title`, `visible`) VALUES
 (20, 'menu_custom_ver.html', '_sys_menu_template_title_custom_ver', 0),
 (21, 'menu_profile_stats.html', '_sys_menu_template_title_profile_stats', 0),
 (22, 'menu_interactive.html', '_sys_menu_template_title_interactive', 1),
-(23, 'menu_buttons_icon_hor.html', '_sys_menu_template_title_buttons_icon_hor', 1);
+(23, 'menu_buttons_icon_hor.html', '_sys_menu_template_title_buttons_icon_hor', 1),
+(24, 'menu_floating_blocks_dash.html', '_sys_menu_template_title_floating_blocks_dash', 0);
 
 CREATE TABLE IF NOT EXISTS `sys_objects_menu` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
@@ -3503,7 +3504,7 @@ INSERT INTO `sys_objects_menu` (`object`, `title`, `set_name`, `module`, `templa
 ('sys_add_profile', '_sys_menu_title_add_profile', 'sys_add_profile_links', 'system', 14, 0, 1, 'BxTemplMenuProfileAdd', ''),
 ('sys_add_profile_vertical', '_sys_menu_title_add_profile_vertical', 'sys_add_profile_links', 'system', 6, 0, 1, 'BxTemplMenuProfileAdd', ''),
 ('sys_account_dashboard', '_sys_menu_title_account_dashboard', 'sys_account_dashboard', 'system', 8, 0, 1, 'BxTemplMenuAccountDashboard', ''),
-('sys_account_dashboard_manage_tools', '_sys_menu_title_account_dashboard_manage_tools', 'sys_account_dashboard_manage_tools', 'system', 4, 0, 1, '', ''),
+('sys_account_dashboard_manage_tools', '_sys_menu_title_account_dashboard_manage_tools', 'sys_account_dashboard_manage_tools', 'system', 24, 0, 1, 'BxTemplMenuDashboardManageTools', ''),
 ('sys_account_settings_submenu', '_sys_menu_title_account_settings', 'sys_account_settings', 'system', 8, 0, 1, '', ''),
 ('sys_account_settings_more', '_sys_menu_title_account_settings_more', 'sys_account_settings_more', 'system', 4, 0, 1, '', ''),
 ('sys_profiles_create', '_sys_menu_title_profiles_create', 'sys_profiles_create', 'system', 4, 0, 1, '', ''),
@@ -3658,7 +3659,7 @@ INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `tit
 
 -- dashboard manage tools
 INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `addon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
-('sys_account_dashboard_manage_tools', 'system', 'cmts-administration', '_sys_menu_item_title_system_cmts_administration', '_sys_menu_item_title_cmts_administration', 'page.php?i=cmts-administration', '', '', '', 'a:2:{s:6:"module";s:6:"system";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 192, 1, 0, 1);
+('sys_account_dashboard_manage_tools', 'system', 'cmts-administration', '_sys_menu_item_title_system_cmts_administration', '_sys_menu_item_title_cmts_administration', 'page.php?i=cmts-administration', '', '', 'comments', 'a:2:{s:6:"module";s:6:"system";s:6:"method";s:27:"get_menu_addon_manage_tools";}', '', 192, 1, 0, 1);
 
 -- profile stats
 INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `addon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES
@@ -4221,7 +4222,7 @@ INSERT INTO `sys_objects_page` (`object`, `uri`, `title_system`, `title`, `modul
 ('sys_about', 'about', '_sys_page_title_system_about', '_sys_page_title_about', 'system', 5, 2147483647, 1, 'page.php?i=about', '', '', '', 0, 1, 0, '', ''),
 ('sys_terms', 'terms', '_sys_page_title_system_terms', '_sys_page_title_terms', 'system', 5, 2147483647, 1, 'page.php?i=terms', '', '', '', 0, 1, 0, '', ''),
 ('sys_privacy', 'privacy', '_sys_page_title_system_privacy', '_sys_page_title_privacy', 'system', 5, 2147483647, 1, 'page.php?i=privacy', '', '', '', 0, 1, 0, '', ''),
-('sys_dashboard', 'dashboard', '_sys_page_title_system_dashboard', '_sys_page_title_dashboard', 'system', 12, 2147483646, 1, 'page.php?i=dashboard', '', '', '', 0, 1, 0, 'BxTemplPageDashboard', ''),
+('sys_dashboard', 'dashboard', '_sys_page_title_system_dashboard', '_sys_page_title_dashboard', 'system', 10, 2147483646, 1, 'page.php?i=dashboard', '', '', '', 0, 1, 0, 'BxTemplPageDashboard', ''),
 ('sys_create_account', 'create-account', '_sys_page_title_system_create_account', '_sys_page_title_create_account', 'system', 5, 2147483647, 1, 'page.php?i=create-account', '', '', '', 0, 1, 0, '', ''),
 ('sys_login', 'login', '_sys_page_title_system_login', '_sys_page_title_login', 'system', 5, 2147483647, 1, 'page.php?i=login', '', '', '', 0, 1, 0, '', ''),
 ('sys_login_step2', 'login-step2', '_sys_page_title_system_login_step2', '_sys_page_title_login_step2', 'system', 5, 2147483647, 1, 'page.php?i=login-step2', '', '', '', 0, 1, 0, '', ''),
@@ -4348,13 +4349,13 @@ INSERT INTO `sys_pages_blocks` (`object`, `cell_id`, `module`, `title_system`, `
 
 ('sys_privacy', 1, 'system', '', '_sys_page_block_title_privacy', 11, 2147483647, 'lang', '_sys_page_lang_block_privacy', 0, 1, 1, 1),
 
-('sys_dashboard', 3, 'system', '', '_sys_page_block_title_profile_stats', 3, 2147483644, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:13:"profile_stats";s:6:"params";a:0:{}s:5:"class";s:20:"TemplServiceProfiles";}', 0, 1, 1, 1),
+('sys_dashboard', 3, 'system', '', '_sys_page_block_title_profile_stats', 3, 2147483644, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:13:"profile_stats";s:6:"params";a:0:{}s:5:"class";s:20:"TemplServiceProfiles";}', 0, 1, 0, 1),
 
 ('sys_dashboard', 3, 'system', '', '_sys_page_block_title_profile_membership', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:18:"profile_membership";s:6:"params";a:0:{}s:5:"class";s:20:"TemplServiceProfiles";}', 0, 1, 0, 0),
 
-('sys_dashboard', 3, 'system', '', '_sys_page_block_title_manage_tools', 11, 192, 'menu', 'sys_account_dashboard_manage_tools', 0, 1, 1, 3),
+('sys_dashboard', 1, 'system', '', '_sys_page_block_title_manage_tools', 11, 192, 'menu', 'sys_account_dashboard_manage_tools', 0, 1, 1, 3),
 
-('sys_dashboard', 2, 'system', '', '_sys_page_block_title_chart_growth', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:16:"get_chart_growth";s:6:"params";a:0:{}s:5:"class";s:18:"TemplChartServices";}', 0, 1, 1, 4),
+('sys_dashboard', 3, 'system', '', '_sys_page_block_title_chart_growth', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:16:"get_chart_growth";s:6:"params";a:0:{}s:5:"class";s:18:"TemplChartServices";}', 0, 1, 1, 0),
 
 ('sys_dashboard', 2, 'system', '', '_sys_page_block_title_chart_stats', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:15:"get_chart_stats";s:6:"params";a:0:{}s:5:"class";s:18:"TemplChartServices";}', 0, 1, 1, 3),
 

+ 42 - 0
template/css/menu.css

@@ -354,13 +354,19 @@ ul.bx-menu-toolbar li a .bx-def-unit-alert-middle {
 
 ul.bx-menu-floating-blocks-wide,
 ul.bx-menu-floating-blocks-big,
+ul.bx-menu-floating-blocks-dash,
 ul.bx-menu-floating-blocks {
     padding:0;
     margin:0;
     list-style:none;
 }
+ul.bx-menu-floating-blocks-dash {
+    margin-left: -6px;
+}
+    
 
 .bx-menu-floating-blocks-big li,
+.bx-menu-floating-blocks-dash li,
 .bx-menu-floating-blocks-wide li,
 .bx-menu-floating-blocks li {
     display: inline-block;
@@ -380,6 +386,10 @@ ul.bx-menu-floating-blocks {
     height:128px;
     height:8rem;
 }
+.bx-menu-floating-blocks-dash li {
+    width:15rem;
+    height:3.6rem;
+}
 .bx-menu-floating-blocks-wide li {
     position:relative;
     width:100px;
@@ -393,6 +403,7 @@ ul.bx-menu-floating-blocks {
 }
 
 .bx-menu-floating-blocks-big li:hover,
+.bx-menu-floating-blocks-dash li:hover,
 .bx-menu-floating-blocks-wide li:hover,
 .bx-menu-floating-blocks li:hover {
     opacity:0.8;
@@ -400,6 +411,8 @@ ul.bx-menu-floating-blocks {
 
 .bx-menu-floating-blocks-big li:active,
 .bx-menu-floating-blocks-big li.bx-menu-tab-active,
+.bx-menu-floating-blocks-dash li:active,
+.bx-menu-floating-blocks-dash li.bx-menu-tab-active,
 .bx-menu-floating-blocks-wide li:active,
 .bx-menu-floating-blocks-wide li.bx-menu-tab-active,
 .bx-menu-floating-blocks li:active,
@@ -408,6 +421,7 @@ ul.bx-menu-floating-blocks {
 }
 
 .bx-menu-floating-blocks-big li a,
+.bx-menu-floating-blocks-dash li a,
 .bx-menu-floating-blocks-wide li a,
 .bx-menu-floating-blocks li a {
     display:block;
@@ -415,6 +429,7 @@ ul.bx-menu-floating-blocks {
 }
 
 .bx-menu-floating-blocks-big li.bx-menu-tab-active a,
+.bx-menu-floating-blocks-dash li.bx-menu-tab-active a,
 .bx-menu-floating-blocks-wide li.bx-menu-tab-active a,
 .bx-menu-floating-blocks li.bx-menu-tab-active a {
     color:#000;
@@ -465,6 +480,7 @@ ul.bx-menu-floating-blocks {
 }
 
 .bx-menu-floating-blocks-big li img,
+.bx-menu-floating-blocks-dash li img,
 .bx-menu-floating-blocks-wide li img,
 .bx-menu-floating-blocks li img {
     background-position:center center;
@@ -472,6 +488,7 @@ ul.bx-menu-floating-blocks {
 }
 
 .bx-menu-floating-blocks-big li .sys-icon,
+.bx-menu-floating-blocks-dash li .sys-icon,
 .bx-menu-floating-blocks-wide li .sys-icon,
 .bx-menu-floating-blocks li .sys-icon {
     text-align:center;
@@ -488,6 +505,14 @@ ul.bx-menu-floating-blocks {
     font-size:4rem;
 }
 
+.bx-menu-floating-blocks-dash li .sys-icon {
+    line-height:2rem;
+    font-size:2rem;
+}
+.bx-menu-floating-blocks-dash .bx-menu-floating-blocks-icon {
+    float:left;
+}
+
 .bx-menu-floating-blocks-big li .bx-menu-floating-blocks-title,
 .bx-menu-floating-blocks-wide li .bx-menu-floating-blocks-title,
 .bx-menu-floating-blocks li .bx-menu-floating-blocks-title {
@@ -497,6 +522,23 @@ ul.bx-menu-floating-blocks {
     white-space:nowrap;
 }
 
+.bx-menu-floating-blocks-dash li .bx-menu-floating-blocks-title {
+    text-align:left;
+    font-weight:bold;
+    overflow:hidden;
+    text-overflow:ellipsis;
+    white-space:nowrap;
+}
+.bx-menu-floating-blocks-dash li .bx-menu-floating-blocks-info {
+    text-align:left;
+    overflow:hidden;
+    text-overflow:ellipsis;
+    white-space:nowrap;
+}
+.bx-menu-floating-blocks-dash li .bx-menu-floating-blocks-info {
+}
+
+
 /* --------------- interactive block menu */
 ul.bx-menu-inter,
 ul.bx-menu-inter-vert {

+ 21 - 0
template/menu_floating_blocks_dash.html

@@ -0,0 +1,21 @@
+<ul class="bx-menu-floating-blocks-dash bx-menu-object-__object__ bx-clearfix bx-def-margin-sec-leftright-neg">
+    <bx_repeat:menu_items>
+        <li class="bx-def-box bx-def-round-corners bx-def-color-bg-hl-hover bx-def-box bx-def-box-sizing __class_add__ bx-def-padding-sec bx-def-margin-sec-bottom bx-def-margin-sec-left">
+            <a href="__link__" target="__target__" onclick="__onclick__">
+                <div class="bx-menu-floating-blocks-icon bx-def-margin-sec-right">
+                    <bx_if:icon><i class="sys-icon __icon__"></i></bx_if:icon>
+                    <bx_if:image><img style="background-image:url(__icon_url__)" src="><bx_icon_url:spacer.gif />" /></bx_if:image>
+                </div>
+                <div class="bx-menu-floating-blocks-title">__title__</div>
+                <bx_if:addon>__addonf__</bx_if:addon>
+            </a>
+        </li>
+    </bx_repeat:menu_items>
+</ul>
+
+<script language="javascript">
+    $(document).ready(function () {
+        // add default class to active menu items
+        $('.bx-menu-floating-blocks-big > li.bx-menu-tab-active').not('.bx-def-color-bg-active').addClass('bx-def-color-bg-active');
+    });
+</script>

+ 11 - 0
template/menu_item_dashboard_manage_tools_addon.html

@@ -0,0 +1,11 @@
+<div class="bx-menu-floating-blocks-info bx-def-font-grayed bx-def-font-small">
+    <bx_if:counter1>
+        __value__ __caption__
+    </bx_if:counter1>
+    <bx_if:counter1and2>
+        &bull;
+    </bx_if:counter1and2>
+    <bx_if:counter2>
+        <span class="col-red1">__value__ __caption__</span>
+    </bx_if:counter2>
+</div>

+ 2 - 1
template/scripts/BxBaseMenu.php

@@ -149,7 +149,8 @@ class BxBaseMenu extends BxDolMenu
 		$a = $this->_replaceMarkers($a);
 
 		$mixedAddon = $this->_getMenuAddon($a);
-		$this->addMarkers(array('addon' => $mixedAddon));
+        if (!is_array($mixedAddon))
+		    $this->addMarkers(array('addon' => $mixedAddon));
 
 		$a = $this->_replaceMarkers($a);
 

+ 66 - 0
template/scripts/BxBaseMenuDashboardManageTools.php

@@ -0,0 +1,66 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) UNA, Inc - https://una.io
+ * MIT License - https://opensource.org/licenses/MIT
+ *
+ * @defgroup    UnaBaseView UNA Base Representation Classes
+ * @{
+ */
+
+/**
+ * Menu representation.
+ * @see BxDolMenu
+ */
+class BxBaseMenuDashboardManageTools extends BxTemplMenu
+{
+    public function __construct ($aObject, $oTemplate)
+    {
+        parent::__construct ($aObject, $oTemplate);
+    }
+    
+    protected function _getMenuIcon ($a)
+    {
+         $aTmp = parent::_getMenuIcon ($a);
+         if (trim($aTmp[0]) == '')
+             $aTmp[0] = 'user-cog';
+         return $aTmp;
+    }
+    
+    protected function _getTmplVarsAddon($mixedAddon, $aMenuItem)
+    {
+        $aValues = array('counter1_value' => 0, 'counter1_caption' => _t('_sys_menu_dashboard_manage_tools_addon_counter1_caption_default'), 'counter2_value' => 0, 'counter2_caption' => _t('_sys_menu_dashboard_manage_tools_addon_counter2_caption_default'));
+        if (is_array($mixedAddon)){
+            $aValues = array_merge($aValues, $mixedAddon);
+        }
+        else{
+            $aValues['counter1_value'] = $mixedAddon;
+        }
+        
+        $aTmp = array(
+            'bx_if:counter1' => array(
+                'condition' => $aValues['counter1_value'] > 0,
+                'content' => array(
+                    'value' => $aValues['counter1_value'],
+                    'caption' => $aValues['counter1_caption']
+                )
+            ),
+            'bx_if:counter2' => array(
+                'condition' => $aValues['counter2_value'] > 0,
+                'content' => array(
+                    'value' => $aValues['counter2_value'],
+                    'caption' => $aValues['counter2_caption']
+                )
+            ),
+            'bx_if:counter1and2' => array(
+                'condition' => ($aValues['counter1_value'] > 0 && $aValues['counter2_value'] > 0),
+                'content' => array()
+            )
+        );
+        return array(
+            'addon' => (trim($aValues['counter1_value']) != '' || trim($aValues['counter2_value']) != ''),
+            'addonf' => $this->_oTemplate->parseHtmlByTemplateName('menu_item_dashboard_manage_tools_addon', $aTmp)
+        );
+    }
+}
+
+/** @} */

+ 10 - 0
template/scripts/BxBaseSearchResult.php

@@ -306,6 +306,16 @@ class BxBaseSearchResult extends BxDolSearchResult
             }
         }
     }
+    
+    function fillFiltersByObjects ($aParams)
+    {
+        // transform all given values to fields values
+        if (is_array($aParams)) {
+            foreach ($aParams as $sKey => $mixedValue) {
+                $this->aCurrent['restriction'][$sKey] = $mixedValue;
+            }
+        }
+    }
 
     /**
      * Set design box template id to use to wrap search results in