0.00
Рейтинг
0.00
Сила

Алексей

Краткий мануал по работе с блоками или как правильно изменять шаблоны LS

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

Надеюсь данный топик поможет начинающим понять структуру LS, как с ним работать, как редактировать шаблоны и как добавлять нужные блоки на сайт.


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

Боремся за место на диске

На выходных досмотрелся что движок не удаляет загруженные на сервер оригиналы картинок в фотосетах, аватарках пользователя и аватарках блогов. Учитывая что по умолчанию для фотосета выставлено 6Мб на картинку и 30 картинок для загрузки это будет 6 х 30 = 180Мб на один фотосет это конечно ничто для хостинга в 3Тб, но для 2Гб хостинга это всего 11 фотосетов, ужос!!!
Попробовал поставить плагин пылесос, думал он поможет, но увы там этого не реализовано.
Пришлось лезть в исходники. Вобщем вот что получилось (для LS 0.5.1) (Для лентяев скачать готовое):

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

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

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

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

Боевой курс новичка или "всем новеньким - сюда", часть 2

все, там место кончилось.
Продолжение FAQ для новичков, первую часть можно прочесть здесь.

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

Статус онлайн в профиле (и не только) [реализация]




Спасибо ort и PSNet

Загорелся идеей вывести в профиль статус онлайн/оффлайн для пользователей. Понял, что по сути можно сделать напрямую в шаблоне примерно такой схемой
{если «текущее время в секундах» — «дата последнего визита в секундах» < 900 секунд} онлайн {иначе} оффлайн {/если}

Под катом инструкция

Количество топиков на страницу

Есть проблема с постраничным отображением. На страницах блогов выводится разное количество топиков (например на страницах 1, 2, 3 ,4 одного блога количество топиков 10,7,6, 7 шт.соответственно). Функция count($aTopics) также дает результат 10,7,6 и 7 на страницах 1, 2, 3 и 4. В конфиге стоит настройка отображать по 10. До этого проводил импорт топиков с другой платформы, то есть вставлял записи напрямую в базу (таблицы prefix_topic и prefix_topic_content).

Кеш после конвертации очищал. В базе пустым полем остался хэш топика.

Подскажите в чем может быть причина такого странного отображения.
Это происходит только при конвертации. Если топики созданы через web интерфейс LS, то постраничность работает корректно.

Система блоков

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


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

Страницы

Здравствуйте. Подскажите, пожалуйста, как включить постраничность топиков (пагинатор, на сколько я понял пытаясь найти необходимое)? И как изменить длину страницы? Сколько не искал, так и не нашёл.

И есть ли какое-нибудь минипособие для таких как я, чтобы не задавать глупых вопросов?
Спасибо.

Баг репорт: Viewer_MakePaging

Описание проблемы:
Что бы освежить, вот это формирует постраничность:
MakePaging($iCount,$iCurrentPage,$iCountPerPage,$iCountPageLine,$sBaseUrl,$aGetParamsList=array())

aGetParamsList — в этом проблема.
Передаем
aGetParamsList = $_GET;

если в адресной строке написано
?category=tv,apple
то все работает отлично.
проблема появляется, если в адресной строке
?category[]=tv&category[]=apple

Вываливается ошибка
Warning: urlencode() expects parameter 1 to be string, array given in \www\site.com\engine\modules\viewer\Viewer.class.php on line 1195

Причина:

$sGetParams='';
		foreach ($aGetParamsList as $sName => $sValue) {
			$sGetParams.=$sName.'='.urlencode($sValue).'&';
		}
		if ($sGetParams!='') {
			$sGetParams='?'.trim($sGetParams,'&');
		}

Решение: Заменить весь этот кусок на 1 строчку:

$sGetParams='?'.http_build_query($aGetParamsList);

а еще лучше-

$sGetParams='';
if (isset($aGetParamsList)){
sGetParams=urldecode(is_array($aGetParamsList)? '?'.http_build_query($aGetParamsList):'?'.$aGetParamsList);
}

Ставим хук внутри шаблона.

Появилась возможность устанавливать хуки прямо внутри шаблона — trac.lsdev.ru/livestreet/changeset/848
Делается это за счет плагина к Smarty hook, например:
{hook run='body_begin'}
вызовет хуки повешенные на событие 'template_body_begin'(обратите внимание, что приставка template_ добавляется автоматически, если хук вызван из шаблона), а их результат в виде строки вернется в шаблон.

Предлагаю определиться какие нужны стандартные хуки? Сейчас добавлено только два: body_begin и body_end, соответственно вызываются в начале HTML тега BODY и в конце.