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

Ticket #471: Autoreload dynamic block and paginate improvements.

AntonLV 10 лет назад
Родитель
Сommit
1ffdd4df25
3 измененных файлов с 16 добавлено и 3 удалено
  1. 4 0
      inc/classes/BxDolPaginate.php
  2. 11 2
      inc/js/functions.js
  3. 1 1
      template/paginate.html

+ 4 - 0
inc/classes/BxDolPaginate.php

@@ -296,6 +296,10 @@ abstract class BxDolPaginate extends BxDol
             'btn_prev' => '<a href="' . $sPrevLnkUrl . '" ' . $sPrevLnkClick . ' class="bx-paginate-btn-prev bx-btn' . $sClassAdd . $sPrevClassAdd . '"><i class="sys-icon sys-icon-bigger angle-double-left"></i></a>',
             'btn_next' => '<a href="' . $sNextLnkUrl . '" ' . $sNextLnkClick . ' class="bx-paginate-btn-next bx-btn' . $sClassAdd . $sNextClassAdd . '"><i class="sys-icon sys-icon-bigger angle-double-right"></i></a>',
             'paginate_class' => $this->_sPaginateClass,
+			'bx_repeat:attrs' => array(
+                array('key' => 'bx-data-start', 'value' => $this->_iStart),
+                array('key' => 'bx-data-perpage', 'value' => $this->_iPerPage)
+            )
         );
 
         $this->addCssJs();

+ 11 - 2
inc/js/functions.js

@@ -119,7 +119,8 @@ function loadDynamicBlockAutoPaginate (e, iStart, iPerPage, sAdditionalUrlParams
  * @return true on success, or false on error - particularly, if block isn't found
  */
 function loadDynamicBlockAuto(e, sUrl) {
-    var sId = $(e).parents('.bx-page-block-container:first').attr('id');
+	var oContainer = $(e).parents('.bx-page-block-container:first');
+    var sId = oContainer.attr('id');
 
     if ('undefined' == typeof(sUrl))
         sUrl = location.href;
@@ -130,7 +131,15 @@ function loadDynamicBlockAuto(e, sUrl) {
     var aMatches = sId.match(/\-(\d+)$/);
     if (!aMatches || !aMatches[1])
         return false;
-        
+
+    var oPaginate = oContainer.find('.bx-paginate'); 
+    if(oPaginate.length > 0) {
+    	var iStart = parseInt(oPaginate.attr('bx-data-start'));
+    	var iPerPage = parseInt(oPaginate.attr('bx-data-perpage'));
+    	if(!isNaN(iStart) && !isNaN(iPerPage) && sUrl.indexOf('start') == -1 && sUrl.indexOf('per_page') == -1)
+    		sUrl = bx_append_url_params(sUrl, 'start=' + iStart + '&per_page=' + iPerPage);
+    }
+
     loadDynamicBlock(parseInt(aMatches[1]), sUrl);
     return true;
 }

+ 1 - 1
template/paginate.html

@@ -1,4 +1,4 @@
-<div class="bx-paginate bx-clearfix __paginate_class__">
+<div class="bx-paginate bx-clearfix __paginate_class__" <bx_repeat:attrs>__key__="__value__" </bx_repeat:attrs>>
 
     <div class="bx-paginate-btns bx-def-margin-sec-right bx-btn-group bx-clearfix">
         __btn_prev__