Esempio n. 1
0
/**
 * Update application settings
 */
function sumo_update_config($name = '', $data = array())
{
    if (!empty($data)) {
        global $SUMO;
        // Server
        if ($name == 'server') {
            $xml['config'] = array_merge($SUMO['config'], $data);
            $xml['config']['server']['version'] = SUMO_VERSION;
            $xml['config']['server']['updated'] = $SUMO['config']['server']['updated'];
            $xml['config']['server']['charset'] = $SUMO['config']['server']['charset'];
        }
        // Create XML
        $xml_data = sumo_array_toxml($xml, $SUMO['config']['server']['charset'], FALSE);
        // Fix: prevent database optimization hits too low
        if ($name == 'server') {
            if ($xml['config']['database']['optimize_hits'] < 1000) {
                $xml['config']['database']['optimize_hits'] = 1000;
            }
        }
        $query = "UPDATE " . SUMO_TABLE_CONFIGS . " \n\t\t\t  SET data='" . addcslashes($xml_data, "'") . "'\n\t\t  \t  WHERE name='" . $name . "'";
        $SUMO['DB']->Execute($query);
        $SUMO['DB']->CacheFlush();
        sumo_write_log('I06001X', array($name, $SUMO['user']['user']), 3, 3);
        return TRUE;
    } else {
        return FALSE;
    }
}
Esempio n. 2
0
/**
 * Convert PHP array to XML data
 */
function sumo_array_toxml($array = array(), $charset = 'UTF-8', $header = true, $s = true, $t = "")
{
    $xml = $s ? "<?xml version=\"1.0\" encoding=\"" . $charset . "\"?>\n" : "";
    foreach ($array as $key => $value) {
        if (is_string($key)) {
            if (is_array($value)) {
                $xml .= $t . "<" . $key . ">\n" . sumo_array_toxml($value, '', false, false, $t . "\t") . $t . "</" . $key . ">\n";
            } else {
                $xml .= $t . "<" . $key . ">" . $value . "</" . $key . ">\n";
            }
        }
    }
    if ($header) {
        header('Content-type: text/xml; charset=' . $charset);
        header('Content-length: ' . strlen($xml));
        echo $xml;
    } else {
        return $xml;
    }
}