<?php
namespace Jaxon\Sentry\View;
use Jaxon\Sentry\Interfaces\View as ViewInterface;
class View implements ViewInterface
{
/**
* Add a namespace to this view renderer
*
* @param string $sNamespace The namespace name
* @param string $sDirectory The namespace directory
* @param string $sExtension The extension to append to template names
*
* @return void
*/
public function addNamespace($sNamespace, $sDirectory, $sExtension = '')
{
// This method is provided by the Template trait
if(($sDirectory))
{
jaxon()->addViewNamespace($sNamespace, $sDirectory, $sExtension);
}
}
/**
* Render a view
*
* @param Store $store A store populated with the view data
*
* @return string The string representation of the view
*/
public function render(Store $store)
{
$sViewName = $store->getViewName();
$sNamespace = $store->getNamespace();
// In this view renderer, the namespace must always be prepended to the view name.
if(substr($sViewName, 0, strlen($sNamespace) + 2) != $sNamespace . '::')
{
$sViewName = $sNamespace . '::' . $sViewName;
}
// Render the template
return trim(jaxon()->render($sViewName, $store->getViewData()), " \t\n");
}
}
|