| Current Path : /var/www/element/data/www/greenpr.ru/bitrix3/components/bitrix/iblock.tv/ |
| Current File : /var/www/element/data/www/greenpr.ru/bitrix3/components/bitrix/iblock.tv/component.php |
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?
//Prepare params
$arParams["IBLOCK_ID"] = intval($arParams["IBLOCK_ID"]);
$arParams["SECTION_ID"] = intval($arParams["SECTION_ID"]);
$arParams["ELEMENT_ID"] = intval($arParams["ELEMENT_ID"]);
$arParams["PATH_TO_FILE"] = intval($arParams["PATH_TO_FILE"]);
$arParams["DURATION"] = trim($arParams["DURATION"]);
$arParams["LOGO"] = trim($arParams["LOGO"]);
$arParams["DEFAULT_SMALL_IMAGE"] = trim($arParams["DEFAULT_SMALL_IMAGE"]);
$arParams["DEFAULT_BIG_IMAGE"] = trim($arParams["DEFAULT_BIG_IMAGE"]);
$arParams["WIDTH"] = intval($arParams["WIDTH"])>0
?intval($arParams["WIDTH"])
:640;
$arParams["HEIGHT"] = intval($arParams["HEIGHT"])>0
?intval($arParams["HEIGHT"])
:480;
$arParams["CACHE_TIME"] = isset($arParams["CACHE_TIME"])
?intval($arParams["CACHE_TIME"])
:3600;
$arParams["SORT_BY1"] = trim($arParams["SORT_BY1"]);
if(strlen($arParams["SORT_BY1"])<=0)
$arParams["SORT_BY1"] = 'SORT';
if($arParams["SORT_ORDER1"]!='ASC')
$arParams["SORT_ORDER1"]='DESC';
if($arParams["IBLOCK_ID"]<=0 || $arParams["PATH_TO_FILE"]<=0)
return false;
//Yes by default
$arParams["DISPLAY_PANEL"] = $arParams["DISPLAY_PANEL"] !== "N";
//SELECT
$arSelect = array(
"ID",
"NAME",
"IBLOCK_SECTION_ID",
"PREVIEW_TEXT",
"PREVIEW_PICTURE",
"DETAIL_PICTURE",
"IBLOCK_TYPE_ID",
"PROPERTY_".$arParams["PATH_TO_FILE"],
);
if($arParams["DURATION"]>0)
$arSelect[]="PROPERTY_".$arParams["DURATION"];
//WHERE
$arFilter = array(
"IBLOCK_ID" => $arParams["IBLOCK_ID"],
"ACTIVE" => 'Y',
"IBLOCK_ACTIVE" => 'Y',
);
if(strlen($arParams["IBLOCK_TYPE"])>0)
$arFilter["IBLOCK_TYPE"] = $arParams["IBLOCK_TYPE"];
if($arParams["SECTION_ID"]>0)
$arFilter["SECTION_ID"] = $arParams["SECTION_ID"];
//ORDER BY
$arSort = array(
$arParams["SORT_BY1"] => $arParams["SORT_ORDER1"],
);
global $BX_TV_PREFIX;
if(!isset($BX_TV_PREFIX))
$BX_TV_PREFIX = 0;
else
$BX_TV_PREFIX = intval($BX_TV_PREFIX)+1;
if(!class_exists("__ciblocktv"))
{
class __CIBlockTV
{
function Prepare($Value)
{
return str_replace(array("\r\n", "\r", "\n"), array("<br>", "<br>", "<br>"), CUtil::addslashes(htmlspecialchars($Value)));
}
}
}
if($this->StartResultCache(false, array($USER->GetGroups(), $BX_TV_PREFIX)))
{
if(!CModule::IncludeModule("iblock"))
{
$this->AbortResultCache();
ShowError(GetMessage("CC_BIT_MODULE_NOT_INSTALLED"));
return;
}
$rsProperty = CIBlockProperty::GetByID(
$arParams["PATH_TO_FILE"],
$arParams["IBLOCK_ID"]
);
if(!$arProperty = $rsProperty->Fetch())
{
$this->AbortResultCache();
return false;
}
$arResult = array(
"RAW_SECTIONS" => array(),
"RAW_ELEMENTS" => array(),
"PREFIX" => $BX_TV_PREFIX,
"ELEMENT_CNT" => 0,
"IBLOCK_TYPE_ID" => false,
);
$rsElements = CIBlockElement::GetList(
$arSort,
$arFilter,
false,
false,
$arSelect
);
//Get Elements
while($arElements = $rsElements->Fetch())
{
$arResult["IBLOCK_TYPE_ID"] = $arElements["IBLOCK_TYPE_ID"];
if(intval($arElements["IBLOCK_SECTION_ID"])>0)
{
$arResult["RAW_ELEMENTS"][$arElements["ID"]] = $arElements;
$arResult["RAW_SECTIONS_ID"][] = intval($arElements["IBLOCK_SECTION_ID"]);
$arResult["ELEMENT_CNT"]++;
}
}
//Get Sections
if($arParams["SECTION_ID"]<=0 && count($arResult["RAW_SECTIONS_ID"])>0)
{
$arResult["RAW_SECTIONS_ID"] = array_unique($arResult["RAW_SECTIONS_ID"]);
$rsSections = CIBlockSection::GetList(
$arSort,
array(
"IBLOCK_ID" => $arParams["IBLOCK_ID"],
"ID" => $arResult["RAW_SECTIONS_ID"],
)
);
while($arSections = $rsSections->Fetch())
$arResult["RAW_SECTIONS"][$arSections["ID"]] = $arSections;
}
//Prepare elements
foreach($arResult["RAW_ELEMENTS"] as $key=>$arItem)
{
$SectionId = $arParams["SECTION_ID"]>0
?$arParams["SECTION_ID"]
:intval($arItem["IBLOCK_SECTION_ID"]);
$Duration = $arItem["PROPERTY_".$arParams["DURATION"]."_VALUE"];
$PathToFile = $arProperty["PROPERTY_TYPE"] == 'F'
?CFile::GetPath($arItem["PROPERTY_".$arParams["PATH_TO_FILE"]."_VALUE"])
:$arItem["PROPERTY_".$arParams["PATH_TO_FILE"]."_VALUE"];
if(
$PathToFile
&& file_exists($_SERVER["DOCUMENT_ROOT"]."/".$PathToFile)
&& is_file($_SERVER["DOCUMENT_ROOT"]."/".$PathToFile)
)
{
$FileSize = filesize($_SERVER["DOCUMENT_ROOT"]."/".$PathToFile);
if($FileSize)
$FileSize = round(sprintf("%u", $FileSize)/1024/1024, 2);
if($FileSize <= 0)
$FileSize = "";
$ext = strtolower(substr($PathToFile, -4));
if($ext == ".wmv" || $ext == "wma")
$FileType = "wmv";
else
$FileType = "flv";
}
else
{
$FileSize = "";
$FileType = "flv";
}
$arResult["SECTIONS"][$SectionId]["ELEMENTS"][$arItem["ID"]] = array(
"NAME" => $arItem["NAME"],
"PREVIEW_TEXT" => $arItem["PREVIEW_TEXT"],
"PREVIEW_PICTURE" => CFile::GetPath($arItem["PREVIEW_PICTURE"]),
"DETAIL_PICTURE" => CFile::GetPath($arItem["DETAIL_PICTURE"]),
"DURATION" => $Duration,
"FILE_SIZE" => $FileSize,
"FILE" => $PathToFile,
"TYPE" => $FileType,
"ID" => $arItem["ID"],
"IBLOCK_SECTION_ID" => $arItem["IBLOCK_SECTION_ID"],
);
if(!$arResult["SECTIONS"][$SectionId]["ELEMENTS"][$arItem["ID"]]["PREVIEW_PICTURE"])
$arResult["SECTIONS"][$SectionId]["ELEMENTS"][$arItem["ID"]]["PREVIEW_PICTURE"] = $arParams["DEFAULT_SMALL_IMAGE"];
if(!$arResult["SECTIONS"][$SectionId]["ELEMENTS"][$arItem["ID"]]["DETAIL_PICTURE"])
$arResult["SECTIONS"][$SectionId]["ELEMENTS"][$arItem["ID"]]["DETAIL_PICTURE"] = $arParams["DEFAULT_BIG_IMAGE"];
if(!isset($arResult["SELECTED_ELEMENT"]))
{
if($arParams["ELEMENT_ID"]<=0 || $arParams["ELEMENT_ID"] == $key)
{
$arResult["SELECTED_ELEMENT"] = array(
"VALUES" => $arResult["SECTIONS"][$SectionId]["ELEMENTS"][$arItem["ID"]],
"FILE" => $arResult["SECTIONS"][$SectionId]["ELEMENTS"][$arItem["ID"]]["FILE"],
);
}
}
}
if(!isset($arResult["SELECTED_ELEMENT"]))
{
$this->AbortResultCache();
return false;
}
if($arParams["DISPLAY_PANEL"] == "Y" && CIBlock::GetPermission($arParams["IBLOCK_ID"])>='U')
$arResult["CAN_EDIT"] = "Y";
else
$arResult["CAN_EDIT"] = "N";
$this->SetResultCacheKeys(array(
"CAN_EDIT", "IBLOCK_TYPE_ID"
));
$this->IncludeComponentTemplate();
}
if($arParams["DISPLAY_PANEL"] && ($arResult["CAN_EDIT"] == "Y") && $USER->IsAuthorized())
{
if(CModule::IncludeModule("iblock"))
{
CIBlock::ShowPanel($arParams["IBLOCK_ID"], 0, $arParams["SECTION_ID"], $arResult["IBLOCK_TYPE_ID"], false, $this->GetName(), array(
"ELEMENT_ADD_TEXT" => GetMessage('CC_BIT_ADD_VIDEO'),
"ELEMENT_ADD_TITLE" => GetMessage('CC_BIT_ADD_VIDEO_TITLE'),
"ELEMENTS_NAME_TEXT" => GetMessage('CC_BIT_MANAGE_VIDEO'),
"ELEMENTS_NAME_TITLE" => GetMessage('CC_BIT_MANAGE_VIDEO_TITLE'),
));
}
}
//include js
$APPLICATION->AddHeadString('<script type="text/javascript" src="/bitrix/components/bitrix/player/wmvplayer/silverlight.js?v='.filemtime($_SERVER['DOCUMENT_ROOT'].'/bitrix/components/bitrix/player/wmvplayer/silverlight.js').'"></script>', true);
$APPLICATION->AddHeadString('<script type="text/javascript" src="/bitrix/components/bitrix/player/wmvplayer/wmvplayer.js?v='.filemtime($_SERVER['DOCUMENT_ROOT'].'/bitrix/components/bitrix/player/wmvplayer/wmvplayer.js').'"></script>', true);
$APPLICATION->AddHeadString('<script type="text/javascript" src="/bitrix/components/bitrix/player/mediaplayer/flvscript.js?v='.filemtime($_SERVER['DOCUMENT_ROOT'].'/bitrix/components/bitrix/player/mediaplayer/flvscript.js').'"></script>', true);
?>