Alex Trofimov před 12 roky
rodič
revize
5ad959db71

+ 8 - 0
inc/classes/BxDolProfile.php

@@ -115,6 +115,14 @@ class BxDolProfile extends BxDol implements iBxDolProfile {
         return $aInfo['account_id'];
     }
 
+    /**
+     * Get content id associated with the profile
+     */
+    public function getContentId() {
+        $aInfo = $this->getInfo();
+        return $aInfo['content_id'];
+    }
+
     /**
      * Check if profile status is active
      */

+ 11 - 5
install/sql/system.sql

@@ -2763,7 +2763,9 @@ INSERT INTO `sys_menu_templates` (`id`, `template`, `title`) VALUES
 (8, 'menu_main_submenu.html', '_sys_menu_template_title_main_submenu'),
 (9, 'menu_buttons_hor.html', '_sys_menu_template_title_buttons_hor'),
 (10, 'menu_inline.html', '_sys_menu_template_title_inline'),
-(11, 'menu_interactive_vertical.html', '_sys_menu_template_title_interactive_vertical');
+(11, 'menu_interactive_vertical.html', '_sys_menu_template_title_interactive_vertical'),
+(12, 'menu_account_popup.html', '_sys_menu_template_title_account_popup'),
+(13, 'menu_account_notifications.html', '_sys_menu_template_title_account_notifications');
 
 CREATE TABLE IF NOT EXISTS `sys_objects_menu` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
