Smarty template engine for Laravel 4
- none
- Fix incoming bugs
- Finish documentation
- using smarty templates
- using multiple template engines
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',
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"}
...
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(),
);
Firring, when SmartyView is constructed, to add custom configuration options.
Type | Name | Description |
---|---|---|
Illuminate\Config\Repository |
options |
Is alias for \Config object |
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')));
});
}
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
The auth_check tag is alias for:
return Auth::check();
Return value is type of boolean
.
The auth_user tag is alias for (if no assign
attribute provided):
return Auth::getUser();
Return value is type of UserInterface
or null
.
Type | Name | Description | Required | Default |
---|---|---|---|---|
string | assign |
Assign user data to named variable instead return | - | - |
The config tag is alias for:
return Config::get($key, $default);
Return value is type of mixed
.
Type | Name | Description | Required | Default |
---|---|---|---|---|
string | key |
Config variable key | x | - |
mixed | default |
Default value if config key not exists | - | - |
{config key="app.locale"}
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.
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" |
{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',
),
);
Add column to Datatable. Have to declared in {datatable}
block, otherwise it won't work.
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.
{datatable_column token="language/file.and.token" width="120px" sortable=false}
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.
All parameters passed to Form::open
method as HTML attributes.
{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>
The form_checkbox
is alias for Form::checkbox
.
Return value is type of string
, with generated HTML checkbox input field.
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 |
{form_checkbox _name="field-checkbox" _checked=true class="checkbox"}
The form_file
is alias for Form::file
.
Return value is type of string
, with generated HTML file input field.
Type | Name | Description | Required | Default |
---|---|---|---|---|
string | _name |
HTML name attribute |
x | - |
{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.
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 |
{form_hidden _name="field-hidden" value="hidden-value"}
The form_password
is alias for Form::password
.
Return value is type of string
, with generated HTML password input field.
Type | Name | Description | Required | Default |
---|---|---|---|---|
string | _name |
HTML name attribute |
x | - |
{form_password _name="field-password"}
The form_radio
is alias for Form::radio
.
Return value is type of string
, with generated HTML radio input field.
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 |
{form_radio _name="field-radio" _checked=true class="radio"}
The form_select
is alias for Form::select
or Form::selectRange
.
Return value is type of string
, with generated HTML select field.
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 |
{form_select _name="field-checkbox" _list=$data}
{form_select _name="field-checkbox" _range=true _begin=5 _end=100 class="checkbox"}
The form_text
is alias for Form::text
.
Return value is type of string
, with generated HTML text field.
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 |
{form_text _name="field-text" class="text"}
The form_textarea
is alias for Form::textarea
.
Return value is type of string
, with generated HTML textarea field.
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 |
{form_textarea _name="field-textarea" class="textarea"}
This package is licensed under the MIT License