NotifyEmail::getAscendedCategories: метод Битрикс
Постоянная ссылка: http://bxapi.ru/src/?id=183608
<?php
// NotifyEmail::getAscendedCategories()
// /bitrix/modules/idea/lib/notifyemail.php:209
public function getAscendedCategories($category = null, $userId = null)
{
$return = false;
$userId = ($userId === null ? $this->userID : $userId);
if ($this->IblockID > 0 && $userId > 0)
{
$cache = $this->checkCache($userId, array("CATEGORY" => $category));
if (!!$cache)
{
$return = $cache;
}
else if (empty($category))
{
$return = array();
$db_res = NotifyEmailTable::getList(array(
"filter" => array(
"USER_ID" => $userId,
"=ENTITY_TYPE" => NotifyEmailTable::ENTITY_TYPE_CATEGORY,
"=ENTITY_CODE" => NULL
)
));
while ($res = $db_res->fetch())
array_push($return, $res);
}
else if (is_string($category) && ($categories = \CIdeaManagment::getInstance()->idea()->getCategoryList()) && !empty($categories))
{
$category = ToUpper($category);
if (array_key_exists($category, $categories))
{
$return = array();
$category = $categories[$category];
$db_res = NotifyEmailTable::getList(array(
"filter" => array(
"=USER_ID" => $userId,
"=ENTITY_TYPE" => NotifyEmailTable::ENTITY_TYPE_CATEGORY,
"=ASCENDED_CATEGORIES.IBLOCK_ID" => \CIdeaManagment::getInstance()->idea()->getCategoryListID(),
"<=ASCENDED_CATEGORIES.DEPTH_LEVEL" => $category["DEPTH_LEVEL"],
"<=ASCENDED_CATEGORIES.LEFT_MARGIN" => $category["LEFT_MARGIN"],
">=ASCENDED_CATEGORIES.RIGHT_MARGIN" => $category["RIGHT_MARGIN"]
)
));
while ($res = $db_res->fetch())
array_push($return, $res);
}
}
$this->setCache($userId, array("CATEGORY" => $category), $return);
}
return $return;
}