浏览代码

Ticket #940 - task №2

AntonLV 9 年之前
父节点
当前提交
87bf3a0ba7
共有 26 个文件被更改,包括 194 次插入 和 89 次删除
  1. 13 0
      inc/utils.inc.php
  2. 0 28
      modules/base/general/classes/BxBaseModGeneralModule.php
  3. 67 5
      modules/base/groups/classes/BxBaseModGroupsModule.php
  4. 6 3
      modules/base/notifications/classes/BxBaseModNotificationsResponse.php
  5. 16 2
      modules/base/profile/classes/BxBaseModProfileAlertsResponse.php
  6. 29 1
      modules/base/profile/classes/BxBaseModProfileModule.php
  7. 2 2
      modules/boonex/english/data/langs/system/en.xml
  8. 1 0
      modules/boonex/events/classes/BxEventsConfig.php
  9. 3 3
      modules/boonex/events/install/langs/en.xml
  10. 1 0
      modules/boonex/groups/classes/BxGroupsConfig.php
  11. 3 3
      modules/boonex/groups/install/langs/en.xml
  12. 16 7
      modules/boonex/notifications/classes/BxNtfsTemplate.php
  13. 2 3
      modules/boonex/notifications/install/langs/en.xml
  14. 17 15
      modules/boonex/notifications/template/event.html
  15. 1 0
      modules/boonex/organizations/classes/BxOrgsConfig.php
  16. 1 1
      modules/boonex/organizations/install/langs/en.xml
  17. 1 0
      modules/boonex/persons/classes/BxPersonsConfig.php
  18. 1 1
      modules/boonex/persons/install/langs/en.xml
  19. 3 3
      modules/boonex/russian/data/langs/bx_events/ru.xml
  20. 3 3
      modules/boonex/russian/data/langs/bx_groups/ru.xml
  21. 2 3
      modules/boonex/russian/data/langs/bx_notifications/ru.xml
  22. 1 1
      modules/boonex/russian/data/langs/bx_organizations/ru.xml
  23. 1 1
      modules/boonex/russian/data/langs/bx_persons/ru.xml
  24. 1 1
      modules/boonex/russian/data/langs/bx_timeline/ru.xml
  25. 2 2
      modules/boonex/russian/data/langs/system/ru.xml
  26. 1 1
      modules/boonex/timeline/install/langs/en.xml

+ 13 - 0
inc/utils.inc.php

@@ -1235,6 +1235,19 @@ function bx_alert($sUnit, $sAction, $iObjectId, $iSender = false, $aExtras = arr
     $o->alert();
     $o->alert();
 }
 }
 
 
+/**
+ * Perform serice call
+ * @param $mixed module name or module id
+ * @param $sMethod service method name in format 'method_name', corresponding class metod is serviceMethodName
+ * @param $aParams params to pass to service method
+ * @param $sClass class to search for service method, by default it is main module class
+ * @return service call result
+ */
+function bx_srv($mixed, $sMethod, $aParams = array(), $sClass = 'Module', $bIgnoreCache = false)
+{
+    return BxDolService::call($mixed, $sMethod, $aParams, $sClass, $bIgnoreCache);
+}
+
 function bx_replace_markers($mixed, $aMarkers)
 function bx_replace_markers($mixed, $aMarkers)
 {
 {
     if (empty($aMarkers))
     if (empty($aMarkers))

+ 0 - 28
modules/base/general/classes/BxBaseModGeneralModule.php

@@ -536,34 +536,6 @@ class BxBaseModGeneralModule extends BxDolModule
 		);
 		);
     }
     }
 
 
-    public function _serviceGetNotification($aEvent, $sLangKey)
-    {
-    	$CNF = &$this->_oConfig->CNF;
-
-        $iContentId = (int)$aEvent['object_id'];
-        $oGroupProfile = BxDolProfile::getInstanceByContentAndType((int)$iContentId, $this->getName());
-        if (!$oGroupProfile)
-            return false;
-
-        $aContentInfo = $this->_oDb->getContentInfoById($iContentId);
-        if(empty($aContentInfo) || !is_array($aContentInfo))
-            return array();
-        
-        $oProfile = BxDolProfile::getInstance((int)$aEvent['subobject_id']);
-        if (!$oProfile)
-            return false;
-
-		return array(
-			'entry_sample' => $CNF['T']['txt_sample_single'],
-			'entry_url' => $oGroupProfile->getUrl(),
-			'entry_caption' => $oGroupProfile->getDisplayName(),
-			'entry_author' => $oGroupProfile->id(),
-			'subentry_sample' => $oProfile->getDisplayName(),
-			'subentry_url' => $oProfile->getUrl(),
-			'lang_key' => $sLangKey,
-		);
-    }
-    
     /**
     /**
      * Data for Timeline module
      * Data for Timeline module
      */
      */

+ 67 - 5
modules/base/groups/classes/BxBaseModGroupsModule.php

