ehann / frontend-bundle
Provides frontend components and layouts.
Requires
- php: >=5.3.3
- components/bootstrap: 2.3.*
- components/font-awesome: 3.2.*
- components/jquery: 1.10.*
- components/modernizr: 2.6.2
- leafo/lessphp: *
- leafo/scssphp: *
- makeusabrew/bootbox: *
- ptachoire/cssembed: 1.*
- tarruda/bootstrap-datetimepicker: *
- twig/extensions: 1.0.*@dev
- yui/yui-compressor: *
Requires (Dev)
- symfony/framework-bundle: ~2.1
This package is auto-updated.
Last update: 2024-11-14 15:22:01 UTC
README
Twitter Bootstrap-ready frontend and layout bundle for Symfony2.
Twig Layouts
The bundle provides two Twig templates for layouts (you can extend either or both):
- EhannFrontendBundle::base.html.twig
- EhannFrontendBundle:layouts:bootstrap.html.twig
The EhannFrontendBundle::base.html.twig template contains a boilerplate set of Twig blocks and the Modernizr library (version set in composer.json).
The EhannFrontendBundle:layouts:bootstrap.html.twig template extends the EhannFrontendBundle::base.html.twig template and adds jQuery, Twitter Bootstrap, Font-Awesome, Bootbox, and Bootstrap DateTime Picker. With the exception of Font-Awesome, the versions of all of these libraries are controlled by the EhannFrontendBundle's composer.json file. Font-Awesome is not installed via composer because of limitations with Assetic - there does not appear to be a way to rewrite fonts using Assetic. This means that Font-Awesome cannot locate its font files if it is installed outside of a bundle without a filesystem/symlink hack.
Bootstrap Forms
Twitter Bootstrap expects the HTML in forms to be structured in a specific way. When you include the EhannFrontendBundle:forms:bootstrap_form_layout.html.twig template, the HTML in Twig's default form blocks are restructured to be Twitter Bootstrap-compatible.
Assetic Filters
This EhannFrontendBundle also has a tricked-out Assetic configuration with various configured filters for your use. The tools associated with these filters are downloaded when you install the module. The filters are:
- phpcssembed
- yui_css
- yui_js
- lessphp
- scssphp
Related Bundles
EhannNotificationBundle - Utilizes the Symfony2 flash message feature to add Twitter Bootstrap-ready notifications to your application.
Installation
Add EhannFrontEndBundle in your composer.json:
// composer.json { "require": { "ehann/frontend-bundle": "0.*" } }
Download bundle:
$ php composer.phar update ehann/frontend-bundle
Add the EhannFrontendBundle to your AppKernel.php
public function registerBundles() { $bundles = array( ... new Ehann\FrontendBundle\EhannFrontendBundle(), ... ); ... }
Add the EhannFrontendBundle assetic.yml file into your application config file.
# app/config/config.yml imports: - { resource: "@EhannFrontendBundle/Resources/config/assetic.yml" }
Composer Repositories
Composer repositories can only be defined in the root application's composer.json file. Add these respoistories to your application's composer.json file:
// composer.json "repositories": [ { "type": "package", "package": { "name": "yui/yui-compressor", "version": "2.4.7", "dist": { "url": "https://github.com/downloads/yui/yuicompressor/yuicompressor-2.4.7.zip", "type": "zip" } } }, { "type": "package", "package": { "version": "v3.2.0", "name": "makeusabrew/bootbox", "source": { "url": "https://github.com/makeusabrew/bootbox.git", "type": "git", "reference": "master" }, "dist": { "url": "https://github.com/makeusabrew/bootbox/zipball/v3.2.0", "type": "zip" } } }, { "type": "package", "package": { "version": "v0.0.11", "name": "tarruda/bootstrap-datetimepicker", "source": { "url": "https://github.com/tarruda/bootstrap-datetimepicker.git", "type": "git", "reference": "master" }, "dist": { "url": "https://github.com/tarruda/bootstrap-datetimepicker/zipball/v0.0.11", "type": "zip" } } } ]
Config
Specify the global default layout template, making it accessible to all bundles in your application.
# app/config/config.yml ehann_frontend: default_layout: "EhannFrontendBundle:layouts:bootstrap.html.twig"
Extend your own templates by extending the default layout.
{% extends ehann_frontend_default_layout %}