Объекты - один из базовых компонентов в архитектуре системы. Это основные сущности, с которыми работает CMS. Объекты разделяются на типы: пользователи, баннеры, и т.д..
В этом примере показано, как получить доступ к объекту и его свойств. Мы возьмем объект текущего пользователя и выведем некоторые его свойства.
<?php
header("Content-type: text/html; charset=utf-8");
include "standalone.php";
/*
Документация: работа с объектами. Получение объектов и свойств.
*/
OutputBuffer::current('HTTPOutputBuffer');
//Получаем id текущего пользователя
$permissions = permissionsCollection::getInstance();
$currentUserId = $permissions->getUserId();
echo "Id текущего пользователя: \"", $currentUserId, "\"<br />\n";
//Получаем объект, который соответствует текущему пользователю
$objects = umiObjectsCollection::getInstance();
$userObject = $objects->getObject($currentUserId);
//Проверяем, получился ли у нас объект
if($userObject instanceof umiObject) {
echo "Логин текущего пользователя: \"", $userObject->getValue("login"), "\"<br />\n";
echo "Имя текущего пользователя: \"", $userObject->getValue("fname"), "\"<br /><br />\n";
echo "Id типа данных объекта текущего пользователя: \"", $userObject->getTypeId(), "\"<br />\n";
} else {
echo "Ошибка. Объекта с таким id не существует.<br />\n";
}
?>
В результате скрипт должен показать примерно такой результат.
Id текущего пользователя: "2373"
Логин текущего пользователя: "Гость"
Имя текущего пользователя: "Посетитель"
Id типа данных объекта текущего пользователя: "4"
Теперь попробуем создать нового пользователя и установить ему некоторые свойства.
<?php
header("Content-type: text/html; charset=utf-8");
include "standalone.php";
/*
Документация: работа с объектами. Создание новых объектов и редактирование свойств.
*/
//Получаем id типа данных "Пользователь"
$objectTypes = umiObjectTypesCollection::getInstance();
$usersObjectTypeId = $objectTypes->getBaseType("users", "user");
//Такие свойства будет иметь новый пользователь
$userLogin = "mylogin"; //Логин
$userPassword = "mypassword"; //Пароль
$userFirstName = "Bat"; //Имя
$userLastName = "Man"; //Фамилия
$userEmail = "batman@lgh.org"; //E-mail
$objects = umiObjectsCollection::getInstance();
//Создаем новый объект типа "Пользователь" и получаем его id
$newUserId = $objects->addObject($userLogin, $usersObjectTypeId);
echo "Новый пользователь с id: \"", $newUserId, "\"<br />\n";
//Получаем объект пользователя
$newUser = $objects->getObject($newUserId);
if($newUser instanceof umiObject) {
//Заполняем объект пользователя новыми свойствами
$newUser->setValue("login", $userLogin);
$newUser->setValue("password", md5($userPassword)); //Пароль должен храниться в MD5
$newUser->setValue("fname", $userFirstName);
$newUser->setValue("lname", $userLastName);
$newUser->setValue("e-mail", $userEmail);
$newUser->setValue("is_activated", true); //Без этого свойства пользователь будет неактивен
//Подтверждаем внесенные изменения
$newUser->commit();
echo "Все получилось!<br />\n";
echo "Создан пользователь ", $newUser->getValue("login");
echo " (", $newUser->getValue('fname'), " ", $newUser->getValue('lname'), ")";
} else {
echo "Ничего не вышло.";
}
?>
Мы должны получить примерно такой результат.
Новый пользователь с id: "27151"
Все получилось!
Создан пользователь mylogin (Bat Man)
А теперь удалим созданного пользователя.
<?php
header("Content-type: text/html; charset=utf-8");
include "standalone.php";
/*
Документация: работа с объектами. Удаление объектов из системы.
*/
$userObjectId = 27151;
$objects = umiObjectsCollection::getInstance();
if($objects->delObject($userObjectId)) {
echo "Объект #{$userObjectId} удален.";
} else {
echo "Удалить объект #{$userObjectId} почему-то не получилось. Скорее всего, он вообще не существует.";
}
?>
Если вы не забыли поменять $userObjectId, то скрипт сообщит о том, что пользователь успешно удален.
Объект #27151 удален.
При повторном запуске мы получим сообщение о том, что такого объекта больше не существует.
Удалить объект #27151 почему-то не получилось. Скорее всего, он вообще не существует