@@ -167,19 +167,46 @@ class BxBaseModGroupsModule extends BxBaseModProfileModule
         // send notification to group's admins that new connection is pending confirmation 
         // send notification to group's admins that new connection is pending confirmation 
         elseif (!$iIgnoreJoinConfirmation && $oConnection->isConnected((int)$iInitiatorId, $oGroupProfile->id()) && !$oConnection->isConnected($oGroupProfile->id(), (int)$iInitiatorId) && $aContentInfo['join_confirmation']) {
         elseif (!$iIgnoreJoinConfirmation && $oConnection->isConnected((int)$iInitiatorId, $oGroupProfile->id()) && !$oConnection->isConnected($oGroupProfile->id(), (int)$iInitiatorId) && $aContentInfo['join_confirmation']) {
 
 
-            bx_alert($this->getName(), 'join_request', $aContentInfo[$CNF['FIELD_ID']], $iGroupProfileId, array('content' => $aContentInfo, 'entry_title' => $sEntryTitle, 'entry_url' => $sEntryUrl, 'group_profile' => $iGroupProfileId, 'profile' => $iProfileId, 'notification_subobject_id' => $iProfileId, 'object_author_id' => $iGroupProfileId));
+            bx_alert($this->getName(), 'join_request', $aContentInfo[$CNF['FIELD_ID']], $iGroupProfileId, array(
+            	'object_author_id' => $iGroupProfileId,
+            	'performer_id' => $iProfileId, 
 
 
+            	'content' => $aContentInfo, 
+            	'entry_title' => $sEntryTitle, 
+            	'entry_url' => $sEntryUrl, 
+
+            	'group_profile' => $iGroupProfileId, 
+            	'profile' => $iProfileId
+            ));
         }
         }
         // send notification that join request was accepted 
         // send notification that join request was accepted 
         else if (!$iIgnoreJoinConfirmation && $oConnection->isConnected((int)$iInitiatorId, $oGroupProfile->id(), true) && $oGroupProfile->getModule() != $this->getName() && bx_get_logged_profile_id() != $iProfileId) {
         else if (!$iIgnoreJoinConfirmation && $oConnection->isConnected((int)$iInitiatorId, $oGroupProfile->id(), true) && $oGroupProfile->getModule() != $this->getName() && bx_get_logged_profile_id() != $iProfileId) {
-            
-            bx_alert($this->getName(), 'join_request_accepted', $aContentInfo[$CNF['FIELD_ID']], $iGroupProfileId, array('content' => $aContentInfo, 'entry_title' => $sEntryTitle, 'entry_url' => $sEntryUrl, 'group_profile' => $iGroupProfileId, 'profile' => $iProfileId, 'notification_subobject_id' => $iProfileId, 'object_author_id' => $iGroupProfileId));
+            bx_alert($this->getName(), 'join_request_accepted', $aContentInfo[$CNF['FIELD_ID']], $iGroupProfileId, array(
+            	'object_author_id' => $iGroupProfileId,
+            	'performer_id' => $iProfileId,
+
+            	'content' => $aContentInfo, 
+            	'entry_title' => $sEntryTitle, 
+            	'entry_url' => $sEntryUrl, 
 
 
+            	'group_profile' => $iGroupProfileId, 
+            	'profile' => $iProfileId
+            ));
         }
         }
 
 
         // new fan was added
         // new fan was added
         if ($oConnection->isConnected($oGroupProfile->id(), (int)$iInitiatorId, true)) {
         if ($oConnection->isConnected($oGroupProfile->id(), (int)$iInitiatorId, true)) {
-            bx_alert($this->getName(), 'fan_added', $aContentInfo[$CNF['FIELD_ID']], $iGroupProfileId, array('content' => $aContentInfo, 'entry_title' => $sEntryTitle, 'entry_url' => $sEntryUrl, 'group_profile' => $iGroupProfileId, 'profile' => $iProfileId, 'notification_subobject_id' => $iProfileId, 'object_author_id' => $iGroupProfileId));
+            bx_alert($this->getName(), 'fan_added', $aContentInfo[$CNF['FIELD_ID']], $iGroupProfileId, array(
+            	'object_author_id' => $iGroupProfileId,
+            	'performer_id' => $iProfileId,
+
+            	'content' => $aContentInfo,
+            	'entry_title' => $sEntryTitle, 
+            	'entry_url' => $sEntryUrl,
+
+            	'group_profile' => $iGroupProfileId, 
+            	'profile' => $iProfileId,
+            ));
             return false;
             return false;
         }
         }
 
 
@@ -333,7 +360,7 @@ class BxBaseModGroupsModule extends BxBaseModProfileModule
     {
     {
         return $this->_serviceGetNotification($aEvent, $this->_oConfig->CNF['T']['txt_ntfs_join_request']);
         return $this->_serviceGetNotification($aEvent, $this->_oConfig->CNF['T']['txt_ntfs_join_request']);
     }
     }
-    
+
 	/**
 	/**
      * Notification about new member in the group
      * Notification about new member in the group
      */
      */
@@ -342,6 +369,41 @@ class BxBaseModGroupsModule extends BxBaseModProfileModule
         return $this->_serviceGetNotification($aEvent, $this->_oConfig->CNF['T']['txt_ntfs_fan_added']);
         return $this->_serviceGetNotification($aEvent, $this->_oConfig->CNF['T']['txt_ntfs_fan_added']);
     }
     }
 
 
+    protected function _serviceGetNotification($aEvent, $sLangKey)
+    {
+    	$CNF = &$this->_oConfig->CNF;
+
+        $iContentId = (int)$aEvent['object_id'];
+        $oGroupProfile = BxDolProfile::getInstanceByContentAndType((int)$iContentId, $this->getName());
+        if(!$oGroupProfile)
+            return array();
+
+        $aContentInfo = $this->_oDb->getContentInfoById($iContentId);
+        if(empty($aContentInfo) || !is_array($aContentInfo))
+            return array();
+
+        $oProfile = BxDolProfile::getInstance((int)$aEvent['subobject_id']);
+        if(!$oProfile)
+            return array();
+
+        /*
+         * Note. Group Profile URL is used for both Entry and Subentry URLs, 
+         * because Subentry URL has higher display priority and notification
+         * should be linked to Group Profile instead of Personal Profile of
+         * a member, who performed an action.
+         */
+        $sEntryUrl = $sSubentryUrl = $oGroupProfile->getUrl();
+		return array(
+			'entry_sample' => $CNF['T']['txt_sample_single'],
+			'entry_url' => $sEntryUrl,
+			'entry_caption' => $oGroupProfile->getDisplayName(),
+			'entry_author' => $oGroupProfile->id(),
+			'subentry_sample' => $oProfile->getDisplayName(),
+			'subentry_url' => $sSubentryUrl,
+			'lang_key' => $sLangKey
+		);
+    }
+
     /**
     /**
      * Entry post for Timeline module
      * Entry post for Timeline module
      */
      */

+ 6 - 3
modules/base/notifications/classes/BxBaseModNotificationsResponse.php

@@ -39,9 +39,12 @@ class BxBaseModNotificationsResponse extends BxDolAlertsResponse
         if(is_array($aExtras) && isset($aExtras['repost_id']))
         if(is_array($aExtras) && isset($aExtras['repost_id']))
     		return (int)$aExtras['repost_id'];
     		return (int)$aExtras['repost_id'];
 
 
-        if(is_array($aExtras) && isset($aExtras['notification_subobject_id']))
-            return (int)$aExtras['notification_subobject_id'];
-                
+        if(is_array($aExtras) && isset($aExtras['timeline_post_id']))
+            return (int)$aExtras['timeline_post_id'];
+
+        if(is_array($aExtras) && isset($aExtras['performer_id']))
+            return (int)$aExtras['performer_id'];
+
         return 0;
         return 0;
     }
     }
 }
 }

+ 16 - 2
modules/base/profile/classes/BxBaseModProfileAlertsResponse.php

