Your IP : 3.135.228.15


Current Path : /var/www/www-root/data/webdav/www/monolith-realty.ru/bitrix/modules/main/admin/
Upload File :
Current File : /var/www/www-root/data/webdav/www/monolith-realty.ru/bitrix/modules/main/admin/short_uri_edit.php

<?php
/**
 * @global CUser $USER
 * @global CMain $APPLICATION
 * @global CDatabase $DB
 */

require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php");

if (!$USER->CanDoOperation('manage_short_uri') && !$USER->CanDoOperation('view_other_settings'))
{
	$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
}

$message = null;
$isAdmin = $USER->CanDoOperation('manage_short_uri');

IncludeModuleLangFile(__FILE__);

$aTabs = [
	["DIV" => "edit1", "TAB" => GetMessage("SU_EF_tab_1"), "ICON" => "main_user_edit", "TITLE" => GetMessage("SU_EF_tab_1_title")],
];
$tabControl = new CAdminTabControl("tabControl", $aTabs);

$ID = intval($_REQUEST['ID'] ?? 0);
$strError = "";
$bVarsFromForm = false;

if ($_SERVER['REQUEST_METHOD'] == "POST" && (!empty($_POST['save']) || !empty($_POST['apply'])) && $isAdmin && check_bitrix_sessid())
{
	$arFields = [
		"URI" => $_POST['URI'] ?? '',
		"SHORT_URI" => $_POST['SHORT_URI'] ?? '',
		"STATUS" => $_POST['STATUS'] ?? '',
	];
	if ($ID > 0)
	{
		$res = CBXShortUri::Update($ID, $arFields);
	}
	else
	{
		$ID = CBXShortUri::Add($arFields);
		$res = ($ID > 0);
	}

	if ($res)
	{
		if (!empty($_POST['apply']))
		{
			LocalRedirect("/bitrix/admin/short_uri_edit.php?ID=" . $ID . "&mess=ok&lang=" . LANG . "&" . $tabControl->ActiveTabParam());
		}
		else
		{
			LocalRedirect("/bitrix/admin/short_uri_admin.php?lang=" . LANG);
		}
	}
	else
	{
		$message = implode("\n", CBXShortUri::GetErrors());
		if ($message == '')
		{
			$message = GetMessage("SU_EF_save_error");
		}
		$message = new CAdminMessage($message);
		$bVarsFromForm = true;
	}
}

ClearVars();

$str_SHORT_URI = CBXShortUri::GenerateShortUri();
$str_MODIFIED = '';
$str_URI = '';
$str_STATUS = '';
$str_LAST_USED = '';
$str_NUMBER_USED = '';

if (isset($_REQUEST["public"]))
{
	$str_URI = $_REQUEST["str_URI"];
	$suri = CBXShortUri::GetList([], ["URI_EXACT" => $str_URI]);
	if ($a = $suri->Fetch())
	{
		$ID = $a["ID"];
	}
	$str_URI = htmlspecialcharsbx($str_URI);
}

if ($ID > 0)
{
	$suri = CBXShortUri::GetList([], ["ID" => $ID]);
	if (!$suri->ExtractFields())
	{
		$ID = 0;
	}
}

if ($bVarsFromForm)
{
	$DB->InitTableVarsForEdit("b_short_uri", "");
}

$APPLICATION->SetTitle(($ID > 0 ? GetMessage("SU_EF_title_edit") . $ID : GetMessage("SU_EF_title_add")));

require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php");

$aMenu = [
	[
		"TEXT" => GetMessage("SU_EF_list_text"),
		"TITLE" => GetMessage("SU_EF_list"),
		"LINK" => "short_uri_admin.php?lang=" . LANG,
		"ICON" => "btn_list",
	],
];
if ($ID > 0)
{
	$aMenu[] = ["SEPARATOR" => "Y"];
	$aMenu[] = [
		"TEXT" => GetMessage("SU_EF_add_text"),
		"TITLE" => GetMessage("SU_EF_mnu_add"),
		"LINK" => "short_uri_edit.php?lang=" . LANG,
		"ICON" => "btn_new",
	];
	$aMenu[] = [
		"TEXT" => GetMessage("SU_EF_del_text"),
		"TITLE" => GetMessage("SU_EF_mnu_del"),
		"LINK" => "javascript:if(confirm('" . GetMessage("SU_EF_mnu_del_conf") . "'))window.location='short_uri_admin.php?ID=" . $ID . "&action=delete&lang=" . LANG . "&" . bitrix_sessid_get() . "';",
		"ICON" => "btn_delete",
	];
}
$context = new CAdminContextMenu($aMenu);
$context->Show();
?>

