+3.88
Рейтинг
11.19
Сила

Нестандартный механизм сессий и капча

С нестандартным механизмом сессий не работает капча, по крайней мере в лс 0.4.2. Для того что бы заработала нужно поправить 3 файла:
  • /classes/actions/ActionRegistration.class.php
  • /engine/lib/external/kcaptcha/index.php
  • /engine/modules/viewer/Viewer.class.php



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

Прикручиваем 3 Smarty к LS

В коментариях к одному из топиков, randomtoy попросил меня рассказать по подробней про прикрутку smarty 3 к ЛайвСтриту — рассказываю.

Там в общем-то ничего сложного нет.
1) Файл /engine/modules/viewer/Viewer.class.php
Не заработал метод Viewer -> TemplateExists()
Времени разбираться и делать по человечески не было, заменил внутренности функции на следующий код
if (file_exists($sTemplate)) return true;

foreach ($this->oSmarty->template_dir as $dir) {
   if (file_exists($dir . '/' . $sTemplate)) return true;
}
return false;


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

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

Случилось так, что на одном из проектов 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 сек.

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

Плагин «Preview Pictures» и TinyMCE

Есть шикарный плагин «Preview Pictures», но он не работает с TinyMCE.

Решается проблема просто.
Для начала открываем файлик
engine/lib/external/tinymce_3.2.7/plugins/lseditor/image.htm
затем находим там строчку
<legend>{#lseditor.image_upload}</legend>
и после нее вставляем
<input type="hidden" name="type_add" value="preview" id="type_add_preview" />


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

Расширенные мена пользователей.

Как-то пришлось мне конвертировать форум на phpbb в livestreet и, в процессе, родился плагин, позволяющий, через конфиг, настраивать разрешенные символы в имени пользователя.

Т.е. прописав в конфига плагина
$config['regular']='^[\w\p{L}\-\_ \.\$\@]';
имя пользователя сможет содержать: русские и английские буквы, дефис, нижнее подчеркивание, пробел, точку, знак доллара и собачку.

Free
GitHub
Каталог

Предложение по улучшению роутера

На данный момент, для роутера нет никакой разницы между livestreet.ru/blog/ и livestreet.ru/blog. И это по моему скромному имху не правильно т.к. по двум разным урлам находятся совершенно одинаковые страницы.

Решение я для себя выбрал следующее:
/engine/classes/Router.class.php->GetRequestUri()
после
$sReq=preg_replace("/\/+/",'/',$_SERVER['REQUEST_URI']);

добавить
if(empty($_GET) && !strpos($sReq, '.') && substr($sReq, strlen($sReq) - 1 ,1) != '/'){
            header('Location: ' . $sReq . '/',TRUE,301);
            die;
}

В этом случае, все запросы к «директории», которые не заканчиваются на "/", будут перенаправляться с кодом 301 (Moved Permanently) на урл который заканчивается "/".

Ну и да, это очень любят поисковики.

З.Ы. Совершенно за, если кто-то скажет как это сделать лучше :)

UPD. Po6oT В комментариях, подсказал решение гораздо лучше моего.

Выравнивание изображений в TinyMCE

LS 0.3.1.
Редактор TinyMCE

При вставке изображения есть только два варианта выравнивания — «слева», «справа».
По логике должно быть минимум три — «нет», «слева», «справа».
Виноватой оказалась отсутствующая кавычка в файле «classes/lib/external/tiny_mce/plugins/lsimage/image.htm», в строке 40.

Было:
<select name="align" id="align"  style="width: 100%;>

Надо:
<select name="align" id="align"  style="width: 100%;">