Страница 1 из 1
Как правильно изменить дефолтную разметку checkbox?
Добавлено: 2017.03.30, 12:34
undestroyer
Меняю в проекте стандартные чекбоксы на стилизованные. Где правильно переопределить разметку этого чекбокса для рендера через ActiveField? Прописывать в каждом чекбоксе его template нет желания.
Уточню сразу: есть один HTML макет для всех checkbox, его нужно использовать везде. Прописывать в каждом чекбоксе этот template займет несколько часов и появится сплошная копипаста
Код: Выделить всё
<div class="checkbox-container">
<input class="checkbox-container__input" id="id" type="checkbox" name="Model[attribute]">
<label class="checkbox-container__label" for="id">Отправить клиенту SMS
<span class="checkbox-container__box"></span>
<span class="checkbox-container__box-checked glyphicon glyphicon-ok"></span>
</label>
</div>
Re: Как правильно изменить дефолтную разметку checkbox?
Добавлено: 2017.03.30, 13:16
De-Luxis
Re: Как правильно изменить дефолтную разметку checkbox?
Добавлено: 2017.03.30, 13:19
undestroyer
Верстка у меня уже есть, осталось прикрутить эту разметку к 150 чекбоксам по всему проекту. Вопрос в том где ее нужно расположить и как правильно прописать?
Re: Как правильно изменить дефолтную разметку checkbox?
Добавлено: 2017.03.30, 13:53
za4me
Мне как-то надо было сменить шаблон на все input'ы, воспользовался DI (если правильно называю).
В bootstrap.php прописал:
Код: Выделить всё
\Yii::$container->set('yii\widgets\ActiveField', [
'template' => "<div class='row'><div class='col-xs-4 col-md-3'>{label}</div><div class='col-xs-8 col-md-9'>\n{input}\n{hint}\n{error}</div></div>",
]);
Думаю вам стоит в эту сторону искать.
Re: Как правильно изменить дефолтную разметку checkbox?
Добавлено: 2017.03.30, 14:11
someweb
Теперь можно через конфиг
Код: Выделить всё
'container' => [
'definitions' => [
'yii\bootstrap\ActiveField' => ['checkboxTemplate' => 'YOUR_TEMPLATE'],
],
],
Re: Как правильно изменить дефолтную разметку checkbox?
Добавлено: 2017.03.30, 14:27
undestroyer
someweb писал(а): ↑2017.03.30, 14:11
Теперь можно через конфиг
Код: Выделить всё
'container' => [
'definitions' => [
'yii\bootstrap\ActiveField' => ['checkboxTemplate' => 'YOUR_TEMPLATE'],
],
],
Про DI знал, про конфиг DI новенькое, спасибо!
Теперь насчет моей разметки. Тут внутри <label> есть классы, на которых держится CSS "checkbox-container__label". Как через этот же DI задать создание класса для <label>? Не вижу конфигурации для $labelOptions из checkbox. Если я поправлю $labelOptions, то она залетит на все поля. Создать анонимную функцию для рендера тоже нельзя.
Код: Выделить всё
<div class="checkbox-container">
<input class="checkbox-container__input" id="id" type="checkbox" name="Model[attribute]">
<label class="checkbox-container__label" for="id">Отправить клиенту SMS
<span class="checkbox-container__box"></span>
<span class="checkbox-container__box-checked glyphicon glyphicon-ok"></span>
</label>
</div>
Re: Как правильно изменить дефолтную разметку checkbox?
Добавлено: 2017.03.30, 14:39
someweb
Может тогда наследоваться от ActiveField и написать свой checkbox()?