Небольшое описание, о том как пользоваться modx revo api

2437 23 Август 2016 1 документация, modx revo, xPDO
MODx Revo API (xpdo)

Текущий ресурс / Текущий пользователь

$currentResource = $modx->resource;
$currentUser = $modx->user;

Если пользователь не залогинен в контексте, имя пользователя будет '(anonymous)'.

Поля для каждого объекта доступны через метод get(). getContent() для содержания (контента) ресурса.

$intro = $modx->resource->get('introtext');
$UserID = $modx->user->get('id');
$content = $modx->resource->getContent();

Ищем другие объекты.

$resource = $modx->getObject('modResource', $id);

Ссылки на все объекты MODx можно получить с помощью метода $modx->getObject().

$object = $modx->getObject('object-class-name', array('name' => 'object-name' ));

Или по id.

$object = $modx->getObject('object-class-name', $object-id);

Получить ссылку на чанк по имени.

$chunk = $modx->getObject('modChunk',array('name' => 'chunkName' ));

Получить ссылку на чанк по id.

$chunk = $modx->getObject('modChunk',$chunkId);

Получить опубликованный ресурс по имени (pagetitle).

$document = $modx->getObject('modResource',array( 
    'published' => 1, 
    'pagetitle' => 'Джузеппе'
    ));

Или так.

$name = 'modResource';
$criteria = array( 
    'published' => 1, 
    'pagetitle' => 'Джузеппе'
    )
$document = $modx->getObject($name,$criteria);

Для получения массива документов, отвечающих вашим критериям, вы можете использовать getCollection() вместо getObject().

Такой пример выведет все опубликованные и доступные для поиска ресурсы.

$docArray = $modx->getCollection('modResource',array( 
    'published' => 1, 
    'searchable' => 1
    ));

Еще getCollection() не возвращает массив PHP а возвращяет массив объектов. Получить массив PHP, можно с помощью метода объекта toArray().

$phpArray = $object->toArray();

Если вы хотите получить несколько соответствующих объектов, связанных с одним объектом, вы можете использовать метод объекта getMany(). Предполагая, что вы использовали getObject(), чтобы получить ссылку на ресурс или шаблона, вы можете получить связанные с ними TV как показано здесь:

$tvs = $template->resource->getMany('TemplateVars');

Чтобы получить дочерние ресурсы:

$children = $resource->getMany('Children');

getObject() и getOne() возвращают ноль, если запрашиваемый объект не найден, а getMany() и getCollection() возвращает пустой массив, если нет результатов приведенным критериям.

Все отдельные ресурсы (документ, гиперссылки, символические ссылки и статические ресурсы) могут быть получены с помощью:

$modx->getObject('modResource',$criteria);

И по отдельности.

$modx->getObject('modDocument',$criteria);
$modx->getObject('modWeblink',$criteria);
$modx->getObject('modSymlink',$criteria);
$modx->getObject('modStaticResource',$criteria);

Отдельные элементы (чанки, сниппеты, плагины, шаблоны, TV переменные и категории) с использованием ключа объекта желаемого класса.

$modx->getObject('modChunk',$criteria);
$modx->getObject('modSnippet',$criteria);
$modx->getObject('modPlugin',$criteria);
$modx->getObject('modTemplate',$criteria);
$modx->getObject('modTemplateVar',$criteria);
$modx->getObject('modCategory',$criteria);

Системные настройки

$modx->getOption('site_name');

Получение поля объекта с помощью $object->get()

После того как вы получили объект с помощью getObject(), getCollection(), или getMany(), вы можете использовать с $object->get() для получения любого поля объекта по названию.

$resource = $modx->getObject('modResource',1);
$pagetitle = $resource->get('pagetitle');
$longtitle = $resource->get('longtitle');
$id = $resource->get('id');
...

Связи $object->getOne() и $object->getMany() с объектами.

Чтобы получить родительский ресурс как объект MODx.

$parentRes = $resource->getOne('Parent');

Получения пользователем объекта пользователя, который создал ресурс.

$user = $resource->getOne('CreatedBy');

Объект пользователя содержит только ID, имя пользователя и хэш пароля пользователя. Чтобы получить больше, вам нужно получить объект modUserProfile, связанный с этим пользователем.

$user->getOne('Profile');

Выпихнуть поля можно так.

$profile->get('fullname');
$profile->get('website');
...

ТВшки (Template Variables)

Получение обработанного значение TV текущего документа.

$modx->resource->getTVValue('image');

Или.

$modx->resource->getTVValue($id); // Указываем id TV

Или получить значение TV по pagetitle нужного нам ресурса.

Такой код выведет значение image ресурса со значением pagetitle = Джузеппе.

$resource = $modx->getObject('modResource',array(
    'pagetitle'=>'Джузеппе'
    ));
$val = $resource->getTVValue('image');

Можно еще так.

// id ресурса из которого получим TV
$id = '17';
// какое TV 
$tv = $modx->getObject('modTemplateVar', array(
    'name'=>'image'
));
// получаем значение TV ресурса.
$value = $tv->getValue($id);
// Обрабатываем TV и получачем что хотели.
$processed = $tv->renderOutput($id);

Изменение объектов

После получения ссылки на объект с помощью $modx->getObject(), вы можете изменить значение ее поля.

$resource = $modx->getObject('modResource', '1');
$resource->set('pagetitle', 'Джузеппе');
$resource->save();
// теперь у ресурса с id 1 значение поля pagetitle = Джузеппе

Для изменения или создания основного поля ресурса или элемента (например, "Content" области ресурса, содержание чанков, кодов сниппетов), всегда используйте setContent().

