dmstr/yii2-widgets2-module

Yii 2.0 Framework Widget Manager

Installs: 44 959

Dependents: 2

Suggesters: 0

Security: 0

Stars: 7

Watchers: 9

Forks: 8

Open Issues: 7

Type:yii2-extension

2.7.3 2024-04-16 12:50 UTC

This package is auto-updated.

Last update: 2024-04-16 12:51:27 UTC


README

Latest Stable Version Total Downloads License

Widget manager using twig templates

Installation

The preferred way to install this extension is through composer.

Either run

composer require dmstr/yii2-widgets2-module

to the require section of your composer.json file.

Testing

cd tests

docker-compose up -d

docker-compose run phpfpm bash

setup.sh

Config

...
'modules => [
	'widgets' => [
		'class' => '\hrzg\widget\Module',
		'layout' => '@backend/views/layouts/main',
		'playgroundLayout' => '@frontend/views/layouts/main',
		'dateBasedAccessControl' => true,
		'datepickerMinutes' => false,
		'timezone' => 'Europe/Berlin',
		// set ajax option for JsonEditor
		'allowAjaxInSchema' => false,
        // If true, the json content properties will be validated against the json schema from the widget_template.
        // To be BC the default is false, but you should enable it
		'validateContentSchema' => false
	]
]
...

Settings

availablePhpClasses availableFrontendPhpClasses - Templates with one of the listed classes in this setting will be outputed in cell widgets dropdown for available templates (default: hrzg\widget\widgets\TwigTemplate)

Usage

Once the extension is installed, simply use it in your code by :

Layout

Example with yii2-prototype-module

{{ use ('hrzg/widget/widgets') }}
{{ cell_widget({id: 'main'}) }}

Widget

  • Standard Twig widget hrzg\widget\widgets\TwigTemplate
  • Char-Rank ordering 001, 10, 5, aa1, aa1.2, b0 (not numeric)

JSON

Settings

Section: widgets

Key: availablePhpClasses

Type: JSON

####Example:

{"hrzg\\widget\\widgets\\TwigTemplate": "Twig layout"}

Widget example

Basic

{
    "title": "Basic",
    "type": "object",
    "properties": {
        "headline": {
            "type": "string",
            "default": "Avo vole tioma profitanto ts,"
        },
        "text_html": {
            "type": "string",
            "format": "html",
            "default": "Ja sub kiam aliu, fo unt fora danke helpverbo, dev bv tele kibi piedpilko.",
            "options": {
                "wysiwyg": true
            }
        }
    }
}
<h2>{{ headline }}</h2>
<p>{{ text_html }}</p>

For more examples, please see the docs

Upgrading

from 0.2 to 0.3

{{ cell_widget({id: 'header'}) }}

RBAC

Available Permission items

Name Description
widgets_default_index Widgets Manager
widgets_crud_api Widgets CRUD API
widgets_crud_widget Widgets CRUD Content
widgets_crud_widget_create Widgets CRUD Content Create
widgets_crud_widget_delete Widgets CRUD Content Delete
widgets_crud_widget_index Widgets CRUD Content Index
widgets_crud_widget_update Widgets CRUD Content Update
widgets_crud_widget_view Widgets CRUD Content View
widgets_crud_widget-template Widgets CRUD Template
widgets_test Widgets TEST Playground
widgets-cell-edit Frontend editing
widgets Widgets Module

Settings

Section Key Value Type
widgets ckeditor.config
    {
      "height": "4000px",
      "toolbar": [
        ["Format"],
        ["Link", "Image", "Table", "-", "NumberedList", "BulletedList", "-", "JustifyLeft", "JustifyCenter", "JustifyRight", "JustifyBlock"],
        ["Source"],
        "/", ["Bold", "Italic", "Underline", "StrikeThrough", "-", "RemoveFormat", "-", "Undo", "Redo", "-", "Paste", "PasteText", "PasteFromWord", "-", "Cut", "Copy", "Find", "Replace", "-", "Outdent", "Indent", "-", "Print"]
      ]
    }
OBJECT/JSON