Преглед изворни кода

#4550 - Counters in connection menu

roman.lesnikov@gmail.com пре 2 година
родитељ
комит
eccc4ed982

+ 8 - 8
install/sql/system.sql

@@ -4600,7 +4600,7 @@ INSERT INTO `sys_objects_menu` (`object`, `title`, `set_name`, `module`, `templa
 ('sys_vote_reactions_do', '_sys_menu_title_vote_reactions_do', '', 'system', 3, 0, 1, 'BxTemplVoteReactionsMenuDo', ''),
 ('sys_vote_reactions_do', '_sys_menu_title_vote_reactions_do', '', 'system', 3, 0, 1, 'BxTemplVoteReactionsMenuDo', ''),
 ('sys_wiki', '_sys_menu_title_wiki', 'sys_wiki', 'system', 6, 0, 1, 'BxTemplMenuWiki', ''),
 ('sys_wiki', '_sys_menu_title_wiki', 'sys_wiki', 'system', 6, 0, 1, 'BxTemplMenuWiki', ''),
 ('sys_favorite_list', '_sys_menu_title_favorite_list', 'sys_favorite_list', 'system', 9, 0, 1, '', ''),
 ('sys_favorite_list', '_sys_menu_title_favorite_list', 'sys_favorite_list', 'system', 9, 0, 1, '', ''),
-('sys_con_submenu', '_sys_menu_title_con_submenu', 'sys_con_submenu', 'system', 8, 0, 1, '', ''),
+('sys_con_submenu', '_sys_menu_title_con_submenu', 'sys_con_submenu', 'system', 8, 0, 1, 'BxTemplMenuSubmenuWithAddons', ''),
 
 
 ('sys_studio_account_popup', '_sys_menu_title_studio_account_popup', 'sys_studio_account_popup', 'system', 4, 0, 1, 'BxTemplStudioMenuAccountPopup', '');
 ('sys_studio_account_popup', '_sys_menu_title_studio_account_popup', 'sys_studio_account_popup', 'system', 4, 0, 1, 'BxTemplStudioMenuAccountPopup', '');
 
 
@@ -4834,13 +4834,13 @@ INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `titl
 
 
 -- connections submenu
 -- connections submenu
 INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `addon`, `submenu_object`, `visible_for_levels`, `visibility_custom`, `active`, `copyable`, `order`) VALUES
 INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `addon`, `submenu_object`, `visible_for_levels`, `visibility_custom`, `active`, `copyable`, `order`) VALUES
-('sys_con_submenu', 'system', 'friends', '', '_sys_menu_item_title_con_friends', 'page.php?i=friends', '', '', '', '', '', 2147483647, '', 1, 1, 1),
-('sys_con_submenu', 'system', 'friend-suggestions', '', '_sys_menu_item_title_recom_friends', 'page.php?i=friend-suggestions', '', '', '', '', '', 2147483647, '', 1, 1, 2),
-('sys_con_submenu', 'system', 'friend-requests', '', '_sys_menu_item_title_con_friend_requests', 'page.php?i=friend-requests', '', '', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:31:"get_unconfirmed_connections_num";s:6:"params";a:1:{i:0;s:20:"sys_profiles_friends";}s:5:"class";s:23:"TemplServiceConnections";}', '', 2147483647, '', 1, 1, 3),
-('sys_con_submenu', 'system', 'sent-friend-requests', '', '_sys_menu_item_title_con_friend_requested', 'page.php?i=sent-friend-requests', '', '', '', '', '', 2147483647, '', 1, 1, 4),
-('sys_con_submenu', 'system', 'follow-suggestions', '', '_sys_menu_item_title_recom_subscriptions', 'page.php?i=follow-suggestions', '', '', '', '', '', 2147483647, '', 1, 1, 5),
-('sys_con_submenu', 'system', 'followers', '', '_sys_menu_item_title_con_followers', 'page.php?i=followers', '', '', '', '', '', 2147483647, '', 1, 1, 6),
-('sys_con_submenu', 'system', 'following', '', '_sys_menu_item_title_con_following', 'page.php?i=following', '', '', '', '', '', 2147483647, '', 1, 1, 7);
+('sys_con_submenu', 'system', 'friends', '', '_sys_menu_item_title_con_friends', 'page.php?i=friends', '', '', '', 'a:3:{s:6:"module";s:6:"system";s:6:"method";s:21:"profile_friends_count";s:5:"class";s:20:"TemplServiceProfiles";}', '', 2147483647, '', 1, 1, 1),
+('sys_con_submenu', 'system', 'friend-suggestions', '', '_sys_menu_item_title_recom_friends', 'page.php?i=friend-suggestions', '', '', '', 'a:3:{s:6:"module";s:6:"system";s:6:"method";s:36:"profile_recommendation_friends_count";s:5:"class";s:20:"TemplServiceProfiles";}', '', 2147483647, '', 1, 1, 2),
+('sys_con_submenu', 'system', 'friend-requests', '', '_sys_menu_item_title_con_friend_requests', 'page.php?i=friend-requests', '', '', '', 'a:3:{s:6:"module";s:6:"system";s:6:"method";s:30:"profile_friends_requests_count";s:5:"class";s:20:"TemplServiceProfiles";}', '', 2147483647, '', 1, 1, 3),
+('sys_con_submenu', 'system', 'sent-friend-requests', '', '_sys_menu_item_title_con_friend_requested', 'page.php?i=sent-friend-requests', '', '', '', 'a:3:{s:6:"module";s:6:"system";s:6:"method";s:35:"profile_sent_friends_requests_count";s:5:"class";s:20:"TemplServiceProfiles";}', '', 2147483647, '', 1, 1, 4),
+('sys_con_submenu', 'system', 'follow-suggestions', '', '_sys_menu_item_title_recom_subscriptions', 'page.php?i=follow-suggestions', '', '', '', 'a:3:{s:6:"module";s:6:"system";s:6:"method";s:38:"profile_recommendation_following_count";s:5:"class";s:20:"TemplServiceProfiles";}', '', 2147483647, '', 1, 1, 5),
+('sys_con_submenu', 'system', 'followers', '', '_sys_menu_item_title_con_followers', 'page.php?i=followers', '', '', '', 'a:3:{s:6:"module";s:6:"system";s:6:"method";s:23:"profile_followers_count";s:5:"class";s:20:"TemplServiceProfiles";}', '', 2147483647, '', 1, 1, 6),
+('sys_con_submenu', 'system', 'following', '', '_sys_menu_item_title_con_following', 'page.php?i=following', '', '', '', 'a:3:{s:6:"module";s:6:"system";s:6:"method";s:23:"profile_following_count";s:5:"class";s:20:"TemplServiceProfiles";}', '', 2147483647, '', 1, 1, 7);
 
 
 -- studio: account menu
 -- studio: account menu
 INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `editable`, `order`) VALUES
 INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `editable`, `order`) VALUES

