| // +---------------------------------------------------------------------------+ /** * Section Navigation block. * * @package block */ class Navigation_Block_Navigation { function init(&$output, $block_id, &$aParams) { SGL::logMessage(null, PEAR_LOG_DEBUG); return $this->getBlockContent($output, $aParams); } function getBlockContent(&$output, &$aParams) { SGL::logMessage(null, PEAR_LOG_DEBUG); // prepare navigation driver $navDriver = isset($output->conf['navigation']['driver']) ? $output->conf['navigation']['driver'] : 'SimpleDriver'; $navDrvFile = SGL_MOD_DIR . '/navigation/classes/' . $navDriver . '.php'; if (is_file($navDrvFile)) { require_once $navDrvFile; } else { SGL::raiseError('specified navigation driver does not exist', SGL_ERROR_NOFILE); } if (!class_exists($navDriver)) { SGL::raiseError('problem with navigation driver object', SGL_ERROR_NOCLASS); } $nav = & new $navDriver($output); // set default params $aDefaultParams = array( 'startParentNode' => 0, 'startLevel' => 0, 'levelsToRender' => 0, 'collapsed' => 0, 'showAlways' => 0, 'cacheEnabled' => 1, 'breadcrumbs' => 0, ); // set custom params foreach ($aParams as $key => $value) { $aDefaultParams[$key] = $value; } // set new navigation driver params $nav->setParams($aDefaultParams); // call navigation renderer $aNav = $nav->render($aParams['renderer']); // return $aNav[1] - return rendered navigation menu // return $aNav[2] - return breadcrumbs return $aNav[1]; } } ?>