Подключение своей таблицы в MODX Revolution
Добрый день.
В целях реализации разделения прав решил создать свою таблицу и работать с ней.
Создал таблицу, сгенерировал модель по инструкции. Теперь, как я понимаю, с этой таблицей можно работать с помощью стандартных методов ($modx->getObject(), $modx->getCollection()). Однако сначала надо этот новый класс подгрузить.
Таблица называется modx_rehab_access, путь к модели 'core/components/rehab/model/rehab/'. В этой папке сгенерировался файл access.class.php:
UPD. С целью протестировать редактирование своих вопросов, ну и для сообщества, допишу сюда решение проблемы:
С самого начала я все делал правильно, единственное — путь к новому классу нужно указывать только до папки /model/:
В целях реализации разделения прав решил создать свою таблицу и работать с ней.
Создал таблицу, сгенерировал модель по инструкции. Теперь, как я понимаю, с этой таблицей можно работать с помощью стандартных методов ($modx->getObject(), $modx->getCollection()). Однако сначала надо этот новый класс подгрузить.
Таблица называется modx_rehab_access, путь к модели 'core/components/rehab/model/rehab/'. В этой папке сгенерировался файл access.class.php:
<?php
class Access extends xPDOSimpleObject {}
Создаю сниппет:$modx->addPackage('rehab', $modx->getOption('core_path').'components/rehab/model/rehab/',
'modx_rehab_');
$access = $modx->getObject('Access', array('id' => 1));
print_r($access); // Ничего не выводит, хотя в таблице запись есть
print '
Done';
Попробовал взять код из minishopif (!isset($modx->rehab) || !is_object($modx->rehab)) {
$modx->rehab = $modx->getService('rehab','Access',
$modx->getOption('core_path').'components/rehab/model/rehab/', $scriptProperties);
if (!($modx->rehab instanceof rehab)) return '';
}
$access = $modx->getObject('Access', array('id' => 1));
print_r($access); // Тоже пусто
print '
Done';
Подскажите, как правильно обращаться к созданному классу?UPD. С целью протестировать редактирование своих вопросов, ну и для сообщества, допишу сюда решение проблемы:
С самого начала я все делал правильно, единственное — путь к новому классу нужно указывать только до папки /model/:
<?php
$modx->addPackage('rehab', $modx->getOption('core_path').'components/rehab/model/','modx_rehab_');
$access = $modx->getObject('Access',1);
print $access->get('uid');
Комментарии: 12
А в таблице что-то есть?
И еще момент, $modx->getObject извлекает объект, не массив
print_r($access->toArray());
Access — вы точно нигде не ошиблись, у вас есть карта, схема и классы?
И еще момент, $modx->getObject извлекает объект, не массив
print_r($access->toArray());
Access — вы точно нигде не ошиблись, у вас есть карта, схема и классы?
Илья, возможно глупость скажу. Смотри, возьми пвкет Doodles https://github.com/artdevue/Doodles, переименнуй под своё название (как переименовать уэе пописывал Василий где-то, да и можно найти решение), залей себе на сервер. А дальше, уже всё как по маслу…
Блин, это мне что же — для работы с маленькой табличкой целый пакет делать?
Мне не нужно с ней работать из админки, не нужно писать процессоры для нее — нужна просто связь ресурс-пользователь…
Класс уже есть, модель уже готова, xml-схема есть, осталось только указать, откуда класс подгрузить, чтобы работать с таблицей с помощью xPDO, а не прямых запросов в базу…
Может, для каждого пользователя создавать отдельный ТВ и в него записывать, доступен ли ресурс этому пользователю, а потом делать выборку с &tvFilters…
Мне не нужно с ней работать из админки, не нужно писать процессоры для нее — нужна просто связь ресурс-пользователь…
Класс уже есть, модель уже готова, xml-схема есть, осталось только указать, откуда класс подгрузить, чтобы работать с таблицей с помощью xPDO, а не прямых запросов в базу…
Может, для каждого пользователя создавать отдельный ТВ и в него записывать, доступен ли ресурс этому пользователю, а потом делать выборку с &tvFilters…
Покажите xml схему.
Вы уверены, что надо модель подключать с указанием префикса 'modx_rehab_'? Это я так раньше извращался, при автогенерации xml, а вам оно наверное не надо.
Вы уверены, что надо модель подключать с указанием префикса 'modx_rehab_'? Это я так раньше извращался, при автогенерации xml, а вам оно наверное не надо.
<?xml version=«1.0» encoding=«UTF-8»?>
Таблица называется modx_rehab_access, у нее три поля id, did, uid. В поле did буду записывать id ресурса, а в поле uid — id пользователя
Нашел ошибку у себя путь надо было указывать только до 'model/'
Решение найдено. Правильное подключение созданной таблицы:
$modx->addPackage('rehab', $modx->getOption('core_path').'components/rehab/model/','modx_rehab_');
$access = $modx->getObject('Access',1);
print $access->get('uid');
$modx->addPackage('rehab', $modx->getOption('core_path').'components/rehab/model/','modx_rehab_');
$access = $modx->getObject('Access',1);
print $access->get('uid');
Блин))
$modx->addPackage('rehab', $modx->getOption('core_path').'components/rehab/model/','modx_rehab_');
$modx->addPackage('rehab', $modx->getOption('core_path').'components/rehab/model/','modx_rehab_');
Илья, привет! У меня похожая проблема. Можете ли вы помочь советом? Если да то как с Вами связаться можно?
Skype ilyautkin
С десяти до семи вечера по будням я обычно онлайн
С десяти до семи вечера по будням я обычно онлайн
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.