neonexus/ionicons-bundle

Easy integration of Ionicons into Symfony2 projects (based on similar package by Coding Fogey).

Installs: 196

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 3

Open Issues: 0

Type:symfony-bundle

v0.4.3 2014-08-07 16:19 UTC

This package is not auto-updated.

Last update: 2024-12-17 03:06:03 UTC


README

Dependency Status SensioLabsInsight Latest Stable Version Latest Unstable Version Total Downloads License

About

This Bundle makes it easy to integrate Ionicons into your Symfony2 projects.

Prerequisites

  • Ionicons repo installed somewhere in your project. It is not contained in this bundle. You can use Composer, Bower or any other way to install it.

Installation

  1. Add neonexus/ionicons-bundle to your composer.json:

     {
         ...
         "require": {
             ...
             "neonexus/ionicons-bundle": "0.4.*",
             "driftyco/ionicons": "1.5.*"
         }
         ...
     }
    
  2. Add IoniconsBundle to your AppKernel.php:

     ...
     public function registerBundles()
     {
         $bundles = array(
             ...
             new NeoNexus\Ionicons\IoniconsBundle()
         );
         ...
     }
     ...
    
  3. Update your dependencies: composer update.

NOTICE Installing Ionicons via composer is optional but makes this bundle work out of the box. So I recommend this way.

Configuration

If you did not install Ionicons via composer you have to configure the path to your installation:

ionicons:
    assets_dir: %kernel.root_dir%/../vendor/driftyco/ionicons

Customization

If you want to customize Ionicons you have to put a customized variables file somewhere in your project and configure the path. You also have to set the output path.

ionicons:
    filter: less
    customize:
        variables_file:         %kernel.root_dir%/Resources/ionicons/variables.less
        ionicons_output:    %kernel.root_dir%/Resources/less/ionicons.less

If you want to use the lessphp or sass Assetic filter you have to set the filter variable accordingly.

There is a command to generate a customized output file to incorporate your customized variables file:

app/console neonexus:ionicons:generate

Usage

Installation of font files

The bundle provides a command to install the font files to the web/fonts directory:

app/console neonexus:ionicons:install

There is also a ScriptHandler for conveniently doing this automatically on each composer install or composer update:

...
"scripts": {
    "post-install-cmd": [
        ...
        "NeoNexus\\Ionicons\\Composer\\ScriptHandler::install"
    ],
    "post-update-cmd": [
        ...
        "NeoNexus\\Ionicons\\Composer\\ScriptHandler::install"
    ]
},
...

To include the Ionicons css just include @ionicons_css in your base template.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>{% block title %}Welcome!{% endblock %}</title>
        {% block stylesheets %}
            {% stylesheets
                '@ionicons_css'
            %}
                <link rel="stylesheet" href="{{ asset_url }}" media="screen"/>
            {% endstylesheets %}
        {% endblock %}

Simple icons (currently broken)

To insert a simple icon add {{ fa_icon( icon name|options ) }} into your template.

The parameter can be a string containing only the icon name without fa- prefix or JSON for more customization. The complete set of options is as follows:

{
    icon:           name of the icon without 'fa-' prefix
    scale:          [lg|2x|3x|4x|5x|stack-1x|stack-2x],
    fixed-width:    [true|false],
    list-icon:      [true|false],
    border:         [true|false],
    pull:           [left|right],
    spin:           [true|false],
    rotate:         [90|180|270],
    flip:           [horizontal|vertical],
    inverse:        [true|false]
}

TODO

  • Fix the Twig Extension
  • Fix the tests

License

Acknowledgment