%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/controller/admin/ |
| Current File : /home/bitrix/www/bitrix/modules/controller/admin/controller_counter_edit.php |
<?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
/** @global CMain $APPLICATION */
/** @global CDatabase $DB */
/** @global CUser $USER */
if (!$USER->CanDoOperation("controller_counters_view") || !CModule::IncludeModule("controller"))
{
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
}
require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/controller/prolog.php");
IncludeModuleLangFile(__FILE__);
$message = null;
$ID = intval($_REQUEST["ID"]);
if (
$_SERVER["REQUEST_METHOD"] == "POST"
&& check_bitrix_sessid()
&& $USER->CanDoOperation("controller_counters_manage")
&& (
isset($_POST["save"])
|| isset($_POST["apply"])
|| isset($_POST["delete"])
)
)
{
if (isset($_POST["delete"]) && $_POST["delete"] === "y")
{
CControllerCounter::Delete($ID);
if ($back_url == '')
LocalRedirect("controller_counter_admin.php?lang=".LANGUAGE_ID);
else
LocalRedirect($back_url);
}
else
{
$arFields = array(
"COUNTER_TYPE" => $_POST["COUNTER_TYPE"],
"COUNTER_FORMAT" => $_POST["COUNTER_FORMAT"],
"NAME" => $_POST["NAME"],
"COMMAND" => $_POST["COMMAND"],
"CONTROLLER_GROUP_ID" => $_POST["CONTROLLER_GROUP_ID"],
);
$obCounter = new CControllerCounter;
if ($ID > 0)
$res = $obCounter->Update($ID, $arFields);
else
$res = $ID = $obCounter->Add($arFields);
if (!$res)
{
if ($e = $APPLICATION->GetException())
$message = new CAdminMessage(GetMessage("CTRL_COUNTER_EDIT_ERROR"), $e);
}
else
{
if (isset($_POST["save"]))
{
if ($back_url == '')
LocalRedirect("controller_counter_admin.php?lang=".LANGUAGE_ID);
else
LocalRedirect($back_url);
}
else
{
LocalRedirect("controller_counter_edit.php?lang=".LANGUAGE_ID."&ID=".$ID);
}
}
}
}
$arCounter = CControllerCounter::GetArrayByID($ID);
if (!is_array($arCounter))
$ID = 0;
if ($message !== null)
{
$arCounter = array(
"COUNTER_TYPE" => $_POST["COUNTER_TYPE"],
"COUNTER_FORMAT" => $_POST["COUNTER_FORMAT"],
"NAME" => $_POST["NAME"],
"COMMAND" => $_POST["COMMAND"],
"CONTROLLER_GROUP_ID" => is_array($_POST["CONTROLLER_GROUP_ID"])? $_POST["CONTROLLER_GROUP_ID"]: array(),
);
}
elseif ($ID <= 0)
{
$arCounter = array(
"COUNTER_TYPE" => "F",
"COUNTER_FORMAT" => "",
"NAME" => "",
"COMMAND" => "",
"CONTROLLER_GROUP_ID" => array(),
);
}
$sDocTitle = $ID > 0? GetMessage("CTRL_CNT_EDIT_TITLE", array("#ID#" => $ID)): GetMessage("CTRL_CNT_EDIT_TITLE_NEW");
$APPLICATION->SetTitle($sDocTitle);
/***************************************************************************
* HTML form
****************************************************************************/
require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/prolog_admin_after.php");
$aMenu = array(
array(
"ICON" => "btn_list",
"TEXT" => GetMessage("CTRL_COUNTER_EDIT_TOOLBAR_LIST"),
"LINK" => "controller_counter_admin.php?lang=".LANGUAGE_ID
)
);
if ($ID > 0 && $USER->CanDoOperation("controller_counters_manage"))
{
$aMenu[] = array("SEPARATOR" => "Y");
$aMenu[] = array(
"ICON" => "btn_new",
"TEXT" => GetMessage("CTRL_COUNTER_EDIT_TOOLBAR_NEW"),
"LINK" => "controller_counter_edit.php?lang=".LANGUAGE_ID
);
$aMenu[] = array(
"TEXT" => GetMessage("CTRL_COUNTER_EDIT_TOOLBAR_DELETE"),
"ICON" => "btn_delete",
"LINK" => "javascript:jsDelete('form1', '".GetMessage("CTRL_COUNTER_EDIT_TOOLBAR_DELETE_CONFIRM")."')",
);
}
$context = new CAdminContextMenu($aMenu);
$context->Show();
$aTabs = array(
array(
"DIV" => "edit1",
"TAB" => GetMessage("CTRL_COUNTER_EDIT_TAB1"),
"TITLE" => GetMessage("CTRL_COUNTER_EDIT_TAB1_TITLE"),
),
array(
"DIV" => "edit2",
"TAB" => GetMessage("CTRL_COUNTER_EDIT_CONTROLLER_GROUP"),
"TITLE" => GetMessage("CTRL_COUNTER_EDIT_CONTROLLER_GROUP_TITLE"),
),
array(
"DIV" => "edit3",
"TAB" => GetMessage("CTRL_COUNTER_EDIT_COMMAND"),
"TITLE" => GetMessage("CTRL_COUNTER_EDIT_COMMAND_TITLE"),
),
);
$tabControl = new CAdminTabControl("tabControl", $aTabs);
if ($message)
echo $message->Show();
?>
<script>
function jsDelete(form_id, message)
{
var _form = BX(form_id);
var _flag = BX('delete');
if (_form && _flag)
{
if (confirm(message))
{
_flag.value = 'y';
_form.submit();
}
}
}
</script>
<form method="POST" action="<? echo $APPLICATION->GetCurPage() ?>?lang=<?=LANGUAGE_ID?>&ID=<?=$ID?>" name="form1" id="form1">
<? $tabControl->Begin(); ?>
<? $tabControl->BeginNextTab(); ?>
<tr class="adm-detail-required-field">
<td width="40%"><? echo GetMessage("CTRL_COUNTER_EDIT_NAME") ?>:</td>
<td width="60%">
<input type="text" name="NAME" size="53" maxlength="255" value="<? echo htmlspecialcharsbx($arCounter["NAME"]) ?>">
</td>
</tr>
<tr class="adm-detail-required-field">
<td><? echo GetMessage("CTRL_COUNTER_EDIT_COUNTER_TYPE") ?>:</td>
<td><select name="COUNTER_TYPE">
<? foreach (CControllerCounter::GetTypeArray() as $key => $value): ?>
<option value="<? echo htmlspecialcharsbx($key) ?>"<? if ($arCounter["COUNTER_TYPE"] == $key) echo " selected" ?>><? echo htmlspecialcharsEx($value) ?></option>
<? endforeach; ?>
</select>
</td>
</tr>
<tr>
<td><? echo GetMessage("CTRL_COUNTER_EDIT_COUNTER_FORMAT") ?>:</td>
<td><select name="COUNTER_FORMAT">
<? foreach (CControllerCounter::GetFormatArray() as $key => $value): ?>
<option value="<? echo htmlspecialcharsbx($key) ?>"<? if ($arCounter["COUNTER_FORMAT"] == $key) echo " selected" ?>><? echo htmlspecialcharsEx($value) ?></option>
<? endforeach; ?>
</select>
</td>
</tr>
<? $tabControl->BeginNextTab(); ?>
<tr valign="top">
<td width="40%" class="adm-detail-valign-top"> </td>
<td width="60%" valign="top">
<div class="checkboxes">
<input type="checkbox" id="group_filter_checkbox" />
<input type="text" value="" id="group_filter">
<?
$dbr_group = CControllerGroup::GetList(Array("SORT" => "ASC", "NAME" => "ASC", "ID" => "ASC"));
while ($ar_group = $dbr_group->GetNext()):
?>
<div class="adm-list-item">
<input
type="checkbox"
name="CONTROLLER_GROUP_ID[]"
id="CONTROLLER_GROUP_ID_<? echo htmlspecialcharsbx($ar_group["ID"]) ?>"
value="<? echo htmlspecialcharsbx($ar_group["ID"]) ?>"
<? if (in_array($ar_group["ID"], $arCounter["CONTROLLER_GROUP_ID"])) echo " checked" ?>
/>
<label
for="CONTROLLER_GROUP_ID_<? echo htmlspecialcharsbx($ar_group["ID"]) ?>"
><? echo htmlspecialcharsEx($ar_group["NAME"]) ?></label>
</div>
<? endwhile; ?>
</div>
<script>
function group_filter_change()
{
var group_filter = BX('group_filter');
var check_boxes = document.getElementsByName('CONTROLLER_GROUP_ID[]');
var all_checked = true;
var all_unchecked = true;
for (var i = 0; i < check_boxes.length; i++)
{
var found = false;
var labels = check_boxes[i].labels;
for (var j = 0; j < labels.length; j++)
{
if (labels[j].innerHTML.indexOf(group_filter.value) != -1)
{
found = true;
break;
}
}
check_boxes[i].parentNode.style.display = found? 'block': 'none';
if (found)
{
all_checked = all_checked && check_boxes[i].checked;
all_unchecked = all_unchecked && !check_boxes[i].checked;
}
}
}
function group_filter_checkbox_change()
{
var group_filter = BX('group_filter');
var group_filter_checkbox = BX('group_filter_checkbox');
var check_boxes = document.getElementsByName('CONTROLLER_GROUP_ID[]');
for (var i = 0; i < check_boxes.length; i++)
{
if (check_boxes[i].parentNode.style.display == 'block')
check_boxes[i].checked = group_filter_checkbox.checked;
}
}
BX.ready(function(){
BX.bind(BX('group_filter'), "bxchange", group_filter_change);
BX.bind(BX('group_filter_checkbox'), "click", group_filter_checkbox_change);
});
</script>
</td>
</tr>
<? $tabControl->BeginNextTab(); ?>
<tr>
<td colspan="2">
<textarea name="COMMAND" id="COMMAND" style="width:100%" rows="20"><? echo htmlspecialcharsbx($arCounter["COMMAND"]) ?></textarea>
</td>
</tr>
<? $tabControl->EndTab(); ?>
<? $tabControl->Buttons(array(
"back_url" => $back_url? $back_url: "controller_counter_admin.php?lang=".LANGUAGE_ID,
"disabled" => !$USER->CanDoOperation("controller_counters_manage"),
)); ?>
<? $tabControl->End(); ?>
<? echo bitrix_sessid_post(); ?>
<input type="hidden" name="lang" value="<? echo LANGUAGE_ID ?>">
<? if ($ID > 0): ?>
<input type="hidden" name="ID" value="<?=$ID?>">
<input type="hidden" name="delete" id="delete" value="">
<? endif; ?>
<? if ($back_url != ''): ?>
<input type="hidden" name="back_url" value="<? echo htmlspecialcharsbx($back_url) ?>">
<? endif ?>
<input type="hidden" value="Y" name="apply">
</form>
<?
if (COption::GetOptionString('fileman', "use_code_editor", "Y") == "Y" && CModule::IncludeModule('fileman'))
{
CCodeEditor::Show(array(
'textareaId' => 'COMMAND',
'height' => 350,
'forceSyntax' => 'php',
));
}
?>
<? require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_admin.php"); ?>