Тема: MODx Revolution

Уроки, советы и ответы на вопросы по программированид cms движка MODx Revolution

Создать TV параметр программно через API MODx — setTVValue()

Чтобы программным путем присвоить значение TV параметру ресурса используется метод setTVValue, следующим образом:

setTVValue ([имя TV параметра или его ID], [строка — значение параметра])

Пример:
$page = $modx->getObject(‘modResource’, 100);

if (!$page->setTVValue(‘mytv’, ‘значение tv параметра’)) {
$modx->log(xPDO::LOG_LEVEL_ERROR, ‘Произошла ошибка при сохранении ТВ’);
}

MODx Revo запрос с использованием NOT IN в методе «where»

В официально документации MODx Revo почему-то пропустили некоторые операторы, которые также можно использовать в запросе к базе данных.

Иногда при выборке требуется использовать оператор MySQL — NOT IN, рассмотрим простой пример использования NOT IN, по сути он такой же как и IN:

$q=$modx->newQuery('modResource');
$q->select(array(
'id as docID',
'parent',
'pagetitle'));
$q->where(array(
'published' => '1',
'cacheable' => '1',
'class_key' => 'modDocument',
'parent:!NOT IN' => array('1','4','5')
));
$result = $modx->getCollection('modResource', $q); Читать

Код создания пользователя MODX Revolution

Для создания пользователей в MODx программным путем необходимо обратиться к объекту modUser и modUserProfile.

PHP код создания пользователя:

// проверка на существование пользователя с таким же именем
$count = $modx->getCount('modUser', array('username' => 'ИМЯ'));
if($count <= 0){//проверка

// создаем новый объект
$user = $modx->newObject('modUser');
// задаем имя пользователя и пароль
$user->set('username', 'ИМЯ');
$user->set('password', 'ПАРОЛЬ');
// сохранение данных
$user->save();

// создаем новый профиль для этого пользователя
$profile = $modx->newObject('modUserProfile');
// заполняем данные по желанию
$profile->set('fullname', 'Фамилия и Имя');
$profile->set('email', '[email protected]');
// присоединяем профиль к ранее созданному пользователю
$user->addOne($profile);

// сохранение данных
$profile->save();
$user->save();

}