@@ -39,9 +39,23 @@ class BxBaseModProfileAlertsResponse extends BxBaseModGeneralAlertsResponse
         // re-translate timeline alert for timeline in this module for posts made by other profiles
         // re-translate timeline alert for timeline in this module for posts made by other profiles
         if ('bx_timeline' == $oAlert->sUnit && 'post_common' == $oAlert->sAction && ($oGroupProfile = BxDolProfile::getInstance($oAlert->aExtras['object_author_id'])) && $oGroupProfile->getModule() == $this->_oModule->getName() && $oGroupProfile->id() != $oAlert->iSender) {            
         if ('bx_timeline' == $oAlert->sUnit && 'post_common' == $oAlert->sAction && ($oGroupProfile = BxDolProfile::getInstance($oAlert->aExtras['object_author_id'])) && $oGroupProfile->getModule() == $this->_oModule->getName() && $oGroupProfile->id() != $oAlert->iSender) {            
             $aContentInfo = $this->_oModule->serviceGetContentInfoById($oGroupProfile->getContentId());
             $aContentInfo = $this->_oModule->serviceGetContentInfoById($oGroupProfile->getContentId());
-            bx_alert($this->_oModule->getName(), 'timeline_post_common', $aContentInfo[$CNF['FIELD_ID']], $oGroupProfile->id(), array('content' => $aContentInfo, 'group_profile' => $oGroupProfile->id(), 'profile' => $oAlert->iSender, 'notification_subobject_id' => $oAlert->iSender, 'object_author_id' => $aContentInfo[$CNF['FIELD_AUTHOR']]));
+
+            /*
+             * Note. Group Profile ID is used as alert sender and also a content (group) owner (author).
+             */
+            $iSenderId = $iObjectAuthorId = $oGroupProfile->id(); 
+            bx_alert($this->_oModule->getName(), 'timeline_post_common', $aContentInfo[$CNF['FIELD_ID']], $iSenderId, array(
+            	'object_author_id' => $iObjectAuthorId,
+            	'timeline_post_id' => $oAlert->iObject, 
+                'timeline_post_author_id' => $oAlert->iSender,
+
+            	'content' => $aContentInfo,
+
+            	'group_profile' => $oGroupProfile->id(), 
+            	'profile' => $oAlert->iSender,
+            ));
         }
         }
- 
+
         if ($this->MODULE != $oAlert->sUnit)
         if ($this->MODULE != $oAlert->sUnit)
             return;
             return;
 
 

+ 29 - 1
modules/base/profile/classes/BxBaseModProfileModule.php

@@ -465,7 +465,35 @@ class BxBaseModProfileModule extends BxBaseModGeneralModule implements iBxDolCon
      */
      */
     public function serviceGetNotificationsTimelinePostCommon($aEvent)
     public function serviceGetNotificationsTimelinePostCommon($aEvent)
     {
     {
-        return $this->_serviceGetNotification($aEvent, '_bx_' . $this->_oConfig->getUri() . '_txt_ntfs_timeline_post_common');
+        $CNF = &$this->_oConfig->CNF;
+
+        $iContentId = (int)$aEvent['object_id'];
+        $oGroupProfile = BxDolProfile::getInstanceByContentAndType((int)$iContentId, $this->getName());
+        if(!$oGroupProfile)
+            return array();
+
+        $aContentInfo = $this->_oDb->getContentInfoById($iContentId);
+        if(empty($aContentInfo) || !is_array($aContentInfo))
+            return array();
+            
+        $aSubcontentInfo = BxDolService::call('bx_timeline', 'get_info', array((int)$aEvent['subobject_id'], false));
+        if(empty($aSubcontentInfo) || !is_array($aSubcontentInfo))
+            return array();
+
+        $sSubentryUrl = BxDolService::call('bx_timeline', 'get_link', array((int)$aEvent['subobject_id']));
+        $sSubentrySample = $aSubcontentInfo['title'];
+        if(empty($sSubentrySample))
+            $sSubentrySample = strmaxtextlen($aSubcontentInfo['description'], 20, '...');
+
+		return array(
+			'entry_sample' => $CNF['T']['txt_sample_single'],
+			'entry_url' => $oGroupProfile->getUrl(),
+			'entry_caption' => $oGroupProfile->getDisplayName(),
+			'entry_author' => $oGroupProfile->id(),
+			'subentry_sample' => $sSubentrySample,
+			'subentry_url' => $sSubentryUrl,
+			'lang_key' => $CNF['T']['txt_ntfs_timeline_post_common'],
+		);
     }
     }
 
 
     public function serviceGetConnectionButtonsTitles($iProfileId, $sConnectionsObject = 'sys_profiles_friends')
     public function serviceGetConnectionButtonsTitles($iProfileId, $sConnectionsObject = 'sys_profiles_friends')

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

@@ -2275,8 +2275,8 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_pre_lists_report_types_nude"><![CDATA[nude]]></string>
 	<string name="_sys_pre_lists_report_types_nude"><![CDATA[nude]]></string>
 	<string name="_sys_pre_lists_report_types_other"><![CDATA[other]]></string>
 	<string name="_sys_pre_lists_report_types_other"><![CDATA[other]]></string>
 	<string name="_sys_profile_sample_single"><![CDATA[profile]]></string>
 	<string name="_sys_profile_sample_single"><![CDATA[profile]]></string>
-	<string name="_sys_profile_friendship_added"><![CDATA[<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> befriended <a href="{entry_url}">{entry_caption}</a>]]></string>
-	<string name="_sys_profile_subscription_added"><![CDATA[<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> followed <a href="{entry_url}">{entry_caption}</a>]]></string>
+	<string name="_sys_profile_friendship_added"><![CDATA[<b class="bx-ntfs-content-profile">{owner_name}</b> befriended <b class="bx-ntfs-content-entry">{entry_caption}</b>]]></string>
+	<string name="_sys_profile_subscription_added"><![CDATA[<b class="bx-ntfs-content-profile">{owner_name}</b> followed <b class="bx-ntfs-content-entry">{entry_caption}</b>]]></string>
 	<string name="_sys_profile_status_active"><![CDATA[Active]]></string>
 	<string name="_sys_profile_status_active"><![CDATA[Active]]></string>
 	<string name="_sys_profile_status_pending"><![CDATA[Pending]]></string>
 	<string name="_sys_profile_status_pending"><![CDATA[Pending]]></string>
 	<string name="_sys_profile_status_suspended"><![CDATA[Suspended]]></string>
 	<string name="_sys_profile_status_suspended"><![CDATA[Suspended]]></string>

+ 1 - 0
modules/boonex/events/classes/BxEventsConfig.php

@@ -156,6 +156,7 @@ class BxEventsConfig extends BxBaseModProfileConfig
                 'txt_N_fans' => '_bx_events_txt_N_fans',
                 'txt_N_fans' => '_bx_events_txt_N_fans',
                 'txt_ntfs_join_request' => '_bx_events_txt_ntfs_join_request',
                 'txt_ntfs_join_request' => '_bx_events_txt_ntfs_join_request',
                 'txt_ntfs_fan_added' => '_bx_events_txt_ntfs_fan_added',
                 'txt_ntfs_fan_added' => '_bx_events_txt_ntfs_fan_added',
+            	'txt_ntfs_timeline_post_common' => '_bx_events_txt_ntfs_timeline_post_common',
             	'form_field_author' => '_bx_events_form_profile_input_author',
             	'form_field_author' => '_bx_events_form_profile_input_author',
                 'menu_item_title_befriend_sent' => '_bx_events_menu_item_title_befriend_sent',
                 'menu_item_title_befriend_sent' => '_bx_events_menu_item_title_befriend_sent',
                 'menu_item_title_unfriend_cancel_request' => '_bx_events_menu_item_title_unfriend_cancel_request',
                 'menu_item_title_unfriend_cancel_request' => '_bx_events_menu_item_title_unfriend_cancel_request',

