Перед созданием новой темы, пожалуйста, ознакомьтесь с FAQ по LinkorCMS

Группа чекбоксов в настройках блока. Как сделать?

Супер пользователь
Сообщений: 38
Покопался в блоках, но нигде не нашёл как прописать в constructor.php и editsave.php группу чекбоксов.
Или проще сделать отдельными чекбоксами?
Разработчик
Сообщений: 605
Тут уж вопрос дизайна и вкуса. Группу чекбоксов нет проблем сделать. Посмотрите функцию VisibilityConditionsAdmin в модуле ядра access.php, там именно такой случай.

В админке используется обычный HTML, нет ничего хитрого. Тем более модули генерируют все по факту вручную, хоть и прибегая ко всяким оберткам и полезностям, чтобы совсем уж ручками не набирать все.
Супер пользователь
Сообщений: 38
Я про настройки блока, а не модуля.
Была непонятна связь этих двух файлов и их структура, но разобрался.
Немного поковырялся и реализовал. Теперь вывод, сохранение и редактирование корректно отрабатывают. Но всё равно спасибо.
Остался лишь вопрос - Как выделить эту группу чекбоксов визуально, как бы под общим заголовком, но каждый со своим описанием? Используется следующий код:

<?
FormRow('Праздники', System::admin()->Check( 'typeEvents[]', 'H', in_array('H', $typeEvents)));<br />
FormRow('Дни рождения', System::admin()->Check( 'typeEvents[]', 'B', in_array('B', $typeEvents)));<br />
FormRow('Траурные события', System::admin()->Check( 'typeEvents[]', 'M', in_array('M', $typeEvents)));<br />
FormRow('Просто события', System::admin()->Check( 'typeEvents[]', 'E', in_array('E', $typeEvents)));<br />

?>

Планируется три группы чекбоксов и хотелось бы вывести их более компактно и визуально приятнее.
Например, эту группу из четырёх чекбоксов вывести в одной строке, а над этой строкой выделенную визуально с названием группы..
Возможно ли это?

-- Изменено "dimajak": 24.12.2015 21:23 --
Разработчик
Сообщений: 605
dimajak:
Была непонятна связь этих двух файлов и их структура, но разобрался.

Это по коду модуля /modules/blocks/admin.php вполне ясно. Просто при показе формы и ее сохранении подключается код из этих файлов.

dimajak:
Я про настройки блока, а не модуля.

Я хотел указать на построение подобной формы.

dimajak:
Остался лишь вопрос - Как выделить эту группу чекбоксов визуально, как бы под общим заголовком, но каждый со своим описанием?

В целом то есть методы FormRow(), FormTitleRow(), FormTextRow() (файл admin_template.class.php). Остальное уже игры с версткой. Хоть свою форму можно нарисовать, не прибегая к стандартным контролам и не принимая навязанные в них принципы.
Супер пользователь
Сообщений: 38
При вставке кода

<?
FormTitleRow('Показывать события:');
?>
в constructor.php вываливается ошибка:
Fatal error: Call to undefined function FormTitleRow() in ...\blocks\holidays\constructor.php on line 65

<?
FormRow('на год', System::admin()->Check( 'year', 1, $year));<br />
FormTitleRow('Показывать события:');<br />
FormRow('Праздники', System::admin()->Check( 'events[]', 'H', in_array('H', $events)));
?>


FormTextRow аналогична FormRow, при замене FormRow на неё ничего не меняется.
Или я что-то не так делаю?

-- Изменено "dimajak": 24.12.2015 22:44 --
Разработчик
Сообщений: 605
dimajak:
в constructor.php вываливается ошибка:
Fatal error: Call to undefined function FormTitleRow() in ...\blocks\holidays\constructor.php on line 65

Это нормально, такой функции нет. Но есть метод в классе. Если пролистаете файл с классом до конца, то увидите магию.

dimajak:
FormTextRow аналогична FormRow, при замене FormRow на неё ничего не меняется.

FormRow отображает слева подпись, а справа контрол. FormTextRow отображает подпись сверху, а контрол снизу (и ему доступна вся ширина, что удобно для больших текстовых полей).
Супер пользователь
Сообщений: 38
Мартин:
Это нормально, такой функции нет. Но есть метод в классе. Если пролистаете файл с классом до конца, то увидите магию.
О. опять загадки.
Я и так рою и изучаю все встречающиеся на пути функции, но что-то мне указывает на тупик в сознании.
Может подскажете-расшифруете ?
А то из-за отсутствия документации по API мозг уже начинает уставать решать квесты.
Разработчик
Сообщений: 605
В LinkorCMS 1.4 новая админка, в предыдущих версиях класса AdminPage не было. Была просто кучка функций. Так вот для совместимости эти функции в 1.4 являются затычками, которые дергают методы класса. И понятое дело, что для нового функционала (тот же FormTitleRow) этих заглушек нет.
Супер пользователь
Сообщений: 38
Я так понял, что для этого надо написать свою оболочку и прицепить к этому стили?
Нет, спасибо.
Это для меня всегды было сложно.
Код, да, напишу, но, чтобы разместить элементы на форме - увольте. :)
Я надеялся на готовое. :)
Тогда пусть мучаются админы. :)
Гости не могут отвечать на темы. Войдите или Зарегистрируйтесь.
Здесь присутствуют
(пользователей: 0, гостей: 1)
Быстрый переход: