NAME
Nile::View - The template processing system.
SYNOPSIS
# get view home.html in current theme
my $view = $self->me->view("home");
# get view home.html in specific arabic
my $view = $app->view("home", "arabic");
# set view variables
$view->var(
fname => 'Ahmed',
lname => 'Elsheshtawy',
email => 'sales@mewsoft.com',
website => 'http://www.mewsoft.com',
singleline => 'Single line variable <b>Good</b>',
multiline => 'Multi line variable <b>Nice</b>',
);
# set variable
$view->set('email', 'sales@mewsoft.com');
# get variable
$email = $view->get('email');
# automatic getter/setter for variables
$view->email('sales@mewsoft.com');
$view->website('http://www.mewsoft.com');
$email = $view->email;
$website = $view->website;
# replace marked blocks or iterators
$view->block("first", "1st Block New Content ");
$view->block("six", "6th Block New Content ");
# process variables and blocks and text language variables
$view->process;
# send the output to the browser
$view->render;
DESCRIPTION
Nile::View - The template processing system.
view()
my $view = $self->me->view([$view, $theme]);
Creates new view object or returns the current view name. The first option is the view name with or without file extension $view, the default view extension is html. The second optional argument is the theme name, if not supplied the current default theme will be used.
lang()
$view->lang('en-US');
my $lang = $view->lang();
Sets or returns the language for processing the template text. Language must be already installed in the lang folder.
theme()
$view->theme('arabic');
my $theme = $view->theme();
Sets or returns the theme for loading template file. Theme must be already installed in the theme folder.
var() and set()
$view->var(email=>'nile@cpan.org');
$view->var(%vars);
$view->var(
fname => 'Ahmed',
lname => 'Elsheshtawy',
email => 'sales@domain.com',
website => 'http://www.mewsoft.com',
htmlnode => 'html code variable <b>Nile</b>',
);
Sets one of more template variables. This method can be chained.
set()
$view->set(email=>'nile@cpan.org');
$view->set(%vars);
Same as method var() above.
get()
$email = $view->get("email");
@user = $view->get(qw(fname lname email website));
Returns one or more template variables values.
content()
# get current template content
$content = $view->content;
# set current template content direct
$view->content($content);
Get or set current template content.
block()
# get all blocks as a hashref
$blocks = $view->block;
# get one block as a hashref
$block = $view->block("first");
# set a block new content
$view->block("first", "1st Block New Content ");
Get and set blocks. Blocks or iterators are a block of the template code marked or processing and replacing with dynamic content. For example you can use blocks to show or hide a part of the template based on conditions. Another example is using nested blocks as iterators for displaying lists or tables of repeated rows.
replace()
$view->replace('find text' => 'replaced text');
$view->replace(%vars);
Replace some template text or code with another one. This method will replace all instances of the found text. This method can be chained.
replace()
$view->replace('find text' => 'replaced text');
$view->replace(%vars);
Replace some template text or code with another one. This method will replace only one instance of the found text. This method can be chained.
translate()
# scan and replace the template language variables for the default 2 times
$view->translate;
# scan and replace the template language variables for 3 times
$view->translate(3);
This method normally used internally when processing the template. It scans the tempalte for the langauge variables surrounded by the curly braces {var_name} and replaces them with their values from the loaded language files. This method can be chained.
process_vars()
$view->process_vars;
This method normally used internally when processing the template. This method can be chained.
process_perl()
$view->process_perl;
This method normally used internally when processing the template. This method can be chained.
capture()
$view->capture($perl_code);
This method normally used internally when processing the template.
get_widget()
$view->get_widget($widget, $theme);
This method normally used internally when processing the template. Returns the widget file content.
process_widgets()
$view->process_widgets;
This method normally used internally when processing the template. This method can be chained.
process_plugins()
$view->process_plugins ;
This method normally used internally when processing the template. This method can be chained.
parse()
$view->parse;
This method normally used internally when processing the template. This method can be chained.
process_pass()
$view->process_pass;
This method normally used internally when processing the template. This method can be chained.
process()
$view->process;
$view->process($passes);
Process the template. This method can be chained.
render()
$view->render;
Send the template content to the browser. This method can be chained.
out()
$view->out;
Process the template and return the content.
show()
$view->show;
# is the same as doing
$view->process();
$view->render();
Process the template and send the content to the browser.
header()
$view->header;
Prints the header tot he browser.
Bugs
This project is available on github at https://github.com/mewsoft/Nile.
HOMEPAGE
Please visit the project's homepage at https://metacpan.org/release/Nile.
SOURCE
Source repository is at https://github.com/mewsoft/Nile.
AUTHOR
Ahmed Amin Elsheshtawy, احمد امين الششتاوى <mewsoft@cpan.org> Website: http://www.mewsoft.com
COPYRIGHT AND LICENSE
Copyright (C) 2014-2015 by Dr. Ahmed Amin Elsheshtawy احمد امين الششتاوى mewsoft@cpan.org, support@mewsoft.com, https://github.com/mewsoft/Nile, http://www.mewsoft.com
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.