/*####### BEGIN Scanning of module dir to discover actions #######*/ $template_content = '<ul>'.chr(10); $dirs = scandir($modules_root); foreach($dirs as $moduledir) { $action_class = $modules_root.DIRECTORY_SEPARATOR.$moduledir.DIRECTORY_SEPARATOR.sfConfig::get('sf_app_module_action_dir_name').'/actions.class.php'; if(file_exists($action_class)&&is_file($action_class)) { require_once($action_class); // PHP5 Reflection $class = new ReflectionClass($moduledir.'Actions'); $is_head = true; $tmp_content = ''; foreach($class->getMethods() as $reflectionMethod) { if(ereg("^execute([[:alnum:]]+)", $reflectionMethod->getName(),&$regs)) { $first_letter = $regs[1]{0}; $first_letter = strtolower($first_letter); $actionName = $first_letter.substr($regs[1],1,strlen($regs[1])); $internal_uri = $moduledir.'/'.$actionName; if($is_head) { $template_content .= '<li><?echo link_to(\''.$moduledir.'/\',\''.$internal_uri.'\')?>'.chr(10); $tmp_content = chr(10).'<ul>'.chr(10); } $tmp_content .= '<li><?echo link_to(\''.$internal_uri.'\',\''.$internal_uri.'\')?></li>'.chr(10); $is_head = false; } } if($tmp_content) $tmp_content .= '</ul>'.chr(10); if($tmp_content) $template_content .= $tmp_content.'</li>'.chr(10); } } $template_content .= '</ul>'.chr(10); /*####### END Scanning of module dir to discover actions #######*/