+ 3 - 3
modules/boonex/events/install/langs/en.xml

@@ -276,10 +276,10 @@
     <string name="_bx_events_txt_from_time_to_time"><![CDATA[{0} - {1}]]></string>
     <string name="_bx_events_txt_from_time_to_time"><![CDATA[{0} - {1}]]></string>
 
 
 	<string name="_bx_events_alert_action_fan_added"><![CDATA[member joined]]></string>
 	<string name="_bx_events_alert_action_fan_added"><![CDATA[member joined]]></string>
-    <string name="_bx_events_txt_ntfs_fan_added"><![CDATA[<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> event has got new member - <a href="{subentry_url}">{subentry_sample}</a>]]></string>
+    <string name="_bx_events_txt_ntfs_fan_added"><![CDATA[Event <b class="bx-ntfs-content-profile">{owner_name}</b> has got a member <b class="bx-ntfs-content-entry">{subentry_sample}</b>]]></string>
     <string name="_bx_events_alert_action_join_request"><![CDATA[join request]]></string>
     <string name="_bx_events_alert_action_join_request"><![CDATA[join request]]></string>
-    <string name="_bx_events_txt_ntfs_join_request"><![CDATA[<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> event has new request from <a href="{subentry_url}">{subentry_sample}</a>]]></string>
-    <string name="_bx_events_txt_ntfs_timeline_post_common"><![CDATA[New post in <a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> event timeline  from <a href="{subentry_url}">{subentry_sample}</a>]]></string>
+    <string name="_bx_events_txt_ntfs_join_request"><![CDATA[Event <b class="bx-ntfs-content-profile">{owner_name}</b> has a join request from <b class="bx-ntfs-content-entry">{subentry_sample}</b>]]></string>
+    <string name="_bx_events_txt_ntfs_timeline_post_common"><![CDATA[New post <b class="bx-ntfs-content-entry">{subentry_sample}</b> in <b class="bx-ntfs-content-profile">{owner_name}</b> event timeline]]></string>
 
 
     <string name="_bx_events_privacy_group_closed"><![CDATA[Closed]]></string>
     <string name="_bx_events_privacy_group_closed"><![CDATA[Closed]]></string>
     <string name="_bx_events_privacy_group_secret"><![CDATA[Secret]]></string>
     <string name="_bx_events_privacy_group_secret"><![CDATA[Secret]]></string>

+ 1 - 0
modules/boonex/groups/classes/BxGroupsConfig.php

@@ -152,6 +152,7 @@ class BxGroupsConfig extends BxBaseModProfileConfig
                 'txt_N_fans' => '_bx_groups_txt_N_fans',
                 'txt_N_fans' => '_bx_groups_txt_N_fans',
                 'txt_ntfs_join_request' => '_bx_groups_txt_ntfs_join_request',
                 'txt_ntfs_join_request' => '_bx_groups_txt_ntfs_join_request',
                 'txt_ntfs_fan_added' => '_bx_groups_txt_ntfs_fan_added',
                 'txt_ntfs_fan_added' => '_bx_groups_txt_ntfs_fan_added',
+            	'txt_ntfs_timeline_post_common' => '_bx_groups_txt_ntfs_timeline_post_common',
             	'form_field_author' => '_bx_groups_form_entry_input_author',
             	'form_field_author' => '_bx_groups_form_entry_input_author',
                 'menu_item_title_befriend_sent' => '_bx_groups_menu_item_title_befriend_sent',
                 'menu_item_title_befriend_sent' => '_bx_groups_menu_item_title_befriend_sent',
                 'menu_item_title_unfriend_cancel_request' => '_bx_groups_menu_item_title_unfriend_cancel_request',
                 'menu_item_title_unfriend_cancel_request' => '_bx_groups_menu_item_title_unfriend_cancel_request',

+ 3 - 3
modules/boonex/groups/install/langs/en.xml

@@ -244,10 +244,10 @@
     <string name="_bx_groups_txt_private_group"><![CDATA[Private group]]></string>
     <string name="_bx_groups_txt_private_group"><![CDATA[Private group]]></string>
 
 
 	<string name="_bx_groups_alert_action_fan_added"><![CDATA[member joined]]></string>
 	<string name="_bx_groups_alert_action_fan_added"><![CDATA[member joined]]></string>
-    <string name="_bx_groups_txt_ntfs_fan_added"><![CDATA[<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> group has got new member - <a href="{subentry_url}">{subentry_sample}</a>]]></string>
+    <string name="_bx_groups_txt_ntfs_fan_added"><![CDATA[Group <b class="bx-ntfs-content-profile">{owner_name}</b> has got a member <b class="bx-ntfs-content-entry">{subentry_sample}</b>]]></string>
     <string name="_bx_groups_alert_action_join_request"><![CDATA[join request]]></string>
     <string name="_bx_groups_alert_action_join_request"><![CDATA[join request]]></string>
-    <string name="_bx_groups_txt_ntfs_join_request"><![CDATA[<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> group has new request from <a href="{subentry_url}">{subentry_sample}</a>]]></string>
-    <string name="_bx_groups_txt_ntfs_timeline_post_common"><![CDATA[New post in <a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> group timeline  from <a href="{subentry_url}">{subentry_sample}</a>]]></string>
+    <string name="_bx_groups_txt_ntfs_join_request"><![CDATA[Group <b class="bx-ntfs-content-profile">{owner_name}</b> has a join request from <b class="bx-ntfs-content-entry">{subentry_sample}</b>]]></string>
+    <string name="_bx_groups_txt_ntfs_timeline_post_common"><![CDATA[New post <b class="bx-ntfs-content-entry">{subentry_sample}</b> in <b class="bx-ntfs-content-profile">{owner_name}</b> group timeline]]></string>
 
 
     <string name="_bx_groups_pre_lists_cats"><![CDATA[Group categories]]></string>
     <string name="_bx_groups_pre_lists_cats"><![CDATA[Group categories]]></string>
     <string name="_bx_groups_cat_General"><![CDATA[General]]></string>
     <string name="_bx_groups_cat_General"><![CDATA[General]]></string>

+ 16 - 7
modules/boonex/notifications/classes/BxNtfsTemplate.php

@@ -72,6 +72,14 @@ class BxNtfsTemplate extends BxBaseModNotificationsTemplate
         ));
         ));
     }
     }
 
 
