Итак, спойлер сделать достаточно просто. Для этого подключаем в шаблоне библиотеку jQuery, можно скачать и положить в шаблон с компонентом, а можно и подключить со стороны:
</script>
Далее добавляем следующий JavaScript код, отвечающий за плавное открытие и скрытие спойлеров:
$(document).ready(function(){
$('.spoiler_links').click(function(){
if ($(this).parent().children('div.spoiler_body').css("display")=="none") {
$("div[class^='spoiler_body']").hide('normal');
$(this).parent().children('div.spoiler_body').toggle('normal');
}
else $("div[class^='spoiler_body']").hide('normal');
return false;
});
});
</script>
Что бы спойлеры по умолчанию были закрыты:
<style type="text/css">
.spoiler_content {display:none; cursor:pointer;}
</style>
И интегрируем в шаблон вывода компонента новости news.list вот такой код-
1. Для заголовка новости:
<?if($arParams["DISPLAY_NAME"]!="N" && $arItem["NAME"]):?>
<a href="<?=$arItem["DETAIL_PAGE_URL"]?>" class="spoiler_links"><?echo $arItem["NAME"]?></a>
<?endif;?>
2. Для вывода контентной части анонса:
<?if($arParams["DISPLAY_PREVIEW_TEXT"]!="N" && $arItem["PREVIEW_TEXT"]):?>
<div class="spoiler_content"><?echo $arItem["PREVIEW_TEXT"];?></div>
<?endif;?>
3. Весь вывод новости заключаем в <div>весь вывод</div> - что бы новости реагировали на клик не одновременно.
Пример работы у меня в услугах (правда использовал компонент "Ваканасии" но все аналогично)