Your IP : 3.15.18.198


Current Path : /home/bitrix/ext_www/dev.shuft.com.ua/bitrix/modules/main/admin/
Upload File :
Current File : /home/bitrix/ext_www/dev.shuft.com.ua/bitrix/modules/main/admin/type_edit.php

<?
/**
 * Bitrix Framework
 * @package bitrix
 * @subpackage main
 * @copyright 2001-2013 Bitrix
 */

/**
 * @global CMain $APPLICATION
 * @global CUser $USER
 * @global CDatabase $DB
 */

require_once(dirname(__FILE__)."/../include/prolog_admin_before.php");
require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/prolog.php");
define("HELP_FILE", "settings/mail_events/messagetype_edit.php");

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

$isAdmin = $USER->CanDoOperation('edit_other_settings');

IncludeModuleLangFile(__FILE__);

$arFields = array();
$arParams = array("ACTION" => "ADD");
$strError = "";
$bVarsFromForm = false;
$message = null;
$arLangs = array();
$by = "sort";
$order = "asc";

$db_res = CLanguage::GetList($by, $order);
if ($db_res && $res = $db_res->GetNext())
{
	do 
	{
		$arParams["LANGUAGE"][$res["LID"]] = $res;
		$arLangs[$res["LID"]] = true;
	}
	while ($res = $db_res->GetNext());
}

if($_SERVER["REQUEST_METHOD"] == "POST" && ($_POST["save"] <> '' || $_POST["apply"] <> '') && $isAdmin && check_bitrix_sessid())
{
	$_POST["EVENT_NAME"] = trim($_POST["EVENT_NAME"]);

	$res = array();
	$DB->StartTransaction();
	if($_POST["EVENT_NAME"] <> '')
	{
		$db_res = CEventType::GetListEx(array(), array("EVENT_NAME" => $_POST["EVENT_NAME"]), array("type" => "full"));
		if(!($db_res) || !($res = $db_res->Fetch()))
		{
			$res["EVENT_NAME"] = $_POST["EVENT_NAME"];
		}
	}
	
	foreach ($arParams["LANGUAGE"] as $idLang => $arLang)
	{
		$arType = array(
			"ID" => $_POST["FIELDS"][$idLang]["ID"],
			"SORT" => $_POST["FIELDS"][$idLang]["SORT"],
			"NAME" => $_POST["FIELDS"][$idLang]["NAME"],
			"DESCRIPTION" => $_POST["FIELDS"][$idLang]["DESCRIPTION"],
			"LID" => $idLang,
			"EVENT_NAME" => $res["EVENT_NAME"],
		);
		$admList = new CAdminList("dummy");
		if ($admList->IsUpdated($idLang) && $_REQUEST[$idLang] == "Y")
		{
			if ((intval($arType["ID"]) > 0 && (!CEventType::Update(array("ID" => $arType["ID"]), $arType))) ||
				((intval($arType["ID"]) <= 0) && !CEventType::Add($arType)))
			{
				$bVarsFromForm = true;
			}
		}
		if ($_REQUEST[$idLang] != "Y")
		{
			unset($arLangs[$idLang]);
			
			if (intval($arType["ID"]) > 0)
			{
				if (!CEventType::Delete(array("ID" => $arType["ID"])))
					$bVarsFromForm = true;
			}
		}
		if ($bVarsFromForm)
			break;
	}
	
	if (empty($arLangs))
	{
		$arMsg = array();
		if ($res["EVENT_NAME"] == '')
			$arMsg[] = array("id" => "EVENT_NAME_EMPTY", "text" => GetMessage("EVENT_NAME_EMPTY"));
		$arMsg[] = array("id" => "LID_EMPTY", "text" => GetMessage("ERROR_LANG_EMPTY"));
		
		$e = new CAdminException($arMsg);
		$APPLICATION->ThrowException($e);
		$bVarsFromForm = true;
	}
	if ($bVarsFromForm)
	{
		$DB->Rollback();
	}
	else 
	{
		$DB->Commit();
		if ($_POST["save"] <> '')
			LocalRedirect(BX_ROOT."/admin/type_admin.php?lang=".LANGUAGE_ID);
		else
			LocalRedirect(BX_ROOT."/admin/type_edit.php?EVENT_NAME=".$res["EVENT_NAME"]."&lang=".LANGUAGE_ID);
	}
}
if ($bVarsFromForm && ($e = $APPLICATION->GetException()))
	$message = new CAdminMessage(GetMessage("MAIN_ERROR_SAVING"), $e);

$arParams["EVENT_NAME"] = $_REQUEST["EVENT_NAME"];

