Просмотр исходного кода

Ticket #4851 - Persons: Add relations counter in profile meta menu.

AntonLV 1 год назад
Родитель
Сommit
32d17da015

+ 1 - 1
inc/classes/BxDolRelation.php

@@ -7,7 +7,7 @@
  * @{
  */
 
-class BxDolRelation extends BxDolConnection
+class BxDolRelation extends BxTemplConnection
 {
     protected static $_sParamEnabled = 'sys_relations_enable';
     protected static $_sParamTypes = 'sys_relations';

+ 31 - 0
modules/base/profile/classes/BxBaseModProfileMenuViewMeta.php

@@ -165,6 +165,37 @@ class BxBaseModProfileMenuViewMeta extends BxTemplMenuUnitMeta
         return $oConnection->getCounter($iContentProfileId, false, ['caption' => $aItem['title'], 'custom_icon' => $sIcon], BX_CONNECTIONS_CONTENT_TYPE_INITIATORS);
     }
 
+    protected function _getMenuItemRelations($aItem)
+    {
+        $CNF = &$this->_oModule->_oConfig->CNF;
+
+        if(!$this->_bContentPublic || !$this->_oContentProfile)
+            return false;
+
+        $oConnection = BxDolConnection::getObjectInstance('sys_profiles_relations');
+        if(!$oConnection)
+            return false;
+
+        $iContentProfileId = $this->_oContentProfile->id();
+
+        if($this->_bIsApi) {
+            $aCounter = $oConnection->getCounterAPI($iContentProfileId, false, ['caption' => $aItem['title']], BX_CONNECTIONS_CONTENT_TYPE_INITIATORS);
+
+            $sUrl = $this->_oContentProfile->getUrl();
+            if(!empty($CNF['URI_VIEW_RELATIONS']))
+                $sUrl = bx_absolute_url(BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_VIEW_RELATIONS'] . '&profile_id=' . $iContentProfileId));
+
+            return $this->_getMenuItemAPI($aItem, ['display' => 'button'], [
+                'title' => $aCounter['countf'],
+                'link' => bx_api_get_relative_url($sUrl),
+                'list' => $oConnection->getConnectedListAPI($iContentProfileId, false, BX_CONNECTIONS_CONTENT_TYPE_INITIATORS)
+            ]);
+        }
+
+        $sIcon = BxTemplFunctions::getInstanceWithTemplate($this->_oTemplate)->getIconAsHtml(!empty($aItem['icon']) ? $aItem['icon'] : '');
+        return $oConnection->getCounter($iContentProfileId, true, ['caption' => $aItem['title'], 'custom_icon' => $sIcon], BX_CONNECTIONS_CONTENT_TYPE_INITIATORS);
+    }
+
     protected function _getMenuItemViews($aItem)
     {
         $CNF = &$this->_oModule->_oConfig->CNF;

+ 3 - 1
modules/boonex/english/data/langs/system/en.xml

@@ -3211,6 +3211,7 @@ If it is not enabled then please consider implement this optimization, since it
     <string name="_sys_menu_item_title_sm_members"><![CDATA[{0} members]]></string>
     <string name="_sys_menu_item_title_sm_membership"><![CDATA[Membership]]></string>
     <string name="_sys_menu_item_title_sm_subscribers"><![CDATA[{0} followers]]></string>
+    <string name="_sys_menu_item_title_sm_relations"><![CDATA[{0} relations]]></string>
     <string name="_sys_menu_item_title_sm_country"><![CDATA[Country]]></string>
     <string name="_sys_menu_item_title_sm_country_city"><![CDATA[Country and City]]></string>
     <string name="_sys_menu_item_title_sm_ignore"><![CDATA[Remove]]></string>
@@ -3326,12 +3327,13 @@ If it is not enabled then please consider implement this optimization, since it
     <string name="_sys_menu_item_title_system_sm_leave"><![CDATA[Leave]]></string>
     <string name="_sys_menu_item_title_system_sm_nl"><![CDATA[New Line]]></string>
     <string name="_sys_menu_item_title_system_sm_subscribe"><![CDATA[Follow]]></string>
+    <string name="_sys_menu_item_title_system_sm_unsubscribe"><![CDATA[Unfollow]]></string>
     <string name="_sys_menu_item_title_system_sm_friends"><![CDATA[Friends]]></string>
     <string name="_sys_menu_item_title_system_sm_friends_mutual"><![CDATA[Mutual Friends]]></string>
     <string name="_sys_menu_item_title_system_sm_members"><![CDATA[Members]]></string>
     <string name="_sys_menu_item_title_system_sm_membership"><![CDATA[Membership]]></string>
     <string name="_sys_menu_item_title_system_sm_subscribers"><![CDATA[Followers]]></string>
-    <string name="_sys_menu_item_title_system_sm_unsubscribe"><![CDATA[Unfollow]]></string>
+    <string name="_sys_menu_item_title_system_sm_relations"><![CDATA[Relations]]></string>
     <string name="_sys_menu_item_title_system_sm_country"><![CDATA[Country]]></string>
     <string name="_sys_menu_item_title_system_sm_country_city"><![CDATA[Country and City]]></string>
     <string name="_sys_menu_item_title_system_sm_ignore"><![CDATA[Ignore Recommendation]]></string>

+ 1 - 0
modules/boonex/persons/install/sql/enable.sql

@@ -292,6 +292,7 @@ INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `titl
 ('bx_persons_view_meta', 'bx_persons', 'badges', '_sys_menu_item_title_system_vm_badges', '_sys_menu_item_title_vm_badges', '', '', '', '', '', 0, 2147483647, '', 1, 0, 20),
 ('bx_persons_view_meta', 'bx_persons', 'friends', '_sys_menu_item_title_system_sm_friends', '_sys_menu_item_title_sm_friends', '', '', '', '', '', 0, 2147483647, '', 1, 0, 23),
 ('bx_persons_view_meta', 'bx_persons', 'subscribers', '_sys_menu_item_title_system_sm_subscribers', '_sys_menu_item_title_sm_subscribers', '', '', '', '', '', 0, 2147483647, '', 1, 0, 25),
+('bx_persons_view_meta', 'bx_persons', 'relations', '_sys_menu_item_title_system_sm_relations', '_sys_menu_item_title_sm_relations', '', '', '', '', '', 0, 2147483647, '', 0, 0, 27),
 ('bx_persons_view_meta', 'bx_persons', 'views', '_sys_menu_item_title_system_sm_views', '_sys_menu_item_title_sm_views', '', '', '', '', '', 0, 2147483647, '', 1, 0, 30),
 ('bx_persons_view_meta', 'bx_persons', 'votes', '_sys_menu_item_title_system_sm_votes', '_sys_menu_item_title_sm_votes', '', '', '', '', '', 0, 2147483647, '', 1, 0, 40),
 ('bx_persons_view_meta', 'bx_persons', 'comments', '_sys_menu_item_title_system_sm_comments', '_sys_menu_item_title_sm_comments', '', '', '', '', '', 0, 2147483647, '', 1, 0, 50);

+ 2 - 0
modules/boonex/russian/data/langs/system/ru.xml

@@ -3182,6 +3182,7 @@
     <string name="_sys_menu_item_title_sm_friends_mutual"><![CDATA[Общие друзья: {0}]]></string>
     <string name="_sys_menu_item_title_sm_members"><![CDATA[Участники: {0}]]></string>
     <string name="_sys_menu_item_title_sm_subscribers"><![CDATA[Подписчики: {0}]]></string>
+    <string name="_sys_menu_item_title_sm_relations"><![CDATA[Связи: {0}]]></string>
     <string name="_sys_menu_item_title_sm_country"><![CDATA[Страна]]></string>
     <string name="_sys_menu_item_title_sm_country_city"><![CDATA[Страна и город]]></string>
     <string name="_sys_menu_item_title_sm_ignore"><![CDATA[Удалить]]></string>
@@ -3302,6 +3303,7 @@
     <string name="_sys_menu_item_title_system_sm_members"><![CDATA[Участники]]></string>
     <string name="_sys_menu_item_title_system_sm_membership"><![CDATA[Членство]]></string>
     <string name="_sys_menu_item_title_system_sm_subscribers"><![CDATA[Подписки]]></string>
+    <string name="_sys_menu_item_title_system_sm_relations"><![CDATA[Связи]]></string>
     <string name="_sys_menu_item_title_system_sm_ignore"><![CDATA[Игнорировать рекомендацию]]></string>
     <string name="_sys_menu_item_title_system_sm_ignore_befriend"><![CDATA[Игнорировать рекомендацию: Дружба]]></string>
     <string name="_sys_menu_item_title_system_sm_ignore_subscribe"><![CDATA[Игнорировать рекомендацию: Подписка]]></string>