+    /**
+     * Enter description here ...
+     * @example Available keys are:
+     * 1. owner_name and owner_link
+     * 2. entry_caption and entry_url
+     * 3. subentry_url and subentry_sample
+     * 
+     */
     public function getPost(&$aEvent, $aBrowseParams = array())
     public function getPost(&$aEvent, $aBrowseParams = array())
     {
     {
     	$oModule = $this->getModule();
     	$oModule = $this->getModule();
@@ -100,7 +108,7 @@ class BxNtfsTemplate extends BxBaseModNotificationsTemplate
         	if(substr($sValue, 0, 1) == '_')
         	if(substr($sValue, 0, 1) == '_')
         		$aEvent['content'][$sKey] = _t($sValue);        
         		$aEvent['content'][$sKey] = _t($sValue);        
 
 
-    	$sContent = _t(!empty($aEvent['content']['lang_key']) ? $aEvent['content']['lang_key'] : $this->_getLangKey($aEvent));
+    	$sContent = _t(!empty($aEvent['content']['lang_key']) ? $aEvent['content']['lang_key'] : $this->_getContentLangKey($aEvent));
     	$sContent = $this->parseHtmlByContent($sContent, $aEvent['content'], array('{', '}'));
     	$sContent = $this->parseHtmlByContent($sContent, $aEvent['content'], array('{', '}'));
 
 
         return $this->parseHtmlByName('event.html', array (
         return $this->parseHtmlByName('event.html', array (
@@ -118,6 +126,7 @@ class BxNtfsTemplate extends BxBaseModNotificationsTemplate
                 'condition' => !$bAuthorIcon,
                 'condition' => !$bAuthorIcon,
                 'content' => array()
                 'content' => array()
             ),
             ),
+            'link' => $this->_getContentLink($aEvent),
             'content' => $sContent,
             'content' => $sContent,
             'date' => bx_time_js($aEvent['date']),
             'date' => bx_time_js($aEvent['date']),
         ));
         ));
@@ -177,14 +186,14 @@ class BxNtfsTemplate extends BxBaseModNotificationsTemplate
 		return $this->$sMethod($aEvent);
 		return $this->$sMethod($aEvent);
     }
     }
 
 
-    protected function _getLangKey(&$aEvent)
+    protected function _getContentLangKey(&$aEvent)
     {
     {
-    	$sResult = '_bx_ntfs_txt_object_added';
-
-    	if(!empty($aEvent['subobject_id']))
-    		$sResult = '_bx_ntfs_txt_subobject_added_' . (!empty($aEvent['content']['subentry_url']) ? 'link' : 'text');
+    	return !empty($aEvent['subobject_id']) ? '_bx_ntfs_txt_subobject_added' : '_bx_ntfs_txt_object_added';
+    }
 
 
-    	return $sResult;
+    protected function _getContentLink(&$aEvent)
+    {
+        return !empty($aEvent['subobject_id']) && !empty($aEvent['content']['subentry_url']) ? $aEvent['content']['subentry_url'] : $aEvent['content']['entry_url'];
     }
     }
 }
 }
 
 

+ 2 - 3
modules/boonex/notifications/install/langs/en.xml

@@ -29,7 +29,6 @@
 	<string name="_bx_ntfs_alert_action_connection_added"><![CDATA[add connection]]></string>
 	<string name="_bx_ntfs_alert_action_connection_added"><![CDATA[add connection]]></string>
 
 
 	<string name="_bx_ntfs_txt_msg_no_results"><![CDATA[Empty]]></string>
 	<string name="_bx_ntfs_txt_msg_no_results"><![CDATA[Empty]]></string>
-	<string name="_bx_ntfs_txt_object_added"><![CDATA[<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> added a {entry_sample} <a href="{entry_url}">{entry_caption}</a>]]></string>
-	<string name="_bx_ntfs_txt_subobject_added_text"><![CDATA[<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> added a {subentry_sample} <a href="{entry_url}">{entry_caption}</a>]]></string>
-	<string name="_bx_ntfs_txt_subobject_added_link"><![CDATA[<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> added a <a href="{subentry_url}">{subentry_sample}</a> <a href="{entry_url}">{entry_caption}</a>]]></string>
+	<string name="_bx_ntfs_txt_object_added"><![CDATA[<b class="bx-ntfs-content-profile">{owner_name}</b> added a {entry_sample} <b class="bx-ntfs-content-entry">{entry_caption}</b>]]></string>
+	<string name="_bx_ntfs_txt_subobject_added"><![CDATA[<b class="bx-ntfs-content-profile">{owner_name}</b> added a {subentry_sample} <b class="bx-ntfs-content-entry">{entry_caption}</b>]]></string>
 </resources>
 </resources>

+ 17 - 15
modules/boonex/notifications/template/event.html

@@ -1,18 +1,20 @@
-<div id="__html_id__" class="__style_prefix__-event bx-def-margin-sec-top-auto bx-def-round-corners bx-def-box bx-def-color-bg-box">
-    <div class="__style_prefix__-event-gap bx-def-padding-sec">
-    	<div class="__style_prefix__-event-cnt">
-	       	<div class="__style_prefix__-owner-avatar bx-def-thumb bx-def-thumb-size">
-				<bx_if:show_icon>
-					<img class="bx-def-thumb bx-def-thumb-size" src="__author_icon__" />
-				</bx_if:show_icon>
-				<bx_if:show_icon_empty>
-					<i class="sys-icon user"></i>
-				</bx_if:show_icon_empty>
-			</div>
-			<div class="__style_prefix__-body bx-def-thumb-size-min-height bx-def-thumb-size-left-indent">
-				<div class="__style_prefix__-content">__content__</div>
-				<div class="__style_prefix__-date bx-def-margin-sec-top">__date__</div>
+<div id="__html_id__" class="__style_prefix__-event bx-def-margin-sec-top-auto bx-def-round-corners bx-def-box bx-def-color-bg-box bx-def-color-bg-box-hover">
+    <a class="__style_prefix__-event-link bx-def-font-color" href="__link__">
+	    <div class="__style_prefix__-event-gap bx-def-padding-sec">
+	    	<div class="__style_prefix__-event-cnt">
+		       	<div class="__style_prefix__-owner-avatar bx-def-thumb bx-def-thumb-size">
+					<bx_if:show_icon>
+						<img class="bx-def-thumb bx-def-thumb-size" src="__author_icon__" />
+					</bx_if:show_icon>
+					<bx_if:show_icon_empty>
+						<i class="sys-icon user"></i>
+					</bx_if:show_icon_empty>
+				</div>
+				<div class="__style_prefix__-body bx-def-thumb-size-min-height bx-def-thumb-size-left-indent">
+					<div class="__style_prefix__-content">__content__</div>
+					<div class="__style_prefix__-date bx-def-margin-sec-top">__date__</div>
+				</div>
 			</div>
 			</div>
 		</div>
 		</div>
-	</div>
+	</a>
 </div>
 </div>

+ 1 - 0
modules/boonex/organizations/classes/BxOrgsConfig.php

@@ -156,6 +156,7 @@ class BxOrgsConfig extends BxBaseModProfileConfig
                 'txt_sample_single' => '_bx_orgs_txt_sample_single',
                 'txt_sample_single' => '_bx_orgs_txt_sample_single',
             	'txt_sample_comment_single' => '_bx_orgs_txt_sample_comment_single',
             	'txt_sample_comment_single' => '_bx_orgs_txt_sample_comment_single',
                 'txt_N_fans' => '_bx_orgs_txt_N_friends',
                 'txt_N_fans' => '_bx_orgs_txt_N_friends',
