read () ) { if (file_exists ( MB_PACKAGE_PATH . '/' . $e . '/manifest.php' )) { $list [] = $e ; } } sort ( $list ) ; // order important as generate_nodes_array in Tree.php later loops over this by foreach to generate the package list return $list ; } /** * @param $name * @return MBPackage */ function getPackage ($name) { if (empty ( $this->packages [ $name ] )) $this->packages [ $name ] = new MBPackage ( $name ) ; return $this->packages [ $name ] ; } function getPackageKey ($name) { $manifestPath = MB_PACKAGE_PATH . '/' . $name . '/manifest.php' ; if (file_exists ( $manifestPath )) { require( $manifestPath ) ; if(!empty($manifest)) return $manifest['key']; } return false ; } function &getPackageModule ($package , $module) { $this->getPackage ( $package ) ; $this->packages [ $package ]->getModule ( $module ) ; return $this->packages [ $package ]->modules [ $module ] ; } function save () { $packages = array_keys ( $this->packages ) ; foreach ( $packages as $package ) { $this->packages [ $package ]->save () ; } } function build () { $packages = array_keys ( $this->packages ) ; foreach ( $packages as $package ) { if (count ( $packages ) == 1) { $this->packages [ $package ]->build ( true ) ; } else { $this->packages [ $package ]->build ( false ) ; } } } function getPackages () { if (empty ( $this->packages )) { $list = $this->getPackageList () ; foreach ( $list as $package ) { if (! empty ( $this->packages [ $package ] )) continue ; $this->packages [ $package ] = new MBPackage ( $package ) ; } } } function getNodes () { $this->getPackages () ; $nodes = array ( ) ; foreach ( array_keys ( $this->packages ) as $name ) { $nodes [] = $this->packages [ $name ]->getNodes () ; } return $nodes ; } } ?>