Архив категории: ‘Web разработка’

Сайдбар в Livestreet – вывод и очередность блоков

Sunday, 15 Apr 12 в 23:41

Сайдбар в LivestreetТак уж сложилось, что тематика Livestreet завлекла меня еще на один день. Нельзя сказать, что это было приятное времяпровождение, просто я решил все же “добить” имеющиеся задачи и довести работу над блогом про гаджеты до конца. Собственно, своими знаниями за сегодня я с вами и поделюсь. Напомню только, что ранее в блоге вы также можете найти посты про шаблон Livestreet (+впечатления от системы), а также механизм добавления Sape в Livestreet.  Не следует переживать, что блог вдруг резко и надолго стал посвящен данной CMS – обещаю, сегодня последняя статья про нее:) Поговорим про сайдбар (боковую колонку) сайта.

Файлы шаблона для моего сайта находятся в директории /templates/skin/social-jquery. Действуя по законам логики я отыскал, как мне казалось, файл сайдбара sidebar.tpl, который в том же wordpress позволяет задавать отображение всех нужных блоков. На самом же деле в нем был совершенно стандартный и общий для системы код:

<div id="sidebar">
	{if isset($aBlocks.right)}
		{foreach from=$aBlocks.right item=aBlock}
			{if $aBlock.type=='block'}
				{insert name="block" block=$aBlock.name params=$aBlock.params}
			{/if}
			{if $aBlock.type=='template'}
				{include file=$aBlock.name params=$aBlock.params}
			{/if}
		{/foreach}
	{/if}
</div>

Методом тыка в той же директории /templates/skin/social-jquery нашел некоторые файлы, что могли мне помочь – блок тегов (block.tags.tpl), комментариев (block.stream.tpl) и т.п. В каждом из них можно было добавить свой код, например, для той же биржи Sape, но очередность и новые элементы мне не поддавались.

Для начала по простому добавил в конец сайдбара (файл sidebar.tpl) вывод тегов:

<div class="block stream" id="block_stream">
<div class="sidetags">
{insert name="block" block=tags} 
</div>
</div>

Как видите, это оказалось не сложно. Структура облака задана в block.tags.tpl, а код выше данный файл и отображает. Заметьте синтаксис: в insert – указываете имя block, а потом нужный вам элемент tags. По аналогии, думаю, можно выводить и остальные блоки, если понадобиться. Тем не менее, этот вариант не совсем правильный.

Расположение тегов в самом конце сайдбара меня не особо устраивало, хотелось поменять очередность блоков. Но в Livestreet новичку сделать это нереально сложно – экшены, модули, хуки, блоки, разбираться во всем этом можно вечно. Безусловно, я искал решение на тематических блогах и форумах, но перепробовав 4-5 вариантов, все равно ничего не добился. В принципе, создается впечатление, что решить ту или иную задачу можно разными способами, но разобраться в специфике CMS и шаблона так как это можно с wordpress не суждено. Под конец дня мне казалось, будто я пересмотрел добрую половину файлов системы и шаблона, перепробовав все, что только можно. К счастью, нужный вариант все же нашелся.

Заходим в файл системы config.php, который располагается в директории с таким же названием (config). Здесь есть следующий код:

$config['block']['rule_index_blog'] = array(
	'path' => array(
		'___path.root.web___/blog$',
		'___path.root.web___/blog/*$',
		'___path.root.web___/blog/*/page\d+$',
		'___path.root.web___/blog/*/*\.html$',
		'___path.root.web___/blog/*\.html$',
		'___path.root.web___/top(|(/.+))$',
	),
	'action'  => array(
			'index', 'new'
		),
	'blocks'  => array(
			'right' => array('stream'=>array('priority'=>100),'blogs'=>array('params'=>array(),'priority'=>150),'tags'=>array('priority'=>120))
		),
	'clear' => false,
);

Место с “blocks” задает какие именно блоки будут отображаться в сайдбаре (right), причем для каждого из них определяется приоритет. Есть список категорий (blogs), комментарии (stream) и теги (tags). Сами же файлы шаблона с HTML кодом отображаемого в этих элементах следует уже искать в директории шаблона – /templates/skin/social-jquery – block.blogs.tpl, block.stream.tpl, block.tags.tpl и т.п.

