소스 검색

Ticket #5381 - Recommendations: A list of recommended items should be limited.

AntonLV 8 달 전
부모
커밋
e8510a02c6

+ 6 - 2
inc/classes/BxDolRecommendation.php

@@ -42,8 +42,12 @@ class BxDolRecommendation extends BxDolFactory implements iBxDolFactoryObject
         $this->_iReducerAdd = 5;
         $this->_iReducerIgnore = 10;
 
-        $this->_iPerPageDefault = 24;
-        $this->_iPerPageDefaultShowcase = 32;
+        $this->_iPerPageDefault = (int)getParam('sys_per_page_recommendations');
+        if(!$this->_iPerPageDefault)
+            $this->_iPerPageDefault = 12;
+        $this->_iPerPageDefaultShowcase = (int)getParam('sys_per_page_recommendations_showcase');
+        if(!$this->_iPerPageDefaultShowcase)
+            $this->_iPerPageDefaultShowcase = 24;
     }
 
     public static function getObjectInstance($sObject)

+ 2 - 0
install/sql/system.sql

@@ -549,6 +549,8 @@ INSERT INTO `sys_options`(`category_id`, `name`, `caption`, `info`, `value`, `ty
 (@iCategoryId, 'sys_profiles_search_limit', '_adm_stg_cpt_option_sys_profiles_search_limit', '_adm_stg_inf_option_sys_profiles_search_limit', '20', 'digit', '', '', '', 23),
 (@iCategoryId, 'sys_per_page_browse_showcase', '_adm_stg_cpt_option_sys_per_page_browse_showcase', '_adm_stg_inf_option_sys_per_page_browse_showcase', '32', 'digit', '', '', '', 24),
 (@iCategoryId, 'sys_per_page_search_extended', '_adm_stg_cpt_option_sys_per_page_search_extended', '_adm_stg_inf_option_sys_per_page_search_extended', '12', 'digit', '', '', '', 25),
+(@iCategoryId, 'sys_per_page_recommendations', '_adm_stg_cpt_option_sys_per_page_recommendations', '_adm_stg_inf_option_sys_per_page_recommendations', '12', 'digit', '', '', '', 26),
+(@iCategoryId, 'sys_per_page_recommendations_showcase', '_adm_stg_cpt_option_sys_per_page_recommendations_showcase', '_adm_stg_inf_option_sys_per_page_recommendations_showcase', '24', 'digit', '', '', '', 27),
 
 (@iCategoryId, 'sys_metatags_hashtags_only', '_adm_stg_cpt_option_sys_metatags_hashtags_only', '', '', 'checkbox', '', '', '', 30),
 (@iCategoryId, 'sys_metatags_hashtags_max', '_adm_stg_cpt_option_sys_metatags_hashtags_max', '', '9', 'digit', '', '', '', 31),

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

@@ -1712,6 +1712,10 @@
     <string name="_adm_stg_inf_option_sys_per_page_search_keyword_plural"><![CDATA[Set the maximum number of results displayed per page in Site Search]]></string>
     <string name="_adm_stg_cpt_option_sys_per_page_search_extended"><![CDATA[Extended Search Results]]></string>
     <string name="_adm_stg_inf_option_sys_per_page_search_extended"><![CDATA[Set the maximum number of results displayed per page in Extended Search]]></string>
+    <string name="_adm_stg_cpt_option_sys_per_page_recommendations"><![CDATA[Browse Recommendations]]></string>
+    <string name="_adm_stg_inf_option_sys_per_page_recommendations"><![CDATA[Set the maximum number of results displayed per page]]></string>
+    <string name="_adm_stg_cpt_option_sys_per_page_recommendations_showcase"><![CDATA[Browse Recommendations in showcase view]]></string>
+    <string name="_adm_stg_inf_option_sys_per_page_recommendations_showcase"><![CDATA[Set the maximum number of results displayed per page in showcase view]]></string>
     <string name="_adm_stg_cpt_option_sys_push_default"><![CDATA[Provider]]></string>
     <string name="_adm_stg_cpt_option_sys_push_onesignal_app_id"><![CDATA[OneSignal: App ID]]></string>
     <string name="_adm_stg_cpt_option_sys_push_onesignal_rest_api"><![CDATA[OneSignal: REST API Key]]></string>

+ 4 - 0
modules/boonex/russian/data/langs/system/ru.xml

@@ -1687,6 +1687,10 @@
     <string name="_adm_stg_inf_option_sys_per_page_search_keyword_plural"><![CDATA[Установите максимальное количество результатов, отображаемых на странице поиска по сайту.]]></string>
     <string name="_adm_stg_cpt_option_sys_per_page_search_extended"><![CDATA[Результаты расширенного поиска]]></string>
     <string name="_adm_stg_inf_option_sys_per_page_search_extended"><![CDATA[Установите максимальное количество результатов, отображаемых на странице расширенного поиска.]]></string>
+    <string name="_adm_stg_cpt_option_sys_per_page_recommendations"><![CDATA[Просмотр рекомендаций]]></string>
+    <string name="_adm_stg_inf_option_sys_per_page_recommendations"><![CDATA[Установите максимальное количество результатов, отображаемых на странице.]]></string>
+    <string name="_adm_stg_cpt_option_sys_per_page_recommendations_showcase"><![CDATA[Просмотр рекомендаций в режиме витрины]]></string>
+    <string name="_adm_stg_inf_option_sys_per_page_recommendations_showcase"><![CDATA[Установите максимальное количество результатов, отображаемых на странице в режиме витрины.]]></string>
     <string name="_adm_stg_cpt_option_sys_push_default"><![CDATA[Поставщик]]></string>
     <string name="_adm_stg_cpt_option_sys_push_onesignal_app_id"><![CDATA[OneSignal: App ID]]></string>
     <string name="_adm_stg_cpt_option_sys_push_onesignal_rest_api"><![CDATA[OneSignal: REST API Key]]></string>

+ 1 - 1
template/scripts/BxBaseRecommendation.php

@@ -41,7 +41,7 @@ class BxBaseRecommendation extends BxDolRecommendation
         $iStart = !empty($aParams['start']) ? (int)$aParams['start'] : 0;
         $iPerPage = !empty($aParams['per_page']) ? (int)$aParams['per_page'] : $this->{'_iPerPageDefault' . ($bShowcaseView ? 'Showcase' : '')};
 
-        $aItems = $this->_oDb->get($iProfileId, $this->_aObject['id'], array_merge($aParams, ['per_page' => $iPerPage + ($bShowcaseView ? 0 : 1)]));
+        $aItems = $this->_oDb->get($iProfileId, $this->_aObject['id'], array_merge($aParams, ['start' => $iStart, 'per_page' => $iPerPage + ($bShowcaseView ? 0 : 1)]));
         if(empty($aItems) || !is_array($aItems))
             return $sResult;