Source for file UserProfile.class.php
Documentation is available at UserProfile.class.php
* Содержит класс UserProfile
* @copyright Energine 2006
//require_once('core/modules/share/components/DBDataSet.class.php');
//require_once('core/framework/AuthUser.class.php');
* Форма редактирования данных пользователя
public function __construct($name, $module, Document $document, array $params = null) {
parent::__construct($name, $module, $document, $params);
protected function main() {
if (!$this->document->user->isAuthenticated()) {
* Переопределен параметр active
protected function save() {
$_SESSION['error'] = true;
$this->response->redirectToCurrentSection('error/');
if ($_POST[$this->getTableName()]['u_password'] != $_POST['u_password2']) {
unset ($_POST['u_password2']);
$_SESSION['saved'] = true;
$this->response->redirectToCurrentSection('success/');
//Отлавливаем все ошибки которые могли произойти при сохранении в БД, чтобы вывести нужную информацию об ошибке на уровне компонента
$errors = $this->saver->getErrors();
foreach ($errors as $errorFieldName) {
$message = $this->saver->getDataDescription()->getFieldDescriptionByName($errorFieldName)->getPropertyValue('message');
$this->response->redirectToCurrentSection();
$this->response->redirectToCurrentSection();
* Метод, выводящий сообщение об успешном сохранении данных
//если в сессии нет переменной saved, значит этот метод пытаются дернуть напрямую. Не выйдет!
if (!isset ($_SESSION['saved'])) {
//Мавр сделал свое дело...
unset ($_SESSION['saved']);
$dd->addFieldDescription($ddi);
$di = new Field('success_message');
$this->document->componentManager->getComponentByName('breadCrumbs')->addCrumb();
* Метод, выводящий сообщение о неверно введенном пароле
protected function error() {
//если в сессии нет переменной error, значит этот метод пытаются дернуть напрямую. Не выйдет!
if (!isset ($_SESSION['error'])) {
//Мавр сделал свое дело...
unset ($_SESSION['error']);
$dd->addFieldDescription($ddi);
$di = new Field('error_message');
$this->document->componentManager->getComponentByName('breadCrumbs')->addCrumb();
* Для метода success переопределен метод создания объекта метаданных
* @return DataDescription
$result = parent::createdataDescription();
if ($field = $result->getFieldDescriptionByName('u_is_active')) {
$result->removeFieldDescription($field);
$field = $result->getFieldDescriptionByName('u_password');
$result->removeFieldDescription($field);
$result->addFieldDescription($field);
$result->addFieldDescription($field);
* Для метода success создаем свой объект данных
$result = parent::createData();
$result->getFieldByName('u_password')->setData('');
|