c975l / toolbar-bundle
Bundle to add a common toolbar to products developed by 975L.com
Fund package maintenance!
Patreon
Open Collective
buymeacoff.ee/laurentmarquet
Installs: 697
Dependents: 13
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=8.0
- c975l/config-bundle: *
- dev-main
- v3.0.1
- 2.x-dev
- v2.0.2
- v2.0.1
- v2.0
- 1.x-dev
- v1.14.1
- v1.14
- v1.13
- v1.12.3
- v1.12.2
- v1.12.1
- v1.12
- v1.11.1
- v1.11
- v1.10.1
- v1.10
- v1.9.2
- v1.9.1.1
- v1.9.1
- v1.9
- v1.8.16
- v1.8.15.1
- v1.8.15
- v1.8.14.2
- v1.8.14.1
- v1.8.14
- v1.8.13.1
- v1.8.13
- v1.8.12
- v1.8.11
- v1.8.10
- v1.8.9.1
- v1.8.9
- v1.8.8
- v1.8.7
- v1.8.6
- v1.8.5
- v1.8.4.2
- v1.8.4.1
- v1.8.4
- v1.8.3.2
- v1.8.3.1
- v1.8.3
- v1.8.2.3
- v1.8.2.2
- v1.8.2.1
- v1.8.2
- v1.8.1
- v1.8
- v1.7.2
- v1.7.1
- v1.7
- v1.6.2
- v1.6.1
- v1.6
- v1.5
- v1.4.3
- v1.4.2
- v1.4.1
- v1.4
- v1.3.1
- v1.3
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2
- v1.1.1
- v1.1
- v1.0
- dev-dev
This package is auto-updated.
Last update: 2024-10-22 18:25:41 UTC
README
ToolbarBundle does the following:
- Displays a toolbar,
- Includes generic tools,
- Integrates with your web design.
This Bundle relies on the use of Bootstrap and Fontawesome.
ToolbarBundle dedicated web page.
ToolbarBundle API documentation.
Bundle installation
Step 1: Download the Bundle
Use Composer to install the library
composer require c975l/toolbar-bundle
Step 2: Enable the Bundle
Then, enable the bundles by adding them to the list of registered bundles in the app/AppKernel.php
file of your project:
<?php class AppKernel extends Kernel { public function registerBundles() { $bundles = [ // ... new c975L\ToolbarBundle\c975LToolbarBundle(), ]; } }
How to use
ToolbarBundle use Fontawesome for icons so you have to load it from your web page. You may use c975L/IncludeLibraryBundle that will allow you to simply add {{ inc_lib('fontawesome', 'css') }}
in your layout.html.twig, but if you use c975L/SiteBundle it's already there in stylesheets
section :).
Create button - toolbar_button()
You can create a button in a Twig template by calling the following code:
{{ toolbar_button(path('ROUTE', { 'VARIABLE': object.PROPERTY }), 'BUTTON_NAME', 'SIZE[lg|md|sm|xs](default md)', 'USE_ANOTHER_LABEL', 'USE_ANOTHER_STYLE', 'COLOR') }}
Create button with text - toolbar_button_text()
You can create a button with text in a Twig template by calling the following code (data between [] are optional):
{{ toolbar_button_text(path('ROUTE', { 'VARIABLE': object.PROPERTY }), 'BUTTON_NAME', 'SIZE[lg|md|sm|xs](default md)', 'ICON_DISPLAY[true|false](default true)', 'LOCATION[right|bottom|left|top]', 'USE_ANOTHER_LABEL', 'USE_ANOTHER_STYLE', 'COLOR') }}
Create a toolbar - toolbar_display
To create a toolbar, you need to create a template where the tools are defined. Inside this template you can use the Twig Extension toolbar_button()
or toolbar_button_text()
to define buttons, like in the following:
{# You can add some test and use the object sent #} {% if type === 'YOUR_TYPE' %} {# You can pass an object and use it there, with the name 'object' #} {{ toolbar_button(path('ROUTE', { 'VARIABLE': object.PROPERTY }), 'BUTTON_NAME', 'SIZE[lg|md|sm|xs](default md)', 'USE_ANOTHER_LABEL', 'USE_ANOTHER_STYLE') }} {{ toolbar_button_text(path('ROUTE', { 'VARIABLE': object.PROPERTY }), 'BUTTON_NAME', 'SIZE[lg|md|sm|xs](default md)', 'ICON_DISPLAY[true|false](default true)', 'LOCATION[right|bottom|left|top]') }} {% endif %}
Then in your templates simply call the Twig extension {{ toolbar_display('TOOLS_TEMPLATE', 'TYPE', 'SIZE[lg|md|sm|xs]', OBJECT_IF_NEEDED, 'ALIGNMENT[left|center|right](default center)') }}
.
You can also specify a css style in your stylesheet for the toolbar:
.toolbar { margin-bottom: 2em; }
Note that the Twig extension ToolbarDashboards
is specific to 975L developed products, as it will display a dropdown menu link to other products.
Call from Controller
If you need to call it from a controller, you can do it with the following code:
<?php //... $tools = $this->renderView('LOCATION_OF_YOUR_TEMPLATE_DEFINED_ABOVE', array( 'type' => 'YOUR_TYPE', 'object' => YOUR_OBJECT_IF_NEEDED, )); $toolbar = $this->renderView('@c975LToolbar/toolbar.html.twig', array( 'tools' => $tools, 'size' => 'YOUR_SIZE', 'alignment' => 'YOUR_ALIGNMENT', ));
If this project help you to reduce time to develop, you can sponsor me via the "Sponsor" button at the top :)