Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Widget Bundle Laravel Package

evgeniy-it/widget-bundle

View on GitHub
Deep Wiki
Context7

Widget Bundle

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

Installation

With composer:

composer require evgeniy-it/widget-bundle

Widget will be ready to work

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 &
  • any option value must be wrapped in `
  • a widget must be started with [[ and ends with ]]

#Using:

##Default widgets:

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

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:

<?php

namespace App\Bundle\ProductBundle\Entity;


class Product
{
    /**
     * @var string
     *
     * @ORM\Column(type="string", nullable=true)
     */
    private $name;

    /**
     * @var string
     *
     * @ORM\Column(type="string", nullable=true)
     */
    private $slug;

    /**
     * @var bool
     *
     * @ORM\Column(type="boolean")
     */
    private $active = false;

    /**
     * @var ArrayCollection
     *
     * @ORM\OneToMany(targetEntity="App\Bundle\ShopBundle\Entity\ProductCategory", mappedBy="product", cascade={"persist"})
     */
    private $categories;
//...

{{ '[[repository? &model=`AppProductBundle:Product` &function=`findBySlug` &args=`["testslug"]` &tpl=`{{item.name}}` &tpl=`{{idx+1}}. {{item.name}}<br/>`]]'|widget }}

will output:

1. product 1
2. product 3
3. product 3
...
n. product n
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
calmfox/watch-sylius
damienfern/grpc-symfony-bundle
atoolo/index-bundle
atoolo/genai-bundle
coprotoai/laravel-ticket
davidjln/llm-carbon-bundle
cryonighter/valid-request-bundle
coolms/taxonomy-bundle
coolms/field-bundle
articulate-orm/symfony
aaix/laravel-tall-architect
ephoto/akeneo-connector
emmanuelballery/eb-plantumlbundle
emielburgman/symfony-visitor-beacon
emielburgman/symfony-visit-storage
emielburgman/symfony-security-headers
emielburgman/symfony-log-viewer
emarref/xdebug-bundle
emarref/pubnub-bundle
elriseio/finance-money-bundle