|
| 1 | +# Виджет QuickEditAccordion |
| 2 | + |
| 3 | +## Описание |
| 4 | + |
| 5 | +Виджет `QuickEditAccordion` предназначен для отображения данных в формате аккордеона с возможностью их редактирования непосредственно в интерфейсе пользователя. Поддерживается два режима отображения: в виде таблицы и в виде списка. Этот виджет разработан для использования в приложениях на Yii2 и использует jQuery для динамического взаимодействия с пользователем. |
| 6 | + |
| 7 | +## Возможности |
| 8 | + |
| 9 | +- Редактирование данных на месте (inline editing). |
| 10 | +- Поддержка отображения данных в виде таблицы или списка. |
| 11 | +- Настраиваемый внешний вид через CSS стили. |
| 12 | +- Асинхронное сохранение изменений с помощью AJAX запросов. |
| 13 | + |
| 14 | +## Установка |
| 15 | + |
| 16 | +Виджет необходимо установить как часть вашего проекта Yii2. Это можно сделать, добавив код виджета в соответствующую директорию вашего приложения. |
| 17 | + |
| 18 | +## Использование |
| 19 | + |
| 20 | +### Конфигурация виджета |
| 21 | + |
| 22 | +Виджет `QuickEditAccordion` предоставляет ряд настраиваемых свойств: |
| 23 | + |
| 24 | +- `type`: Тип отображения (`'table'` или `'list'`). По умолчанию используется `'table'`. |
| 25 | +- `action`: URL, на который будет отправлен AJAX запрос для сохранения изменений. |
| 26 | +- `items`: Массив элементов для отображения. |
| 27 | +- `options`: Массив HTML опций для контейнера виджета. |
| 28 | +- `accordionOptions`, `listStyle`, `labelStyle`, `valueStyle`: Опции для настройки внешнего вида и поведения виджета. |
| 29 | + |
| 30 | +### Пример использования |
| 31 | + |
| 32 | +```php |
| 33 | +echo QuickEditAccordion::widget([ |
| 34 | + 'type' => 'list', |
| 35 | + 'action' => Url::to(['your/controller/action']), |
| 36 | + 'items' => [ |
| 37 | + // Массив элементов для отображения |
| 38 | + ], |
| 39 | + 'options' => [ |
| 40 | + 'class' => 'your-custom-class', |
| 41 | + ], |
| 42 | +]); |
| 43 | + |
| 44 | +``` |
| 45 | +## JavaScript функциональность |
| 46 | + |
| 47 | +Виджет включает JavaScript код для реализации функционала редактирования на месте. При клике на элемент, отмеченный классом `.editable`, он превращается в текстовое поле, позволяя пользователю изменить значение. Изменения сохраняются асинхронно через AJAX. |
| 48 | + |
| 49 | +### Пример контроллера для обработки AJAX запроса |
| 50 | + |
| 51 | +```php |
| 52 | + |
| 53 | +public function actionSave() { |
| 54 | + Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; |
| 55 | + $index = Yii::$app->request->post('index'); |
| 56 | + $attribute = Yii::$app->request->post('attribute'); |
| 57 | + $newValue = Yii::$app->request->post('newValue'); |
| 58 | + |
| 59 | + // Логика обработки сохранения изменений |
| 60 | + |
| 61 | + return ['success' => true, 'newValue' => $newValue]; |
| 62 | +} |
| 63 | +``` |
| 64 | + |
| 65 | +## Лицензия |
| 66 | + |
| 67 | +QuickEditAccordion выпущен под лицензией MIT. Подробную информацию можно найти в файле LICENSE в корневой директории проекта. |
0 commit comments