+1.08
Рейтинг
1.97
Сила

Юра

Оптимизация шаблонов

Пролог


Наброски по данной статье лежали ещё с конца зимы и все никак не было времени на её написание, поэтому решил опубликовать её почти «как есть» т.е. с сухими выжимками фактов, без расписанных деталей. Это поможет остальным членам сообщества совершенствовать свои шаблоны.

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

Встречайте: Alto CMS – первый релиз форка LiveStreet'а

6 фото
Встроенная админпанель
image
Говорят, настоящий успех к мастеру приходит тогда, когда начинают делать копии его произведений.

Вот и дорос LiveStreet до того, что настала пора делать первый настоящий форк от него. И зовется этот форк – Alto CMS.

Вообще-то, если верить статистике GitHub'а, то ЛС форкнули уже 99 раз. Но Alto CMS – это первый форк, который вышел в свой первый официальный релиз, и который отныне начинает жить своей собственной жизнью. Сейчас мы постараемся дать ответы на вопросы, которые наверняка возникнут в первую очередь. И, пожалуй, самый первый вопрос…


Подробнее об Alto

Плагин «ViewCount | Количество просмотров (обновление от 11.02.2013)»

В связи с настойчивой просьбой alfer о доработке плагина ViewCount выпущено небольшое обновление.

Теперь в конфигурационном файле плагина "[host]\plugins\viewcount\config\config.php" доступно 2 новых опции (просто процитирую конфиг):
/* 
	true - считаются посещения всех зарегистрированных/авторизованных пользователей кроме автора; 
	false - считаются посещени всех пользователей, кроме автора) 
	*/
	$config['OnlyAuthUser'] = false;
	
	/* 
	true - посещение засчитывается только один раз при открытии топика, 
		в дальнейшем при обновлении страницы (F5 в броузере) кол-во посещений не увеличивается; 
	false - посещение засчитывается каждый раз при обновлении страницы ) 
	*/
	$config['NoRefreshTopic'] = true;


Примечание
Должен заметить, что данное обновление защищает только от случая, когда просмотры наращиваются специально или, возможно, случайно через обновление страницы (F5, F5, F5, ...). Но если пользователь порядочно гуляя по сайту зашел в один топик, потом в другой, а затем снова вернулся к первому, то будет засчитано, что пользователь посетил исходный топик 2 раза. Мне кажется это справедливым и разумным.

Исправлено благодаря kpoxas :
1) При учете кол-ва посещений больше не очищается кэш;
2) Результат наращивания счетчика посещений отображается сразу при открытии топика, а не при следующем открытии как раньше;

Скачать можно тут: livestreetcms.ru/addons/view/467/
А пока не прошел модерацию, тут: rghost.ru/43783988

Оптимизация ЛС, часть 3

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

В одном из топиков по оптимизации мы уже касались темы доработки класса конфига ЛС. В данном топике рассмотрим ещё одну оптимизацию — заменим создание анонимной функции каждый раз при получении ключа на вызов уже созданного объекта. Изначальный код предложил пользователь empirik и данный код является небольшой его модификацией + результаты тестов.

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

Оптимизация ЛС, часть 2

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

Продолжаем эксперименты над движком.

Ахтунг! В данной статье будут приведены примеры кода, которые могут нарушить функциональность некоторых весьма хитро-умных плагинов, которые привязаны к этому механизму. Мне не известен ни один такой плагин, но я не исключаю возможность их существования.

В прошлом топике, где я опубликовал полный список стандартных хуков для ЛС 1.0.1, я обратил внимание на хуки, которые начинаются с префикса module_ — хуки, которые постоянно создаются динамически и вызываются парами до и после вызовов методом модулей. Как и было написано в предыдущем топике — хуки вызываются 486 раз, причем само их количество на «чистой» ЛС значится в 161 штуку.

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

Плагин для IDE PhpStorm - автодополнение

Для разработчиков у нас отличная новость!
Рады представить плагин для IDE PhpStorm (лучшей IDE для разработки на PHP), теперь разрабатывать на LS стало еще проще — плагин поддерживает автодополнения методов LS + есть поддержка наследования через Inherit.

пример автодополнения

Скачать можно на странице docs.livestreetcms.com

Надеемся в Новом Году разрабатывать с помощью LS станет еще приятнее!
С наступающим!

UPD: выложили исходники github.com/livestreet/ide-plugin-phpstorm

Самое узкое место в ЛС - увеличение производительности

Ища пути ускорения движка я постоянно спотыкаюсь об класс конфига (/engine/lib/internal/ConfigSimple/Config.class.php), а именно — меня беспокоит авто замена ключей в конфиге. Такой код мы можем найти в дистрибутиве:

static public function KeyReplace($cfg,$sInstance=self::DEFAULT_CONFIG_INSTANCE) {
  if(is_array($cfg)) {
    foreach($cfg as $k=>$v) {
      $k_replaced = self::KeyReplace($k, $sInstance);
      if($k==$k_replaced) {
        $cfg[$k] = self::KeyReplace($v,$sInstance);
      } else {
        $cfg[$k_replaced] = self::KeyReplace($v,$sInstance);
        unset($cfg[$k]);
      }
    }
  } else {
    if(preg_match('~___([\S|\.|]+)___~Ui',$cfg))
      $cfg = preg_replace_callback(
        '~___([\S|\.]+)___~Ui',
        create_function('$value','return Config::Get($value[1],"'.$sInstance.'");'),
        $cfg
      );
  }
  return $cfg;
}


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

LiveStreet ScreenCast #1 - Введение

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

Это так сказать первый блин комом, строго не судите :) Принимаем вопросы и пожелания как по текущему скринкасты так и на следующие выпуски. Просмотр рекомендуется в HD качестве.