Procházet zdrojové kódy

Ticket #1211 - Usage in comments.

AntonLV před 8 roky
rodič
revize
c920057525

+ 32 - 0
inc/classes/BxDolCmts.php

@@ -297,6 +297,7 @@ class BxDolCmts extends BxDolFactory implements iBxDolReplaceable, iBxDolContent
                     `RootStylePrefix` AS `root_style_prefix`,
                     `BaseUrl` AS `base_url`,
                     `ObjectVote` AS `object_vote`,
+                    `ObjectScore` AS `object_score`,
                     `ObjectReport` AS `object_report`,
                     `TriggerTable` AS `trigger_table`,
                     `TriggerFieldId` AS `trigger_field_id`,
@@ -444,6 +445,18 @@ class BxDolCmts extends BxDolFactory implements iBxDolReplaceable, iBxDolContent
         return $oVote;
     }
 
+    public function getScoreObject($iId)
+    {
+        if(empty($this->_aSystem['object_score']))
+        	$this->_aSystem['object_score'] = 'sys_cmts';
+
+        $oScore = BxDolScore::getObjectInstance($this->_aSystem['object_score'], $iId, true, $this->_oTemplate);
+        if(!$oScore || !$oScore->isEnabled())
+            return false;
+
+        return $oScore;
+    }
+
     public function getReportObject($iId)
     {
         if(empty($this->_aSystem['object_report']))
@@ -716,6 +729,25 @@ class BxDolCmts extends BxDolFactory implements iBxDolReplaceable, iBxDolContent
         return $oVote->isAllowedVote($isPerformAction);
     }
 
+    public function isScoreAllowed ($aCmt, $isPerformAction = false)
+    {
+        if(!$this->isRatable())
+            return false;
+
+        $oScore = $this->getScoreObject($aCmt['cmt_id']);
+        if($oScore === false)
+            return false;
+
+        $iUserId = (int)$this->_getAuthorId();
+        if($iUserId == 0)
+            return false;
+
+        if(isAdmin())
+            return true;
+
+        return $oScore->isAllowedVote($isPerformAction);
+    }
+
     public function isReportAllowed ($aCmt, $isPerformAction = false)
     {
         $oReport = $this->getReportObject($aCmt['cmt_id']);

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
install/sql/system.sql


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

@@ -2137,6 +2137,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_menu_item_title_cmts_item_delete"><![CDATA[Delete]]></string>
 	<string name="_sys_menu_item_title_cmts_item_edit"><![CDATA[Edit]]></string>
 	<string name="_sys_menu_item_title_cmts_item_reply"><![CDATA[]]></string>
+	<string name="_sys_menu_item_title_cmts_item_score"><![CDATA[]]></string>
 	<string name="_sys_menu_item_title_cmts_item_vote"><![CDATA[]]></string>
 	<string name="_sys_menu_item_title_dashboard"><![CDATA[Dash]]></string>
 	<string name="_sys_menu_item_title_home"><![CDATA[Home]]></string>
@@ -2196,6 +2197,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_menu_item_title_system_cmts_item_edit"><![CDATA[Edit]]></string>
 	<string name="_sys_menu_item_title_system_cmts_item_reply"><![CDATA[Reply]]></string>
 	<string name="_sys_menu_item_title_system_cmts_item_report"><![CDATA[Report]]></string>
+	<string name="_sys_menu_item_title_system_cmts_item_score"><![CDATA[Score]]></string>
 	<string name="_sys_menu_item_title_system_cmts_item_vote"><![CDATA[Plus]]></string>
 	<string name="_sys_menu_item_title_system_dashboard"><![CDATA[Dashboard]]></string>
 	<string name="_sys_menu_item_title_system_home"><![CDATA[Home]]></string>

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

@@ -2136,6 +2136,7 @@
 	<string name="_sys_menu_item_title_cmts_item_delete"><![CDATA[Удалить]]></string>
 	<string name="_sys_menu_item_title_cmts_item_edit"><![CDATA[Редактировать]]></string>
 	<string name="_sys_menu_item_title_cmts_item_reply"><![CDATA[]]></string>
+	<string name="_sys_menu_item_title_cmts_item_score"><![CDATA[]]></string>
 	<string name="_sys_menu_item_title_cmts_item_vote"><![CDATA[]]></string>
 	<string name="_sys_menu_item_title_dashboard"><![CDATA[Панель]]></string>
 	<string name="_sys_menu_item_title_home"><![CDATA[Домой]]></string>
@@ -2195,7 +2196,8 @@
 	<string name="_sys_menu_item_title_system_cmts_item_edit"><![CDATA[Редактировать]]></string>
 	<string name="_sys_menu_item_title_system_cmts_item_reply"><![CDATA[Ответить]]></string>
 	<string name="_sys_menu_item_title_system_cmts_item_report"><![CDATA[Пожаловаться]]></string>
-	<string name="_sys_menu_item_title_system_cmts_item_vote"><![CDATA[Плюс]]></string>
+	<string name="_sys_menu_item_title_system_cmts_item_score"><![CDATA[Голосовать (За/Против)]]></string>
+	<string name="_sys_menu_item_title_system_cmts_item_vote"><![CDATA[Голосовать (Нравится)]]></string>
 	<string name="_sys_menu_item_title_system_dashboard"><![CDATA[Панель]]></string>
 	<string name="_sys_menu_item_title_system_home"><![CDATA[Домой]]></string>
 	<string name="_sys_menu_item_title_system_login"><![CDATA[Вход]]></string>

+ 19 - 0
template/scripts/BxBaseCmtsMenuActions.php

@@ -56,6 +56,19 @@ class BxBaseCmtsMenuActions extends BxTemplMenuCustom
     	return $oVote->getElementInline($aVotesParams);
     }
 
+    protected function _getMenuItemItemScore($aItem)
+    {
+        $oScore = $this->_oCmts->getScoreObject($this->_aCmt['cmt_unique_id']);
+        if(!$oScore)
+        	return false;
+
+        $aScoresParams = array('dynamic_mode' => $this->_bDynamicMode);
+        if($this->_bShowTitles)
+		    $aScoresParams['show_do_vote_label'] = true;
+
+    	return $oScore->getElementInline($aScoresParams);
+    }
+
 	protected function _getMenuItemItemReport($aItem)
     {
         $oReport = $this->_oCmts->getReportObject($this->_aCmt['cmt_unique_id']);
@@ -92,6 +105,12 @@ class BxBaseCmtsMenuActions extends BxTemplMenuCustom
                     $aCheckFuncParams = array($this->_aCmt);
                 break;
 
+            case 'item-score':
+                $sCheckFuncName = 'isScoreAllowed';
+                if(!empty($this->_aCmt))
+                    $aCheckFuncParams = array($this->_aCmt);
+                break;
+
             case 'item-report':
                 $sCheckFuncName = 'isReportAllowed';
                 if(!empty($this->_aCmt))

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů