+0.04
Рейтинг
0.10
Сила

Максим

Обновление шаблонизатора Smarty до версии 3.0.7

В SVN версии LS произошло обновление шаблонизатора Smarty, теперь используется последняя 3.0.7 версия, написанная на PHP 5.2.
Обновление в ядре прошло гладко, единственное пришлось внести изменения в стандартный класс Smarty — trac.lsdev.ru/livestreet/changeset/1129, это позволит делигировать шаблоны плагинами.

Теперь самое важное — для работы текущих шаблонов на новой версии шаблонизатора необходимо внести в них некоторые изменения. А именно:
  • везде, где используется
    {include file='file_name.tpl'}
    имя файла нужно брать в кавычках, по сути это относится к любым параметрам
  • не использовать апострофы `, т.е. было
    {include file='paging.tpl' aPaging=`$aPaging`}
    стало
    {include file='paging.tpl' aPaging=$aPaging}
    для математических выражений
    {section name=closelist1  loop=`$nesting-$cmtlevel+1`}
    меняем их на скобки
    {section name=closelist1  loop=($nesting-$cmtlevel+1)}
  • после открывающей фигурной скобки { и перед закрывающей } не должно быть пробельных символов, иначе они не считаются за конструкции Smarty
  • в условиях логические операторы необходимо отделять пробелами, было
    {if $aParams[0]=='favourites'and$aParams[1]!='comments'}
    стало
    {if $aParams[0]=='favourites' and $aParams[1]!='comments'}
Эти правила должны помочь достаточно легко адаптировать ваши шаблоны под текущую(а в последствии и новую версию) SVN версию LS.
Пример адаптации шаблона «new» — trac.lsdev.ru/livestreet/changeset/1128

Обновляем и фиксим TinyMce до 3.4.x

Зачем обновлять TimyMCE до версии 3.4.2)?

В старом редакторе нельзя сделать цитирования, глючит на некоторых браузерах и много исправлено с времен 3.2.7, например вставка iframe, более коректное форматирования текста исправлены проблемы со флешом и многое другое, ченджлог здесь
При обновлении не работает вставка видео через плагин для TinyMce lseditor, цитирование не выделяется цветом…
Как сделать отправку по Ctrl+enter в TinyMce в коментариях?
Как пофиксить — под кат…

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

Ищем толковых LiveStreet разработчиков


Веб-студия stfalcon.com ищет толковых LiveStreet разработчиков для постоянного сотрудничества на удаленной основе или на full time (в Хмельницкий офис).

Основные требования:
  • Опыт разработки на PHP — более 2-х лет
  • Опыт работы с движком LiveStreet, понимание его структуры и логики, умение разрабатывать плагины для этого движка
  • Хорошее знание JS фреймворков MooTools или jQuery
  • Хорошее знание SQL (MySQL). Навыки оптимизации запросов
  • Знание основных шаблонов проектирования
  • Умение работать с SVN или Git

Наши печеньки:
  • Хорошая з/п (зависит от квалификации разработчика)
  • Интересная работа с проектами на движке LiveStreet
  • Курсы английского (Хмельницкий)
  • Абонемент в бассейн/спортзал (Хмельницкий/Киев)

Если вы заинтересованы в сотрудничестве и отвечаете перечисленным требованиям, тогда напишите об этом мне в личку или на e-mail info@stfalcon.com с темой «LiveStreet разработчик»

Закрытие security бага в LS

Здравствуйте!

Уведомляем вас о закрытии в LiveStreet 0.4.2 уязвимости XSS.
Уязвимость была обнаружена в сторонней библиотеке CSSTidy, используемой в LS.
Для исправления этой уязвимости вы можете скачать обновленный архив LiveStreet 0.4.2 — http://livestreetcms.com/download/
Либо просто вручную удалите у себя файл /engine/lib/external/CSSTidy-1.3/css_optimiser.php.

Мы настоятельно рекомендуем вам выполнить эти действия.
Спасибо за понимание.

UPDATE
Это приложение к первому письму, в котором мы, к сожалению, упустили еще один важный баг безопасности.
Для исправления этой уязвимости вы можете скачать обновленный архив LiveStreet 0.4.2 — http://livestreetcms.com/download/
Либо внесите изменения вручную:
1. Найдите в файле /engine/modules/text/Text.class.php 213 строчку: return array($sTextShort,$sTextNew,$sTextCut);
2. Замените её на строчку: return array($sTextShort,$sTextNew,$sTextCut? htmlspecialchars($sTextCut): null);
Изменения можно посмотреть в SVN.

Шаблон "Developer JQuery"

Особенности шаблона

  • В качестве JS-фреймворка в шаблоне используется JQuery
  • Прикручен html редактор MarkItUp! (и слегка допилен)
  • Немного подправлен сам шаблон
  • JS убран из файлов шаблона (.tpl)

Совместимость с плагинами

Шаблон совместим со всеми плагинами, которые не используют мутулз :) Если нужна совместимость с плагинами на мутулзе, то можно попробовать использовать jquery в режиме совместимости, но и в этом случае 100%-ая работоспобоность плагинов не гарантируется.

Скачать

Шаблон для LS 0.4.2 — скачать можно в каталоге
Шаблон для транковой версии LS — доступен в SVN LS

История про нагрузку и как я с ней боролся.

Случилось так, что на одном из проектов full time стал переваливать за 1,5 сек и при этом сжирался весь проц. При этом все остальные показали были в норме: база — 0,002 сек, кеш — 0,01 сек.

Пришлось прикручивать профайлер и смотреть, в чем дело.

Виноват оказался Smarty, который из 1,5 секунд работал 1,2 (шаблон, на проекте, используется стандартный с легкими изменениями).

Копаясь дальше нашел самый сложный шаблон comments_tree.tpl, который выполняет в цикле инклюд шаблона comment.tpl.

Проблема решилась отказом от инклюда и переносом содержимого из comment.tpl в comments_tree.tpl.

full time на топиках с 400+ комментариев не превышает 0,4 сек.

Надеюсь кому-то поможет.

Бесплатный плагин баннерокрутилки "Banneroid"



Я так и не смог подобрать нормальную картинку, а в конкурсе не было ничего толкового. Поэтому в качестве лого был выбран баннер с очень высоким CTR :).

Возможности плагина

  • Добавление/редактирование/удаление баннеров.
  • Возможность выбирать дату начала/окончания показов.
  • Выбор места для вывода баннера (под статьей / сайдбар).
  • Выбор страниц на которых показывается баннер (все страницы / блоги).
  • Учет кликов и показов баннера.
  • Просмотр статистики (показы/клики) по всем/отдельным баннерам и по местам вывода баннеров.
  • Равномерная ротация нескольких активных баннеров.

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

Борьба с 502 bad gateway или как установить xcache на 0.4.2

Итак после долгих мытарств и по мотивам livestreet.ru/blog/questions/5335.html решил написать как установить xcache на LS 0.4.2. Мне установка xcache реально помогла в решении проблемы ошибки 502 и в целом для более стабильной работы сайтов. Итак поехали:
Первым делом убираем memcache и eaccelerator. Я не стал ничего удалять из системы, просто закомментировал в php.ini строки относящиеся к eaccelerator, аналогично в /etc/php5/conf.d/memcache.ini также все закомментировал. Наверное это неправильно, кто знает как совсем удалить отпишитесь в каментах.

Теперь собственно установка xcache:

apt-get install php5-xcache


Установили, теперь настраиваем:
nano /etc/php5/apache2/conf.d/xcache.ini


Редактируем секцию админки:
Читать дальше →

Проблема с xtext или с хостингом?

Народ у меня проблема из разряда «большая загадка». Вот как такое может быть, при переходе по одним топикам выдает 502 Bad Gateway — при переходе по другому топику все работает исправно.

Например multiblog.ru/blog/86.html — все время выдает 502 Bad Gateway

А здесь multiblog.ru/blog/61.html — все время работает как положено.

Тоже самое происходит при редактировании этих топиков и последующей публикации, просто нажав редактировать и ничего не меняя нажать опубликовать.

Когда происходит 502 — то в логах апача появляется такая запись:

[Mon Sep 13 04:34:39 2010] [notice] child pid 17539 exit signal Segmentation fault (11)

А в логах nginx такая запись:

2010/09/13 02:50:51 [error] 22097#0: *237 upstream prematurely closed connection while reading response header from upstream, client: xx.xxx.xxx.xx, server: multiblog.ru, request: «GET /blog/86.html HTTP/1.1», upstream: «188.40.165.37:8080/blog/86.html», host: «multiblog.ru», referrer: «multiblog.ru/topic/edit/86/»

Много где искал решения этой проблемы — так и не решил. Кто нибудь может знает куда копать в решении этой проблемы. И главное как понять виноват VPS или может в самом модуле XTEXT какая нибудь ошибка. Проблема именно проявляется когда включен XTEXT и обязательно когда используется GMAP. Пытались вместе решить эту проблему с автором модуля Xtext но не получилось. Может кто нибудь подскажет решение? Сам я в программировании не шарю, вот тут нарыл что то по этой теме broderix.blogspot.com/2009/03/segmentation-fault-php5.html Я не утверждаю, что баг именно в плагине Xtext, но с другой стороны на VPS 5 сайтов, на разных системах и таких проблем нет. Прошу помочь знающих людей. Заранее спасибо.

Модель ORM

Важно: это лишь предлагаемая мною примерная альфа-версия модели, для ознакомления с идеями, скорее всего она будет отличаться от реальной модели, котораябудет введена в LS.

Синтаксис отношений $aRelations.


Существует 4 типа отношений:

belongs_to — связь 1 к 1, или многие к 1. в таблице обязательно наличие foreign key вида relationalias_id. Примеры:
$aRelations = array('belongs_to' =>
  array(
    'User' => 'autor',
    'Blog',
    'PluginBill_ModuleEvent' => 'event'
  )
);
// поля таблицы prefix_topic
topic_id | topic_title | ... | autor_id | blog_id | event_id
// доступные функции:
$oTopic()->getAutor(); $oTopic()->setAutor();
$oTopic()->getBlog(); $oTopic()->setBlog();
$oTopic->Save();

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