+2.84
Рейтинг
8.47
Сила

Олег

RSS для Яндекс.новостей

Мы решили подключить наш сайт к Яндекс.новостям. Яндексу нужна RSS особого вида, та, что livestreet отдаёт из коробки ему не подходит.
За основу был взят ActionRSS, который есть в ливстрите с самого начала. Вообще-то я в php ни в зуб ногой, на работе пишу на c++, и ливстрит увидел в первый раз в жизни, так что работа эта заняла у меня не меньше 4 часов. В том числе потому что документацию к движку я тогда найти не смог.

Читать дальше →

Выводим в Top блогов количество постов вместо рейтинга.

Возникла задача выводить в блоке Tоп блогов вместо абстрактного рейтинга количество постов. Актуально для новых сайтов или неактивных комьюнити.



Для начала находим Экшен блока. Структура LS подробно описана, поэтому легко находим нужный блок: /classes/blocks/BlockBlogs.class.php В блоке вызывается единственная функция: Blog_GetBlogsRating, с ней и будем работать.

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

Читать дальше →

Показываем, что пост новый



Продолжая тему извращений над возможностями шаблонизатора, хочу предложить вам легкий способ указать на то, что пост новый. То есть, если посту меньше суток, то выводится определенная надпись, например — «Новый пост!». Идея древняя как мир, но раз для других CMS делали такие фичи, то, возможно и здесь кому-то она пригодится.

Все делается элементарно — в файлах topic_link.tpl, topic_photoset.tpl, topic_question.tpl, topic_topic.tpl вашего шаблона после даты добавления поста вставляем следующий код:
{if (time() - strtotime($oTopic->getDateAdd()))<86400}<span style="color:green;">New Post!</span>{/if}


Читать дальше →

Окно авторизации и видео c ютуба.

Здравствуйте всем.

Столкнулся с небольшой проблемой, которая изображена на картинке ниже. Ошибка возникает в IE и Хроме. В Mozilla Firefox все в порядке.



Смысл вот в чем:

— Если код видео с ютуба вставляется старым способом, то окно авторизации находится над ним и все впорядке,

— Если вставляем по-новому, через кнопку видео, то окно показывается под видео.

Проблему пока не решил. Может ли кто-то подсказать что-нибудь по этому поводу?

Заранее спасибо.

Блок пользователя в сайдбаре

Возникла необходимость убрать из шапки шаблона панель пользователя, так как на ширине экрана 1024 верстка съезжала, аватарка пользователя обрезалась на половину.

А так как в верстке я не силен — решил проблему проще:
два блока на главной

1. Удалил кусок кода, отвечающий за панель пользователя в файле шаблона /templates/skin/whitelite/header_top.tpl

{if $oUserCurrent}
		
			<a href="{$oUserCurrent->getUserWebPath()}" class="avatar"><img src="{$oUserCurrent->getProfileAvatarPath(48)}" alt="{$oUserCurrent->getLogin()}" /></a>
			<ul>
				<li><a href="{$oUserCurrent->getUserWebPath()}" class="author">{$oUserCurrent->getLogin()}</a> (<a href="{router page='login'}exit/?security_ls_key={$LIVESTREET_SECURITY_KEY}">{$aLang.exit}</a>)</li>
				<li>
					{if $iUserCurrentCountTalkNew}
						<a href="{router page='talk'}" class="message" id="new_messages" title="{$aLang.user_privat_messages_new}">Новых сообщений {$iUserCurrentCountTalkNew}</a> 
					{else}
						<a href="{router page='talk'}" class="message-empty" id="new_messages">Почта</a>
					{/if}
					{$aLang.user_settings} <a href="{router page='settings'}profile/" class="author">{$aLang.user_settings_profile}</a> | <a href="{router page='settings'}tuning/" class="author">{$aLang.user_settings_tuning}</a> 
				</li>
				<li>{$aLang.user_rating} <strong>{$oUserCurrent->getRating()}</strong></li>
				{hook run='userbar_item'}
			</ul>
		
		{else}
		
			<a href="{router page='login'}" onclick="return showLoginForm();">{$aLang.user_login_submit}</a> {$aLang.or} 
			<a href="{router page='registration'}" class="reg">{$aLang.registration_submit}</a>
		
		{/if}


2. И вставил его в шаблон плагина «Lepra-style приветствия», расположенного в файле /plugins/greetings/templates/skin/default/block.greetings.tpl, хотя можно было бы вписать сразу в файл сайдбара
/templates/skin/whitelite/sidebar.tpl. Но тогда я бы не получил требуемых изречений типа «тебе нужен этот плагин %username».
Читать дальше →

Два блока на одной странице

Сделал вывод блока blogs_list.tpl на главной (index.tpl) следующим образом:
(пользую Livestreet 0.4.2)
два блока на главной

Добавил переменную aBlogs в файле /classes/actions/ActionIndex.class.php как посоветовал Chifa

Так:

/**
		 * Загружаем переменные в шаблон
		 */
		$this->Viewer_Assign('aTopics',$aTopics);
		$this->Viewer_Assign('aPaging',$aPaging);
                $this->Viewer_Assign("aBlogs",$aBlogs);
		$this->Viewer_AddHtmlTitle($this->Lang_Get('blog_menu_all_list'));		
		/**


и выше:

                 /**
		 * Получаем список блогов
		 */
		$aResult=$this->Blog_GetBlogsRating($iPage,Config::Get('module.blog.per_page'));	
		$aBlogs=$aResult['collection'];
		/**


Итого получилось:
Читать дальше →

Добавляем сайдбар на статические страницы

Когда я в прошлый раз спросил, как сделать блоки на статических страницах, меня почему-то заминусовали без ответа. Но я всё же решил докопаться до этого вопроса. А решение оказалось очень простым.
Читать решение