Bo to nie tak masz robić. Albo robisz tak, że w jednej akcji pobierasz potrzebne dane i rozprowadzasz je po stronie poprzez partiale, albo używasz componentów, które tez posiadają logikę i każdy troszczy się o swoje dane.
np.
componets.class.php
<?php
class AdminMenuComponents extends sfComponents
{
public function executeAdminMenu()
{
$this->admin_menu=AdminMenuPeer::retrieveByPK(1);
}
}
?>
_AdminMenu.php
<?php
{
$nodes=$admin_menu->getChildren();
usort($nodes, array('AdminMenu', 'calculateDisplayPosition')); foreach ($nodes as $node)
{
print print_menu_item
($node, 'li'); if(!$node->isLeaf())
{
draw_menu($node->getChildren());
}
}
}
?>
i np w pliku layout.php
<?php
if($sf_user->isAuthenticated())
{
include_component('AdminMenu', 'AdminMenu');
}
?>