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

#103 - link to all content by the author from Albums and Post

Alex Trofimov 11 лет назад
Родитель
Сommit
3be1eacbfc

+ 6 - 0
modules/base/text/classes/BxBaseModTextDb.php

@@ -30,6 +30,12 @@ class BxBaseModTextDb extends BxBaseModGeneralDb
         $sQuery = $this->prepare ("SELECT * FROM `" . $this->_oConfig->CNF['TABLE_ENTRIES'] . "` WHERE `" . $this->_oConfig->CNF['FIELD_AUTHOR'] . "` = ?", $iProfileId);
         return $this->getAll($sQuery);
     }
+
+    public function getEntriesNumByAuthor ($iProfileId)
+    {
+        $sQuery = $this->prepare ("SELECT COUNT(*) FROM `" . $this->_oConfig->CNF['TABLE_ENTRIES'] . "` WHERE `" . $this->_oConfig->CNF['FIELD_AUTHOR'] . "` = ?", $iProfileId);
+        return $this->getOne($sQuery);
+    }
 }
 
 /** @} */

+ 18 - 1
modules/base/text/classes/BxBaseModTextTemplate.php

@@ -126,7 +126,7 @@ class BxBaseModTextTemplate extends BxBaseModGeneralTemplate
         return $this->parseHtmlByName($sTemplateName, $aVars);
     }
 
-    function entryAuthor ($aData, $iProfileId = false, $sFuncAuthorDesc = 'getAuthorDesc', $sTemplateName = 'author.html')
+    function entryAuthor ($aData, $iProfileId = false, $sFuncAuthorDesc = 'getAuthorDesc', $sTemplateName = 'author.html', $sFuncAuthorAddon = 'getAuthorAddon')
     {
         $oModule = BxDolModule::getInstance($this->MODULE);
         $CNF = &$oModule->_oConfig->CNF;
@@ -141,11 +141,19 @@ class BxBaseModTextTemplate extends BxBaseModGeneralTemplate
         if (!$oProfile)
             return '';
 
+        $sAddon = $sFuncAuthorAddon ? $this->$sFuncAuthorAddon($aData, $oProfile) : '';
+
         $aVars = array (
             'author_url' => $oProfile->getUrl(),
             'author_thumb_url' => $oProfile->getThumb(),
             'author_title' => $oProfile->getDisplayName(),
             'author_desc' => $sFuncAuthorDesc ? $this->$sFuncAuthorDesc($aData) : '',
+            'bx_if:addon' => array (
+                'condition' => (bool)$sAddon,
+                'content' => array (
+                    'content' => $sAddon,
+                ),
+            ),
         );
         return $this->parseHtmlByName($sTemplateName, $aVars);
     }
@@ -156,6 +164,15 @@ class BxBaseModTextTemplate extends BxBaseModGeneralTemplate
         return _t('_sys_txt_n_by', bx_time_js($aData[$oModule->_oConfig->CNF['FIELD_ADDED']], BX_FORMAT_DATE));
     }
 
+    function getAuthorAddon ($aData, $oProfile)
+    {
+        $oModule = BxDolModule::getInstance($this->MODULE);
+        $CNF = &$oModule->_oConfig->CNF;
+        $sUrl = 'page.php?i=' . $CNF['URI_AUTHOR_ENTRIES'] . '&profile_id=' . $oProfile->id();
+        $sUrl = BxDolPermalinks::getInstance()->permalink($sUrl);
+        return _t($CNF['T']['txt_all_entries_by'], $sUrl, $oProfile->getDisplayName(), $oModule->_oDb->getEntriesNumByAuthor($oProfile->id()));
+    }
+
     function entryAttachments ($aData)
     {
         $oModule = BxDolModule::getInstance($this->MODULE);

+ 6 - 0
modules/base/text/template/author.html

@@ -3,3 +3,9 @@
     <a href="__author_url__"><img class="bx-def-thumb bx-def-thumb-size" src="__author_thumb_url__" /></a><div class="bx-def-unit-info bx-def-thumb-size-max-height bx-def-padding-left"><span class="bx-def-font-grayed bx-def-font-small">__author_desc__</span><br /><a class="bx-def-unit-info-title" href="__author_url__">__author_title__</a></div>
 </div>
 
+<bx_if:addon>
+    <div class="bx-def-margin-sec-top">
+        __content__
+    </div>
+</bx_if:addon>
+

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

@@ -115,6 +115,7 @@ class BxAlbumsConfig extends BxBaseModTextConfig
             	'filter_item_select_one_filter1' => '_bx_albums_grid_filter_item_title_adm_select_one_filter1',
             	'menu_item_manage_my' => '_bx_albums_menu_item_title_manage_my',
             	'menu_item_manage_all' => '_bx_albums_menu_item_title_manage_all',
+                'txt_all_entries_by' => '_bx_albums_txt_all_entries_by',
             ),
         );
 

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