@@ -2787,12 +2789,14 @@ INSERT INTO `sys_objects_menu` (`object`, `title`, `set_name`, `module`, `templa
 ('sys_footer', '_sys_menu_title_footer', 'sys_footer', 'system', 2, 0, 1, '', ''),
 ('sys_toolbar_site', '_sys_menu_title_toolbar_site', 'sys_toolbar_site', 'system', 5, 0, 1, '', ''),
 ('sys_toolbar_member', '_sys_menu_title_toolbar_member', 'sys_toolbar_member', 'system', 5, 0, 1, 'BxTemplMenuToolbar', ''),
-('sys_account', '_sys_menu_title_account', 'sys_account_links', 'system', 4, 0, 1, '', ''),
+('sys_account', '_sys_menu_title_account', 'sys_account_links', 'system', 3, 0, 1, '', ''),
 ('sys_add_content', '_sys_menu_title_add_content', 'sys_add_content_links', 'system', 4, 0, 1, '', ''),
 ('sys_account_settings', '_sys_menu_title_account_settings', 'sys_account_settings', 'system', 6, 0, 1, '', ''),
 ('sys_profiles_create', '_sys_menu_title_profiles_create', 'sys_profiles_create', 'system', 4, 0, 1, '', ''),
 ('sys_cmts_item_manage', '_sys_menu_title_cmts_item_manage', 'sys_cmts_item_manage', 'system', 6, 0, 1, 'BxTemplCmtsMenu', ''),
-('sys_cmts_item_actions', '_sys_menu_title_cmts_item_actions', 'sys_cmts_item_actions', 'system', 10, 0, 1, 'BxTemplCmtsMenu', '');
+('sys_cmts_item_actions', '_sys_menu_title_cmts_item_actions', 'sys_cmts_item_actions', 'system', 10, 0, 1, 'BxTemplCmtsMenu', ''),
+('sys_account_popup', '_sys_menu_title_account_popup', '', 'system', 12, 0, 1, 'BxTemplMenuAccountPopup', ''),
+('sys_account_notifications', '_sys_menu_title_account_notifications', 'sys_account_notifications', 'system', 13, 0, 1, 'BxTemplMenuAccountNotifications', '');
 
 CREATE TABLE IF NOT EXISTS `sys_menu_sets` (
   `set_name` varchar(32) NOT NULL,
@@ -2808,6 +2812,7 @@ INSERT INTO `sys_menu_sets` (`set_name`, `module`, `title`, `deletable`) VALUES
 ('sys_toolbar_site', 'system', '_sys_menu_set_title_toolbar_site', 0),
 ('sys_toolbar_member', 'system', '_sys_menu_set_title_toolbar_member', 0),
 ('sys_account_links', 'system', '_sys_menu_set_title_account', 0),
+('sys_account_notifications', 'system', '_sys_menu_set_title_account_notifications', 0),
 ('sys_add_content_links', 'system', '_sys_menu_set_title_add_content', 0),
 ('sys_account_settings', 'system', '_sys_menu_set_title_account_settings', 0),
 ('sys_profiles_create', 'system', '_sys_menu_set_title_profile_create_links', 0),
@@ -2849,12 +2854,13 @@ INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `tit
 
 -- member toolbar menu
 INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES
-('sys_toolbar_member', 'system', 'account', '_sys_menu_item_title_system_account_menu', '_sys_menu_item_title_account_menu', 'javascript:void(0);', 'bx_menu_popup(''sys_account'', this);', '', 'user', 'sys_account', 510, 1, 0, 1),
+('sys_toolbar_member', 'system', 'account', '_sys_menu_item_title_system_account_menu', '_sys_menu_item_title_account_menu', 'javascript:void(0);', 'bx_menu_popup(''sys_account_popup'', this);', '', 'user', 'sys_account_popup', 510, 1, 0, 1),
 ('sys_toolbar_member', 'system', 'login', '_sys_menu_item_title_system_login', '', 'page.php?i=login', '', '', 'user', '', 1, 1, 0, 2);
 
 -- add content menu
 INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES
-('sys_account_links', 'system', 'account', '_sys_menu_item_title_system_account', '_sys_menu_item_title_account', 'member.php', '', '', '', '', 2147483646, 1, 1, 1),
+('sys_account_links', 'system', 'account', '_sys_menu_item_title_system_profile', '_sys_menu_item_title_profile', '{member_url}', '', '', '', '', 2147483646, 1, 1, 1),
+('sys_account_links', 'system', 'account', '_sys_menu_item_title_system_account_settings', '_sys_menu_item_title_account_settings', 'member.php', '', '', '', '', 2147483646, 1, 1, 2),
 ('sys_account_links', 'system', 'logout', '_sys_menu_item_title_system_logout', '_sys_menu_item_title_logout', 'logout.php', '', '', '', '', 2147483646, 1, 1, 3);
 
 -- account settings menu

+ 1 - 1
member.php

@@ -62,7 +62,7 @@ if (isset($_POST['ID'])) { // login form is submitted
 bx_require_authentication();
 
 bx_import('BxDolPermalinks');
-header('Location: ' . BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=account-settings-info'));
+header('Location: ' . BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=account-profile-switcher'));
 
 /** @} */
 

+ 6 - 2
modules/boonex/english/data/langs/system.xml

@@ -1677,9 +1677,9 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_layout_topbottom_area_2_columns"><![CDATA[Top&bottom areas with 2 columns in the middle]]></string>
 	<string name="_sys_loading"><![CDATA[Loading...]]></string>
 	<string name="_sys_menu_item_title_about"><![CDATA[About]]></string>
-	<string name="_sys_menu_item_title_account"><![CDATA[Account]]></string>
 	<string name="_sys_menu_item_title_account_menu"><![CDATA[{member_display_name}]]></string>
 	<string name="_sys_menu_item_title_account_profile_context"><![CDATA[Switch Profile]]></string>
+	<string name="_sys_menu_item_title_account_settings"><![CDATA[Settings]]></string>
 	<string name="_sys_menu_item_title_account_settings_delete"><![CDATA[Delete Account]]></string>
 	<string name="_sys_menu_item_title_account_settings_email"><![CDATA[Email Settings]]></string>
 	<string name="_sys_menu_item_title_account_settings_info"><![CDATA[Edit Account]]></string>
@@ -1690,10 +1690,11 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_menu_item_title_cmts_item_vote"><![CDATA[]]></string>
 	<string name="_sys_menu_item_title_home"><![CDATA[Home]]></string>
 	<string name="_sys_menu_item_title_logout"><![CDATA[Sign out]]></string>
+	<string name="_sys_menu_item_title_profile"><![CDATA[Profile]]></string>
 	<string name="_sys_menu_item_title_system_about"><![CDATA[About]]></string>
-	<string name="_sys_menu_item_title_system_account"><![CDATA[Account]]></string>
 	<string name="_sys_menu_item_title_system_account_menu"><![CDATA[Account]]></string>
 	<string name="_sys_menu_item_title_system_account_profile_context"><![CDATA[Switch Profile]]></string>
+	<string name="_sys_menu_item_title_system_account_settings"><![CDATA[Settings]]></string>
 	<string name="_sys_menu_item_title_system_account_settings_delete"><![CDATA[Delete Account]]></string>
 	<string name="_sys_menu_item_title_system_account_settings_email"><![CDATA[Email Settings]]></string>
 	<string name="_sys_menu_item_title_system_account_settings_info"><![CDATA[Edit Account]]></string>
@@ -1706,8 +1707,10 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_menu_item_title_system_login"><![CDATA[Sign in]]></string>
 	<string name="_sys_menu_item_title_system_logout"><![CDATA[Sign out]]></string>
 	<string name="_sys_menu_item_title_system_main_menu"><![CDATA[Main Menu]]></string>
+	<string name="_sys_menu_item_title_system_profile"><![CDATA[Profile]]></string>
 	<string name="_sys_menu_set_title_account"><![CDATA[Account]]></string>
 	<string name="_sys_menu_set_title_account_settings"><![CDATA[Account Settings]]></string>
+	<string name="_sys_menu_set_title_account_notifications"><![CDATA[Notifications]]></string>
 	<string name="_sys_menu_set_title_add_content"><![CDATA[Add Content]]></string>
 	<string name="_sys_menu_set_title_cmts_item_actions"><![CDATA[Comment Actions]]></string>
 	<string name="_sys_menu_set_title_cmts_item_manage"><![CDATA[Manage Comment]]></string>
@@ -1727,6 +1730,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_menu_template_title_toolbar"><![CDATA[Toolbar Buttons]]></string>
 	<string name="_sys_menu_template_title_ver"><![CDATA[Vertical Links]]></string>
 	<string name="_sys_menu_template_title_ver_lite"><![CDATA[Vertical Links (lite)]]></string>
+	<string name="_sys_menu_template_title_account_popup"><![CDATA[Account popup]]></string>
 	<string name="_sys_menu_title_account"><![CDATA[Account Menu]]></string>
 	<string name="_sys_menu_title_account_settings"><![CDATA[Account Settings Menu]]></string>
 	<string name="_sys_menu_title_add_content"><![CDATA[Add Content Menu]]></string>

+ 23 - 0
modules/boonex/uni/data/template/system/scripts/BxTemplMenuAccountNotifications.php

@@ -0,0 +1,23 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    DolphinCore Dolphin Core
+ * @{
+ */
+
+bx_import('BxBaseMenuAccountNotifications');
+
+/**
+ * @see BxDolMenu
+ */
+class BxTemplMenuAccountNotifications extends BxBaseMenuAccountNotifications 
+{
+    public function __construct ($aObject, $oTemplate = false) 
+    {
+        parent::__construct ($aObject, $oTemplate);
+    }
+}
+
+/** @} */

+ 22 - 0
modules/boonex/uni/data/template/system/scripts/BxTemplMenuAccountPopup.php

@@ -0,0 +1,22 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    DolphinCore Dolphin Core
+ * @{
+ */
+
+bx_import('BxBaseMenuAccountPopup');
+
+/**
+ * @see BxDolMenu
+ */
+class BxTemplMenuAccountPopup extends BxBaseMenuAccountPopup {
+
+    public function __construct ($aObject, $oTemplate = false) {
+        parent::__construct ($aObject, $oTemplate);
+    }
+}
+
+/** @} */

+ 10 - 0
template/css/default.less

@@ -436,7 +436,9 @@ h3,
     text-overflow:ellipsis;
     overflow:hidden;
 }
+.bx-def-unit-alert-middle,
 .bx-def-unit-alert {
+    display:block;
     position:absolute;
     right:0;
     bottom:0;
@@ -449,6 +451,14 @@ h3,
     text-align:center;
     color:white;
 }
+.bx-def-unit-alert-middle {
+    .min-width(@bx-font-size-middle + 2);
+    .height(@bx-font-size-middle + 2);
+    .line-height(@bx-font-size-middle + 3);
+    .radius(@bx-font-size-middle);
+    .font-size(@bx-font-size-middle);
+    .padding(3px);
+}
 
 .bx-def-gal-img-column {
     .column-width(@bx-size-gallery-img-width);

+ 25 - 25
template/css/menu.css

@@ -35,8 +35,10 @@ ul.bx-menu-hor {
 	display:inline-block;
 }
 
-/* --------------- vertical menu */
+/* --------------- vertical, vertical lite, notifications menu */
 
+ul.bx-menu-notif,
+ul.bx-menu-verlit,
 ul.bx-menu-ver {
     padding:0;
     margin:0;
@@ -47,25 +49,36 @@ ul.bx-menu-ver {
     margin-top:1px;
 }
 
+.bx-menu-notif li:first-child,
+.bx-menu-verlit li:first-child,
 .bx-menu-ver li:first-child {
     margin-top:0px;
 }
 
+.bx-menu-verlit li a,
 .bx-menu-ver li a {
     display:block;
     text-decoration:none;
 }
 
+.bx-menu-notif li.bx-menu-tab-active a,
+.bx-menu-verlit li.bx-menu-tab-active a,
 .bx-menu-ver li.bx-menu-tab-active a {
     color:#000;
 }
 
+.bx-menu-notif li img,
+.bx-menu-notif li .sys-icon,
+.bx-menu-notif li span,
 .bx-menu-ver li img,
 .bx-menu-ver li .sys-icon,
 .bx-menu-ver li span {
     display:inline-block;
     vertical-align:middle;
 }
+
+.bx-menu-notif li img,
+.bx-menu-notif li .sys-icon,
 .bx-menu-ver li img,
 .bx-menu-ver li .sys-icon {
     width:20px;
@@ -83,33 +96,15 @@ ul.bx-menu-ver {
     font-size:20px;
 }
 
-.bx-menu-ver .bx-def-hr {
-    margin:0;
+.bx-menu-notif li .sys-icon {
+    font-size:24px;
+    width:24px;
+    height:24px;
+    margin-right:5px;
 }
 
-/* --------------- vertical menu lite */
-
-ul.bx-menu-verlit {
-    padding:0;
+.bx-menu-ver .bx-def-hr {
     margin:0;
-    list-style:none;
-}
-
-.bx-menu-verlit li {
-
-}
-
-.bx-menu-verlit li:first-child {
-    margin-top:0px;
-}
-
-.bx-menu-verlit li a {
-    display:block;
-    text-decoration:none;
-}
-
-.bx-menu-verlit li.bx-menu-tab-active a {
-    color:#000;
 }
 
 .bx-menu-verlit li img {
@@ -120,6 +115,11 @@ ul.bx-menu-verlit {
     vertical-align:middle;
 }
 
+.bx-menu-notif .bx-def-unit-alert-middle {
+    position:relative;
+    float:right;
+}
+
 /* --------------- main menu */
 
 #bx-menu-main-container {

+ 10 - 0
template/menu_account_notifications.html

@@ -0,0 +1,10 @@
+<ul class="bx-menu-notif bx-def-border-top bx-menu-object-__object__ bx-clearfix">
+    <bx_repeat:menu_items>
+        <li class="bx-def-border-bottom bx-def-padding-sec-top bx-def-padding-sec-bottom __class_add__">
+            <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>
+            <a href="__link__" target="__target__" onclick="__onclick__"><span>__title__</span></a>
+            <bx_if:addon><span class="bx-def-unit-alert-middle bg-col-blue2-dark">__addon__</span></bx_if:addon>
+        </li>
+    </bx_repeat:menu_items>
+</ul>

+ 5 - 0
template/menu_account_popup.html

@@ -0,0 +1,5 @@
+<div class="bx-menu-account-popup bx-menu-object-__object__">
+    <div class="bx-def-font-h2">__profile_display_name__</div>
+    <div class="bx-def-margin-sec-top">__menu_account__</div>
+    <div class="bx-def-margin-sec-top">__menu_notifications__</div>
+</div>

+ 2 - 2
template/menu_inline.html

@@ -5,7 +5,7 @@
 				<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>
 			</a>
-			__addon__
+			<bx_if:addon>__addon__</bx_if:addon>
 		</li>
     </bx_repeat:menu_items>
-</ul>
+</ul>

+ 6 - 2
template/scripts/BxBaseMenu.php

@@ -94,8 +94,12 @@ class BxBaseMenu extends BxDolMenu {
                 'content' => array('title' => $a['title']), 
             );
 
-            $a['addon'] = $this->_getMenuAddon($a);
-            
+            $mixedAddon = $this->_getMenuAddon($a);
+            $a['bx_if:addon'] = array (
+                'condition' => (bool)$mixedAddon,
+                'content' => array('addon' => $mixedAddon), 
+            );
+
             foreach ($this->_aOptionalParams as $sName => $sDefaultValue)
                 if (!isset($a[$sName]))
                     $a[$sName] = $sDefaultValue;

+ 24 - 0
template/scripts/BxBaseMenuAccountNotifications.php

@@ -0,0 +1,24 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    DolphinCore Dolphin Core
+ * @{
+ */
+
+bx_import('BxTemplMenu');
+
+/**
+ * Menu representation.
+ * @see BxDolMenu
+ */
+class BxBaseMenuAccountNotifications extends BxTemplMenu
+{
+    public function __construct ($aObject, $oTemplate)
+    {
+        parent::__construct ($aObject, $oTemplate);
+    }
+}
+
+/** @} */

+ 34 - 0
template/scripts/BxBaseMenuAccountPopup.php

@@ -0,0 +1,34 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    DolphinCore Dolphin Core
+ * @{
+ */
+
+bx_import('BxTemplMenu');
+
+/**
+ * Menu representation.
+ * @see BxDolMenu
+ */
+class BxBaseMenuAccountPopup extends BxTemplMenu
+{
+    public function __construct ($aObject, $oTemplate)
+    {
+        parent::__construct ($aObject, $oTemplate);
+    }
+
+    protected function _getTemplateVars () 
+    {
+        $aVars = parent::_getTemplateVars ();
+        $aVars['bx_repeat:menu_items'] = array(true);
+        $aVars['profile_display_name'] = BxDolProfile::getInstance()->getDisplayName();
+        $aVars['menu_account'] = BxDolMenu::getObjectInstance('sys_account')->getCode();
+        $aVars['menu_notifications'] = BxDolMenu::getObjectInstance('sys_account_notifications')->getCode();
+        return $aVars;
+    }
+}
+
+/** @} */