diff --git a/include/functions.inc b/include/functions.inc
index 4571a66431733870867c0344f57368a89303e65d..db9cacaf2ac81a75c54745ef6326c8b3b5fd12b2 100644 (file)
--- a/include/functions.inc
+++ b/include/functions.inc
/* Configuration file location */
define ("CONFIG_DIR", "/etc/gosa");
define ("CONFIG_TEMPLATE_DIR", "../contrib/");
-define ("HELP_BASEDIR", "../doc/guide/admin/");
+define ("HELP_BASEDIR", "/home/cajus/");
/* Define globals for revision comparing */
$svn_path = '$HeadURL$';
{
global $config, $BASE_DIR;
- if (!isset($config->data['MAIN']['THEME'])){
+ if (!@isset($config->data['MAIN']['THEME'])){
$theme= 'default';
} else {
$theme= $config->data['MAIN']['THEME'];
/* user not found */
case 0: return (NULL);
- break;
/* valid uniq user */
case 1:
if (isset($_SESSION['DEBUGLEVEL'])){
$_SESSION['errors'].= "<div align=\"left\" style=\"border-width:5px;".
"border-style:solid;border-color:red; background-color:black;".
- "margin-bottom:10px; padding:8px;\"><table><tr><td><img alt=\"\" src=\"".
+ "margin-bottom:10px; padding:8px;\"><table summary=''><tr><td><img alt=\"\" src=\"".
get_template_path('images/warning.png')."\"></td>".
"<td width=\"100%\" align=\"center\"><font color=\"#FFFFFF\">".
"<b style='font-size:16px;'>$string</b></font></td><td>".
/* CUPS is not available, try lpstat as a replacement */
} else {
- unset ($ar);
+ $ar = false;
exec("lpstat -p", $ar);
foreach($ar as $val){
list($dummy, $printer, $rest)= split(' ', $val, 3);
$apply= "";
$apply= ''.
- '<table width="100%" style="border-top:1px solid #B0B0B0;"><tr><td width="100%" align="right">'.
+ '<table summary="" width="100%" style="background:#EEEEEE;border-top:1px solid #B0B0B0;"><tr><td width="100%" align="right">'.
'<input type="submit" name="apply" value="'._("Apply").'"></td></tr></table>';
return ($apply);
}
}
-function gosaRaiseError($errno, $errstr, $errfile, $errline)
-{
- global $error_collector;
-
- /* Return if error reporting is set to zero */
- if (error_reporting() == 0){
- return;
- }
-
- /* Workaround for buggy imap_open error outputs */
- if (preg_match('/imap_open/', $errstr)){
- return;
- }
-
- /* FIXME: Workaround for PHP5 error message flooding. The new OOM
- code want's us to use public/protected/private instead of flat
- var declarations. For now I can't workaround this - let's ignore
- the messages till the next major release which may drop support
- for PHP4. */
- if (preg_match('/var: Deprecated./', $errstr)){
- return;
- }
-
- /* FIXME: Same as above. Compatibility does error flooding.*/
- if (preg_match('/zend.ze1_compatibility_mode/', $errstr)){
- return;
- }
-
- /* Hide ldap size limit messages */
- if (preg_match('/ldap_error/', $errstr)){
- if (preg_match('/sizelimit/', $errstr)){
- return;
- }
- }
-
- /* Create header as needed */
- if ($error_collector == ""){
- if ($_SESSION['js']==FALSE){
- $error_collector= "<div>";
- } else {
- $error_collector= "<table width=\"100%\" style='background-color:#E0E0E0;border-bottom:1px solid black'><tr><td><img alt=\"\" align=\"middle\" src='".get_template_path('images/warning.png')."'> <font style='font-size:14px;font-weight:bold'>"._("Generating this page caused the PHP interpreter to raise some errors!")."</font></td><td align=right><button onClick='toggle(\"errorbox\")'>"._("Toggle information")."</button></td></tr></table><div id='errorbox' style='position:absolute; z-index:0; visibility: hidden'>";
- }
- }
-
- /* Create error header */
- $error_collector.= "<table width=\"100%\" cellspacing=0 style='background-color:#402005;color:white;border:2px solid red'><tr><td colspan=3><h1 style='color:white'>"._("PHP error")." \"$errstr\"</h1></td></tr>";
-
- /* Extract traceback data - if available */
- if (function_exists('debug_backtrace')){
- $trace= debug_backtrace();
-
- /* Generate trace history */
- for ($index= 1; $index<count($trace); $index++){
- $ct= $trace[$index];
- $loc= "";
- if (isset($ct['class'])){
- $loc.= _("class")." ".$ct['class'];
- if (isset($ct['function'])){
- $loc.= " / ";
- }
- }
- if (isset($ct['function'])){
- $loc.= _("function")." ".$ct['function'];
- }
- if (isset($ct['type'])){
- switch ($ct['type']){
- case "::":
- $type= _("static");
- break;
-
- case "->":
- $type= _("method");
- break;
- }
- } else {
- $type= "-";
- }
- $args= "";
- foreach ($ct['args'] as $arg){
- $args.= htmlentities("\"$arg\", ");
- }
- $args= preg_replace("/, $/", "", $args);
- if ($args == ""){
- $args= "-";
- }
- $file= $ct['file'];
- $line= $ct['line'];
- $color= ($index&1)?'#404040':'606060';
- $error_collector.= "<tr style='background-color:$color'><td style='padding-left:20px' width=\"30%\">"._("Trace")."[$index]: $loc</td>";
- $error_collector.= "<td>"._("File").": $file ("._('Line')." $line)</td><td width=\"10%\">"._("Type").": $type</td></tr>";
- $error_collector.= "<tr style='background-color:$color'><td colspan=3 style='padding-left:20px;'>"._("Arguments").": $args</td></tr>";
- }
- }
-
- /* Close error table */
- $error_collector.= "</table>";
-
- /* Write to syslog */
- gosa_log ("PHP error: $errstr ($errfile, line $errline)");
-}
-
-
-function dummy_error_handler()
-{
-}
function rmdirRecursive($path, $followLinks=false) {
$dir= opendir($path);
return rmdir($path);
}
+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;
+ }
+ }
+ }
+ /* Sort array ascending , like scandir */
+ sort($ret);
+
+ /* Sort descending if parameter is sort_desc is set */
+ if($sort_desc) {
+ $ret = array_reverse($ret);
+ }
+
+ return($ret);
+}
+
function clean_smarty_compile_dir($directory)
{
global $svn_revision;
# contents should match the revision number
if(!compare_revision($revision_file, $svn_revision)){
// If revision differs, clean compile directory
- foreach(scandir($directory) as $file) {
+ foreach(scan_directory($directory) as $file) {
if( is_file($directory."/".$file) &&
is_writable($directory."/".$file)) {
// delete file
}
function progressbar($percentage,$width=100,$height=15,$showvalue=false)
- {
+{
$str = ""; // Our return value will be saved in this var
$color = dechex($percentage+150);
$color2 = dechex(150 - $percentage);
+ $bgcolor= $showvalue?"FFFFFF":"DDDDDD";
$progress = (int)(($percentage /100)*$width);
/* If theres a better solution for this, use it... */
$str = "
- <div style=\" width:".($width)."px;
- height:".($height)."px;
- background-color:#000000;
- padding:1px;\">
+ <div style=\" width:".($width)."px;
+ height:".($height)."px;
+ background-color:#000000;
+padding:1px;\">
<div style=\" width:".($width)."px;
- background-color:#DDDDDD;
- height:".($height)."px;\">
+ background-color:#$bgcolor;
+height:".($height)."px;\">
- <div style=\" width:".$progress."px;
- height:".$height."px;
- background-color:#".$color2.$color2.$color."; \">";
+ <div style=\" width:".$progress."px;
+height:".$height."px;
+ background-color:#".$color2.$color2.$color."; \">";
- if($height >10){
- $str.= "<font style=\"font-size:".($height-2)."px;color:#FF5555;align:middle;padding-left:".((int)(($width*0.4)))."px;\">
- <b>".$percentage."%</b>
- </font>";
- }
+ if(($height >10)&&($showvalue)){
+ $str.= "<font style=\"font-size:".($height-2)."px;color:#FF0000;align:middle;padding-left:".((int)(($width*0.4)))."px;\">
+ <b>".$percentage."%</b>
+ </font>";
+ }
- $str.= "</div></div></div>";
+ $str.= "</div></div></div>";
- return($str);
+ return($str);
+}
+
+
+function search_config($arr, $name, $return)
+{
+ if (is_array($arr)){
+ foreach ($arr as $a){
+ if (isset($a['CLASS']) &&
+ strtolower($a['CLASS']) == strtolower($name)){
+
+ if (isset($a[$return])){
+ return ($a[$return]);
+ } else {
+ return ("");
+ }
+ } else {
+ $res= search_config ($a, $name, $return);
+ if ($res != ""){
+ return $res;
+ }
+ }
+ }
}
+ return ("");
+}
// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: