Frontend
Template Engine Smarty
- myMVC makes use of the robust Template Engine
Smarty
Version 4. - All Templates you define in your module's template folder.
- myMVC provides a standard set of template files if you create your module via
emvicy.php
(see: Creating a Module). - See the directory structure of the standard set of templates: /3.4.x/directory-structure#modules-moduleName-templates
Smarty
For more Information about how to code templates with powerful Smarty Template Engine please visit the official Website www.smarty.net
View
assign any variable to your template
assign any variable to your template (assuming module is Foo
)
\Foo\View\Index::init()->assign('myFrontendVariable', 'Any Content');
In your template you can access that assigned variable this way:
{$myFrontendVariable}
autoAssign variables
If you created your module via myMVC.phar (see: Creating a Module) or you added additional context information to your route by yourself, you can easily auto assign all additional route infos:
autoAssign variables to template (assuming module is Foo
)
\Foo\View\Index::init()->autoAssign(
Route::getCurrent()
);
render
render the template (assuming module is Foo
)
\Foo\View\Index::init()->render();
controlling rendering
switch on/off rendering templates
render off
Event::run('mvc.view.render.off');
render on
Event::run('mvc.view.render.on');
controlling echo out
switch on/off to echo out the rendered result
echoOut off
Event::run('mvc.view.echoOut.off');
echoOut on
Event::run('mvc.view.echoOut.on');
Accessing Class methods and objects in smarty template
You can access any myMVC Class directly in the templates.
Examples
// gives BasePath
{MVC\Config::get_MVC_BASE_PATH()}
// debugs additional info of the current route object
{MVC\Debug::info(MVC\Route::getCurrent()->get_additional())}
Also you can access methods of assigned Objects:
Example
{$oDTRoutingAdditional->get_sContent()}