if ($arParams["EVENT_NAME"] <> '')
{
	$db_res = CEventType::GetListEx(array(), array("EVENT_NAME" => $arParams["EVENT_NAME"]), array("type" => "full"));
	if ($db_res && ($res = $db_res->Fetch()))
	{
		$arParams["DATA"] = $res;
		if (is_array($res["TYPE"]))
		{
			foreach ($res["TYPE"] as $r)
				$arParams["DATA"][$r["LID"]] = $r;
		}
		$arParams["ACTION"] = "UPDATE";
		$arParams["DATA_OLD"] = $arParams["DATA"];
	}
}

$aTabs = array(array("DIV" => "edit1", "TAB" => GetMessage("EVENT_NAME_TITLE"), "ICON" => "mail", "TITLE" => GetMessage("EVENT_NAME_DESCR")));
if ($arParams["ACTION"] == "UPDATE")
	$aTabs[] = array("DIV" => "edit2", "TAB" => GetMessage("TEMPLATES_TITLE"), "ICON" => "mail", "TITLE" => GetMessage("TEMPLATES_DESCR"));
	
$tabControl = new CAdminTabControl("tabControl", $aTabs);

if ($bVarsFromForm)
{
	foreach ($_REQUEST["FIELDS"] as $k => $v)
	{
		$arParams["DATA"][$k] = $_REQUEST["FIELDS"][$k];
	}
}

if ($arParams["ACTION"]=="ADD")
{
	$APPLICATION->SetTitle(GetMessage("NEW_TITLE"));
	$context = new CAdminContextMenu(
		array(
			array(
				"TEXT"	=> GetMessage("RECORD_LIST"),
				"LINK"	=> "/bitrix/admin/type_admin.php?lang=".LANGUAGE_ID,
				"TITLE"	=> GetMessage("RECORD_LIST_TITLE"),
				"ICON"	=> "btn_list"
			), 
		)
	);
}
else
{
	$APPLICATION->SetTitle(str_replace("#TYPE#", $arParams["EVENT_NAME"], GetMessage("EDIT_TITLE")));
	$context = new CAdminContextMenu(
		array(
			array(
				"TEXT"	=> GetMessage("RECORD_LIST"),
				"LINK"	=> "/bitrix/admin/type_admin.php?lang=".LANGUAGE_ID,
				"TITLE"	=> GetMessage("RECORD_LIST_TITLE"),
				"ICON"	=> "btn_list"
			), 
			array(
				"TEXT"	=> GetMessage("MAIN_NEW_RECORD"),
				"LINK"	=> "/bitrix/admin/type_edit.php?lang=".LANGUAGE_ID,
				"TITLE"	=> GetMessage("MAIN_NEW_RECORD_TITLE"),
				"ICON"	=> "btn_new"
			),
			array(
				"TEXT"	=> GetMessage("MAIN_DELETE_RECORD"),
				"LINK"	=> "javascript:if(confirm('".GetMessage("MAIN_DELETE_RECORD_CONF")."')) window.location='/bitrix/admin/type_admin.php?ID=".urlencode($arParams["EVENT_NAME"])."&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."&action=delete';",
				"TITLE"	=> GetMessage("MAIN_DELETE_RECORD_TITLE"),
				"ICON"	=> "btn_delete"
			),
		)
	);
}
require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/prolog_admin_after.php");

$context->Show();

if($message)
	echo $message->Show();

$arParams["EVENT_NAME"] = htmlspecialcharsbx($arParams["EVENT_NAME"]);
?>

<form method="POST" action="<?=$APPLICATION->GetCurPage()?>" name="form1">
<?=bitrix_sessid_post()?>
<?$tabControl->Begin();?>
<?$tabControl->BeginNextTab();?>
<tr class="adm-detail-required-field">
	<td width="40%"><?=GetMessage('EVENT_NAME')?>:</td>
	<td width="0%">
	<?if ($arParams["ACTION"] == "ADD"):?>
		<input type="text" name="EVENT_NAME" value="<?=$arParams["EVENT_NAME"]?>">
	<?else:?>
		<input type="hidden" name="EVENT_NAME" value="<?=$arParams["EVENT_NAME"]?>"> 
		<?=$arParams["EVENT_NAME"]?>
	<?endif;?>
	</td>
</tr>
<?
	foreach ($arParams["LANGUAGE"] as $idLang => $arLang):
