Custom widgets collection for Yii2
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.
The same as in the case of NavContents::widget()
, but the usual <ul>
list is formed at the output.
- PHP 5.6 or higher
- Yii2 v.2.0.33 and newest
To install the widgets, run the following command in the console:
$ composer require "wdmg/yii2-widgets"
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'); ?>
- 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()