====== Пагинация комментариев ======
В HostCMS вывод комментариев реализован самым простейшим способом, все комментарии выводятся в XML товара, поэтому если комментариев будет большое количество, то такой подход может быть проблематичен и будет нагружать страницу.
Здесь может помочь следующее решение.
- Создаем [[private:koding:hostcms:modules:shop:useful:comments_pagination:controller|класс контроллера]].
- Для вывода первой страницы используем примерно следующий код:if ($Shop_Controller_Show->item)
{
$oShopItemCommentController = new Shop_Item_Comment_Controller(
Core_Entity::factory('Shop_Item', $Shop_Controller_Show->item)
);
$Shop_Controller_Show
->comments(FALSE)
->addEntity(
$oShopItemCommentController->getCommentsAggregationXml()
)
->addEntity(
$oShopItemCommentController->getCommentsXml()
);
}
- Для вывода последующих страниц:
// ....
$oShopItemCommentController = new Shop_Item_Comment_Controller(
Core_Entity::factory('Shop_Item', $oShopControllerShow->item)
);
$oShopItemCommentController->offset(Core_Array::getGet('offset', 0));
$oShopItemCommentController->limit(Core_Array::getGet('limit', 5));
$oShopControllerShow
->addEntity(
$oShopItemCommentController->getCommentsXml()
);
// ....
$oShopControllerShow->show();