%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/mail/lib/controller/ |
| Current File : /home/bitrix/www/bitrix/modules/mail/lib/controller/usersignature.php |
<?php
namespace Bitrix\Mail\Controller;
use Bitrix\Mail\Internals\UserSignatureTable;
use Bitrix\Main\Engine\CurrentUser;
use Bitrix\Main\Error;
use Bitrix\Main\Localization\Loc;
class UserSignature extends Base
{
const USER_SIGNATURES_LIMIT = 100;
/**
* @param array $fields
* @return array|false
*/
public function addAction(array $fields)
{
$count = UserSignatureTable::getCount();
if($count > static::USER_SIGNATURES_LIMIT)
{
Loc::loadMessages(__FILE__);
$this->errorCollection[] = new Error(Loc::getMessage('MAIL_USER_SIGNATURE_LIMIT'));
return false;
}
$fields['userId'] = CurrentUser::get()->getId();
$fields = $this->convertArrayKeysToUpper($fields, 1);
$userSignature = new \Bitrix\Mail\Internals\Entity\UserSignature;
foreach($fields as $name => $value)
{
$userSignature->set($name, $value);
}
$result = $userSignature->save();
if($result->isSuccess())
{
$userSignature = UserSignatureTable::getById($result->getId())->fetchObject();
return $this->getAction($userSignature);
}
else
{
$this->errorCollection = $result->getErrors();
return false;
}
}
/**
* @param \Bitrix\Mail\Internals\Entity\UserSignature $userSignature
*/
public function deleteAction(\Bitrix\Mail\Internals\Entity\UserSignature $userSignature)
{
$userSignature->delete();
}
public function getAction(\Bitrix\Mail\Internals\Entity\UserSignature $userSignature)
{
return [
'userSignature' => $this->convertArrayKeysToCamel($userSignature->collectValues(), 1),
];
}
/**
* @param \Bitrix\Mail\Internals\Entity\UserSignature $userSignature
* @param array $fields
* @return array|false
*/
public function updateAction(\Bitrix\Mail\Internals\Entity\UserSignature $userSignature, array $fields)
{
$fields = $this->convertArrayKeysToUpper($fields, 1);
foreach($fields as $name => $value)
{
$userSignature->set($name, $value);
}
$result = $userSignature->save();
if($result->isSuccess())
{
return $this->getAction($userSignature);
}
else
{
$this->errorCollection = $result->getErrors();
return false;
}
}
}