Hallo Ihr zwei, also das ist mein workarround um in einem Plugin an den Modulpfad zu kommen, also nur root/application/modules/ zB.
Das Modulverzeichnis kann man ja nennen wie man will, das ist das Problem und das einzige was mir einfiel ist den Modulpfad des aktuellen Moduls zB "default" zu holen => "root/application/modules/default" und den modulnamen selbst wieder zu entfernen.
Mein Eclipse und im Manual fand ich nix besseres, außer per getInvokeArg() nochmal die bootstrap resource zu holen um in der config nachzuschauen. Da erschien mir mein jetziges schneller und resourcen schonender.
Grund dahinter ist folgendes Script:
das holt mir alle existierenden Module und dort kann ich dann nach möglichen Menü-Configdateien suchen.
*edit
Das ganze steckt in meinem Navigation Plugin.
Das Modulverzeichnis kann man ja nennen wie man will, das ist das Problem und das einzige was mir einfiel ist den Modulpfad des aktuellen Moduls zB "default" zu holen => "root/application/modules/default" und den modulnamen selbst wieder zu entfernen.
Mein Eclipse und im Manual fand ich nix besseres, außer per getInvokeArg() nochmal die bootstrap resource zu holen um in der config nachzuschauen. Da erschien mir mein jetziges schneller und resourcen schonender.
Grund dahinter ist folgendes Script:
PHP:
/**
* Fetch Module Paths
*
* @param NULL|string|array $_module if NULL fetch all Modules, or the defined Modules
* @return array
*/
private function _getModules($_module = NULL)
{
// check if is an array
if($_module !== NULL && !is_array($_module)) {
settype($_module, 'array');
}
// workaround too get the aktually modules path
$path = Zend_Controller_Front::getInstance()->getModuleDirectory($this->_request->getModuleName());
$path = explode(DS, $path); // covert too array
unset($path[count($path)-1]); // delete module Directory
$path = implode(DS, $path) . DS; // convert too string
$paths = array();
// fetch all modules Directorys
$iterator = new DirectoryIterator($path);
while($iterator->valid()) {
if(!$iterator->isDot()) {
if($_module === NULL || in_array($iterator->getFilename(), $_module, TRUE)) {
$paths[] = $path . $iterator->getFilename();
}
}
$iterator->next();
}
return (array)$paths;
}
*edit
Das ganze steckt in meinem Navigation Plugin.
