<?php
/**
+ * Help display script.
+ *
* Copyright 1999-2010 The Horde Project (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (LGPL). If you
require_once dirname(__FILE__) . '/../../lib/Application.php';
Horde_Registry::appInit('horde', array('authentication' => 'none'));
+$vars = Horde_Variables::getDefaultVariables();
+
$rtl = isset(Horde_Nls::$config['rtl'][$language]);
$title = _("Help");
-$show = Horde_String::lower(Horde_Util::getFormData('show', 'index'));
-$module = Horde_String::lower(preg_replace('/\W/', '', Horde_Util::getFormData('module', 'horde')));
-$topic = Horde_Util::getFormData('topic', 'overview');
+$show = isset($vars->show)
+ ? Horde_String::lower($vars->show)
+ : 'index';
+$module = isset($vars->module)
+ ? Horde_String::lower(preg_replace('/\W/', '', $vars->module))
+ : 'horde';
+$topic = isset($vars->topic) ? $vars->topic : 'overview';
-$base_url = $registry->get('webroot', 'horde') . '/services/help/';
+$base_url = Horde::getServiceLink('help', $module);
-$sidebar_url = Horde::url($base_url);
-$sidebar_url = Horde_Util::addParameter($sidebar_url, array('show' => 'sidebar',
- 'module' => $module,
- 'topic' => $topic));
+$sidebar_url = Horde::url($base_url->copy()->add(array(
+ 'show' => 'sidebar',
+ 'topic' => $topic
+)));
+
+if ($show == 'index') {
+ $main_url = Horde::url($base_url->copy()->add(array(
+ 'show' => 'entry',
+ 'topic' => $topic
+ )));
+ $menu_url = Horde::url($base_url->copy()->add('show', 'menu'));
+
+ require HORDE_TEMPLATES . '/help/index.inc';
+ exit;
+}
if ($module == 'admin') {
$help_app = $registry->get('name', 'horde');
- $fileroot = $registry->get('fileroot');
- $help_file = $fileroot . "/admin/locale/$language/help.xml";
- $help_file_fallback = $fileroot . '/admin/locale/en_US/help.xml';
+ $fileroot = $registry->get('fileroot') . '/admin';
} else {
$help_app = $registry->get('name', $module);
$fileroot = $registry->get('fileroot', $module);
- $help_file = $fileroot . "/locale/$language/help.xml";
- $help_file_fallback = $fileroot . '/locale/en_US/help.xml';
}
-if ($show == 'index') {
- $main_url = Horde::url($base_url);
- $main_url = Horde_Util::addParameter($main_url, array('show' => 'entry',
- 'module' => $module,
- 'topic' => $topic));
- $menu_url = Horde::url($base_url);
- $menu_url = Horde_Util::addParameter($menu_url, array('module' => $module,
- 'show' => 'menu'));
-
- require HORDE_TEMPLATES . '/help/index.inc';
- exit;
-}
+$help = new Horde_Help(Horde_Help::SOURCE_FILE, array($fileroot . '/locale/' . $language . '/help.xml', $fileroot . '/locale/en_US/help.xml'));
$bodyClass = 'help help_' . urlencode($show);
require HORDE_TEMPLATES . '/common-header.inc';
-if ($show == 'menu') {
+
+switch ($show) {
+case 'menu':
$version = Horde_String::ucfirst($module) . ' ' . $registry->getVersion($module);
require HORDE_TEMPLATES . '/help/menu.inc';
-} elseif ($show == 'sidebar') {
- $vars = Horde_Variables::getDefaultVariables();
+ break;
- /* Get current page and if empty, load the default */
- $side_show = Horde_Util::getFormData('side_show', 'index');
- $vars->set('side_show', $side_show);
+case 'sidebar':
+ if (!isset($vars->side_show)) {
+ $vars->set('side_show', 'index');
+ }
/* Generate Tabs */
$tabs = new Horde_Ui_Tabs('side_show', $vars);
$tree->setOption(array('target' => 'help_main'));
$contents = '';
- switch ($side_show) {
+ switch ($vars->side_show) {
case 'index':
- $help = new Horde_Help(Horde_Help::SOURCE_FILE, array($help_file, $help_file_fallback));
$topics = $help->topics();
$added_nodes = array();
+ $node_params_master = array(
+ 'target' => 'help_main',
+ 'icon' => 'help.png',
+ 'icondir' => $registry->getImageDir('horde')
+ );
foreach ($topics as $id => $title) {
if (!$title) {
continue;
}
+ $node_params = $node_params_master;
$parent = null;
- $url = Horde::url($registry->get('webroot', 'horde') . '/services/help/');
- $url = Horde_Util::addParameter($url, array('show' => 'entry', 'module' => $module, 'topic' => $id));
- $node_params = array(
- 'url' => $url,
- 'target' => 'help_main',
- 'icon' => 'help.png',
- 'icondir' => $registry->getImageDir('horde'),
- );
-
/* If the title doesn't begin with :: then replace all
* double colons with single colons. */
if (substr($title, 0, 2) != '::') {
$idx .= '|' . $name;
if (empty($added_nodes[$idx])) {
$added_nodes[$idx] = true;
- if (count($levels)) {
- unset($node_params['url']);
- } else {
- $node_params['url'] = $url;
+ if (!count($levels)) {
+ $node_params['url'] = $base_url->copy()->add(array(
+ 'show' => 'entry',
+ 'topic' => $id
+ ));
}
$tree->addNode($idx, $parent, $name, 0, false, $node_params);
}
$searchForm->addHidden('', 'module', 'text', false);
$searchForm->addHidden('', 'side_show', 'text', false);
- $vars->set('side_show', $side_show);
$searchForm->addVariable(_("Keyword"), 'keyword', 'text', false, false, null, array(null, 20));
$renderer = new Horde_Form_Renderer();
$renderer->setAttrColumnWidth('50%');
- $contents = Horde_Util::bufferOutput(array($searchForm, 'renderActive'), $renderer, $vars, $sidebar_url, 'post') .
+ $contents = Horde_Util::bufferOutput(array($searchForm, 'renderActive'), $renderer, $vars, $sidebar_url->copy()->setRaw(true), 'post') .
'<br />';
$keywords = $vars->get('keyword');
if (!empty($keywords)) {
- $help = new Horde_Help(Horde_Help::SOURCE_FILE, array($help_file, $help_file_fallback));
$results = $help->search($keywords);
foreach ($results as $id => $title) {
if (empty($title)) {
continue;
}
- $link = Horde::url($registry->get('webroot', 'horde') . '/services/help/');
- $link = Horde_Util::addParameter($link, array('show' => 'entry', 'module' => $module, 'topic' => $id));
- $contents .= Horde::link($link, null, null, 'help_main') .
+ $contents .= Horde::link($base_url->copy()->add(array('show' => 'entry', 'topic' => $id)), null, null, 'help_main') .
htmlspecialchars($title) . "</a><br />\n";
}
}
}
require HORDE_TEMPLATES . '/help/sidebar.inc';
-} else {
- $help = new Horde_Help(Horde_Help::SOURCE_FILE, array($help_file, $help_file_fallback));
- if (($show == 'entry') && $topic) {
+ break;
+
+case 'entry':
+ if ($topic) {
$help->lookup($topic);
$help->display();
}
+ break;
}
require HORDE_TEMPLATES . '/common-footer.inc';