first commit

This commit is contained in:
2026-01-25 18:18:09 +08:00
commit 509312e604
8136 changed files with 2349298 additions and 0 deletions

View File

@ -0,0 +1,28 @@
Расширение Twitter Bootstrap для Yii 2
======================================
Расширение включает поддержку разметки и компонентов фреймворка [Bootstrap 5](https://getbootstrap.com/) (также известного как "Twitter Bootstrap"). Bootstrap является прекрасным, отзывчивым фреймворком, который может значительно ускорить процесс разработки на стороне клиента.
Ядро Bootstrap представлено двумя частями:
- CSS основа, такая как система разметки, типографика, вспомогательные классы, и утилиты адаптивности.
- Готовые к использованию компоненты, такие как формы, меню, нумерация страниц, модальные окна, вкладки и т.д.
Как начать
----------
* [Установка](installation.md)
* [Основы использования](basic-usage.md)
Использование
------------
* [Виджеты Yii](usage-widgets.md)
* [Класс-помощник Html](helper-html.md)
* [Asset Bundles](asset-bundles.md)
Дополнительно
-------------
* [Использование .sass файлов Bootstrap напрямую](topics-sass.md)
* [Миграция с yii2-bootstrap4](migrating-yii2-bootstrap.md)

View File

@ -0,0 +1,12 @@
Asset Bundles
=============
Bootstrap - это комплексное front-end решение, включающее CSS, JavaScript, шрифты и т.д. Для того чтобы обеспечить гибкий контроль над компонентами Bootstrap, расширение предоставляет несколько Asset Bundles. Вот они:
- [[yii\bootstrap5\BootstrapAsset|BootstrapAsset]] - содержит CSS файлы.
- [[yii\bootstrap5\BootstrapPluginAsset|BootstrapPluginAsset]] - зависит от [[yii\bootstrap5\BootstrapAsset]], содержащий javascript файлы.
- [[yii\bootstrap5\BootstrapIconAsset|BootstrapIconAsset]] - содержит иконки.
Конкретные приложения могут потребовать различного использования. Если вам нужны только CSS-стили, то пакета [[yii\bootstrap5\BootstrapAsset]] будет достаточно. Тем не менее, если вы хотите использовать Bootstrap JavaScript, вам необходимо зарегистрировать [[yii\bootstrap5\BootstrapPluginAsset]], если вы хотите использовать Bootstrap Icons, вам необходимо зарегистрировать [[yii\bootstrap5\BootstrapIconAsset|BootstrapIconAsset]].
> Tip: большинство виджетов регистрируются с помощью [[yii\bootstrap5\BootstrapPluginAsset]] автоматически.

View File

@ -0,0 +1,13 @@
Базовое использование
===========
Yii не оборачивает базовый Bootstrap в PHP код, поскольку HTML, в этом случае, прост сам по себе. Вы можете найти подробную информацию о возможностях Bootstrap в [официальной документации](https://getbootstrap.com/docs/). Тем не менее, Yii обеспечивает удобный способ включения Bootstrap assets на страницах вашего приложения добавлением одной строки в файл `AppAsset.php`, расположенный в директории `@app/assets`:
```php
public $depends = [
'yii\web\YiiAsset',
'yii\bootstrap5\BootstrapAsset', // подключение Bootstrap
];
```
Использование загрузки Bootstrap через Yii Asset Manager позволяет минимизировать ресурсы и объединить с вашими собственными ресурсами, когда это будет необходимо.

View File

@ -0,0 +1,21 @@
Класс-помощник Html
===================
Bootstrap предоставляет множество последовательных HTML конструкции и каркасов, которые позволяют создавать различные визуальные эффекты. Только самые сложные из них передставлены виджетами, поставляемые с данным расширением. Остальные должны быть собраны вручную, используя HTML напрямую. Тем не менее, несколько специальных Bootstrap разметок предоставляются в помощнике [[\yii\bootstrap5\Html]]. [[\yii\bootstrap5\Html]] является расширенной версией [[\yii\helpers\Html]], удовлетворяющей потребности Bootstrap. Он предоставляет несколько полезных методов:
- `staticControl()` - позволяет отображать "[статические элементы управления](https://getbootstrap.com/docs/5.1/forms/form-control/#readonly-plain-text)" формы
[[\yii\bootstrap5\Html]] наследует все функциональные возможности, доступные в [[\yii\helpers\Html]], и может быть использован в качестве замены в ваших представлениях. Например:
```php
<?php
use yii\bootstrap5\Html;
?>
<?= Button::widget([
'label' => Html::encode('Save & apply'),
'encodeLabel' => false,
'options' => ['class' => 'btn-primary'],
]); ?>
```
> Attention: не путайте [[\yii\bootstrap5\Html]] и [[\yii\helpers\Html]]! Следите за тем какой класс вы используете в своих представлениях.

View File

@ -0,0 +1,20 @@
Установка
=========
## Получение расширения через Composer
Предпочтительный способ установки расширения - через [Composer](https://getcomposer.org/download/).
Для этого запустите команду
```
php composer.phar require --prefer-dist yiisoft/yii2-bootstrap5
```
или добавьте
```
"yiisoft/yii2-bootstrap5": "~2.0.0"
```
в секцию **require** вашего `composer.json`.

View File

@ -0,0 +1,50 @@
Миграция с yii2-bootstrap4
==============================
yii2-bootstrap5 является серьезной переработкой всего проекта (в соответствии с руководством по миграции с Bootstrap4 на Bootstrap5).
Наиболее заметные изменения кратко изложены ниже:
## General
* Изменение namespace с `yii\bootstrap4` на `yii\bootstrap5`
* Минимальная совместимая версия php **ограничена** `>=7.0`
* Кнопки закрытия виджетов, таких как [[yii\bootstrap5\Alert|Alert]] или [[yii\bootstrap5\Modal|Modal]], теперь отображаются
с помощью CSS и больше не содержат содержимого. Поэтому обязательно удалите класс "btn-close" и самостоятельно установите соответствующие стили, если вы его переопределяли.
## Widgets / Classes
### BaseHtml
### ActiveField
### ActiveForm
Новая константа [[yii\bootstrap5\ActiveForm::LAYOUT_FLOATING]]. Это
[new form layout](https://getbootstrap.com/docs/5.1/forms/floating-labels/) введен в Bootstrap 5.
### Breadcrumbs
### ButtonDropdown
### ButtonToolbar
### Carousel
### LinkPager
### Modal
Заменить `data-target` и `data-toggle` на `data-bs-target` и `data-bs-toggle`
### Nav
### NavBar
Теперь есть возможность создать [offcanvas navbar](https://getbootstrap.com/docs/5.1/components/navbar/#offcanvas).
Вы можете добиться этого, установив для параметра `$collapseOptions` значение `false` в виджете [[yii\bootstrap5\NavBar|Navbar]] и
`$offcanvasOptions`, значение пустого массива.
### Tabs
### ToggleButtonGroup

View File

@ -0,0 +1,14 @@
Использование .sass файлов Bootstrap напрямую
=============================================
Если вы хотите включить [Bootstrap CSS непосредственно в ваши sass-файлы](https://getbootstrap.com/getting-started/#customizing), вам может понадобиться исключить исходные css-файлы Bootstrap из загрузки. Вы можете сделать это, установив пустым свойство `css` пакета [[yii\bootstrap5\BootstrapAsset|BootstrapAsset]]. Для этого вам необходимо настроить [компонент приложения](https://github.com/yiisoft/yii2/blob/master/docs/guide/structure-application-components.md) `assetManager` следующим образом:
```php
'assetManager' => [
'bundles' => [
'yii\bootstrap5\BootstrapAsset' => [
'css' => [], // исключение исходных css-файлов из загрузки
]
]
]
```

View File

@ -0,0 +1,92 @@
Виджеты Yii
===========
Большинство сложных Bootstrap компонентов обернуты в виджеты Yii, чтобы обеспечить более надежный синтаксис и интеграцию с особенностями фреймворка. Все виджеты относятся к пространству имен `\yii\bootstrap5`:
- [[yii\bootstrap5\Accordion|Accordion]]
- [[yii\bootstrap5\ActiveField|ActiveField]]
- [[yii\bootstrap5\ActiveForm|ActiveForm]]
- [[yii\bootstrap5\Alert|Alert]]
- [[yii\bootstrap5\Breadcrumbs|Breadcrumbs]]
- [[yii\bootstrap5\Button|Button]]
- [[yii\bootstrap5\ButtonDropdown|ButtonDropdown]]
- [[yii\bootstrap5\ButtonGroup|ButtonGroup]]
- [[yii\bootstrap5\ButtonToolbar|ButtonToolbar]]
- [[yii\bootstrap5\Carousel|Carousel]]
- [[yii\bootstrap5\Dropdown|Dropdown]]
- [[yii\bootstrap5\LinkPager|LinkPager]]
- [[yii\bootstrap5\Modal|Modal]]
- [[yii\bootstrap5\Nav|Nav]]
- [[yii\bootstrap5\NavBar|NavBar]]
- [[yii\bootstrap5\Offcanvas|Offcanvas]]
- [[yii\bootstrap5\Popover|Popover]]
- [[yii\bootstrap5\Progress|Progress]]
- [[yii\bootstrap5\Tabs|Tabs]]
- [[yii\bootstrap5\Toast|Toast]]
- [[yii\bootstrap5\ToggleButtonGroup|ToggleButtonGroup]]
## ActiveField: дополнительные поля <span id="additional-fields"></span>
- [Диапазон](https://getbootstrap.com/docs/5.1/forms/range/): `$form->rangeInput(['min' => 0, 'max' => 100, 'step' => 1])`
- [Выбор цвета](https://getbootstrap.com/docs/5.1/forms/form-control/#color): `$form->colorInput()`
- [Переключатель](https://getbootstrap.com/docs/5.1/forms/checks-radios/#switches): `$form->checkbox(['switch' => true])`
## Настройка CSS классов виджетов <span id="customizing-css-classes"></span>
Виджеты позволяют быстро создавать HTML Bootstrap компоненты, которые требуют CSS классы Bootstrap. Классы по умолчанию, для конкретного компонента, будут добавлены автоматически виджетом, и необязательные классы, которые вы можете настроить, как правило, поддерживаются через свойства виджета.
Например, вы можете использовать [[yii\bootstrap5\Button::options]] чтобы настроить внешний вид кнопки. Класс `btn`, который требуется для кнопки, будет добавлен автоматически. Все, что вам нужно, это указать конкретный класс кнопки:
```php
echo Button::widget([
'label' => 'Action',
'options' => ['class' => 'btn-primary'], // устанавливает класс "btn btn-primary"
]);
```
Тем не менее, иногда вам может понадобиться заменить классы по умолчанию альтернативными. Например, виджет [[yii\bootstrap5\ButtonGroup]] использует класс `btn-group` для контейнера `div` по умолчанию, но вам, возможно, придётся использовать `btn-group-vertical` чтобы выровнять кнопки по вертикали. Добавление `btn-group-vertical` в параметр `class` приведет к неправильному результату. Для того, чтобы переопределить классы виджета по умолчанию, необходимо указать параметр `class` как массив, содержащий определение класса, настроенное в ключе `widget`:
```php
echo ButtonGroup::widget([
'options' => [
'class' => ['widget' => 'btn-group-vertical'] // заменяет класс 'btn-group' на 'btn-group-vertical'
],
'buttons' => [
['label' => 'A'],
['label' => 'B'],
]
]);
```
## Виджет навигационной панели <span id="navbar-widget"></span>
Виджет навигационной панели имеет свои особенности. Вы должны задать точку останова (разрешение при котором панель отображается в свернутом виде)
и основной стиль отображения (цветовая схема) для панели.
Вы можете изменить цветовую схему и точку останова с помощью CSS классов. По умолчанию, используется цветовая схема
`navbar-light bg-light` и точка останова `navbar-expand-lg`. Для получения доп. информации, смотрите [документацию Bootstrap](https://getbootstrap.com/docs/5.1/components/navbar/):
```php
Navbar::begin([
'options' => [
'class' => ['navbar-dark', 'bg-dark', 'navbar-expand-md']
]
]);
[...]
Navbar::end();
```
Если Вы хотите повернуть бренд (значок) и переключить положение кнопок в мобильной навигации, то можете сделать это следующим образом:
```php
Navbar::begin([
'brandOptions' => [
'class' => ['order-1']
],
'togglerOptions' => [
'class' => ['order-0']
]
]);
[...]
Navbar::end();
```