Вот и еще одна неприятность.
В старом варианте было удобно запрашивать аяксом данные в виде:
public function loadContent() {
def_module::flush('555');
}
т.о. при обращении по урлу /content/loadContent/ дается ответ '555'.
Теперь - фиг. Сперва отрабатывает основной шаблон домена! Зачем???
Исправлено 02.04.2012
Новый шаблонизатор и аякс.
1. Теперь всегда при обращении по урлу /имя_модуля/имя_метода/ отрабатывает шаблон по умолчанию Даже если переключиться в старый формат шаблонов. Зачем такое сделаи я не понимаю, но увы.
Получается, кердык всем старым сайтам.
Избавиться от этой напасти можно заменой урла на /имя_модуля/имя_метода.json или /имя_модуля/имя_метода.xml
слава богу, юмисофты догадались не отдавать автоматом и заголовки.
Вызов в конце метода def_module::flush($result_string, $headers); отдает нужный результат без дополнительного оформления.
2. Инициализация кастомных классов.
Пример http://api.umi-cms.ru/module_dev.newTemplates.html
Здесь оказался нюанс.
Если инициировать некую переменную в конструкторе класса
private $e;
public function __construct() {
$this->e = '445544';
}
то к ней нельзя будет обратиться из других методов, получаем ошибку "вызов необъявленного свойства".
Инициализацию ее следует поместить в публичный метод и вызывать этот метод из конструктора, используя ссылку на родительский класс $self
private $e;
public function __construct($self) {
$self->setIniVals();
}
public function setIniVals(){
$this->e = '445544';
}
При этом декларируемая переменная может быть private, но медод, ее инициирующий обязательно public
Особенность.
Учите, что инициализация кастомного класса происходит даже тогда, тогда интуитивно этого не ожидается, например, при вызове autothumbs.php
Не верьте написанному в документации
<?php
$permissions['content'][] = 'testMenu';
?>
На самом деле писать надо копируюя синтаксис как в папке основных классов.