Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alex290/yii2-widget-content
https://github.com/alex290/yii2-widget-content
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/alex290/yii2-widget-content
- Owner: alex290
- Created: 2020-11-26T12:21:56.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-07-18T08:08:03.000Z (6 months ago)
- Last Synced: 2024-09-19T18:15:29.683Z (4 months ago)
- Language: JavaScript
- Size: 2.25 MB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Widget content
==============
Widget contentInstallation
------------The preferred way to install this extension is through [composer](http://getcomposer.org/download/).
Either run
```
php composer.phar require --prefer-dist alex290/yii2-widget-content "*"
```or add
```
"alex290/yii2-widget-content": "*"
```to the require section of your `composer.json` file.
Usage
-----Once the extension is installed, simply use it in your code by :
Подключить внешне Ckeditor 5 classic
Или скачать сборку и подключить по инструкции из документации Ckeditor https://ckeditor.com/docs/
в конфиге web.php прописать
'modules' => [
'widget-content' => [
'class' => 'alex290\widgetContent\Module',
'path' => 'upload', //path to files
],
],run migrate
php yii migrate/up --migrationPath=@vendor/alex290/yii2-widget-content/migrations
attach behaviour to your model (be sure that your model has "id" property)
public function behaviors()
{
return [
'widget' => [
'class' => 'alex290\widgetContent\behaviors\Behave',
]
];
}Вывести виджет в админке
$widget = [
'text' => [
'name' => 'Текст',
'preview' => '/web/images/widget/header.png',
'fields' => [
'name' => ['string', 'max' => 255],
'text' => ['string'],
'image' => ['image'],
]
],
...
'galery' => [ // Ключ уникальный поля
'name' => 'Галерея', // Название виджета
'preview' => '/web/images/widget/textImageTwo.png', // Путь к превьюшке
'fields' => [
'name' => ['string', 'max' => 255], // Тип поля
'text' => ['string'], // Тип поля
],
'item' => [ // Дополнительные поля (Например в галлереи несколько картинок)
'name' => ['string', 'max' => 255],
'image' => ['image'],
]
],
];----------
Типы полей:
['string', 'max' => 255] - Текстовое поле
['string'] - Текстовая область
['integer'] - Целое число
['image'] - Изображение
['file'] - Файл
['select'] - Список
...
'category' => ['select', [
'44' => 'News',
'55' => 'Information',
]],----------
isNewRecord) : ?>
= $model->getWidget($widget) ?>
Получить массив объектов виджетов данной модели
$model->getContent();
Удалить виджеты
$model->removeWidgetAll();
$model->removeWidget($id);
Выводить записи на странице
getContent() != null) : ?>
getContent() as $widget) : ?>
type // Тип виджета для разделения секций
$elementItem = $widget['item']; // Элементы виджета
$data = Json::decode($element->data); // Поля виджета
?>
getImage()->getPrimaryKey() > 0) : // Вывод изображения ?>
data); // Поля элемента виджета ?>
getImage()->getPrimaryKey() > 0) : // Вывод изображения ?>
Вывод файла