Создание компонента Страница в LS 2.0

Здравствуйте! Сегодня решил создать отдельную страничку для вывода превью топиков на главной. Создал папку topic_masonry в папке шаблона components а внутрь поместил два файла component.json с содержимым
{
  "name": "topic_masonry",
  "version": "1.0",
  "templates": {
    "topic_masonry": "topic_masonry.tpl"
  }
}


и topic_masonry.tpl с содержимым из файла components/topic/topic.tpl

в конфиге шаблона settings/config/config.php прописывал имя компонента в опции components:

$config['components'] = array(
    // Дефолтный список компонентов
    ...

    // Наш компонент
    'topic_masonry'
);


Далее в файле components/topic/topic-list.tpl изменил строчку
{foreach $topics as $topic}
        {component 'topic' template='topic' topic=$topic isList=true}
    {/foreach}

на
{foreach $topics as $topic}
        {component 'topic_masonry' template='topic_masonry' topic=$topic isList=true}
    {/foreach}

и теперь за вывод на главной страничке превью топиков у меня отвечает файл topic_masonry.tpl, а за вывод самой статьи topic.tpl

Вопрос: Правильно ли я сделал данную манипуляцию? Так то все работает!

9 комментариев

avatar
а куда дели js?
avatar
Какой еще js?
avatar
из masonry
avatar
Дело не в masonry, просто так обозвал, хотя использовать для вывода буду его, просто нужно его подключить в конфиге и в unit.js прописать скрипт
avatar
Компоненты это боль. Вчера весь день с ними мучился. Сочувствую верстальщикам!
avatar
Полностью согласен!
avatar
Сочувствую верстальщикам!
Верстальщики верстают страницы и им не интересен frontend :) А для frontend-разработчиков комионенты — это круто и удобно :) В этом плане архитектура лс шагнула широко, не шибко, но широко.
avatar
Я был бы или буду с вами полностью согласен когда выйдет нормальный мануал. Мало инфы, пока не понятно хорошо это или нет, использовать компоненты. На старой лайвстрит и так было все круто и хорошо.
avatar
А Вы берите и крутите шаблон пока не начнете вникать + есть плагин доков и вики на гитхаб. Разобраться не сложно, в принципе. )

Если сильно упрощенно, то компоненты это кирпичики из которых собирается шаблон. Раньше кнопки, формы, навигации и проч. было в куче, теперь каждый элемент в отдельной папке со своим набором стилей, скриптов и проч.

В Вашем же случае с топиками смотрите как еще можно было бы сделать: не лезть в компонент топик и менять там подключение, а на его основе сделать свой, с нужным Вам выводом миниатюры топика и сетки. Потом в папке лэйаутов добавить свой по примеру того же layout.topics.tpl, только в нем вместо компонента topic.list вывести свой.

В итоге у Вас получится следующее: появиться такая вещь, как миниатюра, которую можно использовать где угодно по сайту (вывод тех же похожих топиков, например) и лэйаут с Вашей сеткой, который можно использовать для разных экшенов. Так, например, надо чтобы на главной странице выводилась Ваша сетка, топаете в ЭкшенИндекс и прописываете там вместо указанного свой лэйаут и т.д.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.