Код вызова компонента:
$APPLICATION->IncludeComponent(
"bitrix:news.list",
"brends",
array(
"IBLOCK_TYPE" => "sindika",
"IBLOCK_ID" => "2",
"NEWS_COUNT" => "8",
"SORT_BY1" => "RAND",
"SORT_ORDER1" => "ASC",
"SORT_BY2" => "",
"SORT_ORDER2" => "",
"FILTER_NAME" => "",
"FIELD_CODE" => array(
0 => "",
1 => "undefined",
2 => "",
),
"PROPERTY_CODE" => array(
0 => "",
1 => "undefined",
2 => "",
),
"CHECK_DATES" => "Y",
"DETAIL_URL" => "",
"AJAX_MODE" => "N",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_STYLE" => "Y",
"AJAX_OPTION_HISTORY" => "N",
"CACHE_TYPE" => "N",
"CACHE_TIME" => "36000000",
"CACHE_FILTER" => "N",
"CACHE_GROUPS" => "Y",
"PREVIEW_TRUNCATE_LEN" => "",
"ACTIVE_DATE_FORMAT" => "d.m.Y",
"SET_TITLE" => "N",
"SET_BROWSER_TITLE" => "N",
"SET_META_KEYWORDS" => "N",
"SET_META_DESCRIPTION" => "N",
"SET_STATUS_404" => "Y",
"INCLUDE_IBLOCK_INTO_CHAIN" => "N",
"ADD_SECTIONS_CHAIN" => "N",
"HIDE_LINK_WHEN_NO_DETAIL" => "N",
"PARENT_SECTION" => "",
"PARENT_SECTION_CODE" => "",
"INCLUDE_SUBSECTIONS" => "Y",
"DISPLAY_DATE" => "N",
"DISPLAY_NAME" => "N",
"DISPLAY_PICTURE" => "Y",
"DISPLAY_PREVIEW_TEXT" => "Y",
"PAGER_TEMPLATE" => ".default",
"DISPLAY_TOP_PAGER" => "N",
"DISPLAY_BOTTOM_PAGER" => "Y",
"PAGER_TITLE" => "Новости",
"PAGER_SHOW_ALWAYS" => "N",
"PAGER_DESC_NUMBERING" => "N",
"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
"PAGER_SHOW_ALL" => "N",
"AJAX_OPTION_ADDITIONAL" => "",
"AJAX" => $_REQUEST["AJAX"]
),
false
);
Код шаблона компонента template.php
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$this->setFrameMode(true);
//количество брендов
$brendCounter = CIBlockElement::GetList(Array(), Array("IBLOCK_ID" => 2, "ACTIVE" => "Y"), Array());
?>
<div class="brend large-12 columns">
<ul id="brend-append" class="small-block-grid-1 medium-block-grid-3 large-block-grid-4 text-center" data-brendcount="<?=$brendCounter; ?>">
<?foreach($arResult["ITEMS"] as $arItem):?>
<?
$this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_EDIT"));
$this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CT_BNL_ELEMENT_DELETE_CONFIRM')));
?>
<li id="<?=$this->GetEditAreaId($arItem['ID']);?>">
<?if($arParams["DISPLAY_PICTURE"]!="N" && is_array($arItem["PREVIEW_PICTURE"])):?>
<?if(!$arParams["HIDE_LINK_WHEN_NO_DETAIL"] || ($arItem["DETAIL_TEXT"] && $arResult["USER_HAVE_ACCESS"])):?>
<a href="<?=$arItem["DETAIL_PAGE_URL"]?>">
<div class="brend-img">
<img src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>"/>
</div><span><?=$arItem["PREVIEW_TEXT"]?></span></a>
<?endif;?>
<?endif?>
</li>
<?endforeach;?>
</ul>
<?if(!$_GET['PAGEN_1']):?>
<div class="text-center">
<span id="brend-more-btn">Показать ещё</span>
</div>
<?endif;?>
</div>
Скрипт для работы Ajax script.js
$(function() {
var currentPage = 1,
brendAdd = $( "#brend-append" ),
count = brendAdd.data( "brendcount" ),
btn = $( "#brend-more-btn" );
btn.click(function( e ) {
e.preventDefault(); //отключаем стандартную работу ссылки
function startAnimation() { // - функция запуска анимации
$("body").after("<div id=\"fon\" style='position: fixed; top: 0px; left: 0px; opacity: 0.5; background: #fff; width: 100%; height: 100%; z-index: 99999999; text-align: center;'><img id=\"load_img\" st yle=\"position:fixed; top:50%; left:50%; margin-top: -50px; margin-left: -100px;\" src=\"/bitrix/templates/sindika/img/load.gif\" /></div>");
}
function stopAnimation() { // - функция останавливающая анимацию
$("#fon").remove();
}
$.ajax({
url: "/brends-ajax/",
type: "get",
dataType: "html",
data: {
PAGEN_1: ++currentPage
},
beforeSend: function() {
startAnimation(); // - запустим анимацию загрузки
},
complete: function() {
stopAnimation(); // - останавливаем анимацию загрузки
if(currentPage * 8 >= count){
btn.hide();
}
},
success: function( data ) {
brendAdd.append( data );
}
});
});
});
|