Казалось бы не особо сложно, но это очередность только для главной страницы, чуть ниже в файле конфига config.php имеются и другие варианты. Так, например, на странице тегов у меня отображалось только облако без категорий и комментариев, поэтому исходный код заменил на:

$config['block']['rule_tag'] = array(
	'action'  => array( 'tag' ),
	'blocks'  => array( 'right' => array('blogs','tags','stream') ),
);

Здесь, почему-то, в коде элементы сайдбара просто выводились по порядку без приоритетов. Много в Livestreet каких-то непонятных моментов. За примером далеко ходить не нужно. Выше я уже рассказал, что задал расположение блоков сайдбара для главной, а заодно и страницы категорий + теги. Попытки сделать что-то с полным отображением поста (топика) никак не завершались успехом. Признаться я уже было думал публиковать пост без этого, как в последний момент наткнулся на плагины.

Сначала пытался использовать в качестве “зацепки” тот факт, что на странице с постом отображается блок “Похожие статьи” (модуль similar), но просмотрев абсолютно все его файлы, ничего не нашел. И лишь потом меня осенило – а может все дело в модуле, который заменяет обычные URL страниц на красивые ссылки (NiceURL) – ведь в конфигах часто проскальзывала привязка в URL. И что бы вы думали – открываю директорию plugins/niceurl/config, в ней файл config.php и нахожу код:

/**
 * Настройка блоков для отображения на странице топиков
 */
$aBlocks=array(
	array(
		'group' => 'right',
		'name' => 'stream',
		'params' => array(),
		'priority' => 50,
	),
	array(
		'group' => 'right',
		'name' => 'blogs',
		'params' => array(),
		'priority' => 150,
	),
	array(
		'group' => 'right',
		'name' => 'tags',
		'params' => array(),
		'priority' => 100,
	),
);

Собственно, знакомые уже приоритеты и названия блоков – можно добавлять новые и менять их порядок. И главное по простому все так, с описанием и комментариями в коде… но скажите кто мог изначально догадаться, что пройдя путь от файлов шаблона, конфига самой Livestreet, нужно заглянуть именно сюда?

Поставив точку в эпопеи разбора шаблона Livestreet испытываю двоякие чувства. С одной стороны, маленькую крохотную радость, что все разрешилось, с другой – негодование от количества потраченного времени. Хотя проблема даже не во времени, а в том, что я встретил на своем пути. Чем-то это напомнило настройку VaM Shop, но там пришлось возиться исключительно с шаблоном, здесь же все намного сложнее, наворочено столько всего, что кошмар – переменные, настройки, коды слились воедино… Возможно специалисту разобраться не так сложно, но новичку… Новичку, я бы советовал дважды подумать, чем с этим связываться. Хотя для справедливости следует заметить, что поднять социальную сеть на других CMS может оказаться еще более сложной задачей. Ну и, конечно, Smarty – зло.

P.S. Скоро лето, а значит нас ждут отпуска, морские путешествия и пляжный отдых о котором мы все так долго мечтали длинными зимними вечерами, скорее бы уже!
На сайте Electrostancii.com.ua найдете интернет магазин где представлены дизельные генераторы и различные электростанции с подробным описанием и возможностью заказа.

Понравился пост? Подпишись на обновления блога по RSS для блоггеров и вебмастеровRSS, RSS для блоггеров и вебмастеровEmail или RSS для блоггеров и вебмастеровtwitter!

Добавление кода Sape в Livestreet

Friday, 13 Apr 12 в 12:57

sape и livestreetСегодня небольшое дополнение к посту про шаблон Livestreet, о котором забыл уточнить. Речь пойдет про установку кода Sape, а также других бирж ссылок, что используют PHP. Шаблоны Смарти, оказывается, не только состоят из множества файлов, но и еще имеют скрытые настройки, которые в Livestreet отыскать не так то просто. Как я уже говорил в прошлой заметке, для добавления в шаблон различного рода скриптов (счетчиков, Google Adsense) можно использовать конструкцию вида:

{literal}
Код счетчика
{/literal}

