vi-kon / laravel-smarty-view
Smarty template engine for Laravel 4
Requires
- php: >=5.4.0
- illuminate/support: 4.2.*
- smarty/smarty: 3.1.*
Suggests
- chumper/datatable: Laravel 4 package for the server and client side of datatables at http://datatables.net/
README
Smarty template engine for Laravel 4
Table of content
Known issues
- none
TODO
- Fix incoming bugs
- Finish documentation
Features
- using smarty templates
- using multiple template engines
Installation
To your composer.json
file add following lines:
// to your "require" object "vi-kon/laravel-smarty-view": "1.*"
In your Laravel 4 project add following lines to app.php
:
// to your providers array 'ViKon\SmartyView\SmartyViewServiceProvider',
Usage
Simply create new template file with .tpl
extension and load with View
class.
\View::make('route/to/template/file') ->with("param", null);
On extending or loading another smarty template need path prefix with view:path
.
{extends file="view:layout-site"}
...
Config file
On custom config easily publish it with php artisan config:publish vi-kon/laravel-smarty-view
command. The command will create new file app/config/packages/vi-kon/laravel-smarty-view/config.php
. The file need to move to app/config/packages/vi-kon/smarty-view/config.php
location.
config.php
content:
return array( // Enable or disable caching 'caching' => false, // Enable or disable debugging 'debugging' => false, // Set cache lifetime 'cache_lifetime' => 3600, // Check compile 'compile_check' => true, // Set error reporting level in Smarty templates 'error_reporting' => null, // Template directory 'template_dir' => app_path() . '/views', // Cache directory 'cache_dir' => app_path() . '/storage/views/cache', // Compile directory 'compile_dir' => app_path() . '/storage/views/compile', // Plugins directory 'plugins_path' => array(), );
Events
smarty-view.init
Firring, when SmartyView is constructed, to add custom configuration options.
Attributes
Type | Name | Description |
---|---|---|
Illuminate\Config\Repository |
options |
Is alias for \Config object |
Usage
Example usage in package service provider:
public function boot() \Event::listen('smarty-view.init', function ($config) { $config->set('smarty-view::plugins_path', array_merge( $config->get('smarty-view::plugins_path'), array(__DIR__ . DIRECTORY_SEPARATOR . 'smarty' . DIRECTORY_SEPARATOR . 'plugins'))); }); }
Custom plugins
Avalaible custom plugins:
- auth_check
- auth_user
- config
- datatable
- datatable_column
- form
- form_checkbox
- form_file
- form_hidden
- form_label
- form_password
- form_radio
- form_select
- form_submit
- form_text
- form_textarea
- html_script
- lang
- url
- url_current
- url_full
Auth check
The auth_check tag is alias for:
return Auth::check();
Return value is type of boolean
.
Auth user
The auth_user tag is alias for (if no assign
attribute provided):
return Auth::getUser();
Return value is type of UserInterface
or null
.
Attributes
Type | Name | Description | Required | Default |
---|---|---|---|---|
string | assign |
Assign user data to named variable instead return | - | - |
Config
The config tag is alias for:
return Config::get($key, $default);
Return value is type of mixed
.
Attributes
Type | Name | Description | Required | Default |
---|---|---|---|---|
string | key |
Config variable key | x | - |
mixed | default |
Default value if config key not exists | - | - |
Usage
{config key="app.locale"}
Datatable
The datatable block tag is for chumper/datatable Laravel 4 package to make datatables.
Plugin can load localization (language) data from lang\{local}\datatable.php
. If language file not exists datatables default localization data will be used.
Attributes
Type | Name | Description | Required | Default |
---|---|---|---|---|
string | url |
Full URL for AJAX data | - | - |
string | action |
Route name for AJAX data | - | - |
boolean | searching |
Enable or disable searching | - | true |
boolean | lengthChange |
- | - | |
string | class |
Add custom class to datatable | - | - |
string | view |
Custom view to render datatable | - | "datatable" |
Usage
{datatable action="route name" class="table-own" searching=false lengthChange=false} ... {/datatable}
Sample datatable.php language file:
return array( 'sEmptyTable' => 'No data available in table', 'sInfo' => 'Showing _START_ to _END_ of _TOTAL_ entries', 'sInfoEmpty' => 'Showing 0 to 0 of 0 entries', 'sInfoFiltered' => '(filtered from _MAX_ total entries)', 'sInfoPostFix' => '', 'sInfoThousands' => ',', 'sLengthMenu' => 'Show _MENU_ entries', 'sLoadingRecords' => 'Loading...', 'sProcessing' => 'Processing...', 'sSearch' => 'Search:', 'sZeroRecords' => 'No matching records found', 'oPaginate' => array( 'sFirst' => 'First', 'sLast' => 'Last', 'sNext' => 'Next', 'sPrevious' => 'Previous', ), 'oAria' => array( 'sSortAscending' => '=> activate to sort column ascending', 'sSortDescending' => '=> activate to sort column descending', ), );
Datatable column
Add column to Datatable. Have to declared in {datatable}
block, otherwise it won't work.
Attributes
Type | Name | Description | Required | Default |
---|---|---|---|---|
string | label |
Column label | x | - |
string | token |
Column label token for translator | x | - |
boolean | sortable |
Enable or disable column sorting | - | true |
boolean | orderable |
Enable or disable column sorting (alias) | - | true |
string | width |
Column width | - | "auto" |
string | class |
Column class (individual td classes) |
- | - |
string | type |
Column type (html, string, numeric, date) | - | "html" |
Only either of label
or token
is required.
Usage
{datatable_column token="language/file.and.token" width="120px" sortable=false}
Form
The form block tag opens and closes form:
return Form::open($params) . $content . Form::close()
Return value is type of string
, with generated HTML form.
Attributes
All parameters passed to Form::open
method as HTML attributes.
Usage
{form action="route name" class="form-horizontal" role="form"} ... {/form}
HTML output:
<form action="generated route from name" method="POST" accept-charset="UTF-8" class="form-horizontal" role="form"> ... </form>
Form checkbox
The form_checkbox
is alias for Form::checkbox
.
Return value is type of string
, with generated HTML checkbox input field.
Attributes
Type | Name | Description | Required | Default |
---|---|---|---|---|
string | _name |
HTML name attribute |
x | - |
mixed | _value |
checkbox value attribute |
- | null |
boolean | _checked |
if true checkbox will be checked, otherwise not |
- | false |
boolean | _populate |
if true old input data will be used |
- | false |
Usage
{form_checkbox _name="field-checkbox" _checked=true class="checkbox"}
Form file
The form_file
is alias for Form::file
.
Return value is type of string
, with generated HTML file input field.
Attributes
Type | Name | Description | Required | Default |
---|---|---|---|---|
string | _name |
HTML name attribute |
x | - |
Usage
{form_file _name="field-file"}
Form hidden
The form_hidden
is alias for Form::hidden
.
Return value is type of string
, with generated HTML hidden input field.
Attributes
Type | Name | Description | Required | Default |
---|---|---|---|---|
string | _name |
HTML name attribute |
x | - |
mixed | _value |
hidden field value attribute |
- | null |
boolean | _populate |
if true old input data will be used |
- | false |
Usage
{form_hidden _name="field-hidden" value="hidden-value"}
Form password
The form_password
is alias for Form::password
.
Return value is type of string
, with generated HTML password input field.
Attributes
Type | Name | Description | Required | Default |
---|---|---|---|---|
string | _name |
HTML name attribute |
x | - |
Usage
{form_password _name="field-password"}
Form radio
The form_radio
is alias for Form::radio
.
Return value is type of string
, with generated HTML radio input field.
Attributes
Type | Name | Description | Required | Default |
---|---|---|---|---|
string | _name |
HTML name attribute |
x | - |
mixed | _value |
radio value attribute |
- | null |
boolean | _checked |
if true radio will be checked, otherwise not |
- | false |
boolean | _populate |
if true old input data will be used |
- | false |
Usage
{form_radio _name="field-radio" _checked=true class="radio"}
Form select
The form_select
is alias for Form::select
or Form::selectRange
.
Return value is type of string
, with generated HTML select field.
Attributes
Type | Name | Description | Required | Default |
---|---|---|---|---|
string | _name |
HTML name attribute |
x | - |
string | _default |
radio value attribute |
- | null |
string[] | _list |
select items as associative array | - | array() |
mixed | _selected |
selected index value | - | array() |
boolean | _range |
if true radio will be generated as select range |
- | false |
string | _begin |
range start value | if range is true | "" |
string | _end |
range end value | if range is true | "" |
boolean | _populate |
if true old input data will be used |
- | false |
Usage
{form_select _name="field-checkbox" _list=$data}
{form_select _name="field-checkbox" _range=true _begin=5 _end=100 class="checkbox"}
Form text
The form_text
is alias for Form::text
.
Return value is type of string
, with generated HTML text field.
Attributes
Type | Name | Description | Required | Default |
---|---|---|---|---|
string | _name |
HTML name attribute |
x | - |
string | _value |
text value attribute |
- | null |
boolean | _populate |
if true old input data will be used |
- | false |
Usage
{form_text _name="field-text" class="text"}
Form textarea
The form_textarea
is alias for Form::textarea
.
Return value is type of string
, with generated HTML textarea field.
Attributes
Type | Name | Description | Required | Default |
---|---|---|---|---|
string | _name |
HTML name attribute |
x | - |
string | _value |
textarea value attribute |
- | null |
boolean | _populate |
if true old input data will be used |
- | false |
Usage
{form_textarea _name="field-textarea" class="textarea"}
License
This package is licensed under the MIT License