/**
* Bitrix Framework
* @package bitrix
* @subpackage advertising
* @copyright 2001-2013 Bitrix
*/
/**
* Bitrix vars
* @global CUser $USER
* @global CMain $APPLICATION
* @global CDatabase $DB
*/
use Bitrix\Main;
use Bitrix\Main\Loader;
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/advertising/prolog.php");
Loader::includeModule('advertising');
ClearVars();
$isDemo = CAdvContract::IsDemo();
$isManager = CAdvContract::IsManager();
$isAdvertiser = CAdvContract::IsAdvertiser();
$isAdmin = CAdvContract::IsAdmin();
if (!$isAdmin && !$isDemo && !$isManager && !$isAdvertiser)
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
IncludeModuleLangFile(__FILE__);
$err_mess = "FILE: ".__FILE__."
LINE: ";
CModule::IncludeModule('fileman');
CJSCore::Init('file_input');
if (class_exists('\Bitrix\Main\UI\FileInput', true))
CJSCore::Init('fileinput');
$aTabs = array(
array("DIV" => "edit1", "TAB" => GetMessage("AD_TAB_BANNER"), "ICON"=>"ad_banner_edit", "TITLE"=> GetMessage("AD_TAB_TITLE_BANNER")),
array("DIV" => "edit2", "TAB" => GetMessage("AD_TAB_LIMIT"), "ICON"=>"ad_banner_edit", "TITLE"=> GetMessage("AD_WHEN")),
array("DIV" => "edit3", "TAB" => GetMessage("AD_TAB_TARGET"), "ICON"=>"ad_banner_edit", "TITLE"=> GetMessage("AD_WHERE")),
array("DIV" => "edit5", "TAB" => GetMessage("AD_TAB_COMMENT"), "ICON"=>"ad_banner_edit", "TITLE"=> GetMessage("AD_COMMENTS")),
);
$tabControl = new CAdminTabControl("tabControl", $aTabs);
$strError = '';
$ID = intval($_REQUEST["ID"]);
$action = $_REQUEST["action"];
$bCopy = ($action == "copy");
$CONTRACT_ID = intval($CONTRACT_ID);
$isEditMode = true;
$arPropsTemplate = array();
if ($ID>0 && $CONTRACT_ID<=0)
{
$rsBanner = CAdvBanner::GetByID($ID);
if ($arBanner = $rsBanner->Fetch())
$CONTRACT_ID = $arBanner["CONTRACT_ID"];
}
if ($CONTRACT_ID<=0)
$CONTRACT_ID=1;
$rsContract = CAdvContract::GetByID($CONTRACT_ID, "N");
if (!$rsContract || !$arContract = $rsContract->Fetch())
{
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
CAdminMessage::ShowMessage(GetMessage("AD_ERROR_INCORRECT_CONTRACT_ID"));
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
die();
}
else
{
$arrPERM = CAdvContract::GetUserPermissions($CONTRACT_ID);
$arrPERM = is_array($arrPERM[$CONTRACT_ID]) ? $arrPERM[$CONTRACT_ID] : array();
if (!$isDemo)
{
if (count($arrPERM) <= 0)
$APPLICATION->AuthForm(GetMessage("AD_ERROR_NOT_ENOUGH_PERMISSIONS_CONTRACT"));
if (!in_array("ADD", $arrPERM))
$isEditMode = false;
}
if ($action == "view")
$isEditMode = false;
$arrCONTRACT_TYPE = CAdvContract::GetTypeArray($CONTRACT_ID);
$isOwner = CAdvContract::IsOwner($CONTRACT_ID);
}
function pr_comp($a, $b)
{
if ($a["SORT"] < $b["SORT"])
return -1;
elseif ($a["SORT"] > $b["SORT"])
return 1;
else
return 0;
}
if (
$_SERVER["REQUEST_METHOD"] == "POST"
&& check_bitrix_sessid()
&& ($_POST["action"] == 'getTemplate' || $_POST["action"] == 'refreshTemplate' || $_POST["action"] == 'refreshAll')
&& isset($_POST["name"])
)
{
$GLOBALS['APPLICATION']->RestartBuffer();
if ($_POST["name"] <> '')
{
$properties = is_array($_POST['properties']) ? $_POST['properties'] : array();
$arCurVal = is_array($_POST['curValues'])
? $_POST['curValues']
: (isset($properties['parameters']['PROPS'])
? $properties['parameters']['PROPS']
: array());
$bCopy = $_POST["bCopy"] == 'Y';
if (!empty($properties['parameters']['PROPS']) && is_array($properties['parameters']['PROPS']))
{
foreach ($properties['parameters']['PROPS'] as $id => $prop)
{
$arCurVal[$id]['EXTENDED_MODE'] = $properties['parameters']['MODE'];
$arPropsTemplate[$id] = CComponentUtil::GetTemplateProps('bitrix:advertising.banner.view', $_POST["name"], '', $arCurVal[$id]);
uasort($arPropsTemplate[$id]["PARAMETERS"], 'pr_comp');
}
}
else if ($_POST["action"] == 'refreshAll')
{
if (empty($arCurVal))
{
$arCurVal = array('EXTENDED_MODE' => $_POST["mode"]);
$arPropsTemplate[0] = CComponentUtil::GetTemplateProps('bitrix:advertising.banner.view', $_POST["name"], '', $arCurVal);
uasort($arPropsTemplate[0]["PARAMETERS"], 'pr_comp');
}
else
{
foreach ($arCurVal as $id => $curVal)
{
$arPropsTemplate[$id] = CComponentUtil::GetTemplateProps('bitrix:advertising.banner.view', $_POST["name"], '', $curVal);
uasort($arPropsTemplate[$id]["PARAMETERS"], 'pr_comp');
}
}
}
else
{
if (empty($arCurVal))
$arCurVal = array('EXTENDED_MODE' => $_POST["mode"]);
$arPropsTemplate[0] = CComponentUtil::GetTemplateProps('bitrix:advertising.banner.view', $_POST["name"], '', $arCurVal);
uasort($arPropsTemplate[0]["PARAMETERS"], 'pr_comp');
}
$defaultProps = array();
foreach ($arPropsTemplate as $i => $k)
{
$ind = isset($_POST["index"]) && $_POST["index"] != '' ? intval($_POST["index"]) : $i;
foreach ($k['PARAMETERS'] as $name => $prop)
{
$html = '';
$defaultProps[$name] = $prop['DEFAULT'];
if ($prop['TYPE'] == 'IMAGE')
{
$file_ID = (is_array($properties) && isset($properties['files'][$ind][$name]) && $properties['files'][$ind][$name] !== 'null') ? intval($properties['files'][$ind][$name]) : 0;
if ($bCopy)
{
$html .= '';
}
ob_start();
if (class_exists('\Bitrix\Main\UI\FileInput', true))
{
echo \Bitrix\Main\UI\FileInput::createInstance(array(
"name" => "TEMPLATE_FILES[".$ind.'_'.$name."]",
"description" => true,
"upload" => true,
"allowUpload" => "I",
"medialib" => true,
"fileDialog" => true,
"cloud" => true,
"delete" => true,
"maxCount" => 1
))->show($file_ID);
}
else
{
echo CFileInput::Show("TEMPLATE_FILES[".$ind.'_'.$name."]", $file_ID,
array(
"IMAGE" => "Y",
"PATH" => "Y",
"FILE_SIZE" => "Y",
"DIMENSIONS" => "Y",
"IMAGE_POPUP" => "Y",
"MAX_SIZE" => array(
"W" => 200,
"H" => 200,
),
), array(
'upload' => true,
'medialib' => true,
'file_dialog' => true,
'cloud' => true,
'del' => true,
'description' => true,
)
);
}
$html .= ob_get_contents();
ob_end_clean();
}
if ($prop['TYPE'] == 'HTML')
{
$strVal = isset($properties['parameters']['PROPS'][$i][$name]['CODE']) ? $properties['parameters']['PROPS'][$i][$name]['CODE'] : $defaultProps[$name];
$codeType = isset($properties['parameters']['PROPS'][$i][$name]['TYPE']) ? $properties['parameters']['PROPS'][$i][$name]['TYPE'] : 'html';
ob_start();
if (COption::GetOptionString("advertising", "USE_HTML_EDIT", "Y")=="Y" && CModule::IncludeModule("fileman")):
if (defined('BX_PUBLIC_MODE') && BX_PUBLIC_MODE == 1)
CFileMan::AddHTMLEditorFrame("TEMPLATE_EDITOR_".$ind.'_'.$name, $strVal, "TEMPLATE_EDITOR[".$ind.'_'.$name."_CODE_TYPE]", $codeType, array('height' => 200, 'width' => '100%'), "N", 0, "", "", false, true, false, array('setFocusAfterShow' => false, 'minHeight' => 200));
else
CFileMan::AddHTMLEditorFrame("TEMPLATE_EDITOR_".$ind.'_'.$name, $strVal, "TEMPLATE_EDITOR[".$ind.'_'.$name."_CODE_TYPE]", $codeType, array('height' => 200, 'width' => '100%'), "N", 0, "", "", false, true, false, array('setFocusAfterShow' => false, 'minHeight' => 200));
else: ?>