Browse Source

Ticket #623 - Notifications for Albums Media Votes.

AntonLV 9 năm trước cách đây
mục cha
commit
437c2b0758

+ 1 - 0
modules/boonex/albums/classes/BxAlbumsConfig.php

@@ -126,6 +126,7 @@ class BxAlbumsConfig extends BxBaseModTextConfig
             	'txt_sample_vote_single' => '_bx_albums_txt_sample_vote_single',
                 'txt_media_single' => '_bx_albums_txt_media_single',
                 'txt_media_comment_single' => '_bx_albums_txt_media_comment_single',
+            	'txt_media_vote_single' => '_bx_albums_txt_media_vote_single',
             	'grid_action_err_delete' => '_bx_albums_grid_action_err_delete',
             	'grid_txt_account_manager' => '_bx_albums_grid_txt_account_manager',
 				'filter_item_active' => '_bx_albums_grid_filter_item_title_adm_active',

+ 33 - 0
modules/boonex/albums/classes/BxAlbumsModule.php

@@ -171,11 +171,17 @@ class BxAlbumsModule extends BxBaseModTextModule
         $aResult['handlers'] = array_merge($aResult['handlers'], array(
             array('group' => $sModule . '_comment_media', 'type' => 'insert', 'alert_unit' => $sModule . '_media', 'alert_action' => 'commentPost', 'module_name' => $sModule, 'module_method' => 'get_notifications_comment_media', 'module_class' => 'Module', 'module_event_privacy' => $sEventPrivacy),
             array('group' => $sModule . '_comment_media', 'type' => 'delete', 'alert_unit' => $sModule . '_media', 'alert_action' => 'commentRemoved'),
+
+            array('group' => $sModule . '_vote_media', 'type' => 'insert', 'alert_unit' => $sModule . '_media', 'alert_action' => 'doVote', 'module_name' => $sModule, 'module_method' => 'get_notifications_vote_media', 'module_class' => 'Module', 'module_event_privacy' => $sEventPrivacy),
+            array('group' => $sModule . '_vote_media', 'type' => 'delete', 'alert_unit' => $sModule . '_media', 'alert_action' => 'undoVote'),
         ));
 
         $aResult['alerts'] = array_merge($aResult['alerts'], array(
             array('unit' => $sModule . '_media', 'action' => 'commentPost'),
             array('unit' => $sModule . '_media', 'action' => 'commentRemoved'),
+
+            array('unit' => $sModule . '_media', 'action' => 'doVote'),
+            array('unit' => $sModule . '_media', 'action' => 'undoVote'),
         ));
 
         return $aResult; 
@@ -208,6 +214,33 @@ class BxAlbumsModule extends BxBaseModTextModule
 		);
     }
 
+    public function serviceGetNotificationsVoteMedia($aEvent)
+    {
+    	$CNF = &$this->_oConfig->CNF;
+
+    	$iMediaId = (int)$aEvent['object_id'];
+    	$aMediaInfo = $this->_oDb->getMediaInfoById($iMediaId);
+        if(empty($aMediaInfo) || !is_array($aMediaInfo))
+            return array();
+
+		$oVote = BxDolVote::getObjectInstance($CNF['OBJECT_VOTES_MEDIA'], $iMediaId);
+        if(!$oVote || !$oVote->isEnabled())
+            return array();
+
+        $sEntryUrl = BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_VIEW_MEDIA'] . '&id=' . $aMediaInfo['id']);
+        $sEntryCaption = isset($aMediaInfo['title']) ? $aMediaInfo['title'] : _t('_bx_albums_media');
+
+		return array(
+			'entry_sample' => $CNF['T']['txt_media_single'],
+			'entry_url' => $sEntryUrl,
+			'entry_caption' => $sEntryCaption,
+			'entry_author' => $aMediaInfo['author'],
+			'subentry_sample' => $CNF['T']['txt_media_vote_single'],
+			'subentry_url' => '',
+			'lang_key' => '', //may be empty or not specified. In this case the default one from Notification module will be used.
+		);
+    }
+
     public function actionGetSiblingMedia($iMediaId, $mixedContext)
     {
         $aSiblings = false;

+ 1 - 0
modules/boonex/albums/install/langs/en.xml

@@ -186,6 +186,7 @@
     <string name="_bx_albums_txt_sample_vote_single"><![CDATA[album's vote]]></string>
     <string name="_bx_albums_txt_media_single"><![CDATA[image]]></string>
     <string name="_bx_albums_txt_media_comment_single"><![CDATA[image's comment]]></string>
+    <string name="_bx_albums_txt_media_vote_single"><![CDATA[image's vote]]></string>
 	<string name="_bx_albums_txt_media_title_alt"><![CDATA[{0}'s media]]></string>
 	<string name="_bx_albums_txt_media_album_link"><![CDATA[<a href="{0}">{1}</a> album by <a href="{2}">{3}</a>]]></string>
 	<string name="_bx_albums_txt_media_album_camera"><![CDATA[Camera]]></string>

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

@@ -186,6 +186,7 @@
     <string name="_bx_albums_txt_sample_vote_single"><![CDATA[голос за альбом]]></string>
     <string name="_bx_albums_txt_media_single"><![CDATA[изображение]]></string>
     <string name="_bx_albums_txt_media_comment_single"><![CDATA[комментарий к изображению]]></string>
+    <string name="_bx_albums_txt_media_vote_single"><![CDATA[голос за изображение]]></string>
 	<string name="_bx_albums_txt_media_title_alt"><![CDATA[медиа-файлы автора {0}]]></string>
 	<string name="_bx_albums_txt_media_album_link"><![CDATA[<a href="{0}">{1}</a> альбом от <a href="{2}">{3}</a>]]></string>
 	<string name="_bx_albums_txt_media_album_camera"><![CDATA[Камера]]></string>