فهرست منبع

Ticket #258 - Snipper update.

AntonLV 10 سال پیش
والد
کامیت
c01000af3a

+ 5 - 0
modules/boonex/market/classes/BxMarketSearchResult.php

@@ -112,6 +112,11 @@ class BxMarketSearchResult extends BxBaseModTextSearchResult
         $this->addConditionsForPrivateContent($CNF, $oProfileAuthor);
     }
 
+    function displayResultBlock ()
+    {
+    	return BxDolPayments::getInstance()->getCartJs() . parent::displayResultBlock();
+    }
+
     function getAlterOrder()
     {
         $aSql = array();

+ 47 - 23
modules/boonex/market/classes/BxMarketTemplate.php

@@ -57,12 +57,15 @@ class BxMarketTemplate extends BxBaseModTextTemplate
 
     	$sVotes = '';
         $oVotes = BxDolVote::getObjectInstance($CNF['OBJECT_VOTES'], $aData['id']);
-        if ($oVotes)
-            $sVotes = $oVotes->getElementBlock(array('show_counter' => true, 'show_legend' => true));
+        if($oVotes) {
+			$sVotes = $oVotes->getElementBlock(array('show_counter' => true, 'show_legend' => true));
+			if(!empty($sVotes))
+				$sVotes = $this->parseHtmlByName('entry-rating.html', array(
+		    		'content' => $sVotes,
+		    	));
+        }
 
-    	return $this->parseHtmlByName('entry-rating.html', array(
-    		'content' => $sVotes,
-    	));
+    	return $sVotes; 
     }
     
     public function entryText ($aData, $sTemplateName = 'entry-text.html')
@@ -83,18 +86,18 @@ class BxMarketTemplate extends BxBaseModTextTemplate
         $aTmplVarsSingle = array();
         $bSingle = (float)$aData[$CNF['FIELD_PRICE_SINGLE']] != 0;
         if($bSingle) {
-        	list($sJsCode, $sBuyOnclick) = $oPayment->getAddToCartJs($aData[$CNF['FIELD_AUTHOR']], $this->_oConfig->getName(), $aData[$CNF['FIELD_ID']], 1);
+        	list($sJsCode, $sSingleOnclick) = $oPayment->getAddToCartJs($aData[$CNF['FIELD_AUTHOR']], $this->_oConfig->getName(), $aData[$CNF['FIELD_ID']], 1);
 
         	$aTmplVarsSingle = array(
-        		'buy_onclick' => $sBuyOnclick,
+        		'buy_onclick' => $sSingleOnclick,
     			'buy' => _t('_bx_market_txt_get_for_single', $this->_aCurrency['sign'], $aData[$CNF['FIELD_PRICE_SINGLE']]),
         	);
         }
         
         
         $aTmplVarsRecurring = array();
