michaelbeersnl
Gebruiker
- Lid geworden
- 30 nov 2011
- Berichten
- 57
Beste helpers,
Ik ben sinds kort begonnen met Zend.
Nu wil ik voor mijn applicatie het script path aanpassen zodat hij de views in de template files overruled met de module views.
Hiervoor gebruik ik de volgende code alleen lijkt dit niet te werken terwijl de paths wel gewoon goed zijn.
script:
output:
Alvast bedankt,
Michael
Edit:
Wanneer ik het index.phtml bestand uit de module haal dan toont hij wel de index.phtml in de template
Maar het moet dus zo worden dat de index.phtml in de template ALTIJD leading is zelfs wanneer er een in de module staat
Ik ben sinds kort begonnen met Zend.
Nu wil ik voor mijn applicatie het script path aanpassen zodat hij de views in de template files overruled met de module views.
Hiervoor gebruik ik de volgende code alleen lijkt dit niet te werken terwijl de paths wel gewoon goed zijn.
script:
PHP:
<?php
//create a new view renderer if not exists
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
if (null === $viewRenderer->view)
{
$viewRenderer->initView();
}
$view = $viewRenderer->view;
//generate the file paths
$module_path = APP_DIR . DS . 'modules' . DS . $module . DS . 'views';
$module_file = $module_path . DS . 'scripts' . DS . $controller . DS . $action . '.phtml';
$template_path = ROOT_DIR . DS . 'templates' . DS . $template . DS . 'views' . DS . $module;
$template_file = $template_path . DS . 'scripts' . DS . $controller . DS . $action . '.phtml';
//set the script path to the right template
if (file_exists( realpath($template_file) ))
{
$view->setScriptPath( realpath($template_path . DS . 'scripts') );
//add the helper path
if (file_exists($template_path . DS . 'helpers'))
{
$view->addHelperPath($template_path . DS . 'helpers', $module . '_View_Helper_');
}
} else if (file_exists( realpath($module_file) ))
{
$view->setScriptPath( realpath($module_path . DS . 'scripts') );
//add the helper path
if (file_exists($module_path . DS . 'helpers'))
{
$view->addHelperPath($template_path . DS . 'helpers', $module . '_View_Helper_');
}
}
echo '<pre>';
var_dump( realpath($template_file) );
var_dump( realpath($module_file) );
var_dump( realpath($template_path . DS . 'scripts' . DS) );
var_dump( realpath($module_path . DS . 'scripts' . DS) );
var_dump( file_exists( realpath($template_file) ) );
var_dump( file_exists( realpath($module_file) ) );
echo '</pre>';
?>
output:
Code:
string(77) "C:\xampp\htdocs\zf_cms\templates\default\views\core\scripts\index\index.phtml"
string(79) "C:\xampp\htdocs\zf_cms\application\modules\core\views\scripts\index\index.phtml"
string(59) "C:\xampp\htdocs\zf_cms\templates\default\views\core\scripts"
string(61) "C:\xampp\htdocs\zf_cms\application\modules\core\views\scripts"
bool(true)
bool(true)
Alvast bedankt,
Michael
Edit:
Wanneer ik het index.phtml bestand uit de module haal dan toont hij wel de index.phtml in de template
Maar het moet dus zo worden dat de index.phtml in de template ALTIJD leading is zelfs wanneer er een in de module staat
Laatst bewerkt: