+29.60
Рейтинг
72.60
Сила

Alexandr Kachanov

Переопределение методов модулей с помощью ...Hook'ов!

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

Принцип действия этого механизма основан на Hook'ах:
  1. Вызов каждого метода сопровождается выполнением хуков — module_ModuleName_MethodName_before и module_ModuleName_MethodName_after, соответственно ДО и ПОСЛЕ вызова метода модуля. В первом случаи в хук передаются параметры вызова метода, во втором передается результат выполнения метода модуля.
  2. На module_ModuleName_MethodName_before можно повесить специальный хук — delegate, результат выполнения которого и будет «результатом» выполнения метода модуля

Пример:
<?php 
class HookTest extends Hook {
	public function RegisterHook() {
		$this->AddDelegateHook('module_text_parser_before','testHook',__CLASS__,-3);
	}

	public function testHook($aVars) {
		return 'Topic text > '.$aVars[0];
	}
}
?>

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

Адаптация шаблонов под 0.4

Я уже переделывал шаблон под 0.4, но делал это в несколько заходов, к тому же, начал делать тогда, когда сама конструкция еще не устаканилась, и что-то приходилось переделывать несколько раз.

Теперь, как я понимаю, резких телодвижений в обозримом будущем быть не должно. И можно уже смело паковать чемоданы, готовя «нольтришные» сайты к переезду на 0.4. Надеюсь, все с пониманием относятся к тому, что нет пока внятной документации — не до того пока ребятам. Поэтому я сейчас попробую описать отличия в шаблонах для версий 0.3 и 0.4. Думаю, это будет полезно тем, готовится к переезду.


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

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

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

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

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

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


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