} else { list($pkg, $cls) = explode(':', $forward_rules[$parameters['package'] . ':' . $parameters['class']]); header('Location: ' . site_prefix() . '/index/docs-app/package.' . $pkg . '/class.' . $cls); exit; } } elseif ($parameters['class'] == 'Generic' && $parameters['package'] != 'saf.Database') { header('Location: ' . site_prefix() . '/index/docs-app/package.saf.Database/class.Generic'); exit; } loader_import('docs.Docs'); loader_import('docs.Filters'); loader_import('docs.Functions'); $data = array(); $data['packages'] = docs_cache('packages'); if (!is_array($data['packages'])) { $data['packages'] = docs_cache_store(Docs::packages($parameters['current']), 'packages'); } if (strpos($parameters['package'], '.') !== false) { if (!in_array($parameters['package'], $data['packages']) && $data['package'] != $data['current']) { die('Invalid package!'); } $data['package'] = $parameters['package']; $data['classes'] = docs_cache('classes', $parameters['package']); if (!is_array($data['classes'])) { $data['classes'] = docs_cache_store(Docs::classes($parameters['package']), 'classes', $parameters['package']); } $data['functions'] = docs_cache('functions', $parameters['package']); if (!is_array($data['functions'])) { $data['functions'] = docs_cache_store(Docs::functions($parameters['package']), 'functions', $parameters['package']); } if ($parameters['class']) {