Но для PHP кода и бирж ссылок этот прием не сработает. Забегая наперед скажу, что нужно использовать конструкцию {php} + включение поддержки PHP для смарти, но обо всем по порядку. Рассмотрим вкратце как добавить код для биржи ссылок Sape.

1. В разделе “Веб-мастеру” – “Мои площадки” кликаем по кнопке “Добавить площадку”, где выбираете код с поддержкой PHP.

кода Sape в Livestreet

2. Как указано на странице установки скачиваем специальный архив, разархивируем заливаем на ФТП и ставим права 777 на папку, но не файл sape.php.

3. Следующий шаг – добавить код Sape в шаблон Livestreet. Первым делом идем в файл шаблона header.tpl, где после тега <body> добавляем код:

{php}
    global $sape;
    if (!defined('_SAPE_USER')){
        define('_SAPE_USER', 'название_вашей_Sape_директории'); 
    }
    require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); 
    $o['charset'] = 'UTF-8';
    $sape = new SAPE_client($o);
    unset($o);
{/php}

Сохраняем и проверяем не появилось ли ошибок при отображении сайта. Если ошибки есть, то скорее всего код PHP запрещен в Smarty. Поэтому идем в директорию engine/lib/external/Smarty/libs где в файле Smarty.class.php нужно подправить строки:

    public $allow_php_tag = true;
    public $allow_php_templates = true;

После этого ошибка должна исчезнуть. Дальше нужно добавить отображение Sape ссылок на сайте, для этого заходим, например, в файл шаблона footer.tpl, где размещаем код:

<div class="links">
{php} 
global $sape; 
echo $sape->return_links();
{/php}
</div>

Напоминаю, что если вы хотите сделать отображение ссылок в несколько блоков, тогда используйте парочку конструкций, например return_links(2) – 2 ссылки в сайдбаре, потом return_links(1) – одна еще где-то, но последний вызов всегда должен быть пустым return_links() – выводит оставшееся количество ссылок указанное в настройках площадки. Чем больше ссылок, тем теоретически больше ваш заработок, но лучше с этим показателем не злоупотреблять. Я обычно делаю по 3 ссылки – парочка в сайдбаре и одна в футере.

4. После того как код установлен возвращаемся в Sape и продолжаем добавление сайта. Указываете его адрес, тематику, а потом и настройки по работе с биржей.

В принципе, как видите, ничего сложного, только нужно помнить, про параметр $allow_php_tag, а также конструкцию {php} для вывода кода. Заметьте, что при ее использовании не нужны открывающие и закрывающие теги php, просто пишите внутри нужный код.

P.S. Чтобы научиться создавать дизайны сайтов, вам нужно будет просмотреть видео уроки фотошопа на русском для ознакомление с программой, ее возможностями и применением эффектов.
Хотите быть в курсе последних технологических новинок? – новости про гаджеты и различные компьютерные устройства вам помогут в этом.

Понравился пост? Подпишись на обновления блога по RSS для блоггеров и вебмастеровRSS, RSS для блоггеров и вебмастеровEmail или RSS для блоггеров и вебмастеровtwitter!

Настройка и шаблоны Livestreet, добавление кода AdSense

Monday, 09 Apr 12 в 13:16

Вчера провел буквально полдня за правкой шаблона Livestreet и знакомством поближе с данной CMS. Спешу поделиться некоторыми впечатлениями и наработками. Система, в принципе, не новая, в далеком 2008 я уже писал про Livestreet. Тогда она только начинала свой долгий и тернистый путь, вроде даже было время когда создатель искал на Хабре кому бы ее передать. Как бы там ни было, сейчас 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. Для желающих заработать онлайн в последнее время актуально направление инвестирование в паммы где можно вложить свои деньги с максимальной выгодой и доходом.
Не знаете что подарить школьнику на день рождения? – возможно вариант купить телескоп будет не таким уж и плохим решением, а подтолкнет в стремлении изучать что-то новое.

Понравился пост? Подпишись на обновления блога по RSS для блоггеров и вебмастеровRSS, RSS для блоггеров и вебмастеровEmail или RSS для блоггеров и вебмастеровtwitter!
Страница 1 из 91234567...Последняя »