/** * When paths or other options are changed in the s9y configuration, update the core files * * @access public * @return boolean */ function serendipity_updateConfiguration() { global $serendipity, $umask; // Save all basic config variables to the database $config = serendipity_parseTemplate(S9Y_CONFIG_TEMPLATE); if (isset($_POST['sqlitedbName']) && !empty($_POST['sqlitedbName'])) { $_POST['dbName'] = $_POST['sqlitedbName']; } // Password can be hidden in re-configuring, but we need to store old password if (empty($_POST['dbPass']) && !empty($serendipity['dbPass'])) { $_POST['dbPass'] = $serendipity['dbPass']; } foreach ($config as $category) { foreach ($category['items'] as $item) { /* Don't save trash */ if (!serendipity_checkConfigItemFlags($item, 'configuration')) { continue; } if (!isset($item['userlevel'])) { $item['userlevel'] = USERLEVEL_ADMIN; } // Check permission set. Changes to blogConfiguration or siteConfiguration items // always required authorid = 0, so that it be not specific to a userlogin if ($serendipity['serendipityUserlevel'] >= $item['userlevel'] || IS_installed === false) { $authorid = 0; } elseif ($item['permission'] == 'blogConfiguration' && serendipity_checkPermission('blogConfiguration')) { $authorid = 0; } elseif ($item['permission'] == 'siteConfiguration' && serendipity_checkPermission('siteConfiguration')) { $authorid = 0; } else { $authorid = $serendipity['authorid']; } if (is_array($_POST[$item['var']])) { // Arrays not allowed. Use first index value. list($a_key, $a_val) = each($_POST[$item['var']]); $_POST[$item['var']] = $a_key; // If it still is an array, munge it all together. if (is_array($_POST[$item['var']])) { $_POST[$item['var']] = @implode(',', $_POST[$item['var']]); } } serendipity_set_config_var($item['var'], $_POST[$item['var']], $authorid); } } if (IS_installed === false || serendipity_checkPermission('siteConfiguration')) { return serendipity_updateLocalConfig($_POST['dbName'], $_POST['dbPrefix'], $_POST['dbHost'], $_POST['dbUser'], $_POST['dbPass'], $_POST['dbType'], $_POST['dbPersistent']); } else { return true; } }
} } if (sizeof($errors)) { $data['errors'] = $errors; } /* I don't care what you told me, I will always nuke Smarty cache */ serendipity_smarty_purge(); } $data['s9y_version'] = $serendipity['version']; $data['s9y_version_installed'] = $serendipity['versionInstalled']; if ($showAbort && $serendipity['GET']['action'] == 'ignore' || $serendipity['GET']['action'] == 'upgrade') { $privateVariables = array(); if (isset($serendipity['UpgraderShowAbort'])) { $privateVariables['UpgraderShowAbort'] = $serendipity['UpgraderShowAbort']; } $r = serendipity_updateLocalConfig($serendipity['dbName'], $serendipity['dbPrefix'], $serendipity['dbHost'], $serendipity['dbUser'], $serendipity['dbPass'], $serendipity['dbType'], $serendipity['dbPersistent'], $privateVariables); if ($serendipity['GET']['action'] == 'ignore') { $data['ignore'] = true; } elseif ($serendipity['GET']['action'] == 'upgrade') { // void } $data['return_here'] = true; $data['print_UPGRADER_RETURN_HERE'] = sprintf(SERENDIPITY_UPGRADER_RETURN_HERE, '<a href="' . $serendipity['serendipityHTTPPath'] . '">', '</a>'); $_SESSION['serendipityAuthedUser'] = false; @session_destroy(); } else { $data['upgrade'] = true; $data['result_diagnose'] = sprintf(ERRORS_ARE_DISPLAYED_IN, serendipity_upgraderResultDiagnose(S9Y_U_ERROR, RED), serendipity_upgraderResultDiagnose(S9Y_U_WARNING, YELLOW), serendipity_upgraderResultDiagnose(S9Y_U_SUCCESS, GREEN)); $errorCount = 0; $showWritableNote = false; $basedir = $serendipity['serendipityPath'];
function saveFetchPingbackDataConfig($fetchPingback) { global $serendipity; if (is_writeable($serendipity['serendipityPath'] . 'serendipity_config_local.inc.php')) { $privateVariables = array('pingbackFetchPage' => $fetchPingback); serendipity_updateLocalConfig($serendipity['dbName'], $serendipity['dbPrefix'], $serendipity['dbHost'], $serendipity['dbUser'], $serendipity['dbPass'], $serendipity['dbType'], $serendipity['dbPersistent'], $privateVariables); } else { echo "serendipity_config_local.inc.php is not writeable for plugins"; } }