X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=html%2Fhelpviewer.php;h=d515328546dc2d6156f9bf35b8506f45daffc8af;hb=4e98627c646b70788cd5a28343f57fa7aefc1c37;hp=5476d27fc4458e4e44e55402aa9b78af1c14bb82;hpb=81a469d1d40dce4ff169568bf157c318aea81212;p=gosa.git
diff --git a/html/helpviewer.php b/html/helpviewer.php
index 5476d27fc..d51532854 100644
--- a/html/helpviewer.php
+++ b/html/helpviewer.php
@@ -18,18 +18,22 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+/* Include classes and configs */
+@require_once ("../include/php_setup.inc");
+@require_once ("functions.inc");
+@require_once ("functions_helpviewer.inc");
-/* Basic setup, remove eventually registered sessions */
-require_once ("../include/php_setup.inc");
-require_once ("functions.inc");
-require_once ("functions_helpviewer.inc");
+error_reporting(0);
header("Content-type: text/html; charset=UTF-8");
+session_start();
+$config= $_SESSION['config'];
-/* Start session */
-session_start ();
-
-/* Display all Errors/Warnings*/
-error_reporting(E_ALL);
+/* If no config object is found in the session, abort help */
+if (!isset($_SESSION['config'])){
+ gosa_log ("main.php called without session");
+ header ("Location: index.php");
+ exit;
+}
/* Language setup */
if ($config->data['MAIN']['LANG'] == ""){
@@ -38,6 +42,10 @@ if ($config->data['MAIN']['LANG'] == ""){
$lang= $config->data['MAIN']['LANG'];
}
+if(isset($_SESSION['ui']->language)){
+ $lang = $_SESSION['ui']->language;
+}
+
$lang.=".UTF-8";
putenv("LANGUAGE=");
putenv("LANG=$lang");
@@ -45,21 +53,11 @@ setlocale(LC_ALL, $lang);
$GLOBALS['t_language']= $lang;
$GLOBALS['t_gettext_message_dir'] = $BASE_DIR.'/locale/';
-/* Set the text domain as 'messages' */
$domain = 'messages';
bindtextdomain($domain, "$BASE_DIR/locale");
textdomain($domain);
@DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $lang, "Setting language to");
-
-/* Logged in? Simple security check */
-if (!isset($_SESSION['ui'])){
- gosa_log ("Error: helpviewer.php called without session");
- echo ""._("Help is not available if you are not logged in.")."";
- exit;
-}
-
-/* Set template compile directory */
$config= $_SESSION['config'];
if (isset ($config->data['MAIN']['COMPILE'])){
$smarty->compile_dir= $config->data['MAIN']['COMPILE'];
@@ -67,110 +65,168 @@ if (isset ($config->data['MAIN']['COMPILE'])){
$smarty->compile_dir= '/var/spool/gosa/';
}
-/* Get plugin list */
-$plist= $_SESSION['plist'];
-
-/*
-##################
-My PART ^^
-##################
+/* HELP management starts here ...
*/
-$helpdir = "/home/hickert/gosa/doc/guide/user/fr/html/"; // Folder to use for help files
+/* Generate helpobject */
+if(isset($_SESSION['helpobject'])){
+ $helpobject = $_SESSION['helpobject'];
+}else{
+ $helpobject['lang'] = $lang;
+ $helpobject['helpconf'] = array();
+ $helpobject['currentplug'] = "";
+ $helpobject['file'] = "index.html";
+ $helpobject['helpconf'] = $_SESSION['plist']->gen_headlines();
+}
+
+$lang = $lang[0].$lang[1];
+
+$helpobject['lang'] = $lang;
$defaultpage = "index.html"; // alternative file, shown on error, or on first call
$prefix = "node"; // Prefix of the generated help files
$suffix = ".html"; // Suffix of the generated helpfiles
$maxresults = 10; // max number of results shown in result list
$minwordlength = 3; // Word less than 3 chars will be dropped in search
$allowed_chars_in_searchword = "'[^a-z0-9 %_-]'i"; // Remove all chars that would disturb our search like < or > ...
-$pre_mark = "" ; // Sign words with this
-$suf_mark = ""; // and this
-$backwardlink = "
-
- ";
-
-$forwardlink = "
-
- ";
-
/* Default pages */
$backward =$defaultpage;
$index =$defaultpage;
$forward ="node1.html";
-/*
- Here it begins, the real function, above only definitions
+/* Every class which is called within a tab, stores its name in the Session.
+ * If $_SESSION['current_class_for_help'] isset,
+ * get the helpfile specified in the xml file and display it.
+ * Unset this Session entry, to avoid displaying it again.
*/
-/* Path exists ? */
-if((is_dir($helpdir))&&($fp = opendir($helpdir))){
+if(isset($_SESSION['current_class_for_help'])){
- /* read all available directories */
- while($dir = readdir($fp)){
+ /* Create new XML parser with the path to the Xml file */
+ $xml = new parseXml("../doc/guide.xml");
+
+ /* Generate help array */
+ $str = $xml->parse();
+
+ /* __LANG__ is used as placeholder for the used language*/
+ $helpdir= preg_replace("/__LANG__/i",$lang,$str[($_SESSION['current_class_for_help'])]['PATH']);
+
+ /* If there is no entry in the xml file for this class, display an error message */
+ if($helpdir == ""){
- /* Skip . / .. */
- if(!in_array($dir,array(".","..","images"))){
- $arr[$dir] = readfiles($helpdir."/".$dir."/",$prefix,$suffix,false,$singlepage=false);
- }
+ $smarty->assign("help_contents","