AntonLV пре 9 година
родитељ
комит
4aebe8e6f5

+ 35 - 7
modules/boonex/polls/classes/BxPollsTemplate.php

@@ -100,8 +100,12 @@ class BxPollsTemplate extends BxBaseModTextTemplate
     protected function getUnit ($aData, $aParams = array())
     {
         $CNF = &$this->getModule()->_oConfig->CNF;
-        
-        $oComments = BxDolCmts::getObjectInstance($CNF['OBJECT_COMMENTS'], $aData[$CNF['FIELD_ID']]);
+        $sJsObject = $this->_oConfig->getJsObject('entry');
+
+        $iContentId = $aData[$CNF['FIELD_ID']];
+        $bPerformed = $this->_oDb->isPerformed($iContentId, bx_get_logged_profile_id());
+
+        $oComments = BxDolCmts::getObjectInstance($CNF['OBJECT_COMMENTS'], $iContentId);
 
         $bTmplVarsComments = $oComments && $oComments->isEnabled();
         $aTmplVarsComments = array();
@@ -111,11 +115,33 @@ class BxPollsTemplate extends BxBaseModTextTemplate
                 'entry_comments_url' => $oComments->getListUrl()
             );
 
+        $bTmplVarsSwitcher = (int)$aData[$CNF['FIELD_HIDDEN_RESULTS']] == 0 || $bPerformed;
+        $aTmplVarsSwitcher = array();
+        if($bTmplVarsSwitcher)
+            $aTmplVarsSwitcher = array(
+                'js_object' => $sJsObject,
+                'id' => $iContentId,
+                'bx_if:hide_subentries' => array(
+                    'condition' => !$bPerformed,
+                    'content' => array()
+                ),
+                'bx_if:hide_results' => array(
+                    'condition' => $bPerformed,
+                    'content' => array()
+                ),
+            );
+
         $aResult = parent::getUnit ($aData, $aParams);
-        $aResult['bx_if:show_comments'] = array(
-            'condition' => $bTmplVarsComments, 
-            'content' => $aTmplVarsComments
-        ); 
+        $aResult = array_merge($aResult, array(
+            'bx_if:show_comments' => array(
+                'condition' => $bTmplVarsComments, 
+                'content' => $aTmplVarsComments
+            ),
+            'bx_if:show_switcher' => array(
+                'condition' => $bTmplVarsSwitcher, 
+                'content' => $aTmplVarsSwitcher
+            ),
+        )); 
 
         return $aResult;
     }
@@ -127,7 +153,9 @@ class BxPollsTemplate extends BxBaseModTextTemplate
 
     protected function getSummary($aData, $sTitle = '', $sText = '', $sUrl = '')
     {
-        $aBlock = $this->entrySubentries($aData);
+        $CNF = &$this->getModule()->_oConfig->CNF;
+
+        $aBlock = $this->{$this->_oDb->isPerformed($aData[$CNF['FIELD_ID']], bx_get_logged_profile_id()) ? 'entryResults' : 'entrySubentries'}($aData);
 
         return $aBlock['content'];
     }

+ 2 - 1
modules/boonex/polls/classes/BxPollsVoteSubentries.php

@@ -27,7 +27,8 @@ class BxPollsVoteSubentries extends BxTemplVote
         $CNF = $this->_oModule->_oConfig->CNF;
 
         $this->_aElementDefaults['likes'] = array_merge($this->_aElementDefaults['likes'], array(
-            'show_do_vote_label' => true
+            'show_do_vote_label' => true,
+        	'show_counter' => false
         ));
 
         $this->_aObjectInfo = $this->_oModule->_oDb->getSubentries(array('type' => 'id', 'id' => $iId));

+ 2 - 2
modules/boonex/polls/install/langs/en.xml

@@ -153,8 +153,8 @@
 	<string name="_bx_polls_menu_item_title_admt_polls"><![CDATA[Polls - {addon} hidden]]></string>
 	<string name="_bx_polls_menu_item_title_manage_my"><![CDATA[My Polls]]></string>
 	<string name="_bx_polls_menu_item_title_manage_all"><![CDATA[All Polls]]></string>
-	<string name="_bx_polls_menu_item_view_subentries"><![CDATA[Poll]]></string>
-	<string name="_bx_polls_menu_item_view_results"><![CDATA[Results]]></string>
+	<string name="_bx_polls_menu_item_view_subentries"><![CDATA[View Poll]]></string>
+	<string name="_bx_polls_menu_item_view_results"><![CDATA[View Results]]></string>
 	
 
 	<string name="_bx_polls_grid_filter_item_title_adm_select_one_filter1"><![CDATA[All Statuses]]></string>

+ 22 - 4
modules/boonex/polls/js/entry.js

@@ -19,11 +19,30 @@ function BxPollsEntry(oOptions) {
     this._oRequestParams = oOptions.oRequestParams == undefined ? {} : oOptions.oRequestParams;
 }
 
