public function getViewTemplateUris(array $parameters)
{
// Merge the default parameters with the parameters given
$parameters = array_merge(array('component' => $this->container->componentName, 'view' => $this->view->getName(), 'layout' => $this->defaultLayout, 'tpl' => $this->defaultTpl, 'strictView' => $this->strictView, 'strictLayout' => $this->strictLayout, 'strictTpl' => $this->strictTpl, 'sidePrefix' => $this->sidePrefix), $parameters);
$uris = array();
$component = $parameters['component'];
$view = $parameters['view'];
$layout = $parameters['layout'];
$tpl = $parameters['tpl'];
$strictView = $parameters['strictView'];
$strictLayout = $parameters['strictLayout'];
$strictTpl = $parameters['strictTpl'];
$sidePrefix = $parameters['sidePrefix'];
$basePath = $sidePrefix . ':' . $component . '/' . $view . '/';
$uris[] = $basePath . $layout . ($tpl ? "_{$tpl}" : '');
if (!$strictTpl) {
$uris[] = $basePath . $layout;
}
if (!$strictLayout) {
$uris[] = $basePath . 'default' . ($tpl ? "_{$tpl}" : '');
if (!$strictTpl) {
$uris[] = $basePath . 'default';
}
}
if (!$strictView) {
$parameters['view'] = $this->container->inflector->isSingular($view) ? $this->container->inflector->pluralize($view) : $this->container->inflector->singularize($view);
$parameters['strictView'] = true;
$extraUris = $this->getViewTemplateUris($parameters);
$uris = array_merge($uris, $extraUris);
unset($extraUris);
}
return array_unique($uris);
}