+ 1 - 1
studio/template/scripts/BxBaseStudioBuilderPage.php

@@ -1391,7 +1391,7 @@ class BxBaseStudioBuilderPage extends BxDolStudioBuilderPage
             ),
             ),
             'inputs' => array (
             'inputs' => array (
                 'meta_title' => array(
                 'meta_title' => array(
-                    'type' => 'textarea',
+                    'type' => 'text',
                     'name' => 'meta_title',
                     'name' => 'meta_title',
                     'caption' => _t('_adm_bp_txt_page_meta_title'),
                     'caption' => _t('_adm_bp_txt_page_meta_title'),
                     'value' => isset($aPage['meta_title']) ? $aPage['meta_title'] : '',
                     'value' => isset($aPage['meta_title']) ? $aPage['meta_title'] : '',

+ 2 - 1
template/scripts/BxBaseMenu.php

@@ -181,7 +181,8 @@ class BxBaseMenu extends BxDolMenu
                 'link' => isset($a['link']) ? $a['link'] : '',
                 'link' => isset($a['link']) ? $a['link'] : '',
                 'icon' => $sIcon ? $sIcon : '',
                 'icon' => $sIcon ? $sIcon : '',
                 'image' => $sIconUrl ? $sIconUrl : '',
                 'image' => $sIconUrl ? $sIconUrl : '',
-                'submenu' => !empty($a['submenu_object']) ? $a['submenu_object'] : ''
+                'submenu' => !empty($a['submenu_object']) ? $a['submenu_object'] : '',
+                'addon' => $this->_bDisplayAddons ? $this->_getMenuAddon($a) : ''
             ];
             ];
 
 
             if(($aMarkers = $this->_getMenuMarkers($a)) && is_array($aMarkers))
             if(($aMarkers = $this->_getMenuMarkers($a)) && is_array($aMarkers))

+ 40 - 0
template/scripts/BxBaseMenuSubmenuWithAddons.php

@@ -0,0 +1,40 @@
+<?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
+ * @{
+ */
+
+require_once(BX_DIRECTORY_PATH_INC . "design.inc.php");
+
+/**
+ * Menu representation.
+ * @see BxDolMenu
+ */
+class BxBaseMenuSubmenuWithAddons extends BxTemplMenu
+{
+    public function __construct ($aObject, $oTemplate)
+    {
+       
+        parent::__construct ($aObject, $oTemplate);
+        $this->setDisplayAddons(true);
+    }
+    
+    protected function _getTmplVarsAddon($mixedAddon, $aMenuItem)
+    {
+        $sAddonF = '';
+        if(!empty($mixedAddon))
+            $sAddonF = $this->_oTemplate->parseHtmlByTemplateName('menu_item_addon', array(
+                'content' => $mixedAddon
+            ));
+
+        return array(
+            'addon' => $mixedAddon,
+            'addonf' => $sAddonF
+        );
+    }
+}
+
+/** @} */

+ 104 - 0
template/scripts/BxBaseServiceProfiles.php

@@ -556,6 +556,110 @@ class BxBaseServiceProfiles extends BxDol
 
 
         return $this->_serviceBrowseConnections('friends', $aParamsBrowse, $aParams['design_box'], $aParams['empty_message'], $aParams['ajax_paginate']);
         return $this->_serviceBrowseConnections('friends', $aParamsBrowse, $aParams['design_box'], $aParams['empty_message'], $aParams['ajax_paginate']);
     }
     }
+    
+    public function serviceProfileFriendsRequestsCount ($iProfileId = 0)
+    {
+        
+        if(!$iProfileId)
+            $iProfileId = bx_get_logged_profile_id();
+        if(!$iProfileId)
+            return '';
+        
+        $oConnection = BxDolConnection::getObjectInstance('sys_profiles_friends');
+        if(!$oConnection)
+            return false;
+
+        return $oConnection->getConnectedInitiatorsCount($iProfileId, false) - $oConnection->getConnectedInitiatorsCount($iProfileId, true);
+    }
+    
+    public function serviceProfileSentFriendsRequestsCount ($iProfileId = 0)
+    {
+        
+        if(!$iProfileId)
+            $iProfileId = bx_get_logged_profile_id();
+        if(!$iProfileId)
+            return '';
+        
+        $oConnection = BxDolConnection::getObjectInstance('sys_profiles_friends');
+        if(!$oConnection)
+            return false;
+
+        return $oConnection->getConnectedContentCount($iProfileId, false) - $oConnection->getConnectedContentCount($iProfileId, true);
+    }
+    
+    
+    public function serviceProfileFriendsCount ($iProfileId = 0)
+    {
+        
+        if(!$iProfileId)
+            $iProfileId = bx_get_logged_profile_id();
+        if(!$iProfileId)
+            return '';
+        
+        $oConnection = BxDolConnection::getObjectInstance('sys_profiles_friends');
+        if(!$oConnection)
+            return false;
+
+        return $oConnection->getConnectedInitiatorsCount($iProfileId, true);
+    }
+    
+    public function serviceProfileFollowersCount ($iProfileId = 0)
+    {
+        
+        if(!$iProfileId)
+            $iProfileId = bx_get_logged_profile_id();
+        if(!$iProfileId)
+            return '';
+        
+        $oConnection = BxDolConnection::getObjectInstance('sys_profiles_subscriptions');
+        if(!$oConnection)
+            return false;
+
+        return $oConnection->getConnectedInitiatorsCount($iProfileId);
+    }
+
+    public function serviceProfileFollowingCount ($iProfileId = 0)
+    {
+        
+        if(!$iProfileId)
+            $iProfileId = bx_get_logged_profile_id();
+        if(!$iProfileId)
+            return '';
+        
+        $oConnection = BxDolConnection::getObjectInstance('sys_profiles_subscriptions');
+        if(!$oConnection)
+            return false;
+
+        return $oConnection->getConnectedContentCount($iProfileId);
+    }
+    
+    public function serviceProfileRecommendationFollowingCount ($iProfileId = 0)
+    {
+        if(!$iProfileId)
+            $iProfileId = bx_get_logged_profile_id();
+        if(!$iProfileId)
+            return '';
+        
+        $oRecommendation = BxDolRecommendation::getObjectInstance('sys_subscriptions');
+        if(!$oRecommendation)
+            return false;
+        // TODO GET COUNT ANTON
+        return '555';
+    }
+    
+    public function serviceProfileRecommendationFriendsCount ($iProfileId = 0)
+    {
+        if(!$iProfileId)
+            $iProfileId = bx_get_logged_profile_id();
+        if(!$iProfileId)
+            return '';
+        
+        $oRecommendation = BxDolRecommendation::getObjectInstance('sys_friends');
+        if(!$oRecommendation)
+            return false;
+        // TODO GET COUNT ANTON
+        return '666';
+    }
 
 
     public function serviceBrowseFriendRequests ($iProfileId = 0, $aParams = [])
     public function serviceBrowseFriendRequests ($iProfileId = 0, $aParams = [])
     {
     {

+ 21 - 0
template/scripts_templ/BxTemplMenuSubmenuWithAddons.php

@@ -0,0 +1,21 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) UNA, Inc - https://una.io
+ * MIT License - https://opensource.org/licenses/MIT
+ *
+ * @defgroup    UnaTemplate UNA Template Classes
+ * @{
+ */
+
+/**
+ * @see BxDolMenu
+ */
+class BxTemplMenuSubmenuWithAddons extends BxBaseMenuSubmenuWithAddons
+{
+    public function __construct ($aObject, $oTemplate = false)
+    {
+        parent::__construct ($aObject, $oTemplate);
+    }
+}
+
+/** @} */