wdmg/yii2-widgets

Widgets collection for Yii2

Installs: 621

Dependents: 9

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 0

Open Issues: 0

Type:yii2-extension

1.1.0 2023-07-07 06:43 UTC

This package is auto-updated.

Last update: 2024-12-07 09:57:38 UTC


README

Yii2 Downloads Packagist Version Progress GitHub license

Yii2 Widgets

Custom widgets collection for Yii2

NavContents::widget()

The widget parses your HTML code for the presence of h1-h6 headers and forms a navigation list with the correct href, after which it render a Boostrap Nav before content.

If the h1-h6 headers does not have an id attribute, it will be generated automatically. The rest of the attributes of the headers, whether class, style or data will also be saved.

MenuContents::widget()

The same as in the case of NavContents::widget(), but the usual <ul> list is formed at the output.

Requirements

  • PHP 5.6 or higher
  • Yii2 v.2.0.33 and newest

Installation

To install the widgets, run the following command in the console:

$ composer require "wdmg/yii2-widgets"

Usage

Example of usecase NavContents::widget() in view instance:

<?php

use wdmg\widgets\NavContents;

$content = '<h1>Header H1</h1><p>Some text, some text...</p><p>Some text, some text...</p>'

?>

<?= NavContents::widget([
    'id' => "list1",
    'content' => $content, // where `$content` the html source with h1-h6 headers
    'renderContent' => true, // if `true` (by default) render content html after table of contents
    'transliterate' => true, // if need to convert href and ID to Latin (Cyrillic for example)
    'options' => [
        'class' => 'nav nav-stacked'
    ],
    ... // and other options for yii\bootstrap\Nav::widget()
]); ?>

Example of usecase MenuContents::widget() in view instance:

<?php

use wdmg\widgets\MenuContents;

$content = '<h1 id="test-header" class="header">Header H1</h1><p>Some text, some text...</p><p>Some text, some text...</p>'

?>

<?= MenuContents::widget([
    'id' => "list2",
    'content' => $content, // where `$content` the html source with h1-h6 headers
    'renderContent' => true, // if `true` (by default) render content html after table of contents
    'transliterate' => true, // if need to convert href and ID to Latin (Cyrillic for example)
    'options' => [
        'class' => 'list-toc'
    ],
    ... // and other options for yii\widgets\Menu::widget()
]); ?>

Example of usecase LangSwitcher::widget() in view instance of dashboard:

<?php

use wdmg\widgets\LangSwitcher;

<?php
    echo LangSwitcher::widget([
        'label' => 'Language version',
        'model' => $model,
        'renderWidget' => 'button-group',
        'createRoute' => 'news/create', // string or array
        'updateRoute' => 'news/update', // string or array
        'supportLocales' => $this->context->module->supportLocales,
        'versions' => (isset($model->source_id)) ? $model->getAllVersions($model->source_id, true) : $model->getAllVersions($model->id, true),
        'options' => [
            'id' => 'locale-switcher',
            'class' => 'pull-right'
        ]
    ]);
?>

Example of usecase AliasInput::widget() in view instance of dashboard:

<?php

use wdmg\widgets\AliasInput;

<?= $form->field($model, 'alias')->widget(AliasInput::class, [
    'labels' => [
        'edit' => 'Edit',
        'save' => 'Save'
    ],
    'options' => [
        'baseUrl' => $model->url
    ]
])->label('Post URL'); ?>

Status and version [in progress development]

  • v.1.1.0 - Update copyrights
  • v.1.0.4 - URL`s options in LangSwitcher
  • v.1.0.3 - Added AliasInput::widget()
  • v.1.0.2 - Added LangSwitcher::widget()
  • v.1.0.1 - Up to date dependencies
  • v.1.0.0 - Added NavContents::widget() and MenuContents::widget()