@@ -157,8 +157,9 @@
     <string name="_bx_albums_grid_action_err_delete"><![CDATA[Cannot delete the selected album(s).]]></string>
     <string name="_bx_albums_grid_txt_account_manager"><![CDATA[Redirect to manage account.]]></string>
 
+    <string name="_bx_albums_txt_all_entries_by"><![CDATA[<a href="{0}">All Albums by {1} ({2})</a>]]></string>
     <string name="_bx_albums_txt_sample_single"><![CDATA[album]]></string>
-    <string name="_bx_albums_txt_sample_comment_single"><![CDATA[album's comment]]></string>
+    <string name="_bx_albums_txt_sample_comment_single"><![CDATA[album's comment]]></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_title_alt"><![CDATA[{0}'s media]]></string>

+ 1 - 0
modules/boonex/posts/classes/BxPostsConfig.php

@@ -100,6 +100,7 @@ class BxPostsConfig extends BxBaseModTextConfig
             	'filter_item_select_one_filter1' => '_bx_posts_grid_filter_item_title_adm_select_one_filter1',
             	'menu_item_manage_my' => '_bx_posts_menu_item_title_manage_my',
             	'menu_item_manage_all' => '_bx_posts_menu_item_title_manage_all',
+                'txt_all_entries_by' => '_bx_posts_txt_all_entries_by',
             ),
         );
 

+ 2 - 1
modules/boonex/posts/install/langs/en.xml

@@ -146,6 +146,7 @@
     <string name="_bx_posts_grid_action_err_delete"><![CDATA[Cannot delete the selected post(s).]]></string>
     <string name="_bx_posts_grid_txt_account_manager"><![CDATA[Redirect to manage account.]]></string>
 
+    <string name="_bx_posts_txt_all_entries_by"><![CDATA[<a href="{0}">All Posts by {1} ({2})</a>]]></string>
     <string name="_bx_posts_txt_sample_single"><![CDATA[post]]></string>
-    <string name="_bx_posts_txt_sample_comment_single"><![CDATA[post's comment]]></string>
+    <string name="_bx_posts_txt_sample_comment_single"><![CDATA[post's comment]]></string>    
 </resources>

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

@@ -158,6 +158,7 @@
     <string name="_bx_albums_grid_action_err_delete"><![CDATA[Невозможно удалить выбранный(ные) альбом(ы).]]></string>
     <string name="_bx_albums_grid_txt_account_manager"><![CDATA[Перенаправить в управление аккаунтом.]]></string>
 
+    <string name="_bx_albums_txt_all_entries_by"><![CDATA[<a href="{0}">Все альбомы от {1} ({2})</a>]]></string>
     <string name="_bx_albums_txt_sample_single"><![CDATA[альбом]]></string>
     <string name="_bx_albums_txt_sample_comment_single"><![CDATA[комментарий к альбому]]></string>
     <string name="_bx_albums_txt_media_single"><![CDATA[изображение]]></string>

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

@@ -146,6 +146,7 @@
     <string name="_bx_posts_grid_action_err_delete"><![CDATA[Невозможно удалить выбранную(ные) публикацию(ции).]]></string>
     <string name="_bx_posts_grid_txt_account_manager"><![CDATA[Перенаправить в Управление аккаунтом.]]></string>
 
+    <string name="_bx_posts_txt_all_entries_by"><![CDATA[<a href="{0}">Все публикации от {1} ({2})</a>]]></string>
     <string name="_bx_posts_txt_sample_single"><![CDATA[публикация]]></string>
-    <string name="_bx_posts_txt_sample_comment_single"><![CDATA[комментарии к публикации]]></string>
+    <string name="_bx_posts_txt_sample_comment_single"><![CDATA[комментарии к публикации]]></string>    
 </resources>