<?
if (isset($_REQUEST["mess"]) && $_REQUEST["mess"] == "ok" && $ID > 0)
{
	CAdminMessage::ShowMessage(["MESSAGE" => GetMessage("SU_EF_saved"), "TYPE" => "OK"]);
}
if ($message)
{
	echo $message->Show();
}
?>

	<form method="POST" action="<? echo $APPLICATION->GetCurPage() ?>" enctype="multipart/form-data"
		  name="short_uri_form">
		<?
		$tabControl->Begin();
		?>
		<?
		//********************
		//Subscriber tab
		//********************
		$tabControl->BeginNextTab();
		?>
		<? if ($ID > 0): ?>
			<tr>
				<td width="40%"><? echo GetMessage("SU_EF_date_add") ?></td>
				<td width="60%"><? echo $str_MODIFIED; ?></td>
			</tr>
		<?endif ?>
		<tr class="adm-detail-required-field">
			<td width="40%"><? echo GetMessage("SU_EF_URI") ?></td>
			<td width="60%"><input type="text" name="URI" value="<?= $str_URI ?>" size="70"></td>
		</tr>
		<tr class="adm-detail-required-field">
			<td><? echo GetMessage("SU_EF_SHORT_URI") ?></td>
			<td><input type="text" name="SHORT_URI" value="<?= $str_SHORT_URI ?>" size="70"
					   onkeyup="ShortUriChangeHandler(this.value)"></td>
		</tr>
		<tr>
			<td>&nbsp;</td>
			<td><span id="id_short_uri_span"></span>
				<?
				$request = \Bitrix\Main\Context::getCurrent()->getRequest();
				$proto = $request->isHttps() ? "https://" : "http://";
				$host = $request->getHttpHost();
				?>
				<script type="text/javascript">
					function ShortUriChangeHandler(val)
					{
						var d = document.getElementById("id_short_uri_span");
						if (d) {
							d.innerHTML = '<a href="<?= $proto . $host ?>/' + BX.util.htmlspecialchars(encodeURI(val)) + '"><?= $proto . $host ?>/' + BX.util.htmlspecialchars(val) + '</a>';
						}
					}

					setTimeout(function () {
						ShortUriChangeHandler('<?=CUtil::JSEscape(htmlspecialcharsback($str_SHORT_URI))?>');
					}, 10);
				</script>
			</td>
		</tr>
		<tr class="adm-detail-required-field">
			<td><? echo GetMessage("SU_EF_STATUS") ?></td>
			<td><?= CBXShortUri::SelectBox("STATUS", $str_STATUS) ?></td>
		</tr>
		<? if ($ID > 0): ?>
			<tr>
				<td><? echo GetMessage("SU_EF_LAST_USED") ?></td>
				<td><? echo $str_LAST_USED; ?></td>
			</tr>
			<tr>
				<td><? echo GetMessage("SU_EF_NUMBER_USED") ?></td>
				<td><? echo $str_NUMBER_USED; ?></td>
			</tr>
		<?endif ?>

		<?
		$tabControl->Buttons(
			[
				"disabled" => !$isAdmin,
				"back_url" => "short_uri_admin.php?lang=" . LANG,

			]
		);
		?>
		<? echo bitrix_sessid_post(); ?>
		<input type="hidden" name="lang" value="<? echo LANG ?>">
		<? if ($ID > 0): ?>
			<input type="hidden" name="ID" value="<?= $ID ?>">
		<?endif; ?>
		<?
		$tabControl->End();
		?>
	</form>

<?
$tabControl->ShowWarnings("short_uri_form", $message);
?>

<?
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php");