Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alex290/yii2-widget-content


https://github.com/alex290/yii2-widget-content

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

Widget content
==============
Widget content

Installation
------------

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) : // Вывод изображения ?>








Вывод файла

Поле с названием