+            	'txt_ntfs_timeline_post_common' => '_bx_orgs_txt_ntfs_timeline_post_common',
                 'menu_item_title_befriend_sent' => '_bx_orgs_menu_item_title_befriend_sent',
                 'menu_item_title_befriend_sent' => '_bx_orgs_menu_item_title_befriend_sent',
                 'menu_item_title_unfriend_cancel_request' => '_bx_orgs_menu_item_title_unfriend_cancel_request',
                 'menu_item_title_unfriend_cancel_request' => '_bx_orgs_menu_item_title_unfriend_cancel_request',
                 'menu_item_title_befriend_confirm' => '_bx_orgs_menu_item_title_befriend_confirm',
                 'menu_item_title_befriend_confirm' => '_bx_orgs_menu_item_title_befriend_confirm',

+ 1 - 1
modules/boonex/organizations/install/langs/en.xml

@@ -286,7 +286,7 @@
     <string name="_bx_orgs_cat_University"><![CDATA[University]]></string>
     <string name="_bx_orgs_cat_University"><![CDATA[University]]></string>
     <string name="_bx_orgs_cat_Other"><![CDATA[Other]]></string>
     <string name="_bx_orgs_cat_Other"><![CDATA[Other]]></string>
 
 
-    <string name="_bx_orgs_txt_ntfs_timeline_post_common"><![CDATA[New post in <a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> organization timeline from <a href="{subentry_url}">{subentry_sample}</a>]]></string>
+    <string name="_bx_orgs_txt_ntfs_timeline_post_common"><![CDATA[New post <b class="bx-ntfs-content-entry">{subentry_sample}</b> in <b class="bx-ntfs-content-profile">{owner_name}</b> organization timeline]]></string>
     <string name="_bx_orgs_txt_sample_single"><![CDATA[organization]]></string>
     <string name="_bx_orgs_txt_sample_single"><![CDATA[organization]]></string>
     <string name="_bx_orgs_txt_sample_comment_single"><![CDATA[comment to organization]]></string>
     <string name="_bx_orgs_txt_sample_comment_single"><![CDATA[comment to organization]]></string>
     <string name="_bx_orgs_txt_N_friends"><![CDATA[{0} friends]]></string>
     <string name="_bx_orgs_txt_N_friends"><![CDATA[{0} friends]]></string>

+ 1 - 0
modules/boonex/persons/classes/BxPersonsConfig.php

@@ -156,6 +156,7 @@ class BxPersonsConfig extends BxBaseModProfileConfig
                 'txt_sample_single' => '_bx_persons_txt_sample_single',
                 'txt_sample_single' => '_bx_persons_txt_sample_single',
             	'txt_sample_comment_single' => '_bx_persons_txt_sample_comment_single',
             	'txt_sample_comment_single' => '_bx_persons_txt_sample_comment_single',
                 'txt_N_fans' => '_bx_persons_txt_N_friends',
                 'txt_N_fans' => '_bx_persons_txt_N_friends',
+            	'txt_ntfs_timeline_post_common' => '_bx_persons_txt_ntfs_timeline_post_common',
                 'menu_item_title_befriend_sent' => '_bx_persons_menu_item_title_befriend_sent',
                 'menu_item_title_befriend_sent' => '_bx_persons_menu_item_title_befriend_sent',
                 'menu_item_title_unfriend_cancel_request' => '_bx_persons_menu_item_title_unfriend_cancel_request',
                 'menu_item_title_unfriend_cancel_request' => '_bx_persons_menu_item_title_unfriend_cancel_request',
                 'menu_item_title_befriend_confirm' => '_bx_persons_menu_item_title_befriend_confirm',
                 'menu_item_title_befriend_confirm' => '_bx_persons_menu_item_title_befriend_confirm',

+ 1 - 1
modules/boonex/persons/install/langs/en.xml

@@ -250,7 +250,7 @@
     <string name="_bx_persons_txt_account_suspended"><![CDATA[This profile is suspended.]]></string>
     <string name="_bx_persons_txt_account_suspended"><![CDATA[This profile is suspended.]]></string>
     <string name="_bx_persons_txt_account_suspended_moderation"><![CDATA[This <a href="{0}">profile</a> is suspended.]]></string>
     <string name="_bx_persons_txt_account_suspended_moderation"><![CDATA[This <a href="{0}">profile</a> is suspended.]]></string>
     <string name="_bx_persons_txt_N_friends"><![CDATA[{0} friends]]></string>
     <string name="_bx_persons_txt_N_friends"><![CDATA[{0} friends]]></string>
-    <string name="_bx_persons_txt_ntfs_timeline_post_common"><![CDATA[New post in <a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> profile timeline from <a href="{subentry_url}">{subentry_sample}</a>]]></string>
+    <string name="_bx_persons_txt_ntfs_timeline_post_common"><![CDATA[New post <b class="bx-ntfs-content-entry">{subentry_sample}</b> in <b class="bx-ntfs-content-profile">{owner_name}</b> profile timeline]]></string>
     <string name="_bx_persons_txt_sample_single"><![CDATA[person]]></string>
     <string name="_bx_persons_txt_sample_single"><![CDATA[person]]></string>
     <string name="_bx_persons_txt_sample_comment_single"><![CDATA[comment to person]]></string>
     <string name="_bx_persons_txt_sample_comment_single"><![CDATA[comment to person]]></string>
 
 

+ 3 - 3
modules/boonex/russian/data/langs/bx_events/ru.xml

@@ -277,10 +277,10 @@
     <string name="_bx_events_txt_from_time_to_time"><![CDATA[{0} - {1}]]></string>
     <string name="_bx_events_txt_from_time_to_time"><![CDATA[{0} - {1}]]></string>
 
 
 	<string name="_bx_events_alert_action_fan_added"><![CDATA[присоединение нового участника]]></string>
 	<string name="_bx_events_alert_action_fan_added"><![CDATA[присоединение нового участника]]></string>
-    <string name="_bx_events_txt_ntfs_fan_added"><![CDATA[У <a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> события новый участник - <a href="{subentry_url}">{subentry_sample}</a>]]></string>
+    <string name="_bx_events_txt_ntfs_fan_added"><![CDATA[У события <b class="bx-ntfs-content-profile">{owner_name}</b> новый участник <b class="bx-ntfs-content-entry">{subentry_sample}</b>]]></string>
     <string name="_bx_events_alert_action_join_request"><![CDATA[запрос на присоединение к событию]]></string>
     <string name="_bx_events_alert_action_join_request"><![CDATA[запрос на присоединение к событию]]></string>
