Спасибо. Большая честь поучиться у грамотного человека. Завтра буду разбирать как настроить процессор.
Не факт. Все зависит от задачи. К примеру, если задача четко локальная, и точно известно что только с такими классами надо выполнить данную функцию, то с классом получится предпочтительней. Предпочтительней в том плане, что где бы вы ни выполнили инициализацию объекта $modx->getObject() или $som_object->getOne('MyClass'), у вас всегда будет выполнен этот метод и будут получены данные. А вот если задача именно в данном месте получить сопутствующие данные, то процессор может оказаться предпочтительнее, так как в таком случае вы не завязаны на конкретном классе, и даже если там будут данные другого касса, то процессор все равно их получит. Резюме: все зависит от задачи.
Добрый день. Возник такой вопрос: можно ли как-то ресурс modDocument преобразовать в ShopmodxResourceProduct? Из админки не сохраняется. Пробовал сделать из консоли: $id=315;
$x=$modx->getObject('modResource',$id);
$x->set('class_key','ShopmodxResourceProduct');
$s=$modx->newObject('ShopmodxProduct',['class_key'=>'ShopmodxProduct','sm_currency'=>79,'sm_price'=>1]);
$x->addOne($s);
$x->save(); вроде, получилось, но после этого пришлось восстанавливать из резерва базу: вообще все документы перестали сохраняться. Можно, конечно, и руками создать да перенести, там их у меня немного, но хочется все-таки автоматизировать процесс, да и разобраться теперь очень хочется :)
Человек спросил что переопределить, я ответил :) А переопределять класс или процессор писать - это уже другой вопрос, и он совершенно имеет место быть. На усмотрение человека.
Хотя да, в данном случае логичнее было бы просто накидать процессор.
Ну вообще это распространённая практика переопределять методы в классах работы с базой данных, даже тот же migxdb использует этот подход.
Расширяй процессор MIGXbd это делается не сложно и не к чему трогать объекты xpdo