Обновления ядра до 0.4.2

 
доброе утром. у меня вопрос к вам такой:
у меня стоит ядро на сайте 0.4.1 как обновить его до 0.4.2?
  • 0
  • 31 августа 2011, 10:54
  • bagon

Где скачать ядро 0.4.2 ?

 
Подскажите где скачать ядро версии 0,4,2? Уже гуглил не нашел :(

Решил перековырять немного ядро

5
Мои нововведения:
  • Хуки вокруг инициализации модулей _before и _after за счет методов InitModule
  • Переработанный __autoload
  • Получение информации о классе методом GetClassInfo вплоть до пути к класс-файлу

Плюсы
  • Никаких более регулярок для парсинга имени класса в других скриптах, всё в одном месте
  • Нет более вилок в коде по поводу регистра в именах классов и методов. Везде учитывается регистр (собственно, чем нам грозит php6, насколько я помню)
  • Стандартные хуки вокруг инициализации модулей — это просто прекрасно, я считаю, мне часто нужны были
  • func_list_plugins() — замена куче дублирующегося кода
  • Переработанный __autoload автоматом инклюдит все возможные классы, имена которых описаны по правилам ядра.

Сырцы
engine/classes/Engine.class.php raw
engine/modules/hook/Hook.class.php raw

func_list_plugins() (поместить в engine/include/function.php)
function func_list_plugins($bAll = false){
	$sPluginsDir = Config::Get('path.root.server').'/plugins';
	$sPluginsListFile = $sPluginsDir.'/plugins.dat';
	$aPlugin = array();
	if($bAll){
		$aPluginRaw = array();
		$aPaths = glob("$aPluginRaw/*", GLOB_ONLYDIR);
		if($aPaths)
		foreach($aPaths as $sPath){
			$aPluginRaw[] = basename($sPath);
		}
	}else{
		$aPluginRaw = @array_map('trim', file($sPluginsListFile));
	}
	if($aPluginRaw)
	foreach($aPluginRaw as $sPlugin){
		$sPluginXML = "$sPluginsDir/$sPlugin/plugin.xml";
		if(is_file($sPluginXML)){
			$aPlugin[] = $sPlugin;
		}
	}
	return $aPlugin;
	
}


Давайте потестим и обсудим, насколько всё это полезно?

зыж. модифицированное ядро отлично работает на моей тестовой площадке livestreet.ochecho.ru/
  • 0
  • 13 августа 2010, 15:27
  • 1d10t

Использование плагинов в v.0.4

58
Безболезненное расширение функционала — достаточно проблематичный вопрос (под «безболезненностью» я понимаю весь спектр удобства для пользователей движка).

Я думаю, вы еще не забыли, что для добавления новых возможностей в версиях до 0.3.1 включительно используются Хаки и Модули. При этом установка любого стороннего творения дело достаточно хитрое и небезопасное, часто требующее ориентирования в архитектуре и особенностях движка. Для преодоления этих проблем в ядро v.0.4 была введена система плагинов:


К чему мы стремились создавая систему плагинов?

а) расширения функционала (плагины) можно просто установить и также просто убрать (а вдруг не понравилось), сложность этого процесса не зависит от количества расширений, разветвленности структуры их каталогов и т.д.;
б) установка внешних расширений (плагинов) не усложняет обновление основного ядра;



Для тех, кого заинтересовали подробности

Обработка изображений: crop, watermark, скругление углов

40


В новой версии livestreet намного улучшена работа с изображениями (и в плане качества, и в плане гибкости). Для обслуживания всевозможных операций с изображениями отведен специальный engine-модуль Image.

Коротко о том, что появилось нового:

1. Решена проблема с некрасивым ресайзом неквадратных аватарок (путем предварительного вырезания наибольшего возможного квадрата).

2. Устранены «почти» все проблемы с обработкой alpha и non-alpha прозрачности («почти»=«на столько на сколько это вообще возможно сделать с помощью PHP+GD2»). По крайней мере прозрачные png теперь можно использовать в аватарках спокойно.

3. Формирование HTML кода выводимого изображения централизировано в одной функции Image_BuildHTML(), которая запрашивает путь к изображению и дополнительные параметры (title,alt,align).

4. Watermark: возможность автоматически добавлять на загружаемые изображения надписи или изображения с достаточно гибкой конфигурацией (пример надписи см выше).

5. Закругление углов изображения.

О том, как пользоваться 4 и 5 поговорим подробнее.


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

Новые возможности форматирования дат

34
В версии 0.4 значительно улучшены возможности по работе с датами. Ввиду большого числа писем по этому поводу, опишу здесь основные моменты и правила пользования новыми параметрами форматирования дат:

0. Вступление.

За оформление даты в Smarty-шаблоне отвечает тот же, что и раньше, smarty-тег {date_format}. Тег требует только один обязательный параметр 'date' — собственно дата. Простейший вариант вывода:
{date_format date=$oTopic->getDateAdd()}

в результате получаем самый обычный:
10 декабря 2009, 00:35

Информация для разработчиков: date_format работает теперь не через функцию в function.php, а через специально написанный для движка smarty-плагин.



Дополнительные параметры формата

Новая система безопасности ядра

12
UPDATE. По результатам обсуждений в систему защиты внесены изменения — откорректировал описание в топике. Особенно большое спасибо benone, Wizard, onthefly за активное обсуждение проблемы.

Раньше в движке для обеспечения защиты от несанкционированных действий использовалась проверка переменной $_SERVER['HTTP_REFERER']. Но иногда это создавало дополнительные проблемы, поэтому было решено ввести новый механизм защиты (готов к использованию начиная с ревизии #551).

Защита данных, полученных через GET-запрос.

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

Основная идея решения такова:

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

Эволюция Viewer: управление блоками, слияние и минимизация JS/CSS

23
На SVN работа над LS0.4 кипит, начну понемногу описывать нововведения. Итак, сегодня у нас на очереди модуль Viewer, который постепенно «обрастает» очень вкусными полезностями. В этот модуль добавлено:

1. Управление выводимыми на страницу js,css файлами.

2. Управление выводимыми на страницу блоками через конфигурацию.

Подробнее под катом.



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

Новая внутренняя почта LiveStreet

17
На SVN закончена работа над новым функционалом внутренней почты. Коротко об основных нововведениях:




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

Новая структура и новые конфиги

4
В движке наметились кое какие архитектурные изменения. А именно:
  • изменение структуры каталогов, вынос ядра в отдельный каталог
  • новая система конфигов через массивы
В корне движка появился каталог /engine/, он содержит все файлы относящиеся непосредственно к ядру(фреймворку) LiveStreet. Это придает гибкости при реализации нескольких проектов на одном ядре, а так же позволяет обновлять ядро независимо от проекта. Теоретически сам каталог /engine/ можно вообще вынести за пределы DOCUMENT_ROOT.
Новая система конфигов позволит гибко управлять ими из любой точки движка. Также появилась возможность легкого пользовательского переопределения конфига.

Все эти нововведения призваны расширить и в тоже время упростить работу с движком.
  • +9
  • 19 августа 2009, 17:28
  • ort