Ну, я думаю, что этот - самый подходящий. Он именно тогда, когда объект (его данные) берется из БД, а не когда новый создается или типа того.
Да, собственно вопрос и был в том КАКОЙ метод лучше переопределить )
Хорошо, это "ваш" класс, раз вы ему переопределили метод save(). Так что вам мешает тогда, к примеру, переопределить метод _loadInstance()? Типа так: public static function _loadInstance(& $xpdo, $className, $criteria, $row) {
$instance = parent::_loadInstance($xpdo, $className, $criteria, $row);
/*
some code, for example $instance->set('foo', $foo);
*/
return $instance;
}
Ну собственно был переопределён метод toArray, данный случай удовлетворяет, но если знаете лучшее место для добавления произвольных дынных - буду признателен если расскажите.
Нет, к сожалению процессор это не то о чём я подумал - не подходят.
Значит задача стоит так: Есть всем известный MIGXdb, он умеет в беке создавать таблички связанные с базой данных, что позволяет добавлять/редактировать записи таблицы без программирования собственной CMP и контроллеров. Но данный компонент работает только с одной таблицей - для этого в его параметры нужно указать класс прописанный в схеме базы данных. Вся загвоздка в том что хотелось бы добавляя данные в одну таблицу одно передаваемое поле парсить (банальный explode) и записывать как строки в связанную таблицу - с этим проблем нет, я переопределил в моём классе метод save и отслеживаю передачу этого поля, затем сохраняю и запускаю parent::save(); Теперь обратная задача - при редактировании загрузить в поле данные из связанной таблицы предварительно собрав их в одну строку. Я вижу такую логику: в классе прописанном в схеме данных переопределить метод который достаёт дынные из базы и записывает их в массив, добавив туда извлечение нужных мне данных. Сейчас я обнаружил что можно переопределить процессор с которым будет работать MIGXdb, возможно это лучшее решение или быть может проще расширить класс? Что скажите?
У меня ощущение, что просто не хватает прав на папку. Такое бывает. Права на запись в имеющуюся папку есть (она была установлена с нужными правами), а новая папка создается с лимитированными правами. Вы папку кеша через файловый менеджер MODX-а удалить можете? И смотрите логи php/apache, что там пишется? Да и в логи MODX-а гляньте.
Белый экран - 99.99% критическая ошибка php. Зайдите в core/config/config.inc.php и пропишите где-нибудь в начале ini_set('display_errors', 1); Если данная настройка не запрещена, то на странице вы увидите сообщение об ошибке.
Вопрос: это ваш собственный класс, расширяющий xPDOObject, или вы хотите в родной класс добавить плюшек?
Подскажите пожалуйста, какой метод можно переопределить, чтобы после того как данные были прочтены из базы дописать в текущий объект ещё параметры взятые их другого места ( к примеру из файла ). Постановка задачи именно такая - связи не подходят, нужно чтобы именно этот объект брал дополнительные данные из другого места и добавлял их к тем что были получены из таблицы.