$object->setContent('Джузеппе');
$object->save();

Создание нового объекта

$object = $modx->newObject('modChunk');
$object->set('name', 'juzeppe');
$object->setContent('Тут у нас Джузеппе.');
$object->set('description', 'Эт я');
$object->save();
// теперь у нас есть чанк "juzeppe" с контентом "Тут у нас Джузеппе." и описанием "Эт я"

Общие объекты и некоторые их свойства.

Вот список наиболее часто используемых объектов с их имена классов и имена некоторых из своих полей и типов. Связанных объектов, доступных с getOne() и getMany() приведены ниже поля для каждого объекта.

modResource

  • id (int - идентификатор ресурса)
  • pagetitle (text)
  • isfolder (int 0/1)
  • longtitle (text)
  • description (text)
  • alias (text)
  • published (int 0/1)
  • introtext (text - оно же Аннотация)
  • content (text)
  • template (int - id идентификатор шаблона)
  • menuindex (int)
  • searchable (int 0/1)
  • cacheable (int 0/1)
  • createdby (int - id идентификатор пользователя)
  • editedby (int - id идентификатор пользователя)
  • deleted (int 0/1)
  • deletedby (int - id идентификатор пользователя)
  • publishedby (int - id идентификатор пользователя)
  • createdon (date - дата первого сохранения)
  • publishedon (date - дата публикации последнего изменения)
  • editedon (date - дата редактирования его в последний раз)
  • menutitle (text)
  • donthit (int 0/1) (устарел)
  • haskeywords (int 0/1) (устарел)
  • hasmetatags (int 0/1) (устарел)
  • hidemenu (int 0/1)
Связанные объекты доступны getOne()
  • Parent (class = "modResource")
  • Template (class = "modTemplate")
  • CreatedBy (class = "modUser")
  • EditedBy (class = "modUser")
  • DeletedBy (class = "modUser")
  • PublishedBy (class = "modUser")
  • ContentType (class = "modContentType")
  • Context (class = "modContext")
Связанные объекты доступны в getMany()
  • Children (class = "modResource")
  • TemplateVars (class = "modTemplateVar")
  • TemplateVarTemplates (class = "modTemplateVarTemplate")

modChunk

  • name (text)
  • description (text)
  • category (int - category id number)
  • snippet (text - chunk's contents)
  • locked (int 0/1- то есть заблокирован для редактирования)
Связанные объекты доступны getOne()
  • Category (class = "modCategory")
Связанные объекты доступны в getMany()
  • PropertySets (class = "modElementPropertySet")

modSnippet

  • name (text)
  • description (text)
  • category (int - category id number)
  • snippet (text - snippet's contents)
  • locked (int 0/1 - AKA locked for editing)
  • properties (text)
Связанные объекты доступны getOne()
  • Category (class = "modCategory")
Связанные объекты доступны в getMany()
  • PropertySets (class = "modElementPropertySet")

modPlugin

  • name (text)
  • description (text)
  • category (int - category id number)
  • plugincode (text - plugin's contents)
  • locked (int 0/1 - AKA locked for editing)
  • properties (text)
  • disabled (int 0/1)
Связанные объекты доступны getOne()
  • Category (class = "modCategory")
Связанные объекты доступны в getMany()
  • PropertySets (class = "modElementPropertySet")

modTemplate

  • templatename (text)
  • description (text)
  • category (int - category id number)
  • content (text)
  • icon (text)
  • locked (int 0/1)
Связанные объекты доступны getOne()
  • Category (class = "modCategory")
Связанные объекты доступны в getMany()
  • PropertySets (класс = "modElementPropertySet")
  • TemplateVarTemplates (класс = "modTemplateVarTemplate")

modTemplateVar

  • type (text)
  • name (text)
  • caption (text)
  • description (text)
  • category (int - category id)
  • locked (int 0/1)
  • elements (text)
  • rank (int)
  • display (text)
  • display_params (text)
  • default_text (text)
Связанные объекты доступны getOne()
  • Category (class = "modCategory")
Связанные объекты доступны в getMany()
  • PropertySets (class = "modElementPropertySet")
  • TemplateVarTemplates (class = "modTemplateVarTemplate")
  • TemplateVarResources (class = "modTemplateVarResource")
  • TemplateVarResourceGroups (class = "modTemplateVarResourceGroup")

modUser

  • username (text)
  • password (text)
  • cachepwd (text)
Связанные объекты доступны getOne()
  • Profile" (class = "modUser")
Связанные объекты доступны в getMany()
  • CreatedResources (class = "modResource")
  • EditedResources (class = "modResource")
  • DeletedResources (class = "modResource")
  • PublishedResources (class = "modResource")
  • SentMessages (class = "modUserMessage")
  • ReceivedMessages (class = "modUserMessage")
  • UserSettings (class = "modUserSetting")
  • UserGroupMembers (class = "modUserGroupMember")

modUserProfile

  • fullname (text)
  • role (int)
  • email (text)
  • phone (text)
  • mobilephone (text)
  • blocked (int 0/1)
  • blockeduntil (int - date)
  • blockedafter (int - date)
  • logincount (int)
  • lastlogin (int - date)
  • thislogin (int - date)
  • failedlogincount (int)
  • sessionid (text)
  • dob (int - date)
  • gender (int 0/1)
  • country (text)
  • state (text)
  • zip (text)
  • fax (text)
  • photo (text)
  • comment (text)
Связанные объекты доступны getOne()
  • User (class = "modUser")
  • UserRole (class = "modUserRole")

Комментарии (0)


    Оставить комментарий Все поля обязательны к заполнению.