- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/contactcenter.php
- Класс: BitrixIntranetContactCenter
- Вызов: ContactCenter::restGetItems
public function restGetItems($filter = array())
{
$result = new Result();
$module = "rest";
$itemsList = array();
if (!Loader::includeModule($module))
{
$result->addError(new Error(Loc::getMessage("CONTACT_CENTER_ERROR_MODULE_NOT_LOADED", array("#MODULE_ID" => $module)), self::CC_MODULE_NOT_LOADED));
}
else
{
$itemsList = [];
$marketplaceApps = $this->getMarketplaceAppsByTag(['contact_center', 'partners', static::getZone()]);
if (!empty($marketplaceApps['ITEMS']))
{
$itemsList = $this->prepareMarketplaceApps($marketplaceApps);
}
$itemsList = array_merge($itemsList, array(
'ccplacement' => array(
"NAME" => Loc::getMessage("CONTACT_CENTER_REST_CC_PLACEMENT_2"),
"LOGO_CLASS" => "ui-icon ui-icon-service-rest-contact-center",
"SELECTED" => false
),
'chatbot' => array(
"NAME" => Loc::getMessage("CONTACT_CENTER_REST_CHATBOT"),
"LOGO_CLASS" => "ui-icon ui-icon-service-chatbot",
"SELECTED" => false
),
'telephonybot' => array(
"NAME" => Loc::getMessage("CONTACT_CENTER_REST_TELEPHONYBOT"),
"LOGO_CLASS" => "ui-icon ui-icon-service-telephonybot",
"SELECTED" => false
)
));
$dynamicItems = $this->getDynamicItems();
if (count($dynamicItems) > 0)
{
$itemsList = array_merge($itemsList, $dynamicItems);
}
$placements = BitrixRestPlacementTable::getHandlersList(CIntranetRestService::CONTACT_CENTER_PLACEMENT);
$appIdList = array();
$appList = array();
foreach ($placements as $placement)
{
$appIdList[] = $placement["APP_ID"];
}
$appIdList = array_unique($appIdList);
$parameters = array("filter" => array("ID" => $appIdList));
if (isset($filter["ACTIVE"]))
{
$parameters["filter"]["ACTIVE"] = $filter["ACTIVE"];
}
$appsCollection = BitrixRestAppTable::getList($parameters);
while ($app = $appsCollection->Fetch())
{
$appList[$app["ID"]] = $app;
}
foreach ($placements as $placement)
{
$app = $appList[$placement["APP_ID"]];
$selected = ($app["ACTIVE"] == BitrixRestAppTable::ACTIVE);
$itemsList[$app["CODE"]] = array (
"NAME" => ($placement["TITLE"] <> '') ? $placement["TITLE"] : $placement["APP_NAME"],
"LINK" => CUtil::JSEscape(SITE_DIR . "marketplace/app/" . $app["ID"] . "/"),
"SELECTED" => $selected,
"PLACEMENT_ID" => $placement["ID"],
"APP_ID" => $app["ID"],
"LOGO_CLASS" => "ui-icon ui-icon-service-common"
);
}
}
$result->setData($itemsList);
return $result;
}