Location: PHPKode > projects > Just For Fun Network Management System > jffnms-0.8.5/conf/config.parse.inc.php
<?php
/* This file is part of JFFNMS
 * Copyright (C) <2002-2005> Javier Szyszlican <hide@address.com>
 * This program is licensed under the GNU GPL, full terms in the LICENSE file
 */

require_once ("config.parse.func.inc.php");

$config_dirs = array("..",".","../conf","../../../conf","../../conf","/etc/jffnms");

// Look for new Config Defaults
if (false === ($jffnms_config_defaults_file = find_file ("jffnms.conf.defaults", $config_dirs)))
  die ("Configuration defaults (jffnms.conf.defaults) no found in ".join(", ",$config_dirs). ".");

// Parse Defaults
$jffnms_config_defaults = parse_config_file($jffnms_config_defaults_file);
    
// Look for new Style Config 
if (false !== ($jffnms_config_file = find_file ("jffnms.conf", $config_dirs)))
  $jffnms_config_type = "new";
else //Look for Old Style ConfigFile (0.7.9 -> 0.8.0 Upgrade)
  if (false !== ($jffnms_config_file = find_file ("config.ini", $config_dirs)))
    $jffnms_config_type = "old";

if ($jffnms_config_file==false) //No Real configuration found, use defaults 
{ 
  $jffnms_configuration = $jffnms_config_defaults;
  $jffnms_config_type = "default";
  $jffnms_config_file = dirname($jffnms_config_defaults_file)."/jffnms.conf";
}    
    
if ($jffnms_config_type == "old")
{
  if (!isset($config_profile)) $config_profile = "standard";
  $config_ini = parse_ini_file($jffnms_config_file,true);

  if (count($config_ini)==2) //FIX for PHP5 and our old config.ini
  {
      $config_ini["standard"] += $config_ini["none"];
      unset ($config_ini["none"]);
  }
        
  while($config_key = key($config_ini[$config_profile]))
  {
    list ($config_value,$config_aux) = explode ("#",current($config_ini[$config_profile]));
    list ($config_type,$config_size,$config_comment) = explode(",",$config_aux);

    $config_value = trim($config_value);
    $config_comment = trim($config_comment);
    $config_type = trim($config_type);
    $config_size = trim($config_size);
  
    if (($config_key=="jffnms_rel_path") && ($config_value=="/."))
      $config_value = ""; //special case for relative path

    $jffnms_configuration[$config_key]=array(
      "value"=>$config_value,
      "comment"=>$config_comment,
      "type"=>$config_type,
      "size"=>$config_size);
    next($config_ini[$config_profile]);
  }
    
  unset($config_ini);
  unset($config_key);
  unset($config_value);
  unset($config_type);
  unset($config_size);
  unset($config_comment);
  unset($config_aux);
  
  // Generate New Style config file 
  unset ($new_config);
  $avoid_config = array("jffnms_version", "db_working", "reg_globs",
    "allow_url_fopen", "normalColor", "overColor", "selectedColor", 
    "table_row_color1", "table_row_color2", "events_latest_max",
    "messages_refresh","logo_url");
  
  foreach ($jffnms_configuration as $var=>$data) 
    if (!in_array($var,$avoid_config) &&
      (strpos($var, 'title')===false) &&
      (strpos($var,'module')==false) &&
      ($jffnms_config_defaults[$var]['default']!=$data['value'])
    )
      $new_config .= $var.' = '.$data['value'].'\n';
      
  $jffnms_config_file = dirname($jffnms_config_defaults_file).'/jffnms.conf';

  if ( ($config_fp = fopen($jffnms_config_file,"w+"))===FALSE)
    die("Unable to open configuration file $jffnms_config_file.\n");
  fputs ($config_fp, $new_config);
  fclose($config_fp);
  
  unset ($var);
  unset ($data);
  unset ($avoid_config);
  unset ($config_fp);
  unset ($new_config);
    
  $jffnms_config_type = "new";
} 

if ($jffnms_config_type == "new")
  $jffnms_configuration = parse_config_file($jffnms_config_file, $jffnms_config_defaults);

//Put the configuration variables in the Global Scope
foreach ($jffnms_configuration as $jffnms_config_var=>$jffnms_config_data)
{
  if (!array_key_exists('value',$jffnms_config_data)) {
    //echo("Config var $jffnms_config_var has no value, skipping\n");
    continue;
  }
  if (!array_key_exists('type',$jffnms_config_data) ||
    (!in_array($jffnms_config_data['type'],array('menu','test','phpconf','phpmodule')))
  )
    $GLOBALS[$jffnms_config_var]=$jffnms_config_data['value'];
}
    
unset($jffnms_config_var);
unset($jffnms_config_data);      
unset($jffnms_config_defaults_file);
unset($jffnms_config_defaults);
unset($jffnms_config_type);
unset($config_dirs);
?>
Return current item: Just For Fun Network Management System