本文整理汇总了PHP中serendipity_set_config_var函数的典型用法代码示例。如果您正苦于以下问题:PHP serendipity_set_config_var函数的具体用法?PHP serendipity_set_config_var怎么用?PHP serendipity_set_config_var使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了serendipity_set_config_var函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: set_config
function set_config($name, $value)
{
$fname = $this->instance . '/' . $name;
if (is_array($value)) {
$dbval = implode(',', $value);
} else {
$dbval = $value;
}
$_POST['serendipity']['plugin'][$name] = $dbval;
$set = serendipity_set_config_var($fname, $dbval);
$this->init_trusted();
return $set;
}
示例2: serendipity_installDatabase
echo '<br />';
echo CREATE_DATABASE;
serendipity_installDatabase();
echo ' <strong>' . DONE . '</strong><br />';
echo sprintf(CREATING_PRIMARY_AUTHOR, htmlspecialchars($_POST['user'])) . '...';
$authorid = serendipity_addAuthor($_POST['user'], $_POST['pass'], $_POST['realname'], $_POST['email'], USERLEVEL_ADMIN, 1);
$mail_comments = serendipity_db_bool($_POST['want_mail']) ? 1 : 0;
serendipity_set_user_var('mail_comments', $mail_comments, $authorid);
serendipity_set_user_var('mail_trackbacks', $mail_comments, $authorid);
serendipity_set_user_var('right_publish', 1, $authorid);
serendipity_addDefaultGroup('USERLEVEL_EDITOR_DESC', USERLEVEL_EDITOR);
serendipity_addDefaultGroup('USERLEVEL_CHIEF_DESC', USERLEVEL_CHIEF);
serendipity_addDefaultGroup('USERLEVEL_ADMIN_DESC', USERLEVEL_ADMIN);
echo ' <strong>' . DONE . '</strong><br />';
echo SETTING_DEFAULT_TEMPLATE . '... ';
serendipity_set_config_var('template', $serendipity['defaultTemplate']);
echo ' <strong>' . DONE . '</strong><br />';
echo INSTALLING_DEFAULT_PLUGINS . '... ';
include_once S9Y_INCLUDE_PATH . 'include/plugin_api.inc.php';
serendipity_plugin_api::register_default_plugins();
echo ' <strong>' . DONE . '</strong><br />';
}
echo sprintf(ATTEMPT_WRITE_FILE, '.htaccess') . '... ';
$errors = serendipity_installFiles($basedir);
if ($errors === true) {
echo ' <strong>' . DONE . '</strong><br />';
} else {
echo ' <strong>' . FAILED . '</strong><br />';
foreach ($errors as $error) {
echo '<div class="serendipityAdminMsgError"><img style="width: 22px; height: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="' . serendipity_getTemplateFile('admin/img/admin_msg_error.png') . '" alt="" />' . $error . '</div>';
}
示例3: serendipity_displayImageList
//.........这里部分代码省略.........
echo "<p>Got images: <pre>" . print_r($aResultSet, true) . "</pre></p>";
}
if (is_array($aResultSet)) {
foreach ($aResultSet as $sKey => $sFile) {
serendipity_plugin_api::hook_event('backend_thumbnail_filename_select', $sFile);
$sThumbNailFile = '';
if (isset($sFile['thumbnail_filename'])) {
$sThumbNailFile = $sFile['thumbnail_filename'];
} else {
$sThumbNailFile = $sFile['path'] . $sFile['name'] . '.' . $sFile['thumbnail_name'] . '.' . $sFile['extension'];
}
$sFileName = $sFile['path'] . $sFile['name'] . '.' . $sFile['extension'];
if ($debug) {
echo "<p>File name is {$sFileName},<br />thumbnail is {$sThumbNailFile}</p>";
}
unset($aResultSet[$sKey]);
if (isset($aFilesOnDisk[$sFileName])) {
unset($aFilesOnDisk[$sFileName]);
} else {
if ($debug) {
echo "Deleting Image {$sFile['id']}<br />\n";
}
serendipity_deleteImage($sFile['id']);
++$nCount;
}
unset($aFilesOnDisk[$sThumbNailFile]);
}
}
if ($nCount > 0) {
if ($debug) {
echo "<p>Cleaned up " . $nCount . " database entries</p>";
}
}
serendipity_set_config_var('last_image_hash', $serendipity['current_image_hash'], 0);
$aUnmatchedOnDisk = array_keys($aFilesOnDisk);
if ($debug) {
echo "<p>Got unmatched files: <pre>" . print_r($aUnmatchedOnDisk, true) . "</pre></p>";
}
$nCount = 0;
foreach ($aUnmatchedOnDisk as $sFile) {
if (preg_match('@\\.' . $serendipity['thumbSuffix'] . '\\.@', $sFile)) {
if ($debug) {
echo "<p>Skipping thumbnailed file {$sFile}</p>";
}
continue;
} else {
if ($debug) {
echo "<p>Checking {$sFile}</p>";
}
}
// MTG: 21/01/06: put files which have just 'turned up' into the database
$aImageData = serendipity_getImageData($sFile);
if (serendipity_isImage($aImageData, false, '(image)|(video)|(audio)/')) {
$nPos = strrpos($sFile, "/");
if (is_bool($nPos) && !$nPos) {
$sFileName = $sFile;
$sDirectory = "";
} else {
++$nPos;
$sFileName = substr($sFile, $nPos);
$sDirectory = substr($sFile, 0, $nPos);
}
if ($debug) {
echo "<p>Inserting image {$sFileName} from {$sDirectory} <pre>" . print_r($aImageData, true) . "</pre> into database</p>";
}
# TODO: Check if the thumbnail generation goes fine with Marty's code
示例4: serendipity_updertEntry
case 'publish':
if (!serendipity_checkFormToken()) {
break;
}
$success = serendipity_updertEntry(array('id' => serendipity_specialchars($serendipity['POST']['id']), 'timestamp' => time(), 'isdraft' => 0));
if (is_numeric($success)) {
$data['published'] = $success;
} else {
$data['error_publish'] = $success;
}
break;
case 'updateCheckDisable':
if (!serendipity_checkFormToken() || !serendipity_checkPermission('blogConfiguration')) {
break;
}
serendipity_set_config_var('updateCheck', false);
break;
}
$user = serendipity_fetchAuthor($serendipity['authorid']);
// chrome-compatible, from Oliver Gassner, adapted from TextPattern. Hi guys, keep it up. :-)
$bookmarklet = "javascript:var%20d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),f='" . $serendipity['baseURL'] . "',l=d.location,e=encodeURIComponent,p='serendipity_admin.php?serendipity[adminModule]=entries&serendipity[adminAction]=new&serendipity[title]='+e(d.title)+'&serendipity[body]='+e(s)+'&serendipity[url]='+location.href,u=f+p;a=function(){%20%20if(!w.open(u,'t','toolbar=0,resizable=1,scrollbars=1,status=1,width=800,height=800'))%20%20%20%20l.href=u;};if(/Firefox/.test(navigator.userAgent))%20%20setTimeout(a,0);else%20%20a();void(0)";
$data['bookmarklet'] = $bookmarklet;
$data['username'] = $user[0]['realname'];
$data['js_failure_file'] = serendipity_getTemplateFile('admin/serendipity_editor.js');
$output = array();
serendipity_plugin_api::hook_event('backend_frontpage_display', $output);
$data['backend_frontpage_display'] = $output['more'];
$data['usedVersion'] = $serendipity['version'];
$data['updateCheck'] = $serendipity['updateCheck'];
$data['curVersion'] = serendipity_getCurrentVersion();
$data['update'] = version_compare($data['usedVersion'], $data['curVersion'], '<');
示例5: serendipity_set_user_var
}
*/
continue;
}
// Moved to group administration:
if ($item['var'] == 'userlevel') {
continue;
}
if ($item['view'] == 'dangerous') {
continue;
}
if (serendipity_checkConfigItemFlags($item, 'local')) {
serendipity_set_user_var($item['var'], $_POST[$item['var']], $serendipity['authorid'], true);
}
if (serendipity_checkConfigItemFlags($item, 'configuration')) {
serendipity_set_config_var($item['var'], $_POST[$item['var']], $serendipity['authorid']);
}
}
$pl_data = array('id' => $serendipity['POST']['authorid'], 'authorid' => $serendipity['POST']['authorid'], 'username' => $_POST['username'], 'realname' => $_POST['realname'], 'email' => $_POST['email']);
serendipity_updatePermalink($pl_data, 'author');
serendipity_plugin_api::hook_event('backend_users_edit', $pl_data);
}
if ($serendipity['authorid'] === $_SESSION['serendipityAuthorid']) {
if (is_null($serendipity['detected_lang'])) {
$_SESSION['serendipityLanguage'] = $serendipity['lang'];
}
}
$from = $_POST;
?>
<div class="serendipityAdminMsgSuccess"><img width="22px" height="22px" style="border: 0px; padding-right: 4px; vertical-align: middle" src="<?php
echo serendipity_getTemplateFile('admin/img/admin_msg_success.png');
示例6: serendipity_hash
/**
* Return the SHA1 (with pre-hash) of a value
*
* @param string The string to hash
* @return string The hashed string
*/
function serendipity_hash($string)
{
global $serendipity;
if (empty($serendipity['hashkey'])) {
serendipity_set_config_var('hashkey', time(), 0);
}
return sha1($serendipity['hashkey'] . $string);
}
示例7: set_config
/**
* Sets a configuration value for a plugin
*
* @access public
* @param string Name of the plugin configuration item
* @param string Value of the plugin configuration item
* @param string A concatenation key for imploding arrays
* @return
*/
function set_config($name, $value, $implodekey = '^')
{
$name = $this->instance . '/' . $name;
if (is_array($value)) {
$dbvalue = implode($implodekey, $value);
$_POST['serendipity']['plugin'][$name] = $dbvalue;
} else {
$dbvalue = $value;
}
return serendipity_set_config_var($name, $dbvalue);
}
示例8: import_table
function import_table(&$s9ydb, $table, $primary_keys, $where = null, $dupe_check = false, $fix_relations = false, $skip_dupes = false)
{
global $serendipity;
echo "<span class='block_level'>Starting with table <strong>{$table}</strong>...</span>";
if ($dupe_check) {
$dupes = serendipity_db_query("SELECT * FROM {$serendipity['dbPrefix']}" . $table . " " . $where, false, 'both', false, $dupe_check);
if (!$this->execute) {
echo 'Dupe-Check: <pre>' . print_r($dupes, true) . '</pre>';
}
}
$res = $this->nativeQuery("SELECT * FROM {$this->data['prefix']}" . $table . " " . $where, $s9ydb);
echo mysqli_error($s9ydb);
if (!$res || mysqli_num_rows($res) < 1) {
return false;
}
$this->counter = 100;
while ($row = mysqli_fetch_array($res, MYSQLI_ASSOC)) {
$this->counter++;
if (is_array($primary_keys)) {
foreach ($primary_keys as $primary_key) {
$primary_vals[$primary_key] = $row[$primary_key];
if ($table == 'comments') {
$primary_vals['entry_id'] = $row['entry_id'];
}
unset($row[$primary_key]);
}
} else {
$primary_vals = array();
}
$insert = true;
if (is_array($fix_relations)) {
foreach ($fix_relations as $primary_key => $fix_relation) {
foreach ($fix_relation as $fix_relation_table => $fix_relation_primary_key) {
if ($table == 'comments' && $fix_relation_table == 'entries') {
$assoc_val = $primary_vals['entry_id'];
} elseif (isset($primary_vals[$fix_relation_primary_key])) {
$assoc_val = $primary_vals[$fix_relation_primary_key];
} else {
$assoc_val = $row[$primary_key];
}
if (!$this->execute && empty($assoc_val)) {
if ($this->debug) {
echo '<pre>';
print_r($row);
print_r($fix_relation);
echo '</pre>';
}
}
$new_val = $this->storage[$fix_relation_table][$fix_relation_primary_key][$assoc_val];
if ($skip_dupes && $assoc_val == $new_val) {
$insert = false;
}
if (!empty($new_val)) {
$row[$primary_key] = $new_val;
}
if (!$this->execute && $this->debug) {
echo "<span>Fix relation from {$fix_relation_table}.{$fix_relation_primary_key}={$primary_vals[$fix_relation_primary_key]} to {$row[$primary_key]} (assoc_val: {$assoc_val})</span>";
}
}
}
}
if ($insert) {
if ($dupe_check && isset($dupes[$row[$dupe_check]])) {
if ($this->debug) {
echo "Skipping duplicate: <pre>" . print_r($dupes[$row[$dupe_check]], true) . "</pre>";
}
foreach ($primary_vals as $primary_key => $primary_val) {
$this->storage[$table][$primary_key][$primary_val] = $dupes[$row[$dupe_check]][$primary_key];
$this->storage['dupes'][$table][$primary_key][$primary_val] = $dupes[$row[$dupe_check]][$primary_key];
}
} elseif ($this->execute) {
serendipity_db_insert($table, $this->strtrRecursive($row));
foreach ($primary_vals as $primary_key => $primary_val) {
$dbid = serendipity_db_insert_id($table, $primary_key);
$this->storage[$table][$primary_key][$primary_val] = $dbid;
}
echo "<span class='block_level'>Migrated entry #{$dbid} into {$table}.</span>";
} else {
if ($this->debug) {
echo 'DB Insert: <pre>' . print_r($row, true) . '</pre>';
}
foreach ($primary_vals as $primary_key => $primary_val) {
$this->storage[$table][$primary_key][$primary_val] = $this->counter;
}
}
foreach ($this->storage[$table] as $primary_key => $primary_data) {
foreach ($primary_data as $primary_val => $replace_val) {
serendipity_set_config_var('import_s9y_' . $table . '_' . $primary_key . '_' . $primary_val, $replace_val, 99);
}
}
} else {
if ($this->debug && !$this->execute) {
echo "<span class='block_level'>Ignoring Duplicate.</span>";
}
}
}
if (!$this->execute) {
echo 'Storage on ' . $table . ':<pre>' . print_r($this->storage[$table], true) . '</pre>';
} else {
echo "<span class='block_level'>Finished table <strong>{$table}</strong></span>";
//.........这里部分代码省略.........
示例9: serendipity_updateConfiguration
/**
* 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;
}
}
示例10: import
}
return true;
}
function import(&$config)
{
foreach ($config as $key => $item) {
$this->config[$item['var']] = $item;
$this->keys[$item['var']] = $item['var'];
}
}
}
if ($serendipity['GET']['adminAction'] == 'install') {
serendipity_plugin_api::hook_event('backend_templates_fetchtemplate', $serendipity);
$themeInfo = serendipity_fetchTemplateInfo(htmlspecialchars($serendipity['GET']['theme']));
serendipity_set_config_var('template', htmlspecialchars($serendipity['GET']['theme']));
serendipity_set_config_var('template_engine', isset($themeInfo['engine']) ? $themeInfo['engine'] : 'default');
echo '<div class="serendipityAdminMsgSuccess"><img style="height: 22px; width: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="' . serendipity_getTemplateFile('admin/img/admin_msg_success.png') . '" alt="" />' . sprintf(TEMPLATE_SET, htmlspecialchars($serendipity['GET']['theme'])) . '</div>';
}
?>
<?php
if (@file_exists($serendipity['serendipityPath'] . $serendipity['templatePath'] . $serendipity['template'] . '/layout.php')) {
echo '<div class="serendipityAdminMsgNote"><img style="width: 22px; height: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="' . serendipity_getTemplateFile('admin/img/admin_msg_note.png') . '" alt="" />' . WARNING_TEMPLATE_DEPRECATED . '</div>';
}
echo '<h3>' . STYLE_OPTIONS . ' (' . $serendipity['template'] . ')</h3>';
if (file_exists($serendipity['serendipityPath'] . $serendipity['templatePath'] . $serendipity['template'] . '/config.inc.php')) {
serendipity_smarty_init();
include_once $serendipity['serendipityPath'] . $serendipity['templatePath'] . $serendipity['template'] . '/config.inc.php';
}
if (is_array($template_config)) {
serendipity_plugin_api::hook_event('backend_templates_configuration_top', $template_config);
示例11: serendipity_set_config_var
// A separate hook is used post installation, for plugins to possibly perform some actions
serendipity_plugin_api::hook_event('backend_templates_install', $serendipity['GET']['theme'], $themeInfo);
if ($serendipity['GET']['adminAction'] == 'install' || $serendipity['GET']['adminAction'] == 'install-frontend') {
serendipity_set_config_var('template', serendipity_specialchars($serendipity['GET']['theme']));
}
if ($serendipity['GET']['adminAction'] == 'install-backend' && $themeInfo['custom_admin_interface'] == YES) {
serendipity_set_config_var('template_backend', serendipity_specialchars($serendipity['GET']['theme']));
} else {
// template_engine was set by default to default, which screws up the fallback chain (to the default-template first)
// The "Engine" now only applies to FRONTEND themes. Backend themes will always fall back to our default backend theme only, to ensure proper backend operation.
serendipity_set_config_var('template_engine', null);
if ($themeInfo['engine']) {
serendipity_set_config_var('template_engine', $themeInfo['engine']);
}
}
serendipity_set_config_var('last_template_change', time());
$data["adminAction"] = "install";
$data["install_template"] = serendipity_specialchars($serendipity['GET']['theme']);
}
if (@file_exists($serendipity['serendipityPath'] . $serendipity['templatePath'] . $serendipity['template'] . '/layout.php')) {
$data["deprecated"] = true;
}
$data["cur_template"] = $serendipity['template'];
$data["cur_template_backend"] = $serendipity['template_backend'];
$data['cur_template_info'] = serendipity_fetchTemplateInfo($serendipity['template']);
// NOTE: config.inc.php currently only applies to frontend configuration. Backend configuration is not planned yet, and would preferrably use a "config_backend.inc.php" file!
if (file_exists($serendipity['serendipityPath'] . $serendipity['templatePath'] . $data['cur_template_info']['custom_config_engine'] . '/config.inc.php')) {
serendipity_smarty_init();
$old_template_config_groups = $template_config_groups;
include_once $serendipity['serendipityPath'] . $serendipity['templatePath'] . $data['cur_template_info']['custom_config_engine'] . '/config.inc.php';
// in case of theme switch, check to unset config_group array
示例12: forkTemplate
function forkTemplate()
{
global $serendipity;
$template_path = $serendipity['serendipity_path'] . $serendipity['templatePath'];
$cur_template = $serendipity['template'];
//fork only if not already forked
$info_txt = file_get_contents($template_path . $cur_template . '/info.txt');
$forked = false;
if (strpos($info_txt, 'Fork_of:') !== false) {
$forked = true;
}
if (!$forked) {
$fork_template = $cur_template . '_fork';
if (is_writable($template_path)) {
if (!is_dir($template_path . $fork_template)) {
$this->copy_directory($template_path . $cur_template, $template_path . $fork_template);
$info_txt = preg_replace('/Name: (.*)/', 'Name: ${1}_fork', $info_txt);
$info_txt = $info_txt . "\nFork_of: {$cur_template}";
file_put_contents($template_path . $fork_template . '/info.txt', $info_txt);
}
//Now that the fork is created we need to set it instantly
//but only if copying succeeded
if (is_dir($template_path . $fork_template)) {
$themeInfo = serendipity_fetchTemplateInfo(function_exists('serendipity_specialchars') ? serendipity_specialchars($fork_template) : htmlspecialchars($fork_template, ENT_COMPAT, LANG_CHARSET));
serendipity_set_config_var('template', function_exists('serendipity_specialchars') ? serendipity_specialchars($fork_template) : htmlspecialchars($fork_template, ENT_COMPAT, LANG_CHARSET));
serendipity_set_config_var('template_engine', isset($themeInfo['engine']) ? $themeInfo['engine'] : 'default');
}
} else {
echo 'Error: Template Directory not writeable';
return false;
}
}
return true;
}
示例13: serendipity_copyBaseURL
/**
* baseURL is now defaultBaseURL in the database, so copy if not already set
*
* */
function serendipity_copyBaseURL()
{
global $serendipity;
if ((serendipity_get_config_var("defaultBaseURL") === false || serendipity_get_config_var("defaultBaseURL") == "") && serendipity_get_config_var("baseURL") !== false) {
serendipity_set_config_var("defaultBaseURL", serendipity_get_config_var("baseURL"));
}
}
示例14: serendipity_getCurrentVersion
/**
* Check https://raw.github.com/s9y/Serendipity/master/docs/RELEASE for the newest available version
*
* If the file is not fetch- or parseable (behind a proxy, malformed by Garvin), this will return -1
* */
function serendipity_getCurrentVersion()
{
global $serendipity;
if ($serendipity['updateCheck'] != "stable" && $serendipity['updateCheck'] != "beta") {
return -1;
}
// Perform update check once a day. We use a suffix of the configured channel, so when
// the user switches channels, it has its own timer.
if ($serendipity['last_update_check_' . $serendipity['updateCheck']] >= time() - 86400) {
// Last update was performed less than a day ago. Return last result.
return $serendipity['last_update_version_' . $serendipity['updateCheck']];
}
serendipity_set_config_var('last_update_check_' . $serendipity['updateCheck'], time());
$updateURL = 'https://raw.githubusercontent.com/s9y/Serendipity/master/docs/RELEASE';
$context = stream_context_create(array('http' => array('timeout' => 5.0)));
$file = @file_get_contents($updateURL, false, $context);
if (!$file) {
if (function_exists('curl_init')) {
$ch = curl_init($updateURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, "5");
$file = curl_exec($ch);
curl_close($ch);
}
}
if ($file) {
if ($serendipity['updateCheck'] == "stable") {
if (preg_match('/^stable:(.+)\\b/m', $file, $match)) {
serendipity_set_config_var('last_update_version_' . $serendipity['updateCheck'], $match[1]);
return $match[1];
}
} else {
if (preg_match('/^beta:(.+)\\b/m', $file, $match)) {
serendipity_set_config_var('last_update_version_' . $serendipity['updateCheck'], $match[1]);
return $match[1];
}
}
}
return -1;
}
示例15: checkuser
static function checkuser($usergroups = array())
{
global $serendipity;
static $debug = false;
if (!empty($serendipity['GET']['adduser_activation']) && !empty($_GET['r'])) {
$string = $serendipity['GET']['adduser_activation'];
$q = "SELECT * FROM {$serendipity['dbPrefix']}pending_authors WHERE hash = '" . serendipity_db_escape_string($string) . "' LIMIT 1";
if ($debug) {
echo "[debug] QUERY: {$q}<br />\n";
}
$author = serendipity_db_query($q, true);
serendipity_common_adduser::sendMail($author['username'], function_exists('serendipity_specialchars') ? serendipity_specialchars($string) : htmlspecialchars($string, ENT_COMPAT, LANG_CHARSET), $author['email'], false, false);
echo PLUGIN_ADDUSER_SENTMAIL_APPROVE_ADMIN;
return true;
}
if (!empty($serendipity['GET']['adduser_activation'])) {
$string = $serendipity['GET']['adduser_activation'];
unset($serendipity['GET']['adduser_activation']);
if (strlen($string) != 32) {
echo PLUGIN_ADDUSER_WRONG_ACTIVATION . '<hr />';
return false;
}
$q = "SELECT * FROM {$serendipity['dbPrefix']}pending_authors WHERE hash = '" . serendipity_db_escape_string($string) . "' LIMIT 1";
if ($debug) {
echo "[debug] QUERY: {$q}<br />\n";
}
$author = serendipity_db_query($q, true);
if ($debug) {
echo "[debug] RESULT: " . print_r($author, true) . "<br />\n";
}
if (is_array($author)) {
$user = serendipity_db_query("SELECT authorid FROM {$serendipity['dbPrefix']}authors WHERE username = '" . serendipity_db_escape_string($author['username']) . "'", true);
if (is_array($user) && !empty($user['authorid'])) {
printf(PLUGIN_ADDUSER_EXISTS . '<hr />', function_exists('serendipity_specialchars') ? serendipity_specialchars($author['username']) : htmlspecialchars($author['username'], ENT_COMPAT, LANG_CHARSET));
return false;
}
$newID = serendipity_addAuthor($author['username'], '', $author['username'], $author['email'], $author['userlevel']);
if ($debug) {
echo "[debug] serendipity_addAuthor: {$newID}<br />\n";
}
if ($newID) {
serendipity_db_query("UPDATE {$serendipity['dbPrefix']}authors\n SET right_publish = '" . ($author['right_publish'] ? '1' : '0') . "',\n password = '" . $author['password'] . "'\n WHERE authorid = " . (int) $newID);
serendipity_set_config_var('no_create', $author['no_create'], $newID);
serendipity_set_config_var('lang', $serendipity['lang'], $newID);
// Fetch default properties for new authors as configured.
// Only set values for the keys that are supported (all booleans currently!)
$config = serendipity_db_query("SELECT name, value FROM {$serendipity['dbPrefix']}config WHERE name LIKE 'serendipity_plugin_adduser:%'");
$pair_config = array('wysiwyg' => '', 'simpleFilters' => '', 'enableBackendPopup' => '', 'moderateCommentsDefault' => '', 'allowCommentsDefault' => '', 'showMediaToolbar' => '', 'use_autosave' => '');
if (is_array($config)) {
foreach ($config as $conf) {
$names = explode('/', $conf['name']);
if (isset($pair_config[$names[1]])) {
$pair_config[$names[1]] = serendipity_get_bool($conf['value']);
serendipity_set_config_var($names[1], $pair_config['wysiwyg'], $newID);
}
}
}
if (is_array($usergroups) && function_exists('serendipity_updateGroups')) {
if ($debug) {
echo "[debug] update groups: " . print_r($usergroups, true) . "<br />\n";
}
serendipity_updateGroups($usergroups, $newID, false);
} elseif ($debug) {
echo "[debug] no group addition: " . print_r($usergroups, true) . "<br />\n";
}
} elseif ($debug) {
echo "[debug] serendipity_addAuthor() failed!<br />\n";
}
}
$q = "SELECT authorid FROM {$serendipity['dbPrefix']}authors\n WHERE username = '" . $author['username'] . "'\n AND password = '" . $author['password'] . "'\n LIMIT 1";
$newauthor = serendipity_db_query($q, true);
if (is_array($newauthor) && $newauthor['authorid'] > 0) {
echo PLUGIN_ADDUSER_SUCCEED . '<hr />';
serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}pending_authors WHERE hash = '" . serendipity_db_escape_string($string) . "'");
return true;
} else {
if ($debug) {
echo "[debug] QUERY: {$q}<br />\n";
echo "[debug] RESULT: " . print_r($newauthor, true) . "<br />\n";
}
echo PLUGIN_ADDUSER_FAILED . '<hr />';
return false;
}
}
return false;
}