-    <string name="_bx_events_txt_ntfs_join_request"><![CDATA[У <a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> события новый запрос на присоединение от <a href="{subentry_url}">{subentry_sample}</a>]]></string>
-    <string name="_bx_events_txt_ntfs_timeline_post_common"><![CDATA[В <a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> событии новая публикация от <a href="{subentry_url}">{subentry_sample}</a>]]></string>
+    <string name="_bx_events_txt_ntfs_join_request"><![CDATA[У события <b class="bx-ntfs-content-profile">{owner_name}</b> новый запрос на присоединение от <b class="bx-ntfs-content-entry">{subentry_sample}</b>]]></string>
+    <string name="_bx_events_txt_ntfs_timeline_post_common"><![CDATA[В событии <b class="bx-ntfs-content-profile">{owner_name}</b> новая публикация <b class="bx-ntfs-content-entry">{subentry_sample}</b>]]></string>
 
 
     <string name="_bx_events_privacy_group_closed"><![CDATA[Закрытое событие]]></string>
     <string name="_bx_events_privacy_group_closed"><![CDATA[Закрытое событие]]></string>
     <string name="_bx_events_privacy_group_secret"><![CDATA[Секретное событие]]></string>
     <string name="_bx_events_privacy_group_secret"><![CDATA[Секретное событие]]></string>

+ 3 - 3
modules/boonex/russian/data/langs/bx_groups/ru.xml

@@ -244,10 +244,10 @@
     <string name="_bx_groups_txt_private_group"><![CDATA[Приватная группа]]></string>
     <string name="_bx_groups_txt_private_group"><![CDATA[Приватная группа]]></string>
 
 
 	<string name="_bx_groups_alert_action_fan_added"><![CDATA[присоединение нового участника]]></string>
 	<string name="_bx_groups_alert_action_fan_added"><![CDATA[присоединение нового участника]]></string>
-    <string name="_bx_groups_txt_ntfs_fan_added"><![CDATA[В группу "<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a>" добавился новый член - <a href="{subentry_url}">{subentry_sample}</a>]]></string>
+    <string name="_bx_groups_txt_ntfs_fan_added"><![CDATA[В группу <b class="bx-ntfs-content-profile">{owner_name}</b> вступил <b class="bx-ntfs-content-entry">{subentry_sample}</b>]]></string>
     <string name="_bx_groups_alert_action_join_request"><![CDATA[запрос на присоединение к событию]]></string>
     <string name="_bx_groups_alert_action_join_request"><![CDATA[запрос на присоединение к событию]]></string>
-    <string name="_bx_groups_txt_ntfs_join_request"><![CDATA[В группу "<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a>" хочет присоединиться новый член - <a href="{subentry_url}">{subentry_sample}</a>]]></string>
-    <string name="_bx_groups_txt_ntfs_timeline_post_common"><![CDATA[В группе <a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> новая публикация от <a href="{subentry_url}">{subentry_sample}</a>]]></string>
+    <string name="_bx_groups_txt_ntfs_join_request"><![CDATA[В группу <b class="bx-ntfs-content-profile">{owner_name}</b> хочет вступить <b class="bx-ntfs-content-entry">{subentry_sample}</b>]]></string>
+    <string name="_bx_groups_txt_ntfs_timeline_post_common"><![CDATA[В группе <b class="bx-ntfs-content-profile">{owner_name}</b> новая публикация <b class="bx-ntfs-content-entry">{subentry_sample}</b>]]></string>
 
 
     <string name="_bx_groups_pre_lists_cats"><![CDATA[Категории групп]]></string>
     <string name="_bx_groups_pre_lists_cats"><![CDATA[Категории групп]]></string>
     <string name="_bx_groups_cat_General"><![CDATA[Обобщение]]></string>
     <string name="_bx_groups_cat_General"><![CDATA[Обобщение]]></string>

+ 2 - 3
modules/boonex/russian/data/langs/bx_notifications/ru.xml

@@ -29,7 +29,6 @@
 	<string name="_bx_ntfs_alert_action_connection_added"><![CDATA[добавить связь]]></string>	
 	<string name="_bx_ntfs_alert_action_connection_added"><![CDATA[добавить связь]]></string>	
 
 
 	<string name="_bx_ntfs_txt_msg_no_results"><![CDATA[Пусто]]></string>
 	<string name="_bx_ntfs_txt_msg_no_results"><![CDATA[Пусто]]></string>
-	<string name="_bx_ntfs_txt_object_added"><![CDATA[<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> - {entry_sample} <a href="{entry_url}">{entry_caption}</a>]]></string>
-	<string name="_bx_ntfs_txt_subobject_added_text"><![CDATA[<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> - {subentry_sample} <a href="{entry_url}">{entry_caption}</a>]]></string>
-	<string name="_bx_ntfs_txt_subobject_added_link"><![CDATA[<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> - <a href="{subentry_url}">{subentry_sample}</a> <a href="{entry_url}">{entry_caption}</a>]]></string>
+	<string name="_bx_ntfs_txt_object_added"><![CDATA[<b class="bx-ntfs-content-profile">{owner_name}</b> - {entry_sample} <b class="bx-ntfs-content-entry">{entry_caption}</b>]]></string>
+	<string name="_bx_ntfs_txt_subobject_added"><![CDATA[<b class="bx-ntfs-content-profile">{owner_name}</b> - {subentry_sample} <b class="bx-ntfs-content-entry">{entry_caption}</b>]]></string>
 </resources>
 </resources>

+ 1 - 1
modules/boonex/russian/data/langs/bx_organizations/ru.xml

@@ -286,7 +286,7 @@
     <string name="_bx_orgs_cat_University"><![CDATA[Преподавание]]></string>
     <string name="_bx_orgs_cat_University"><![CDATA[Преподавание]]></string>
     <string name="_bx_orgs_cat_Other"><![CDATA[Другое]]></string>
     <string name="_bx_orgs_cat_Other"><![CDATA[Другое]]></string>
 
 
-    <string name="_bx_orgs_txt_ntfs_timeline_post_common"><![CDATA[В организации <a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> новая публикация от <a href="{subentry_url}">{subentry_sample}</a>]]></string>
+    <string name="_bx_orgs_txt_ntfs_timeline_post_common"><![CDATA[В организации <b class="bx-ntfs-content-profile">{owner_name}</b> новая публикация <b class="bx-ntfs-content-entry">{subentry_sample}</b>]]></string>
     <string name="_bx_orgs_txt_sample_single"><![CDATA[Организация]]></string>
     <string name="_bx_orgs_txt_sample_single"><![CDATA[Организация]]></string>
     <string name="_bx_orgs_txt_sample_comment_single"><![CDATA[комментарий к организации]]></string>
     <string name="_bx_orgs_txt_sample_comment_single"><![CDATA[комментарий к организации]]></string>
     <string name="_bx_orgs_txt_N_friends"><![CDATA[Друзья: {0}]]></string>
     <string name="_bx_orgs_txt_N_friends"><![CDATA[Друзья: {0}]]></string>

