+17.20
Рейтинг
49.78
Сила

Алексей

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

Недавно перешел с шаред хостинга на 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


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

Не верный вывод timezone для публикаций и комментариев

Столкнулись с не верным выводом времени для комментариев на сайте: топик размещён только в 14.00, а комментарии к нему уже с 13.00 (спасибо за отмену перевода стрелок).

Решается, заменой в config.php date_default_timezone_set('Europe/Moscow');
На универсальное отклонение в часах: date_default_timezone_set('Etc/GMT-4');

Для Москвы сейчас верно -4 (раньше было -3), да минус — это такая фича, в доке описанно довольно понятно. (Выдержка: The current Etc/GMT-4 time zone offset is: UTC/GMT +4 hours)

Может кому пригодиться.

Дополнительное поле при создании фотосета

Дополнительное поле при создании фотосета

HOWTO: Для 0.5.x
Шаблон: new

Спасибо nickostyle за вдохновение и напутствие :)

Цель: создать дополнительное поле, в фотосет

  • Часть I Добавление дополнительного поля при создании фотосета
  • Часть II Скрытие дополнительного поля от пользователей (видеть поле могут только администраторы)

Поехали…

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

Дополнительное поле при создании топика

Здравствуйте, довольно актуальная тема на 0.5.x

Дополнительное поле при создание топика

Сразу хочу сказать спасибо:
bas eXtravert bamboo

Источники: HOWTO: Дополнительные поля при создании топика — подправил адреса к файлам + добавил русского языка

Цель:
  • Часть I создание дополнительного поля в шаблоне new под 0.5.1
  • Часть II опубликованное дополнительное поле видно только администраторам


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

Плагин Static Page его меню подменю /Решено

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

Данные доработки сделаны на примере шаблона new-jquery и на версии LS 0.5 (на других не тестил)

Все что нам нннужно:

1) Создаем хук, идем в файл plugins/page/classes/hook/HookPage.class.php

Добавляем в метод
RegisterHook
строку
$this->AddHook('template_main_sub_menu','Sub_Menu');


Добавляем метод новый Sub_Menu в класс PluginPage_HookPage
public function Sub_Menu() {
		$aPages=$this->PluginPage_Page_GetPages(array('main'=>1,'active'=>1));
		$this->Viewer_Assign('aSubPagesMain',$aPages);
                $this->Viewer_Assign('aServerUri',$_SERVER['REQUEST_URI']);
		return $this->Viewer_Fetch(Plugin::GetTemplatePath(__CLASS__).'main_sub_menu.tpl');
	}


2)Далее пилим в plugins/page/templates/skin/new-jquery и создаем там файл «main_sub_menu.tpl» со след содержимым
{assign var="arrServerUri" value="/"|explode:$aServerUri}
<ul class="menu">
{foreach from=$aSubPagesMain item=oPage}
   {assign var="sub_url" value="/"|explode:$oPage->getUrlFull()}
      {if $sEvent==$sub_url.0}
       <li {if $sAction=='page' and $sub_url.1==$arrServerUri.3} class="active" {/if}>
          <a href="{router page='page'}{$oPage->getUrlFull()}/" >{$oPage->getTitle()}</a>
       </li>
      {/if}
{/foreach}
</ul>


3)Создаем новый файл темплайт «menu.page.tpl» в папке /templates/scin/new-jquery/
туда добавляем
{hook run='main_sub_menu'} 


4) Идем /templates/skin/new-jquery/nav.tpl и добавляем туда

{if $sAction=='page'}
	{include file="menu.page.tpl"}
{/if}


Теперь дочерние страницы будут именно там, где они должны быть.
И нет необходимости при создании дочерних страниц их в рукопашную прописывать.

ORM и ActiveRecord в 0.5 и выше

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

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

Масштабирование картинок

Приветствую всех.
Есть такая необходимость: после добавления изображения в топик оно масштабируется до указанных в конфиге размеров (дефолт = 500). И после того, как оно загрузилось на сервер, оно там сохраняется уже в уменьшенном виде.
Возможно ли сделать так, чтобы в топик вставлялось уменьшенное изображение, а при клике по нему в новом окне просто открывалось оригинальное изображение, которое без уменьшения загрузилось на сервер? Т.е. фактически масштабирование должно влиять только на вставляемое в топик изображение, а не на оригинал, хранящийся на сервере.
Сможет кто-то подсказать как реализовать?
Заранее спасибо.

Плагин «Достижения, медали и награды пользователя»


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

В плагине есть общий список правил, где регулируются глобальные правила для получения статуса (рейтинг, сила, количество топиков и т.п.), список ручных назначений, где для определенного пользователя можно назначить ему награду и/или медаль, а также черный список, в котором можно запретить получение любых наград на сайте для определенных пользователей, независимо от их показателей (рейтинг и т.п.).



Основные настройки выполняются через веб интерфейс.
Плагин поддерживает шаблон «социал».

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