Ajax-пагинация (бесконечная стена) в поиске

#
Ajax-пагинация (бесконечная стена) в поиске
Всем доброго вечера. Недавно начал осваивать hostcms. Решил сделать аякс пагинацию в результате поиска по примеру информационной системы. В информационной системе все работает, в вот в результате поиска что то не получается...

Вот подкорректировал ТДС поиска, взятого с демо-сайта (настройка страницы):

<?php

if (Core::moduleIsActive('search'))
{
   // Autocomplete
   if (!is_null(Core_Array::getGet('autocomplete')) && !is_null(Core_Array::getGet('query')))
   {
      //$iShopId = 1;
      $sQuery = Core_Str::stripTags(strval(Core_Array::getGet('query')));

      $aJSON = array();
      $aJSON['query'] = $sQuery;
      $aJSON['suggestions'] = array();

      $oShop_Items = Core_Entity::factory('Shop_Item');
      $oShop_Items->queryBuilder()
         ->select('shop_items.*')
         ->join('shops', 'shop_items.shop_id', '=', 'shops.id')
         ->where('shops.site_id', '=', CURRENT_SITE)
         ->where('shop_items.name', 'LIKE', '%' . $sQuery . '%')
         ->limit(10);

      $aShop_Items = $oShop_Items->findAll();

      foreach ($aShop_Items as $oShop_Item)
      {
         $aJSON['suggestions'][] = array(
            'value' => $oShop_Item->name,
            'price' => $oShop_Item->price,
            'data' => $oShop_Item->id
         );
      }

      Core_Page::instance()->response
         ->status(200)
         ->header('Pragma', "no-cache")
         ->header('Cache-Control', "private, no-cache")
         ->header('Vary', "Accept")
         ->header('Last-Modified', gmdate('D, d M Y H:i:s', time()) . ' GMT')
         ->header('X-Powered-By', 'HostCMS')
         ->header('Content-Disposition', 'inline; filename="files.json"');

      Core_Page::instance()->response
         ->body(json_encode($aJSON))
         ->header('Content-type', 'application/json; charset=utf-8');

      Core_Page::instance()->response
         ->sendHeaders()
         ->showBody();

      exit();
   }

   $oSite = Core_Entity::factory('Site', CURRENT_SITE);

   $Search_Controller_Show = new Search_Controller_Show($oSite);

   $Search_Controller_Show
      ->limit(Core_Page::instance()->libParams['itemsOnPage'])
      ->parseUrl()
      ->len(Core_Page::instance()->libParams['maxlen'])
      ->query(Core_Array::getGet('text'));
   
   if (!is_null(Core_Array::getPost('ajax_offset'))) {
      
         $Search_Controller_Show
            ->xsl(
               Core_Entity::factory('Xsl')->getByName(Core_Array::get(Core_Page::instance()->libParams, 'informationsystemAjaxXsl'))
            )
            ->offset(intval(Core_Array::getPost('ajax_offset')))
            ->show();
         exit;
         }
   
   $text = Core_Array::getGet('text');
   if (!is_null($text))
   {
      Core_Page::instance()->title(
         Core::_('Search.frontend_title', $text)
      );
   }

   Core_Page::instance()->object = $Search_Controller_Show;
}


Интересует участок кода:

$oSite = Core_Entity::factory('Site', CURRENT_SITE);

   $Search_Controller_Show = new Search_Controller_Show($oSite);

   $Search_Controller_Show
      ->limit(Core_Page::instance()->libParams['itemsOnPage'])
      ->parseUrl()
      ->len(Core_Page::instance()->libParams['maxlen'])
      ->query(Core_Array::getGet('text'));
   
   if (!is_null(Core_Array::getPost('ajax_offset'))) {
      
         $Search_Controller_Show
            ->xsl(
               Core_Entity::factory('Xsl')->getByName(Core_Array::get(Core_Page::instance()->libParams, 'informationsystemAjaxXsl'))
            )
            ->offset(intval(Core_Array::getPost('ajax_offset')))
            ->show();
         exit;
         }


Остальное наверное не имеет смысла сюда кидать, ибо очень много придется читать)
Скажу что при отправке Post запроса при клике на кнопку "показать еще" вместо элементов следующей страницы прилетает пустота... Поэтому предполагаю, что проблема на сервере, может где то в xsl косякнул.

Вот код xsl шаблона для аякса:

<!-- СписокЭлементовИнфосистемы -->
   
   <xsl:template match="/">
      <div id="ajax_buffer_load">
         <xsl:apply-templates select="/site"/>
      </div>
   </xsl:template>
   
   
   
   <xsl:template match="/site">
      <xsl:apply-templates select="search_page"></xsl:apply-templates>
   </xsl:template>
   
   
   
   <xsl:template match="search_page">
      <li style="display: none;" class="more-news">
         <a href="{url}">
            <xsl:value-of select="title"/>
         </a>
         <br/>
   <span class="description"><xsl:apply-templates select="url"/><xsl:text> · </xsl:text><xsl:value-of select="round(size div 1024)"/><xsl:text> Кб · </xsl:text><xsl:value-of select="date"/></span>
      </li>
   </xsl:template>


В ответ прилетает только обертка <div id="ajax_buffer_load"></div>. Под пустотой я имел в виду отсутствие элементов li.
Может истина где то рядом, а я в виду отсутствия опыта работы с данной системой не вижу чего то.
Модератор
#
Re: Ajax-пагинация (бесконечная стена) в поиске
Текст запроса принимается из GET0ом из text, когда вы вторую страницу показываете, полагаю сам запрос вы не присылаете, отсюда и пустота.
#
Re: Ajax-пагинация (бесконечная стена) в поиске
HostCMS, уже по всякому пробовал, не получается.
В информационной системе этот кусок кода работает:

$oInformationsystem = Core_Entity::factory('Informationsystem', Core_Array::get(Core_Page::instance()->libParams, 'informationsystemId'));

$Informationsystem_Controller_Show = new Informationsystem_Controller_Show($oInformationsystem);

if (!is_null(Core_Array::getPost('ajax_offset'))) {
$Informationsystem_Controller_Show
   ->xsl(
      Core_Entity::factory('Xsl')->getByName(Core_Array::get(Core_Page::instance()->libParams, 'informationsystemAjaxXsl'))
   )
   ->offset(intval(Core_Array::getPost('ajax_offset')))
   ->limit($oInformationsystem->items_on_page)      
   ->show();
exit;
}

В поиске аналогичное реализовать не могу
Модератор
#
Re: Ajax-пагинация (бесконечная стена) в поиске
Vadim7423,
новый код, где вы отправляете текст запроса, я так и не увидел, почему предыдущий код не работал написал выше.
Наши рекомендации есть на странице http://www.hostcms.ru/documentation/modules/shop/frontend/ajax-loading-items/
#
Re: Ajax-пагинация (бесконечная стена) в поиске
HostCMS, разобрался, воде, спасибо
Авторизация