%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/highloadblock/admin/ |
| Current File : /home/bitrix/www/bitrix/modules/highloadblock/admin/highloadblock_entity_edit.php.orig |
<?php
// admin initialization
define("ADMIN_MODULE_NAME", "highloadblock");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
IncludeModuleLangFile(__FILE__);
if (!$USER->IsAdmin())
{
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
}
if (!CModule::IncludeModule(ADMIN_MODULE_NAME))
{
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
}
if ($_REQUEST["mode"] == "list")
{
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_js.php");
}
else
{
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
}
// form
$aTabs = array(
array("DIV" => "edit1", "TAB" => "Entity", "ICON"=>"ad_contract_edit", "TITLE"=> "Ent1ty")
);
$tabControl = new CAdminTabControl("tabControl", $aTabs);
$is_create_form = true;
$is_update_form = false;
use Bitrix\Highloadblock as HL;
// get highloadblock data
if (isset($_REQUEST['ID']) && $_REQUEST['ID'] > 0)
{
$hlblock = HL\HighloadBlock::getById($_REQUEST['ID'])->Fetch();
if (!empty($hlblock))
{
$is_update_form = true;
$is_create_form = false;
}
}
if ($is_create_form)
{
// default values for create form
$hlblock = array_fill_keys(array('ID', 'NAME', 'TABLE_NAME'), '');
}
$isEditMode = true;
// delete action
if ($is_update_form && isset($_REQUEST['action']) && $_REQUEST['action'] === 'delete' && check_bitrix_sessid())
{
HL\HighloadBlock::delete($hlblock['ID']);
$fields = HL\HighloadBlockField::getList(array('select' => array('ID'), 'filter' => array('=ENTITY_ID' => $hlblock['ID'])));
while ($field = $fields->Fetch())
{
HL\HighloadBlockField::delete($field['ID']);
}
LocalRedirect("highloadblock_index.php?lang=".LANGUAGE_ID);
}
// save action
if ((strlen($save)>0 || strlen($apply)>0) && $REQUEST_METHOD=="POST" && check_bitrix_sessid())
{
$data = array(
'NAME' => $_REQUEST['NAME'],
'TABLE_NAME' => $_REQUEST['TABLE_NAME']
);
$errors = HL\HighloadBlock::checkFields($data);
if ($is_update_form)
{
$errors = array_merge_recursive($errors, HL\HighloadBlock::checkFieldsBeforeUpdate($data));
if (empty($errors))
{
HL\HighloadBlock::update($data, $_REQUEST['ID']);
$ID = intval($_REQUEST['ID']);
}
}
else
{
$errors = array_merge_recursive($errors, HL\HighloadBlock::checkFieldsBeforeAdd($data));
if (empty($errors))
{
// create
$ID = HL\HighloadBlock::add($data);
// add ID
$primaryData = array('ENTITY_ID' => $ID, 'NAME' => 'ID', 'DATA_TYPE' => 'integer', 'IS_PRIMARY' => 1);
HL\HighloadBlockField::add($primaryData);
}
}
//if (strlen($strError)<=0)
if (empty($errors))
{
if (strlen($save)>0)
{
LocalRedirect("highloadblock_index.php?lang=".LANGUAGE_ID);
}
else
{
LocalRedirect("highloadblock_entity_edit.php?ID=".$ID."&lang=".LANGUAGE_ID."&".$tabControl->ActiveTabParam());
}
}
// rewrite original value by form value to restore form
foreach ($data as $k => $v)
{
$hlblock[$k] = $v;
}
}
// menu
$aMenu = array(
array(
"TEXT" => 'List',
"TITLE" => 'List',
"LINK" => "highloadblock_index.php?lang=".LANGUAGE_ID,
"ICON" => "btn_list",
)
);
$context = new CAdminContextMenu($aMenu);
$context->Show();
?>
<?
if (!empty($errors['all']))
{
CAdminMessage::ShowMessage(join("\n", $errors['all']));
}
?>
<form name="form1" method="POST" action="<?=$APPLICATION->GetCurPage()?>">
<?=bitrix_sessid_post()?>
<input type="hidden" name="ID" value="<?=htmlspecialcharsbx($hlblock['ID'])?>">
<input type="hidden" name="lang" value="<?=LANGUAGE_ID?>">
<?
$tabControl->Begin();
$tabControl->BeginNextTab();
?>
<tr valign="top">
<td width="40%">Name</td>
<td><?
if (!$isEditMode):
?><?=htmlspecialcharsEx($hlblock['NAME'])?><?
else :
?><input type="text" name="NAME" size="30" value="<?=htmlspecialcharsbx($hlblock['NAME'])?>"><?
endif;
?></td>
</tr>
<tr valign="top">
<td>Table name</td>
<td><?
if (!$isEditMode):
?><?=htmlspecialcharsEx($hlblock['TABLE_NAME'])?><?
else :
?><input type="text" name="TABLE_NAME" size="30" value="<?=htmlspecialcharsbx(strtolower($hlblock['TABLE_NAME']))?>"><?
endif;
?></td>
</tr>
<? if ($is_update_form): ?>
<tr valign="top">
<td>Entity fields</td>
<td><a href="highloadblock_entity_fields_list.php?ENTITY_ID=<?=intval($hlblock['ID'])?>">[<?=intval($hlblock['FIELDS_COUNT'])?>]</a></td>
</tr>
<? endif; ?>
<?
$disable = true;
if($isEditMode)
$disable = false;
$tabControl->Buttons(array("disabled" => $disable, "back_url"=>"highloadblock_index.php?lang=".LANGUAGE_ID));
$tabControl->End();
?>
</form>
<?
if ($_REQUEST["mode"] == "list")
{
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin_js.php");
}
else
{
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
}