Skip to content

Instantly share code, notes, and snippets.

@may-cat
Last active August 29, 2015 14:10
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save may-cat/e4755af8ebecbc507c14 to your computer and use it in GitHub Desktop.
Save may-cat/e4755af8ebecbc507c14 to your computer and use it in GitHub Desktop.
Full D7 / options - first variant
<?
/***
* Данный пример демонстрирует один из способов написания файла options для модулей Битрикса.
*
* Приведённый пример расчитан на модуль с однотипными свойствами, число которых не фиксировано.
* Работа с самими свойствами и генерация формы вынесена в отдельный класс этого же модуля.
*/
use Bitrix\Main\Localization\Loc;
if (!$USER->IsAdmin()) {
return;
}
define('ADMIN_MODULE_NAME', 'maycat.somemodule');
CModule::IncludeModule('maycat.somemodule');
CModule::IncludeModule('iblock');
Loc::loadMessages($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/options.php");
Loc::loadMessages(__FILE__);
// Читаем данные об инфоблоках //
$arIBlocks = array();
$res = \CIBlock::GetList();
while ($ar = $res->GetNext())
$arIBlocks[ $ar['ID'] ] = $ar;
// Создаём хелпер для работы с админкой //
$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)) {
COption::RemoveOption(ADMIN_MODULE_NAME);
\CAdminMessage::ShowMessage(array("MESSAGE" => "Восстановлены значения по умолчанию", "TYPE" => "OK"));
} elseif ($_REQUEST) {
for ($i=0; $i<\Maycat\Somemodule\Options\Api::getCount()+1; $i++) {
if (\Maycat\Somemodule\Options\Api::validate($_REQUEST['IB'][$i],$arIBlocks)) {
\Maycat\Somemodule\Options\Api::save($_REQUEST['IB'][$i],$i);
\CAdminMessage::ShowMessage(array("MESSAGE" => "Значение номер $i сохранено", "TYPE" => "OK"));
}
}
\Maycat\Somemodule\Options\Api::cleanup();
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$tabControl->Begin();
?>
<form method="post" action="<?= $APPLICATION->GetCurPage() ?>?mid=<?= urlencode($mid) ?>&amp;lang=<?= LANGUAGE_ID ?>">
<? $tabControl->BeginNextTab(); ?>
<? foreach (\Maycat\Somemodule\Options\Api::getOptions() as $k=>$IBDescr) { ?>
<? \Maycat\Somemodule\Options\View::adminRow($IBDescr,$k,$arIBlocks) ?>
<? } ?>
<? \Maycat\Somemodule\Options\View::adminRow(array(),$k+1,$arIBlocks) ?>
<? $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