-BxPollsEntry.prototype.changeBlock = function(oLink, sBlock, iContentId) {
+BxPollsEntry.prototype.changeBlockSnippet = function(oLink, sBlock, iContentId) {
+	var $this = this;
+
+	this.changeBlock(oLink, sBlock, iContentId, function(iContentId, oData) {
+		$(oLink).hide().siblings('.bx-base-text-unit-switcher:hidden').show();
+
+		$(oLink).parents('.bx-base-text-unit:first').find('#' + $this._aHtmlIds['content'] + iContentId).bx_anim('hide', $this._sAnimationEffect, $this._iAnimationSpeed, function() {
+    		$(this).replaceWith(oData.content);
+    	});
+	});
+};
+
+BxPollsEntry.prototype.changeBlock = function(oLink, sBlock, iContentId, onComplete) {
 	var $this = this;
 
     this.loadingInBlock(oLink, true);
 
+    if(typeof onComplete !== 'function')
+    	onComplete = function(iContentId, oData) {
+			$('#' + $this._aHtmlIds['content'] + iContentId).bx_anim('hide', $this._sAnimationEffect, $this._iAnimationSpeed, function() {
+	    		$(this).replaceWith(oData.content);
+	    	});
+		};
+
     jQuery.get (
         this._sActionsUrl + 'get_block',
         {
@@ -37,9 +56,8 @@ BxPollsEntry.prototype.changeBlock = function(oLink, sBlock, iContentId) {
         	if(!oData.content)
         		return;
 
-        	$('#' + $this._aHtmlIds['content'] + iContentId).bx_anim('hide', $this._sAnimationEffect, $this._iAnimationSpeed, function() {
-        		$(this).replaceWith(oData.content);
-        	});
+        	if(typeof onComplete === 'function')
+    			onComplete(iContentId, oData);
         },
         'json'
     );

+ 5 - 0
modules/boonex/polls/template/unit.html

@@ -14,6 +14,11 @@
             </bx_if:show_comments>
             <span class="bx-base-text-unit-info-div bx-def-font-grayed">&#183;</span>
             <a class="bx-base-text-unit-author" href="__author_url__">__author__</a>
+            <bx_if:show_switcher>
+                <span class="bx-base-text-unit-info-div bx-def-font-grayed">&#183;</span>
+                <a class="bx-base-text-unit-switcher bx-base-text-unit-subentries" href="javascript:void(0)" onclick="javascript:__js_object__.changeBlockSnippet(this, 'subentries', __id__);" style="<bx_if:hide_subentries>display:none</bx_if:hide_subentries>"><bx_text:_bx_polls_menu_item_view_subentries /></a>
+                <a class="bx-base-text-unit-switcher bx-base-text-unit-results" href="javascript:void(0)" onclick="javascript:__js_object__.changeBlockSnippet(this, 'results', __id__);" style="<bx_if:hide_results>display:none</bx_if:hide_results>"><bx_text:_bx_polls_menu_item_view_results /></a>
+            </bx_if:show_switcher>
         </div>
         <div class="bx-base-text-unit-summary bx-def-margin-sec-top bx-clearfix">
             __summary__

+ 5 - 0
modules/boonex/polls/template/unit_full.html

@@ -14,6 +14,11 @@
             </bx_if:show_comments>
             <span class="bx-base-text-unit-info-div bx-def-font-grayed">&#183;</span>
             <a class="bx-base-text-unit-author" href="__author_url__">__author__</a>
+            <bx_if:show_switcher>
+                <span class="bx-base-text-unit-info-div bx-def-font-grayed">&#183;</span>
+                <a class="bx-base-text-unit-switcher bx-base-text-unit-subentries" href="javascript:void(0)" onclick="javascript:__js_object__.changeBlockSnippet(this, 'subentries', __id__);" style="<bx_if:hide_subentries>display:none</bx_if:hide_subentries>"><bx_text:_bx_polls_menu_item_view_subentries /></a>
+                <a class="bx-base-text-unit-switcher bx-base-text-unit-results" href="javascript:void(0)" onclick="javascript:__js_object__.changeBlockSnippet(this, 'results', __id__);" style="<bx_if:hide_results>display:none</bx_if:hide_results>"><bx_text:_bx_polls_menu_item_view_results /></a>
+            </bx_if:show_switcher>
         </div>
         <div class="bx-base-text-unit-summary bx-def-margin-sec-top bx-clearfix">
             __summary__

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

@@ -153,8 +153,8 @@
 	<string name="_bx_polls_menu_item_title_admt_polls"><![CDATA[Голосования - {addon} спрятано]]></string>
 	<string name="_bx_polls_menu_item_title_manage_my"><![CDATA[Мои Голосования]]></string>
 	<string name="_bx_polls_menu_item_title_manage_all"><![CDATA[Все Голосования]]></string>
-	<string name="_bx_polls_menu_item_view_subentries"><![CDATA[Голосование]]></string>
-    <string name="_bx_polls_menu_item_view_results"><![CDATA[Результаты]]></string>
+	<string name="_bx_polls_menu_item_view_subentries"><![CDATA[Показать голосование]]></string>
+    <string name="_bx_polls_menu_item_view_results"><![CDATA[Показать результаты]]></string>
 
 	<string name="_bx_polls_grid_filter_item_title_adm_select_one_filter1"><![CDATA[Все статусы]]></string>
 	<string name="_bx_polls_grid_filter_item_title_adm_active"><![CDATA[Активные]]></string>