Настройка и шаблоны Livestreet, добавление кода AdSense
Monday, 09 Apr 12 в 13:16Вчера провел буквально полдня за правкой шаблона Livestreet и знакомством поближе с данной CMS. Спешу поделиться некоторыми впечатлениями и наработками. Система, в принципе, не новая, в далеком 2008 я уже писал про Livestreet. Тогда она только начинала свой долгий и тернистый путь, вроде даже было время когда создатель искал на Хабре кому бы ее передать. Как бы там ни было, сейчас Livestreet стала более мощной, узнаваемой и серьезной. По крайней мере визуально, по набору модулей и последним новостям все об этом свидетельствует, но так ли это на самом деле.

В этот раз с CMS я столкнулся при покупке сайта на Telderi. Проект меня заинтересовал и я подумал, что с Livestreet особо проблем не возникнет, система развивается и поддерживается. Добавлять самостоятельно после покупки какую-то функциональность не видел смысла, шаблон был более-менее настроенным. Хотя, признаться, на деле все оказалось немного сложнее, чем я ожидал.
Сразу же начались какие-то непонятные проблемы с кэшем и правами доступа по FTP. В полученном мною ReadMe был совет пройти по ссылке и очистить кэш, но я не мог из-за ошибок даже войти в админку. Через какое-то время “методом тыка” и расстановкой прав 777 на директории, которые упоминались в выводимых ошибках. Случайно от проблемы удалось избавиться – это было также неожиданно как и ее появление.
Основные параметры задаются в файле/config/config.local.php, где требуется ввести доступы на БД и путь к корневой директории сайта:
$config['db']['params']['user'] = 'DB username'; $config['db']['params']['pass'] = 'DB pass'; $config['db']['params']['type'] = 'mysql'; $config['db']['params']['dbname'] = 'DB name'; $config['db']['table']['prefix'] = 'prefix_'; $config['path']['root']['web'] = 'http://mysite.ru/'; $config['path']['root']['server'] = '/var/www/v-8129/data/www/mysite.ru'; /* полный путь к корневой директории)*/
Казалось бы, ничего сложного и все типично, но это единственно, что было тривиальным и понятным. В данном файле, как и многих других, часто встречаются множество конфигов и настроек, непонятно для чего и как используемыми. Да, везде в коде есть комментарии на русском (за что спасибо разработчикам), но основная сложность это найти нужную вам опцию среди сотен файлов.
Настройки для Livestreet
Далеко за примером ходить не нужно. Я просто решил изменить количество номеров страниц для отображения на странице с выводимыми записями. В конфиге этого не оказалось, поэтому пришлось гуглить решение – и как хорошо, что кто-то им поделился (иначе я бы никогда не додумался). Вам “всего лишь” нужно зайти в директорию /classes/actions где в файле ActionIndex.class.php отыскать строку
$aPaging=$this->Viewer_MakePaging($aResult['count'],$iPage,Config::Get('module.topic.per_page'),30,Router::GetPath('index'));
… и указать нужное число страниц. Без подсказки это было бы нереально найти. Решение, мягко говоря, не user friendly.
А потом мне захотелось изменить количество отображаемых тегов в облаке, что выводится на сайте. Опять же начал искать настройки в конфиге, шаблоне, но тщетно. Оказывается нужно было зайти в директорию / classes/blocks, где в файле BlockTags.class.php изменить строку:
$aTags=$this->oEngine->Topic_GetOpenTopicTags(55);
Кроме классов и экшенов в Livestreet есть еще и хуки и модули. Файлов очень много, отыскать нужную тебе настройку чертовски сложно. А еще Smarty (или как их там) шаблоны… где тоже есть конфиги, настройки, экшены. Безусловно, если ты первый раз видишь новую CMS, то не нужно ожидать, что за 10-20 минут “раскусишь” всю ее структуру и принципы работы. Тем не менее, в wordpress все как-то на несколько порядков все проще – вводишь название функции в поиске и находишь описание в кодексе с максимумом полезной информации.
О Livestreet шаблонах…
Шаблон для Livestreet состоит из множества файлов, впрочем как и для WordPress, но здесь их куда больше. Сопоставляя количество блоков, что отображаются на сайте, и просматривая файлы шаблона, состоящие из 2-3 строк кода, кажется, что все это можно было организовать куда более кратко. В принципе, логика при рассмотрении файлов шаблонов немного помогает, и можно определить какой файл за что отвечает, например:
- header_top.tpl – шапка сайта с некоторыми ее элементами.
- topic_topic.tpl – шаблон для пост (записи) блога.
- sidebar.tpl – вроде какого-то “общего” файла сайдбара, где находится ”стандартный” код для вывода блоков. Судя по описанию он обязателен. Фактически же информация в сайдбаре выводится через block.stream.tpl.
Вообще с блоками там опять же все немного запутанно. По форумам я понял, что вроде можно в каком-то файле настроек в одной строке быстро поменять расположение блоков сайдбара – для чего и используется “общий стандартный” код. Но где искать эту настройку + как называются блоки – по моему, проще в одном из файлов поменять местами соответствующий код.
Если вы хотите добавить код AdSense или скрипты, например, для счетчиков, то нужно заключать код в блоки {literal}{/literal}. Допустим нам нужно выводить код Adsense после заголовка, но только на странице с полным текстом записи (на главной его быть не должно). Для этого заходим в файл шаблона для поста topic_topic.tpl, находим место после заголовка и добавляем следующий код:
{if !$bTopicList} <div class="postads"> {literal} Ваш код Google Adsense {/literal} </div> {/if}
Чисто случайно удалось выяснить, что указанное выше условие проверяет выводится ли пост полностью (метод тыка и немного наблюдений не раз спасали). Сохраняем шаблон, загружаем его обратно на FTP и проверяем как все работает. Со стороны, конечно, все это кажется простым, но это лишь тогда, когда знаешь что где искать и как использовать.
Общие впечатления
В качестве вывода поделюсь некоторыми своими впечатлениями. Определенно Livestreet – продукт очень интересный, хорошо, что есть такая CMS и она развивается. Если бы мы говорили о создании проекта тематической социальной сети, то возможно это было бы оптимальным решением. В качестве альтернативы на ум приходит лишь Drupal, где разобраться, думаю, было бы еще сложнее и WordPress, в котором потребовалось бы также немало времени на воссоздание требуемого функционала соц.сети. При этом установить Livestreet в общем случае кажется более быстрым и простым решением.
Что не очень понравилось. Во-первых, это, конечно, сложность настройки и разобщенность всех опций, если можно так выразиться. Все это должно управляться из админки, причем сразу. Возможно (наверняка) есть модули, которые позволяют визуализировать большую часть настроек системы, но это должно входить в базовую установку. Помнится, всегда в TYPO3 было много жалоб на недружелюбный интерфейс, но там мне изначально казалось все более наглядным и логичным, нежели здесь.
Вторым еще более печальным моментом для меня стало знакомство с модулями. Соответствующий раздел на сайте разработчиков сделан очень красочно и функционально, но из всех плагинов 1/3 оказалась платными, причем самая интересная часть. Как-то это немного пошатнуло мои представления о бесплатных open source cms. Опять же из личного опыта приходит сравнение с TYPO3 CMS, где можно найти более 4000 бесплатных расширений (модулей). Да, там система намного старше и серьезнее, есть фонд, официальная организация, но за все время знакомства с ней принципы бесплатного ПО так и “витали в воздухе” – люди вкладывали свои силы, время, деньги чтобы другие могли насладиться результатами. Это в свое время мне безумно нравилось и подкупало, тотальный open source. Может, конечно, нашим разработчикам живется сложнее или еще по каким-то причинам, тем не менее, эти платные плагины меня просто разочаровали. Надеюсь дальше у Livestreet все будет развиваться лишь в лучшую сторону. Спасибо создателям Livestreet и разработчикам другой 2/3 бесплатных плагинов и всем, кто вкладывается в развитие системы.
P.S. Для желающих заработать онлайн в последнее время актуально направление инвестирование в паммы где можно вложить свои деньги с максимальной выгодой и доходом.
Не знаете что подарить школьнику на день рождения? – возможно вариант купить телескоп будет не таким уж и плохим решением, а подтолкнет в стремлении изучать что-то новое.







Давно у меня не было никаких марафонов, установленных целей и запланированных достижений. Возможно, это стало причиной весьма серьезной расслабленности в работе и отсутствия “карьерного” роста. Недавно перечитывал 

