Алгоритм работы Neutrino Atomic Edition

Теги: dev

Для тех, кто желает ознакомиться с принципом работы Neutrino Atomic Edition с целью дальнейшего написания плагинов или тем оформления, предлагается простое описание алгоритма работы этой CMS.

Подробнее...
  09-12-2012, 20:45

 Новая функция hook()

Теги: dev

Neutrino Atomic Edition стала еще более гибкой и расширяемой с полноценной поддержкой хуков, основанной на моей авторской технологии.

Код функции:

function hook($result){
    global $hook;
    $d_backtrace=debug_backtrace();
    $backtrace=is_array($d_backtrace[1])?$d_backtrace[1]:$d_backtrace;
    $functions=@$hook[$backtrace['function']];
    $args=$backtrace['args'];
    if(is_array($functions)){
        ksort($functions);
        foreach($functions as $function)
            if($function&&function_exists($function))
                $result=$function($result,$args);
    }
    return $result;
}

хукаются все функции, объявленные в lib/functions.php. В последующих версиях, вся функциональность будет переведена в функции и подключена к системе хуков.

Для разработчиков: чтобы хукнуть функцию ядра, нужно в двумерном массиве $hook добавить во вложенный массив под ключом = имени хукаемой функции элемент со значением = имени функции, которую надо выполнить. В качестве параметров, хук-функция должна принимать переменную - return хукаемой функции, и массив - аргументы, переданные хукаемой функции. Возвращать хук-функция должна данные, которыми нужно подменить вывод хукаемой функции.

Пример:

#Хукаем функцию ядра clean_str()
#Объявляем произвольную функцию согласно спецификации
function my_function($return,$args){
         return htmlentities($args[0]);
}

#Регистрируем my_function() в качестве хука к clean_str()
$hook['clean_str'][]='my_function';

Готово. Теперь при каждом запуске clean_str(), результат ее работы перед выводом будет обрабатываться еще и функцией my_funciton.

На данный момент эта технология реализована в SVN (редакция 102).

Эти изменения после тестирования будут включены в релиз 0.8.7, который не за горами.

  31-08-2009, 22:43

 Создание тем оформления для Neutrino atomic edition

Теги: dev
Под катом - полная официальная документация для разработчиков тем оформления Neutrino Atomic Edition
  30-08-2009, 19:45