Слайдер для сайта на справочниках для UMI.CMS
Для реализации слайдера в качестве примера буду использовать библиотеку
1. Заведём для страницы (например для главной страницы сайта) специальный блок и поле для реализации слайдера. Т.к. для главной страницы я использую отдельный тип данных, этот блок у меня больше нигде фигурировать не будет. Переходим в редактирование типа данных страницы и добавляем там группу и в ней поле для слайдера.
2. Как видите, для слайдера я указал справочник и задал тип "Выпадающий список со множественным выбором". Теперь отредактируем справочник для нашей цели. Для этого при редактировании справочника добавим ему новую группу и создадим нужные поля.
3. Теперь при заполнении справочника мы можем указать картинку и при желании ссылку по которой будет переход при клике на картинку (а-ля баннер).
И т.о. заполняем справочник, создавая и заполняя его необходимым количеством будующих слайдов.
4. После того, как мы создали нужные слайды, переходим в редактирование страницы, для которой мы создали блок для слайдера (в моем случае это главная страница сайта). И там выбираем какие из слайдов включам в показ слайдера. Т.к. у нас справочник со множественным выбором, мы можем указать выборочно нужные слайды, но завести при этом больше слайдов, а при необходимости просто отредактировав страницу отредактировать слайдер по новому указав другие слайды.
5. А теперь напишем все необходимые шаблоны дабы прикрутить подготовленный к публикации слайдер в дизайн нашего сайта.
Вызов слайдера в шаблоне будет вот таким:
<script type="text/javascript" src="/js/jquery.cycle.all.min.js" /> <div id="slider"> <xsl:apply-templates select="document('upage://1')/udata/page//property[@name = 'illustration']/value" /> </div> <script type="text/javascript"> $(document).ready(function() { $('#slider').cycle({ fx: 'fade', speed: 1000, timeout: 5000 }); }); </script>
Где 1 - это id страницы, а illustration - название поля (у вас они могут быть другие). И не забывайте, что библиотека jQuery должна быть подключена выше чем подключение jquery.cycle.all.min.js.
Ну и теперь напишем оставшиеся шаблоны которые будут выводить и отображать картинки с сылками.
<xsl:template match="property[@name = 'illustration']/value"> <xsl:apply-templates select="item" mode="slide_object" /> </xsl:template> <xsl:template match="item" mode="slide_object"> <xsl:apply-templates select="document(concat('uobject://', @id))/udata" mode="slide_object" /> </xsl:template> <xsl:template match="udata" mode="slide_object"> <a href="{.//property[@name = 'link_slide']/value/page/@link}"> <img src="{.//property[@name = 'image_slide']/value}" /> </a> </xsl:template>
Ну и напоследок ниже вы можете увидеть что в итоге получилось. Естественно это только пример, и ваша конечная реализация может отличаться в зависисмоти от того, какой библиотекой для реализации слайдера вы будете пользоваться.
25.07.2013