-        $bRecurring = $this->_oDb->getParam($CNF['OPTION_ENABLE_RECURRING']) == 'on' && (float)$aData[$CNF['FIELD_PRICE_RECURRING']] != 0;
-        if($bRecurring) {
+        $bTmplVarsRecurring = $this->_oDb->getParam($CNF['OPTION_ENABLE_RECURRING']) == 'on' && (float)$aData[$CNF['FIELD_PRICE_RECURRING']] != 0;
+        if($bTmplVarsRecurring) {
         	list($sJsCode, $sRecurringOnclick) = $oPayment->getSubscribeJs($aData[$CNF['FIELD_AUTHOR']], $this->_oConfig->getName(), $aData[$CNF['FIELD_ID']], 1);
 
         	$aTmplVarsRecurring = array(
@@ -111,11 +114,11 @@ class BxMarketTemplate extends BxBaseModTextTemplate
     			'content' => $aTmplVarsSingle
     		),
     		'bx_if:show_recurring' => array(
-    			'condition' => $bRecurring,
+    			'condition' => $bTmplVarsRecurring,
     			'content' => $aTmplVarsRecurring
     		),
     		'bx_if:show_free' => array(
-    			'condition' => !$bSingle && !$bRecurring,
+    			'condition' => !$bSingle && !$bTmplVarsRecurring,
     			'content' => array()
     		),
     		'screenshots' => $this->getScreenshots($aData),
@@ -163,25 +166,46 @@ class BxMarketTemplate extends BxBaseModTextTemplate
     	$CNF = &BxDolModule::getInstance($this->MODULE)->_oConfig->CNF;
 
     	$aUnit = parent::getUnit($aData, $aParams);
+        $oPayment = BxDolPayments::getInstance();
+
+    	$bTmplVarsSingle = (float)$aData[$CNF['FIELD_PRICE_SINGLE']] != 0;
+    	$aTmplVarsSingle = array();
+    	if($bTmplVarsSingle) {
+    		list($sJsCode, $sSingleOnclick) = $oPayment->getAddToCartJs($aData[$CNF['FIELD_AUTHOR']], $this->_oConfig->getName(), $aData[$CNF['FIELD_ID']], 1);
+
+    		$aTmplVarsSingle = array(
+    			'entry_price_single_onclick' => $sSingleOnclick,
+				'entry_price_single' => _t('_bx_market_txt_price_single', $this->_aCurrency['sign'], $aData[$CNF['FIELD_PRICE_SINGLE']])
+			);
+    	}
+
+    	$bTmplVarsRecurring = (float)$aData[$CNF['FIELD_PRICE_RECURRING']] != 0;
+    	$aTmplVarsRecurring = array();
+    	if($bTmplVarsRecurring) {
+        	list($sJsCode, $sRecurringOnclick) = $oPayment->getSubscribeJs($aData[$CNF['FIELD_AUTHOR']], $this->_oConfig->getName(), $aData[$CNF['FIELD_ID']], 1);
+
+        	$aTmplVarsRecurring = array(
+        		'entry_price_recurring_onclick' => $sRecurringOnclick,
+				'entry_price_recurring' => _t('_bx_market_txt_price_recurring', $this->_aCurrency['sign'], $aData[$CNF['FIELD_PRICE_RECURRING']], _t('_bx_market_txt_per_' . $aData[$CNF['FIELD_DURATION_RECURRING']] . '_short'))
+			);
+    	}
+
+    	$oVotes = BxDolVote::getObjectInstance($CNF['OBJECT_VOTES'], $aData['id']);
+        if($oVotes)
+			$sVotes = $oVotes->getElementBlock(array('show_counter' => false));
 
-    	$bSingle = (float)$aData[$CNF['FIELD_PRICE_SINGLE']] != 0;
-    	$bRecurring = (float)$aData[$CNF['FIELD_PRICE_RECURRING']] != 0;
-    	
     	$aUnit = array_merge($aUnit, array(
+    		'entry_votes' => $sVotes,
     		'bx_if:show_single' => array(
-    			'condition' => $bSingle,
-    			'content' => array(
-    				'entry_price_single' => _t('_bx_market_txt_price_single', $this->_aCurrency['sign'], $aData[$CNF['FIELD_PRICE_SINGLE']])
-    			)
+    			'condition' => $bTmplVarsSingle,
+    			'content' => $aTmplVarsSingle
     		),
     		'bx_if:show_recurring' => array(
-    			'condition' => $bRecurring,
-    			'content' => array(
-    				'entry_price_recurring' => _t('_bx_market_txt_price_recurring', $this->_aCurrency['sign'], $aData[$CNF['FIELD_PRICE_RECURRING']], _t('_bx_market_txt_per_' . $aData[$CNF['FIELD_DURATION_RECURRING']] . '_short'))
-    			)
+    			'condition' => $bTmplVarsRecurring,
+    			'content' => $aTmplVarsRecurring
     		),
     		'bx_if:show_free' => array(
-    			'condition' => !$bSingle && !$bRecurring,
+    			'condition' => !$bTmplVarsSingle && !$bTmplVarsRecurring,
     			'content' => array()
     		),
     	));

+ 3 - 0
modules/boonex/market/classes/BxMarketVote.php

@@ -26,6 +26,9 @@ class BxMarketVote extends BxTemplVote
     {
     	$CNF = &$this->_oModule->_oConfig->CNF;
 
+    	if($this->getObjectAuthorId() == $this->_getAuthorId())
+    		return false;
+
     	$oPrivacy = BxDolPrivacy::getObjectInstance($CNF['OBJECT_PRIVACY_VOTE']);
 		if($oPrivacy && !$oPrivacy->check($this->_iId))
 			return false;

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

@@ -56,6 +56,7 @@
 	<string name="_bx_market_form_entry_input_sys_pictures"><![CDATA[Pictures]]></string>
 	<string name="_bx_market_form_entry_input_pictures"><![CDATA[Pictures]]></string>
 	<string name="_bx_market_form_entry_input_pictures_title"><![CDATA[Title]]></string>
+	<string name="_bx_market_form_entry_input_pictures_use_as_thumb"><![CDATA[Preview-picture]]></string>
 	<string name="_bx_market_form_entry_input_sys_files"><![CDATA[Files]]></string>
 	<string name="_bx_market_form_entry_input_files"><![CDATA[Files]]></string>
 	<string name="_bx_market_form_entry_input_files_use_as_main"><![CDATA[Use as Main]]></string>

+ 14 - 5
modules/boonex/market/template/css/main.css

@@ -10,15 +10,24 @@ div.bx-market-unit-info {
 }
 div.bx-market-ui-cell {
 	display: inline-block;
-	vertical-align: top;
+	vertical-align: middle;
 }
-div.bx-market-uic-wide {
-	width: 49%;
+div.bx-market-uic-left {
+	width: 34%;
 }
-div.bx-market-uic-narrow {
-	width: 49%;
+div.bx-market-uic-right {
+	width: 64%;
 	text-align: right;
 }
+.bx-market-ui-price {
+	display: inline-block;
+	float: none;
+	vertical-align: top;
+}
+.bx-market-ui-price-or {
+	line-height: 24px;
+    line-height: 1.5rem;
+}
 .bx-market-ui-price-or:first-child {
 	display: none;
 }

+ 1 - 1
modules/boonex/market/template/form_ghost_template.html

@@ -18,7 +18,7 @@
         <bx_if:set_thumb>
             <span class="bx-base-text-use-as-thumb">
                 <input type="checkbox" name="__name_thumb__[]" value="{file_id}" onclick="bx_base_text_select_thumb(this)" id="__name_thumb__-{file_id}" /> 
-                <label for="__name_thumb__-{file_id}"><bx_text:_sys_txt_form_entry_input_picture_use_as_thumb /></label>
+                <label for="__name_thumb__-{file_id}"><bx_text:_bx_market_form_entry_input_pictures_use_as_thumb /></label>
             </span>
         </bx_if:set_thumb>
 

+ 10 - 17
modules/boonex/market/template/unit_gallery.html

@@ -1,5 +1,5 @@
 <div class="bx-base-text-unit bx-base-text-unit-gallery bx-def-gal-unit-size">
-	<div class="bx-def-margin-sec bx-def-border bx-def-round-corners">
+	<div class="bx-def-margin-sec bx-def-round-corners bx-def-color-bg-box ">
 	    <bx_if:thumb>
 	        <a href="__content_url__" title="__summary_attr__">
 	            <div class="bx-base-text-unit-thumb bx-def-gal-div-size bx-def-round-corners bx-def-color-bg-box bx-def-font-middle" style="background-image:url(__gallery_url__)">
@@ -17,26 +17,19 @@
 	    </bx_if:no_thumb>
 		<div class="bx-market-unit-cnt bx-def-padding-sec">
 		    <div class="bx-market-unit-title bx-def-gal-unit-column">
-		        <h2 class="bx-def-margin-sec-topbottom">
-		        	<a class="bx-def-font-color" href="__content_url__">__title__</a>
-				</h2>
+				<a class="bx-def-margin-sec-topbottom bx-def-font-color" href="__content_url__">__title__</a>
 		    </div>
-	
-		    <div class="bx-market-init-info bx-base-text-unit-info">
-		    	<div class="bx-market-ui-cell bx-market-uic-wide">
-		        	<span class="bx-def-font-grayed">__entry_posting_date__</span>
-		        	<!--
-			        <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>
-			        -->
-		        </div>
-		        <div class="bx-market-ui-cell bx-market-uic-narrow">
+
+		    <div class="bx-market-init-info bx-base-text-unit-info bx-def-margin-thd-top">
+		    	<div class="bx-market-ui-cell bx-market-uic-left">__entry_votes__</div>
+		        <div class="bx-market-ui-cell bx-market-uic-right">
+		        	<!-- TODO: Buttons to checkout instead of text price. -->
 		        	<bx_if:show_single>
-		        		<span class="bx-market-ui-price col-green3">__entry_price_single__</span>
-		        	</bx_if:show_single>
+			        	<a class="bx-market-ui-price bx-btn bx-btn-small" href="javascript:void(0)" onclick="javascript:__entry_price_single_onclick__">__entry_price_single__</a>
+					</bx_if:show_single>
 		        	<bx_if:show_recurring>
 		        		<span class="bx-market-ui-price-or bx-def-font-grayed"><bx_text:_bx_market_txt_or /></span>
-		        		<span class="bx-market-ui-price col-green3">__entry_price_recurring__</span>
+		        		<a class="bx-market-ui-price bx-btn bx-btn-small" href="javascript:void(0)" onclick="javascript:__entry_price_recurring_onclick__">__entry_price_recurring__</a>
 		        	</bx_if:show_recurring>
 		        	<bx_if:show_free>
 		        		<span class="bx-market-ui-price bx-def-font-semibold col-green3"><bx_text:_bx_market_txt_get_for_free /></span>

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

@@ -56,6 +56,7 @@
 	<string name="_bx_market_form_entry_input_sys_pictures"><![CDATA[Картинки]]></string>
 	<string name="_bx_market_form_entry_input_pictures"><![CDATA[Картинки]]></string>
 	<string name="_bx_market_form_entry_input_pictures_title"><![CDATA[Название]]></string>
+	<string name="_bx_market_form_entry_input_pictures_use_as_thumb"><![CDATA[Изображение предпросмотра]]></string>
 	<string name="_bx_market_form_entry_input_sys_files"><![CDATA[Файлы]]></string>
 	<string name="_bx_market_form_entry_input_files"><![CDATA[Файлы]]></string>
 	<string name="_bx_market_form_entry_input_files_use_as_main"><![CDATA[Использовать как главный]]></string>

+ 19 - 17
template/scripts/BxBaseVote.php

@@ -194,16 +194,17 @@ class BxBaseVote extends BxDolVote
 
     public function getElement($aParams = array())
     {
-    	$bDynamicMode = isset($aParams['dynamic_mode']) && $aParams['dynamic_mode'] === true;
+		$bLikeMode =  $this->isLikeMode();
+        $sType = $bLikeMode ? BX_DOL_VOTE_TYPE_LIKES : BX_DOL_VOTE_TYPE_STARS;
 
-        $bLike =  $this->isLikeMode();
-        $sType = $bLike ? BX_DOL_VOTE_TYPE_LIKES : BX_DOL_VOTE_TYPE_STARS;
+    	$aParams = array_merge($this->_aElementDefaults[$sType], $aParams);
+    	$bDynamicMode = isset($aParams['dynamic_mode']) && $aParams['dynamic_mode'] === true;
 
         $bShowDoVote = !isset($aParams['show_do_vote']) || $aParams['show_do_vote'] == true;
-        $bShowDoVoteAsButtonSmall = $bLike && isset($aParams['show_do_vote_as_button_small']) && $aParams['show_do_vote_as_button_small'] == true;
-        $bShowDoVoteAsButton = $bLike && !$bShowDoVoteAsButtonSmall && isset($aParams['show_do_vote_as_button']) && $aParams['show_do_vote_as_button'] == true;
+        $bShowDoVoteAsButtonSmall = $bLikeMode && isset($aParams['show_do_vote_as_button_small']) && $aParams['show_do_vote_as_button_small'] == true;
+        $bShowDoVoteAsButton = $bLikeMode && !$bShowDoVoteAsButtonSmall && isset($aParams['show_do_vote_as_button']) && $aParams['show_do_vote_as_button'] == true;
         $bShowCounter = isset($aParams['show_counter']) && $aParams['show_counter'] === true;
-        $bShowLegend = !$bLike && isset($aParams['show_legend']) && $aParams['show_legend'] === true;
+        $bShowLegend = !$bLikeMode && isset($aParams['show_legend']) && $aParams['show_legend'] === true;
 
         $sMethodDoVote = '_getDoVote' . ucfirst($sType);
         if(!method_exists($this, $sMethodDoVote))
@@ -217,15 +218,15 @@ class BxBaseVote extends BxDolVote
         if(!$isAllowedVote && (int)$aVote['count'] == 0)
             return '';
 
-        $aParams = array_merge($this->_aElementDefaults[$sType], $aParams);
         $aParams['is_voted'] = $this->_oQuery->isPerformed($iObjectId, $iAuthorId) ? true : false;
 
         //--- Do Vote
+        $bTmplVarsDoVote = $bShowDoVote && (!$bLikeMode || ($bLikeMode && $isAllowedVote));
         $aTmplVarsDoVote = array();
-        if($bShowDoVote && $isAllowedVote)
+        if($bTmplVarsDoVote)
         	$aTmplVarsDoVote = array(
 				'style_prefix' => $this->_sStylePrefix,
-				'do_vote' => $this->$sMethodDoVote($aParams),
+				'do_vote' => $this->$sMethodDoVote($aParams, $isAllowedVote),
 			);
 
         //--- Counter
@@ -255,7 +256,7 @@ class BxBaseVote extends BxDolVote
             'rate' => $aVote['rate'],
             'count' => $aVote['count'],
         	'bx_if:show_do_vote' => array(
-        		'condition' => $bShowDoVote && $isAllowedVote,
+        		'condition' => $bTmplVarsDoVote,
         		'content' => $aTmplVarsDoVote
         	),
         	'bx_if:show_counter' => array(
@@ -270,7 +271,7 @@ class BxBaseVote extends BxDolVote
         ));
     }
 
-    protected function _getDoVoteStars($aParams = array())
+    protected function _getDoVoteStars($aParams = array(), $isAllowedVote = true)
     {
         $sJsObject = $this->getJsObjectName();
         $iMinValue = $this->getMinValue();
@@ -292,11 +293,12 @@ class BxBaseVote extends BxDolVote
                 'style_prefix' => $this->_sStylePrefix
             );
 
-            $aTmplVarsButtons[] = array(
-                'style_prefix' => $this->_sStylePrefix,
-                'js_object' => $sJsObject,
-                'value' => $i
-            );
+            if($isAllowedVote)
+	            $aTmplVarsButtons[] = array(
+	                'style_prefix' => $this->_sStylePrefix,
+	                'js_object' => $sJsObject,
+	                'value' => $i
+	            );
         }
 
         return $this->_oTemplate->parseHtmlByName($this->_sTmplNameDoVoteStars, array(
@@ -314,7 +316,7 @@ class BxBaseVote extends BxDolVote
         ));
     }
 
-    protected function _getDoVoteLikes($aParams = array())
+    protected function _getDoVoteLikes($aParams = array(), $isAllowedVote = true)
     {
     	$bVoted = isset($aParams['is_voted']) && $aParams['is_voted'] === true;
         $bShowDoVoteAsButtonSmall = isset($aParams['show_do_vote_as_button_small']) && $aParams['show_do_vote_as_button_small'] == true;

+ 1 - 1
template/vote_element_block.html

@@ -1,4 +1,4 @@
-<div id="__html_id__" class="__style_prefix__ __class__ bx-def-margin-right-auto bx-def-margin-thd-topbottom" bx_vote_data_rate="__rate__" bx_vote_data_count="__count__">
+<div id="__html_id__" class="__style_prefix__ __class__" bx_vote_data_rate="__rate__" bx_vote_data_count="__count__">
 	<div class="__style_prefix__-do bx-clearfix">
 		<bx_if:show_do_vote>
 			<div class="__style_prefix__-element-holder">__do_vote__</div>