Дополнительными свойствами в SkeekS CMS обладают:
- пользователи
- элементы контента
- разделы.
$element = new \skeeks\cms\models\CmsContentElement();
$tree = new \skeeks\cms\models\CmsTree();
$user = new \skeeks\cms\models\CmsUser()
Пример обращения к свойствам модели:
/* @var $element \skeeks\cms\models\CmsContentElement */
$element = \skeeks\cms\models\CmsContentElement::findOne(10);
$element->relatedPropertiesModel->toArray(); //все доступные свойства
$element->relatedPropertiesModel->hasAttribute('name'); //Данное свойство существует?
$element->relatedPropertiesModel->getAttribute('name'); //Значение конкретного свойства
$element->relatedPropertiesModel->getSmartAttribute('brand'); //Значение конкретного свойства, если оно является например значением списка
//Получение доп. свойства у текущего пользователя
\Yii::$app->user->identity->relatedPropertiesModel->getAttribute('city');
//Найти модель раздела по ее id и взять ее свойство
$tree = \skeeks\cms\models\CmsTree::findOne(10);
$tree->relatedPropertiesModel->getAttribute('bgUrl');
Пример сохранения и обновления свойств:
//Свойства текущего пользователя
$userProperties = \Yii::$app->user->identity->relatedPropertiesModel;
$userProperties->city = 'Москва';
$userProperties->age = 11;
//or
$userProperties->setAttribute('city', 'Москва');
$userProperties->setAttribute('age', 11);
//or
$userProperties->setAttributes([
'city' => 'Москва',
'age' => 11
]);
if ($userProperties->save())
{
echo 'Данные сохранены';
} else
{
print_r( $userProperties->getErrors() );
}
Более подробная информация появится позже.