Assuming you understand the standards from creating a new page. Sometimes you want to create independent boxes to include on different pages.
Create the following files
<?php $box_hello_world = new view(); $box_hello_world->snippets = array( 'title' => 'Hello World', 'content' => 'Lorem ipsum dolor', ); echo $box_hello_world->stitch('views/box_hello_world'); ?>
And here is an example of a template view file:
<article> <h1>{snippet:title}</h1> <p>{snippet:content}</p> </article>
This is not very much different from creating a new page. But when it comes to inserting the box on a page there are different approaches.
To include the box somwhere in another page we insert the following code somewhere inside an another view e.g. includes/templates/template.catalog/views/index.inc.php:
<?php include vmod::check(FS_DIR_APP . 'includes/boxes/box_hello_world.inc.php'); ?>
Please note:
The use of vmod::check() enables overriding the file using vQmod.
The constant FS_DIR_APP returns the file system path (FS) to your installation e.g. /home/me/public_html/.
<?php $_page = new view(); ... // Capture the box in a buffer and stick it into a snippet ob_start(); include vmod::check(FS_DIR_APP . 'includes/boxes/box_hello_world.inc.php'); $_page->snippets['box_hello_world'] = ob_get_clean(); ... echo $_page->stitch('views/somepage'); ?>
The snippet box_hello_world can now be accessed through any of the following view syntax in the view file: