• Модуль: clouds
  • Путь к файлу: ~/bitrix/modules/clouds/classes/general/storage.php
  • Класс: CCloudStorage
  • Вызов: CCloudStorage::OnAdminListDisplay
static function OnAdminListDisplay(&$obList)
{
	global $USER;

	if ($obList->table_id !== "tbl_fileman_admin")
		return;

	if (!is_object($USER) || !$USER->CanDoOperation("clouds_upload"))
		return;

	static $clouds = null;
	if (!isset($clouds))
	{
		$clouds = array();
		$rsClouds = CCloudStorageBucket::GetList(array("SORT" => "DESC", "ID" => "ASC"));
		while ($arStorage = $rsClouds->Fetch())
		{
			if ($arStorage["READ_ONLY"] == "N" && $arStorage["ACTIVE"] == "Y")
				$clouds[$arStorage["ID"]] = $arStorage["BUCKET"];
		}
	}

	if (empty($clouds))
		return;

	foreach ($obList->aRows as $obRow)
	{
		if ($obRow->arRes["TYPE"] === "F")
		{
			$ID = "F".$obRow->arRes["NAME"];
			$file = $obRow->arRes["NAME"];
			$path = mb_substr($obRow->arRes["ABS_PATH"], 0, -mb_strlen($file));

			$arSubMenu = array();
			foreach ($clouds as $id => $bucket)
				$arSubMenu[] = array(
					"TEXT" => $bucket,
					"ACTION" => $s = "if(confirm('".GetMessage("CLO_STORAGE_UPLOAD_CONF")."')) jsUtils.Redirect([], '".CUtil::AddSlashes("/bitrix/admin/clouds_file_list.php?lang=".LANGUAGE_ID."&bucket=".urlencode($id)."&path=".urlencode($path)."&ID=".urlencode($ID)."&action=upload&".bitrix_sessid_get())."');"
				);

			$obRow->aActions[] = array(
				"TEXT" => GetMessage("CLO_STORAGE_UPLOAD_MENU"),
				"MENU" => $arSubMenu,
			);
		}
	}
}