Last active
May 18, 2016 22:09
-
-
Save may-cat/82cfdc5ad2c69e39958f to your computer and use it in GitHub Desktop.
Full D7 / options - second variant (1C-Bitrix)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<? | |
/*** | |
* Данный пример демонстрирует один из способов написания файла options для модулей Битрикса. | |
* | |
* Приведённый пример расчитан на модуль с однотипными свойствами, число которых чётко фиксировано. | |
* Список свойств вынесен в отдельную переменную $arOptions, таким образом добавление нового свойства - вопрос 1 минуты | |
*/ | |
use Bitrix\Main\Localization\Loc; | |
$arOptions = array( | |
'MYNAME'=>array( | |
'TYPE'=>'String', | |
'DEFAULT'=>'James Bond', | |
'DESCRIPTION'=>"Введите имя" | |
), | |
'NUMBER'=>array( | |
'TYPE'=>'String', | |
'DEFAULT'=>'007', | |
'DESCRIPTION'=>"Ваш кодовый номер" | |
), | |
); | |
$ADMIN_MODULE_NAME = 'maycat.somemodule'; | |
// | |
if (!$USER->IsAdmin()) { | |
return; | |
} | |
Loc::loadMessages($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/options.php"); | |
Loc::loadMessages(__FILE__); | |
$tabControl = new CAdminTabControl("tabControl", array( | |
array( | |
"DIV" => "edit1", | |
"TAB" => GetMessage("MAIN_TAB_SET"), | |
"TITLE" => GetMessage("MAIN_TAB_TITLE_SET") | |
), | |
)); | |
// Обработка пост-запроса // | |
if ((!empty($save) || !empty($restore)) && $REQUEST_METHOD == "POST" && check_bitrix_sessid()) { | |
if (!empty($restore)) { | |
// Восстанавливаем дефолтные значения // | |
foreach ($arOptions as $code=>$v) | |
{ | |
$method = "SetOption{$v['TYPE']}"; | |
\COption::$method($ADMIN_MODULE_NAME, $code, $v['DEFAULT']); | |
} | |
CAdminMessage::ShowMessage(array("MESSAGE" => "Восстановлены значения по умолчанию", "TYPE" => "OK")); | |
} else { | |
$ok = true; | |
foreach ($arOptions as $code=>$v) | |
$ok = $ok && $_REQUEST[$code]; | |
if ($ok) | |
{ | |
foreach ($arOptions as $code=>$v) | |
{ | |
$method = "SetOption{$v['TYPE']}"; | |
\COption::$method($ADMIN_MODULE_NAME, $code, $_REQUEST[$code],$v['DESCRIPTION']); | |
} | |
CAdminMessage::ShowMessage(array("MESSAGE" => "Значения сохранены", "TYPE" => "OK")); | |
} else { | |
CAdminMessage::ShowMessage("Запрещённое значение"); | |
} | |
} | |
} | |
$tabControl->Begin(); | |
?> | |
<form method="post" action="<?= $APPLICATION->GetCurPage() ?>?mid=<?= urlencode($mid) ?>&lang=<?= LANGUAGE_ID ?>"> | |
<? $tabControl->BeginNextTab(); ?> | |
<? foreach ($arOptions as $code=>$v): ?> | |
<tr> | |
<td width="40%"> | |
<label for="WSDL"><?=$v['DESCRIPTION']?></label> | |
</td> | |
<td width="60%"> | |
<input type="text" size="50" maxlength="200" name="<?=$code?>" id="<?=$code?>" | |
value="<?= htmlspecialcharsbx( | |
COption::GetOptionString($ADMIN_MODULE_NAME, $code) | |
) ?>"> | |
</td> | |
</tr> | |
<? endforeach ?> | |
<? $tabControl->Buttons(); ?> | |
<input type="submit" name="save" value="<?= GetMessage("MAIN_SAVE") ?>" | |
title="<?= GetMessage("MAIN_OPT_SAVE_TITLE") ?>" class="adm-btn-save"> | |
<input type="submit" name="restore" title="<?= GetMessage("MAIN_HINT_RESTORE_DEFAULTS") ?>" | |
OnClick="return confirm('<?= AddSlashes(GetMessage("MAIN_HINT_RESTORE_DEFAULTS_WARNING")) ?>')" | |
value="<?= GetMessage("MAIN_RESTORE_DEFAULTS") ?>"> | |
<?= bitrix_sessid_post(); ?> | |
<? $tabControl->End(); ?> | |
</form> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment