- Модуль: advertising
- Путь к файлу: ~/bitrix/modules/advertising/classes/general/advertising.php
- Класс: CAdvBanner_all
- Вызов: CAdvBanner_all::CheckFields
static function CheckFields($arFields, $BANNER_ID, $CHECK_RIGHTS="Y")
{
global $strError;
$maxLongString = 65534;
$str = "";
if ($CHECK_RIGHTS=="Y")
{
$isAdmin = CAdvContract::IsAdmin();
$isManager = CAdvContract::IsManager();
}
else
{
$isAdmin = true;
$isManager = true;
}
$arrKeys = array_keys($arFields);
if (!in_array("CONTRACT_ID", $arrKeys) && $BANNER_ID>0)
{
$rsBanner = CAdvBanner::GetByID($BANNER_ID, "N");
$arBanner = $rsBanner->Fetch();
$CONTRACT_ID = intval($arBanner["CONTRACT_ID"]);
}
else
{
$CONTRACT_ID = intval($arFields["CONTRACT_ID"]);
}
if (in_array("TEMPLATE", $arrKeys))
{
if (mb_strlen($arFields['TEMPLATE']) > $maxLongString)
{
$str.= GetMessage("AD_ERROR_LONG_STRING")."
";
}
}
if ($CONTRACT_ID>0)
{
$access = false;
if ($isAdmin || $isManager)
{
$access = true;
}
else
{
$arrPERM = CAdvContract::GetUserPermissions($CONTRACT_ID);
$arrPERM = $arrPERM[$CONTRACT_ID];
if (in_array("ADD", $arrPERM))
$access = true;
}
if ($access)
{
if ($arFields["DATE_SHOW_FROM"] <> '')
{
if (!CheckDateTime($arFields["DATE_SHOW_FROM"]))
$str.= GetMessage("AD_ERROR_WRONG_DATE_SHOW_FROM_BANNER")."
";
}
if ($arFields["DATE_SHOW_TO"] <> '')
{
if (!CheckDateTime($arFields["DATE_SHOW_TO"]))
$str .= GetMessage("AD_ERROR_WRONG_DATE_SHOW_TO_BANNER")."
";
}
if (in_array("arrIMAGE_ID", $arrKeys))
{
$arIMAGE = $arFields["arrIMAGE_ID"];
$arIMAGE["MODULE_ID"] = "advertising";
$strRes = CFile::CheckImageFile($arIMAGE, 0, 0, 0, array("FLASH", "IMAGE"));
if ($strRes <> '')
$str .= $strRes."
";
}
if (in_array("arrFlashIMAGE_ID", $arrKeys))
{
$arIMAGE = $arFields["arrFlashIMAGE_ID"];
$arIMAGE["MODULE_ID"] = "advertising";
$strRes = CFile::CheckImageFile($arIMAGE, 0, 0, 0, array("IMAGE"));
if ($strRes <> '')
$str .= $strRes."
";
}
if (in_array("TEMPLATE_FILES", $arrKeys) && is_array($arFields["TEMPLATE_FILES"]))
{
foreach ($arFields["TEMPLATE_FILES"] as $unit)
{
if (is_array($unit))
{
foreach ($unit as $file)
{
$file["MODULE_ID"] = "advertising";
$strRes = CAdvBanner_all::CheckFile($file, 0, 0, 0, array("IMAGE", "VIDEO"));
if ($strRes <> '')
$str .= $strRes."
";
}
}
}
}
if ($arFields["FLYUNIFORM"] == "Y")
{
if ($arFields["DATE_SHOW_FROM"] == '' or
$arFields["DATE_SHOW_TO"] == '')
$str .= GetMessage("AD_ERROR_FROMTO_DATE_HAVETOBE_SET")."
";
if ($arFields["FIX_SHOW"] != "Y")
$str .= GetMessage("AD_ERROR_FIXSHOW_HAVETOBE_SET")."
";
if (intval($arFields["MAX_SHOW_COUNT"])<=0)
$str .= GetMessage("AD_ERROR_MAX_SHOW_COUNT_HAVETOBE_SET")."
";
}
}
else
{
if ($BANNER_ID>0)
$str .= GetMessage("AD_ERROR_NOT_ENOUGH_PERMISSIONS_BANNER")."
";
else
$str .= GetMessage("AD_ERROR_NOT_ENOUGH_PERMISSIONS_CONTRACT")."
";
}
}
else
{
$str .= GetMessage("AD_ERROR_INCORRECT_CONTRACT_ID")."
";
}
$strError .= $str;
if ($str <> '')
return false;
else
return true;
}