Текущий ресурс / Текущий пользователь
$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)