+ 1 - 1
modules/boonex/russian/data/langs/bx_persons/ru.xml

@@ -251,7 +251,7 @@
     <string name="_bx_persons_txt_account_suspended"><![CDATA[Этот профиль заблокирован.]]></string>
     <string name="_bx_persons_txt_account_suspended"><![CDATA[Этот профиль заблокирован.]]></string>
     <string name="_bx_persons_txt_account_suspended_moderation"><![CDATA[Этот <a href="{0}">профиль</a> заблокирован.]]></string>
     <string name="_bx_persons_txt_account_suspended_moderation"><![CDATA[Этот <a href="{0}">профиль</a> заблокирован.]]></string>
     <string name="_bx_persons_txt_N_friends"><![CDATA[Друзья: {0}]]></string>
     <string name="_bx_persons_txt_N_friends"><![CDATA[Друзья: {0}]]></string>
-    <string name="_bx_persons_txt_ntfs_timeline_post_common"><![CDATA[В профайле <a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> новая публикация от <a href="{subentry_url}">{subentry_sample}</a>]]></string>
+    <string name="_bx_persons_txt_ntfs_timeline_post_common"><![CDATA[В профайле <b class="bx-ntfs-content-profile">{owner_name}</b> новая публикация <b class="bx-ntfs-content-entry">{subentry_sample}</b>]]></string>
     <string name="_bx_persons_txt_sample_single"><![CDATA[Персона]]></string>
     <string name="_bx_persons_txt_sample_single"><![CDATA[Персона]]></string>
     <string name="_bx_persons_txt_sample_comment_single"><![CDATA[комментарий к персональному профилю]]></string>
     <string name="_bx_persons_txt_sample_comment_single"><![CDATA[комментарий к персональному профилю]]></string>
 
 

+ 1 - 1
modules/boonex/russian/data/langs/bx_timeline/ru.xml

@@ -159,7 +159,7 @@
 	<string name="_bx_timeline_txt_sample_ext"><![CDATA[сообщение в ленте]]></string>
 	<string name="_bx_timeline_txt_sample_ext"><![CDATA[сообщение в ленте]]></string>
 	<string name="_bx_timeline_txt_sample_comment_single"><![CDATA[комментарий к сообщению в ленте]]></string>
 	<string name="_bx_timeline_txt_sample_comment_single"><![CDATA[комментарий к сообщению в ленте]]></string>
 	<string name="_bx_timeline_txt_sample_vote_single"><![CDATA[голос за сообщение в ленте]]></string>
 	<string name="_bx_timeline_txt_sample_vote_single"><![CDATA[голос за сообщение в ленте]]></string>
-	<string name="_bx_timeline_ntfs_txt_object_added"><![CDATA[<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> - {entry_sample} <a href="{entry_url}">{entry_caption}</a>]]></string>
+	<string name="_bx_timeline_ntfs_txt_object_added"><![CDATA[<b class="bx-ntfs-content-profile">{owner_name}</b> - {entry_sample} <b class="bx-ntfs-content-entry">{entry_caption}</b>]]></string>
     <string name="_bx_timeline_txt_today"><![CDATA[Сегодня]]></string>
     <string name="_bx_timeline_txt_today"><![CDATA[Сегодня]]></string>
 
 
 	<string name="_bx_timeline_txt_do_repost"><![CDATA[Сделать репост]]></string>
 	<string name="_bx_timeline_txt_do_repost"><![CDATA[Сделать репост]]></string>

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

@@ -2274,8 +2274,8 @@
 	<string name="_sys_pre_lists_report_types_nude"><![CDATA[обнаженность]]></string>
 	<string name="_sys_pre_lists_report_types_nude"><![CDATA[обнаженность]]></string>
 	<string name="_sys_pre_lists_report_types_other"><![CDATA[другое]]></string>
 	<string name="_sys_pre_lists_report_types_other"><![CDATA[другое]]></string>
 	<string name="_sys_profile_sample_single"><![CDATA[профиль]]></string>
 	<string name="_sys_profile_sample_single"><![CDATA[профиль]]></string>
-	<string name="_sys_profile_friendship_added"><![CDATA[<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> предложил дружбу <a href="{entry_url}">{entry_caption}</a>]]></string>
-	<string name="_sys_profile_subscription_added"><![CDATA[<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> следит за <a href="{entry_url}">{entry_caption}</a>]]></string>
+	<string name="_sys_profile_friendship_added"><![CDATA[<b class="bx-ntfs-content-profile">{owner_name}</b> предложил дружбу <b class="bx-ntfs-content-entry">{entry_caption}</b>]]></string>
+	<string name="_sys_profile_subscription_added"><![CDATA[<b class="bx-ntfs-content-profile">{owner_name}</b> следит за <b class="bx-ntfs-content-entry">{entry_caption}</b>]]></string>
 	<string name="_sys_profile_status_active"><![CDATA[Активный]]></string>
 	<string name="_sys_profile_status_active"><![CDATA[Активный]]></string>
     <string name="_sys_profile_status_pending"><![CDATA[В ожидании]]></string>
     <string name="_sys_profile_status_pending"><![CDATA[В ожидании]]></string>
     <string name="_sys_profile_status_suspended"><![CDATA[Заблокированный]]></string>
     <string name="_sys_profile_status_suspended"><![CDATA[Заблокированный]]></string>

+ 1 - 1
modules/boonex/timeline/install/langs/en.xml

@@ -159,7 +159,7 @@
 	<string name="_bx_timeline_txt_sample_ext"><![CDATA[timeline post]]></string>
 	<string name="_bx_timeline_txt_sample_ext"><![CDATA[timeline post]]></string>
 	<string name="_bx_timeline_txt_sample_comment_single"><![CDATA[comment to timeline post]]></string>
 	<string name="_bx_timeline_txt_sample_comment_single"><![CDATA[comment to timeline post]]></string>
     <string name="_bx_timeline_txt_sample_vote_single"><![CDATA[vote to timeline post]]></string>
     <string name="_bx_timeline_txt_sample_vote_single"><![CDATA[vote to timeline post]]></string>
-    <string name="_bx_timeline_ntfs_txt_object_added"><![CDATA[<a class="bx-ntfs-content-profile" href="{owner_link}">{owner_name}</a> added a new {entry_sample} <a href="{entry_url}">{entry_caption}</a>]]></string>
+    <string name="_bx_timeline_ntfs_txt_object_added"><![CDATA[<b class="bx-ntfs-content-profile">{owner_name}</b> added a {entry_sample} <b class="bx-ntfs-content-entry">{entry_caption}</b>]]></string>
     <string name="_bx_timeline_txt_today"><![CDATA[Today]]></string>
     <string name="_bx_timeline_txt_today"><![CDATA[Today]]></string>
 
 
 	<string name="_bx_timeline_txt_do_repost"><![CDATA[Repost]]></string>
 	<string name="_bx_timeline_txt_do_repost"><![CDATA[Repost]]></string>