- Модуль: sender
- Путь к файлу: ~/bitrix/modules/sender/lib/templates/recent.php
- Класс: BitrixSenderTemplatesRecent
- Вызов: Recent::getTemplates
static function getTemplates($messageCode = null)
{
static $result = null;
if ($result !== null)
{
return $result;
}
$result = array();
$filter = array(
'!=TEMPLATE_TYPE' => null,
'!=TEMPLATE_ID' => null,
);
$userId = SecurityUser::current()->getId();
if ($userId)
{
$filter['=CREATED_BY'] = $userId;
}
if ($messageCode)
{
$filter['=MESSAGE_CODE'] = $messageCode;
}
$chains = EntityLetter::getList(array(
'select' => array('TEMPLATE_TYPE', 'TEMPLATE_ID'),
'filter' => $filter,
'runtime' => array(new ExpressionField('MAX_ID', 'MAX(%s)', 'ID')),
'limit' => self::$maxCount + 1,
'cache' => array('ttl' => self::$cacheTtl),
'group' => array('TEMPLATE_TYPE', 'TEMPLATE_ID'),
'order' => array('MAX_ID' => 'DESC'),
));
foreach ($chains as $chain)
{
$template = Selector::create()
->withTypeId($chain['TEMPLATE_TYPE'])
->withId($chain['TEMPLATE_ID'])
->get();
if (!$template)
{
continue;
}
if ($template['TYPE'] === Type::getCode(Type::BASE) && $template['ID'] === 'empty')
{
continue;
}
$template['CATEGORY'] = Category::getCode(Category::RECENT);
$result[] = $template;
if (count($result) >= self::$maxCount)
{
break;
}
}
return $result;
}