<?php
 
/**
 
* A sample code showing usage of ConfigEditor class
 
* 
 
* @package ConfigEditor
 
* @author Alexandr [Amega] Egorov, amego2006(at)gmail.com
 
* @version 1.0
 
*/
 
 
define('ROOTDIR', dirname(__FILE__));
 
define('LIBDIR', ROOTDIR);
 
define('CONFIG_FILE', ROOTDIR.'/config.php');
 
 
define('CE_NEWLINE', "\r\n");
 
define('CE_WORDWRAP', 20);
 
require_once(LIBDIR.'/confedit.class.php');
 
 
// Creating an instance of ConfigEditor
 
$config = new ConfigEditor();
 
 
if (!file_exists(CONFIG_FILE)) {
 
    //
 
    // We do not have the config file yet. So we
 
    // should create one
 
    //
 
    
 
    // Adding a variable
 
    // This will result in:
 
    //  // Timeout ...
 
    //  $cfg_curl_timeout = 10;
 
    // in the generated config.
 
    // Note: comments may be multiline.
 
    $config->SetVar('cfg_curl_timeout', 10, 'Timeout in cURL operations');
 
    
 
    // Values may be more complex, e.g. arrays
 
    // This will result in:
 
    //  $cfg_banned_ips = array(0 => '10.10.10.10', 1 => '10.20.30.40');
 
    $config->SetVar('cfg_banned_ips', array('10.10.10.10', '10.20.30.40'), 'Banned IPs');
 
    
 
    // As you may have guessed, ConfigEditor uses var_export on
 
    // the values before putting them to config.
 
    // But sotimes it is not desirable. E.g. I want to add a variable:
 
    // $cfg_cachedir = ROOTDIR.'/maincache';
 
    // So, everytime I include the config, $cfg_cachedir should be
 
    // evaluated into 'D:/some/path/maincache';
 
    // To tell ConfigEditor NOT to var_export values, you should
 
    // pass true in the 4th argument, telling that the value is
 
    // in RAW format.
 
    $config->SetVar('cfg_cachedir', "ROOTDIR.'/maincache'", 'ROOTDIR is defined before including config file', true);
 
        
 
    // Save generates the config and returns it as a string.
 
    // If fname is passed, it will alse try to save the file
 
    $config_php = $config->Save(CONFIG_FILE);
 
    echo 'Config created in '.CONFIG_FILE."<br />\n";
 
} else {
 
    // we already have a config
 
    $config->LoadFromFile(CONFIG_FILE);
 
    
 
    // Listing all variables found in the config
 
    echo '<table border=1><tr><td>Name</td><td>Value</td><td>RAW value</td><td>Comment</td></tr>';
 
    $vars = $config->GetVarNames();
 
    foreach($vars as $var_name) {
 
        // Note the defference between values for cfg_cachedir
 
        $var = $config->GetVar($var_name);
 
        $varRaw = $config->GetVarRaw($var_name);
 
        echo '<tr><td>'.htmlspecialchars($var[CE_VARNAME]).'</td>';
 
        echo '<td>'.htmlspecialchars(print_r($var[CE_VARVALUE], true)).'</td>';
 
        echo '<td>'.htmlspecialchars(print_r($varRaw[CE_VARVALUE], true)).'</td>';
 
        echo '<td>'.htmlspecialchars($var[CE_VARCOMMENT]).'</td></tr>';
 
    }
 
    echo '</table>';                          
 
}
 
 
?>
 
 |