Удаление UTF-8 BOM из консоли

5
linux (debian tested)
find путь/к/лайвстриту/ -type f \( -name '*.tpl' -o -name '*.php' \) -exec sed -i '1 s/^\xef\xbb\xbf//' {} \;


freebsd (7.2 tested)
find ./ -type f \( -name '*.tpl' -o -name '*.php' \) -exec sed -i -e '1 s/^\xef\xbb\xbf//' {} \;


найти файлы с BOM
find ./ -type f \( -name '*.tpl' -o -name '*.php' \) -print0 | xargs -0r awk '/^\xEF\xBB\xBF/ {print FILENAME}{nextfile}'


sed почему-то иногда не отрабатывает, поэтому php, find, awk, xargs:
php -r "ob_start();
passthru('find ./ -type f \( -name \'*.tpl\' -o -name \'*.php\' \) -print0 | xargs -0r awk \'/^\xEF\xBB\xBF/ {print FILENAME}{nextfile}\'');
foreach(array_filter(explode(\"\n\",ob_get_clean())) as \$f){
	echo \"remove BOM from \$f...\n\";
	file_put_contents(\$f, substr(file_get_contents(\$f), 3));
};"

Увеличиваем скорость livestreet. Nginx. GZip и не только.

53
Недавно перешел с шаред хостинга на VPS и столкнулся с проблемой что VPS работает не очень быстро, при том что тариф взял не самый дешевый (1600MHz и 1024Mb). Перекопал кучу сайтов чтобы разобраться как все сделать лучшим образом, думаю многие с этим сталкивались, хочу сэкономить ваше время и подытожить важные моменты по настройке.
Для тестирования производительности изначально использовал приложение siege, когда меня там цифры стали более-менее радовать, уже начал использовать для тестов замечательный сайт loadimpact.com (количество бесплатных проверок ограничено, не злоупотребляйте сразу). Привожу картинки как было и как стало (сразу хочу заметить увеличение производительности не только из-за настройки nginx).
1. Debian 5 (64) nginx + apache + php-fcgi + eAccelerator + memcache (Апач по сути только для ISPmanager использовался)

2. Debian 5 (32) nginx + apache + mod_php + APC + memcache



Читать дальше
  • +11
  • 08 декабря 2011, 11:12
  • gran

Sisyphus - защита HTML формы

20
Sisyphus
Привет Сообщество!

Вчера днем, многие хабраюзеры могли прочитать о jQuery плагине Sisyphus.

Этот плагин подключается к HTML форме и на лету сохраняет данные в LocalStorage. Если до момента отправки формы рухнет браузер, случайно закроется вкладка или вырубят электричество — данные будут сохранены. При следующем открытии страницы с формой она будет заполнена сохраненными данными.



Плагин Sisyphus для LiveStreet подключает Sisyphus.js к форме создания топика (всех типов).
Для проектов написанных с использованием js-фрэймворка Mootools, jQuery будет загружен автоматически.
Плагин протестирован в 0.4.2 и 0.5.1 версиях LiveStreet.
Плагин не тестировался с WYSIWYG-редакторами. (есть мнение, что не заработает)


Плагин Facebook 0.5

31
Facebook Plugin
Привет Сообщество!

Рад представить вашему вниманию, обновленную версию плагина Facebook.

Плагин поддерживает версии LiveStreet 0.4.2 и 0.5.1
Поддерживаются шаблоны написанные с использованием как mootools, так и jquery.

UPD 23.12.2011: С 13 декабря, JavaScript SDK стал поддерживать OAuth 2.0 для авторизации. Это привело к появлению ошибки при попытке авторизоваться и получить список страниц пользователя на втором шаге мастера настройки. Ошибка исправлена в версии 0.5.1. Спасибо Giorgi за сообщение о неработоспособности.


Подробнее

ORM и ActiveRecord в 0.5 и выше

30
Выход версии 0.5 для меня было нечто большим, чем добавление страницы активности и ленты топиков из подписанных блогов. В новой версии реализованы ORM и ActiveRecord. Вместе они дают мощнейший инструментарий для разработчика, избавляя того от кучи однотипного кода, который приходилось писать каждый раз при разработке плагина. Тот-же форум, о котором будет идти речь в статье, после обновления похудел на 2177 строк кода. В этой статье я хочу углубиться в ORM и AR на примере создания плагина для LiveStreet.


Читаем дальше...

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

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



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

Livestreet Wall

24
Данный плагин реализует функциональность под названием «Стена». Он очень похож на одноименную стену в_контакте и facebook.
Каждый пользователь в своем профиле имеет свою собственную стену. Существует коллективная стена, владельцем, которой является сам сайт. А так же фред-лента, которая содержит поток записей со стен друзей пользователя.
Плагин работает с активным применением технологии ajax.
Возможности пользователя:
— Добавление записи на стену
— Добавление изображения на стену
— Удаление своих записей, а так же чужих записей со своей стены
— Комментирование записей
— Удаление свои комментариев; комментариев, размещенных к записи пользователя; а так же удаление комментариев, размещенных к записям стены пользователя


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

Плагин HolyWars (freepoll) -- социальное голосование

8
Многие, наверно, голосовали за символ олимпиады в Сочи, или были на thebattleofbrands.com?

Плагин позволяет создавать социальные голосования. В качестве голосов считаются ссылки на ответ из социальных сетей (Facebook, ВКонтакте, Twitter). Можно голосовать за фотографии, или тексты. Каждый голос — новое сообщение на странице в соц. сети со ссылкой на Ваш сайт.

При создании поста можно выбрать логотип для каждого ответа и фразу, которые будут в сообщении в соц. сети.

В конфиге можно сделать новый вид поста доступным всем пользователям, или только администраторам.

Посмотреть плагин в работе можно на bestls.17gor.ru/

Плагин платный (цена: $10).

Если кому-то интересно — пишите, пожалуйста, в личку.
  • +2
  • 09 июня 2011, 20:52
  • vlnm

Плагин Must Have Blogs

23
Бывает так, что администратору сайта нужно, чтобы новые пользователи автоматически присоединялись к заданным блогам. Плагин Must Have Blogs позволяет сделать это. А так же позволяет администратору сайта запретить отключаться от заданных блогов.

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

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

19
В 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
  • +6
  • 28 апреля 2011, 00:09
  • ort