PHPackages                             evgeniy-it/widget-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. evgeniy-it/widget-bundle

ActiveSymfony-bundle[Templating &amp; Views](/categories/templating)

evgeniy-it/widget-bundle
========================

WidgetBundle is something similar to modx snippets, makes your content managment system powerful.

1.0.0(9y ago)02.1kMITPHPPHP &gt;=5.4

Since Dec 15Pushed 9y ago1 watchersCompare

[ Source](https://github.com/evgeniy-it/widget-bundle)[ Packagist](https://packagist.org/packages/evgeniy-it/widget-bundle)[ RSS](/packages/evgeniy-it-widget-bundle/feed)WikiDiscussions master Synced yesterday

READMEChangelog (1)Dependencies (2)Versions (4)Used By (0)

Widget Bundle
=============

[](#widget-bundle)

Widget bundle is something similar to modx snippets, makes your content managment system powerful.

Installation
============

[](#installation)

With composer:

```
composer require evgeniy-it/widget-bundle

```

Widget will be ready to work

Getting started
===============

[](#getting-started)

Render widget via such a shortcode:

```
[[widget_name? &setting=`1` &settingArray=`[1,2,3]` &settingAssocArray=`{'item1':'value1','item2':'value2'}`]]

```

Widget also can be nested multiple times:

```
[[widget_name? &nestedSetting=`[[widget_name2? &setting1=`value1` &setting2=`[[widget3]]`]]`]]

```

For parsing and rendering use twig widget filter, it will find all widgets, parse and process them:

```
{{ some_string_var|widget}}
```

Be sure about widget syntax:

- widget name must be ended with ?
- any option must start with &amp;
- any option value must be wrapped in `
- a widget must be started with \[\[ and ends with \]\]

\#Using:

\##Default widgets:

### Simple widget

[](#simple-widget)

This widget just renders setting variables into specified template. If template is not specified it will render only option `&content`. You can specify template as well. Specify template whether as a link or as a string..

\#####Example:

Using default template:

```
{{ '[[simple? &content=`Hello world`]]'|widget }}
```

or nested

```
{{ '[[simple? &content=`[[simple? &content=`Hello world`]]`]]'|widget }}
```

Will output:

```
Hello world

```

Using custom template:

```
{{ '[[simple? &setting1=`value1` &setting2=`value2` &setting3=`value3` &template=`{{setting1}} - {{setting2}} - {{setting3}}`]]'|widget }}
```

or

```
{{ '[[simple? &setting1=`value1` &setting2=`value2` &setting3=`value3` &template=`AppBundle:Widget:simple.html.twig`]]'|widget }}
```

```
{# AppBundle:Widget:simple.html.twig#}
{{setting1}} - {{setting2}} - {{setting3}}
```

Will output:

```
value1 - value2 - value3

```

### Repository widget

[](#repository-widget)

Renders collection of doctrine models

Params:

- tpl - one item element template
- model - entity model class
- function - function that will be called
- args - function args. json format

other params:

- beforeTpl - contents piece of code that is being shown before item code structure
- afterTpl - contents piece of code that is being shown after item code structure

in the specified template will be available those vars:

- item - fetched entity model
- idx (int) - ordinal Number
- isFirst (bool) - if the element is the first
- isLast (bool) - if it's the last element

Example:

```