?>
<tr class="heading">
	<td colspan="2">
		<input type="hidden" name="<?=$idLang?>" value="N">
		<input type="checkbox" id="box_<?=$idLang?>" name="<?=$idLang?>" <?=($arParams["DATA"][$idLang]["ID"] <> '' && $_REQUEST[$idLang] <> "N" || $_REQUEST[$idLang] == "Y" || $arParams["EVENT_NAME"] == ''? " checked" : "")?> value="Y">
		<label for="box_<?=$idLang?>" >[<?=$arLang["ID"]?>] <?=$arLang["NAME"]?></label></td>
</tr>
<?if ($arParams["DATA"][$arLang["ID"]]["ID"] > 0):?>
<tr><td>ID:</td><td>
<?=htmlspecialcharsEx($arParams["DATA"][$arLang["ID"]]["ID"])?>
<input type="hidden" name="FIELDS[<?=$arLang["ID"]?>][ID]" value="<?=htmlspecialcharsbx($arParams["DATA"][$arLang["ID"]]["ID"])?>">
</td></tr>
<?endif;?>
<tr>
	<td><?=GetMessage("EVENT_SORT_LANG")?>:</td>
	<td>
		<input type="hidden" name="FIELDS_OLD[<?=$arLang["ID"]?>][SORT]" value="<?=htmlspecialcharsbx($arParams["DATA_OLD"][$arLang["ID"]]["SORT"])?>">
		<input type="text" name="FIELDS[<?=$arLang["ID"]?>][SORT]" value="<?=(intval($arParams["DATA"][$arLang["ID"]]["SORT"]) ? $arParams["DATA"][$arLang["ID"]]["SORT"] : "150")?>">
	</td>
</tr>
<tr>
	<td><?=GetMessage("EVENT_NAME_LANG")?>:</td>
	<td>
		<input type="hidden" name="FIELDS_OLD[<?=$arLang["ID"]?>][NAME]" value="<?=htmlspecialcharsbx($arParams["DATA_OLD"][$arLang["ID"]]["NAME"])?>">
		<input type="text" name="FIELDS[<?=$arLang["ID"]?>][NAME]" value="<?=htmlspecialcharsbx($arParams["DATA"][$arLang["ID"]]["NAME"])?>" style="width:100%;">
	</td>
</tr>
<tr>
	<td class="adm-detail-valign-top"><?=GetMessage("EVENT_DESCR_LANG")?>:</td>
	<td>
		<input type="hidden" name="FIELDS_OLD[<?=$arLang["ID"]?>][DESCRIPTION]" value="<?=htmlspecialcharsbx($arParams["DATA_OLD"][$arLang["ID"]]["DESCRIPTION"])?>">
		<textarea name="FIELDS[<?=$arLang["ID"]?>][DESCRIPTION]" style="width:100%;" rows="10"><?=htmlspecialcharsbx($arParams["DATA"][$arLang["ID"]]["DESCRIPTION"])?></textarea>
	</td>
</tr>
<?endforeach;?>
<?
if ($arParams["ACTION"] == "UPDATE"):
	$tabControl->BeginNextTab();
?>
<tr>
	<td colspan="2">
		<a href="message_edit.php?lang=<?=LANGUAGE_ID?>&amp;EVENT_NAME=<?=urlencode($arParams["EVENT_NAME"])?>"><?echo GetMessage("type_edit_add_message_template")?></a>
	</td>
</tr>
<?
	if (is_array($arParams["DATA"]["TEMPLATES"])):
		foreach ($arParams["DATA"]["TEMPLATES"] as $k => $v):
?><tr>
	<td colspan="2">[<a href="/bitrix/admin/message_edit.php?ID=<?=$v["ID"]?>"><?=$v["ID"]?></a>]<?=(strlen(trim($v["SUBJECT"])) > 0 ? " " : "").htmlspecialcharsEx($v["SUBJECT"])?>
	<?
	$arLID = array();
	$db_LID = CEventMessage::GetLang($v["ID"]);
	while($arrLID = $db_LID->Fetch())
		$arLID[] = $arrLID["LID"];
	if(!empty($arLID))
	{
		echo " (".implode(", ", $arLID).")";
	}

?></td>
</tr><?
		endforeach;
	endif;
endif;
$tabControl->Buttons(array("disabled"=>!$isAdmin, "back_url"=>"type_admin.php?lang=".LANGUAGE_ID));
$tabControl->End();
?>
</form>
<?
$tabControl->ShowWarnings(
	"form1", $message, 
	array(
		"EVENT_NAME_EMPTY" => "EVENT_NAME", 
		"LID_EMPTY" => "LID",
		"EVENT_NAME_EXIST" => "EVENT_NAME", 
		"EVENT_ID_EMPTY" => "EVENT_NAME", 
	)
);
?>

<?echo BeginNote();?>
<?=GetMessage("LANG_FIELDS")?>
<?echo EndNote();?>

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