function introspect_config_item($name, &$propbag) { switch ($name) { case 'instructions': $propbag->add('type', 'html'); $propbag->add('name', PLUGIN_ADDUSER_INSTRUCTIONS); $propbag->add('description', PLUGIN_ADDUSER_INSTRUCTIONS_DESC); $propbag->add('default', PLUGIN_ADDUSER_INSTRUCTIONS_DEFAULT); break; case 'registered_only': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_ADDUSER_REGISTERED_ONLY); $propbag->add('description', PLUGIN_ADDUSER_REGISTERED_ONLY_DESC); $propbag->add('default', false); break; case 'registered_only_group': $propbag->add('name', PLUGIN_ADDUSER_REGISTERED_ONLY_GROUP); $propbag->add('description', PLUGIN_ADDUSER_REGISTERED_ONLY_GROUP_DESC); $_groups =& serendipity_getAllGroups(); $groups = array(); foreach ($_groups as $group) { $groups[$group['confkey']] = $group['confvalue']; } $propbag->add('type', 'multiselect'); $propbag->add('select_values', $groups); $propbag->add('select_size', 5); $propbag->add('default', 'all'); break; case 'true_identities': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_ADDUSER_REGISTERED_CHECK); $propbag->add('description', PLUGIN_ADDUSER_REGISTERED_CHECK_DESC); $propbag->add('default', true); break; default: return false; } return true; }
function introspect_config_item($name, &$propbag) { global $serendipity; switch ($name) { case 'disable_api_comments': $propbag->add('type', 'radio'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_API_COMMENTS); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_API_COMMENTS_DESC); $propbag->add('default', 'none'); $propbag->add('radio', array('value' => array('moderate', 'reject', 'none'), 'desc' => array(PLUGIN_EVENT_SPAMBLOCK_API_MODERATE, PLUGIN_EVENT_SPAMBLOCK_API_REJECT, NONE))); $propbag->add('radio_per_row', '1'); break; case 'trackback_ipvalidation': $propbag->add('type', 'radio'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_TRACKBACKIPVALIDATION); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_TRACKBACKIPVALIDATION_DESC); $propbag->add('default', 'moderate'); $propbag->add('radio', array('value' => array('no', 'moderate', 'reject'), 'desc' => array(NO, PLUGIN_EVENT_SPAMBLOCK_API_MODERATE, PLUGIN_EVENT_SPAMBLOCK_API_REJECT))); $propbag->add('radio_per_row', '1'); break; case 'trackback_ipvalidation_url_exclude': $propbag->add('type', 'text'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_TRACKBACKIPVALIDATION_URL_EXCLUDE); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_TRACKBACKIPVALIDATION_URL_EXCLUDE_DESC); $propbag->add('rows', 2); $propbag->add('default', $this->get_default_exclude_urls()); break; case 'trackback_check_url': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_TRACKBACKURL); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_TRACKBACKURL_DESC); $propbag->add('default', false); break; case 'automagic_htaccess': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_HTACCESS); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_HTACCESS_DESC); $propbag->add('default', false); break; case 'hide_email': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_HIDE_EMAIL); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_HIDE_EMAIL_DESC); $propbag->add('default', true); break; case 'csrf': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_CSRF); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_CSRF_DESC); $propbag->add('default', true); break; case 'entrytitle': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_FILTER_TITLE); $propbag->add('description', ''); $propbag->add('default', false); break; case 'checkmail': $propbag->add('type', 'radio'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_CHECKMAIL); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_CHECKMAIL_DESC); $propbag->add('default', 'false'); $propbag->add('radio', array('value' => array('false', 'true', 'verify_once', 'verify_always'), 'desc' => array(NO, YES, PLUGIN_EVENT_SPAMBLOCK_CHECKMAIL_VERIFICATION_ONCE, PLUGIN_EVENT_SPAMBLOCK_CHECKMAIL_VERIFICATION_ALWAYS))); $propbag->add('radio_per_row', '1'); break; case 'required_fields': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_REQUIRED_FIELDS); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_REQUIRED_FIELDS_DESC); $propbag->add('default', 'name,comment'); break; case 'bodyclone': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_BODYCLONE); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_BODYCLONE_DESC); $propbag->add('default', true); break; case 'captchas': $propbag->add('type', 'radio'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_CAPTCHAS); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_CAPTCHAS_DESC); $propbag->add('default', 'yes'); $propbag->add('radio', array('value' => array(true, 'no', 'scramble'), 'desc' => array(YES, NO, PLUGIN_EVENT_SPAMBLOCK_CAPTCHAS_SCRAMBLE))); break; case 'hide_for_authors': $_groups =& serendipity_getAllGroups(); $groups = array('all' => ALL_AUTHORS, 'none' => NONE); foreach ($_groups as $group) { $groups[$group['confkey']] = $group['confvalue']; } $propbag->add('type', 'multiselect'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_HIDE); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_HIDE_DESC); $propbag->add('select_values', $groups); $propbag->add('select_size', 5); $propbag->add('default', 'all'); break; case 'killswitch': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_KILLSWITCH); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_KILLSWITCH_DESC); $propbag->add('default', false); break; case 'contentfilter_activate': $propbag->add('type', 'radio'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_FILTER_ACTIVATE); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_FILTER_ACTIVATE_DESC); $propbag->add('default', 'moderate'); $propbag->add('radio', array('value' => array('moderate', 'reject', 'none'), 'desc' => array(PLUGIN_EVENT_SPAMBLOCK_API_MODERATE, PLUGIN_EVENT_SPAMBLOCK_API_REJECT, NONE))); $propbag->add('radio_per_row', '1'); break; case 'akismet': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_AKISMET); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_AKISMET_DESC); $propbag->add('default', ''); break; case 'akismet_server': $propbag->add('type', 'radio'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_AKISMET_SERVER); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_AKISMET_SERVER_DESC); // If the user has an API key, but hasn't set a server, he // must be using an older version of the plugin; default // to akismet. Otherwise, encourage adoption of the Open // Source alternative, TypePad Antispam. $curr_key = $this->get_config('akismet', false); $propbag->add('default', empty($curr_key) ? 'akismet' : 'tpas'); $propbag->add('radio', array('value' => array('tpas', 'akismet', 'anon-tpas', 'anon-akismet'), 'desc' => array(PLUGIN_EVENT_SPAMBLOCK_SERVER_TPAS, PLUGIN_EVENT_SPAMBLOCK_SERVER_AKISMET, PLUGIN_EVENT_SPAMBLOCK_SERVER_TPAS_ANON, PLUGIN_EVENT_SPAMBLOCK_SERVER_AKISMET_ANON))); $propbag->add('radio_per_row', '1'); break; case 'akismet_filter': $propbag->add('type', 'radio'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_AKISMET_FILTER); $propbag->add('description', ''); $propbag->add('default', 'reject'); $propbag->add('radio', array('value' => array('moderate', 'reject', 'none'), 'desc' => array(PLUGIN_EVENT_SPAMBLOCK_API_MODERATE, PLUGIN_EVENT_SPAMBLOCK_API_REJECT, NONE))); $propbag->add('radio_per_row', '1'); break; case 'contentfilter_urls': $propbag->add('type', 'text'); $propbag->add('rows', 3); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_FILTER_URLS); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_FILTER_URLS_DESC); $propbag->add('default', $this->filter_defaults['urls']); break; case 'contentfilter_authors': $propbag->add('type', 'text'); $propbag->add('rows', 3); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_FILTER_AUTHORS); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_FILTER_AUTHORS_DESC); $propbag->add('default', $this->filter_defaults['authors']); break; case 'contentfilter_words': $propbag->add('type', 'text'); $propbag->add('rows', 3); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_FILTER_WORDS); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_FILTER_AUTHORS_DESC); $propbag->add('default', $this->filter_defaults['words']); break; case 'contentfilter_emails': $propbag->add('type', 'text'); $propbag->add('rows', 3); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_FILTER_EMAILS); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_FILTER_AUTHORS_DESC); $propbag->add('default', $this->filter_defaults['emails']); break; case 'logfile': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_LOGFILE); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_LOGFILE_DESC); $propbag->add('default', $serendipity['serendipityPath'] . 'spamblock-%Y-%m-%d.log'); break; case 'logtype': $propbag->add('type', 'radio'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_LOGTYPE); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_LOGTYPE_DESC); $propbag->add('default', 'none'); $propbag->add('radio', array('value' => array('file', 'db', 'none'), 'desc' => array(PLUGIN_EVENT_SPAMBLOCK_LOGTYPE_FILE, PLUGIN_EVENT_SPAMBLOCK_LOGTYPE_DB, PLUGIN_EVENT_SPAMBLOCK_LOGTYPE_NONE))); $propbag->add('radio_per_row', '1'); break; case 'ipflood': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_IPFLOOD); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_IPFLOOD_DESC); $propbag->add('default', 0); break; case 'captchas_ttl': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_CAPTCHAS_TTL); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_CAPTCHAS_TTL_DESC); $propbag->add('default', '7'); break; case 'captcha_color': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_CAPTCHA_COLOR); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_CAPTCHA_COLOR_DESC); $propbag->add('default', '255,255,255'); $propbag->add('validate', '@^[0-9]{1,3},[0-9]{1,3},[0-9]{1,3}$@'); break; case 'forcemoderation': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATION); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATION_DESC); $propbag->add('default', '30'); break; case 'forcemoderation_treat': $propbag->add('type', 'radio'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATION_TREAT); $propbag->add('description', ''); $propbag->add('default', 'moderate'); $propbag->add('radio', array('value' => array('moderate', 'reject'), 'desc' => array(PLUGIN_EVENT_SPAMBLOCK_API_MODERATE, PLUGIN_EVENT_SPAMBLOCK_API_REJECT))); $propbag->add('radio_per_row', '1'); break; case 'forcemoderationt': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATIONT); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATIONT_DESC); $propbag->add('default', '30'); break; case 'forcemoderationt_treat': $propbag->add('type', 'radio'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_FORCEMODERATIONT_TREAT); $propbag->add('description', ''); $propbag->add('default', 'moderate'); $propbag->add('radio', array('value' => array('moderate', 'reject'), 'desc' => array(PLUGIN_EVENT_SPAMBLOCK_API_MODERATE, PLUGIN_EVENT_SPAMBLOCK_API_REJECT))); $propbag->add('radio_per_row', '1'); break; case 'links_moderate': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_LINKS_MODERATE); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_LINKS_MODERATE_DESC); $propbag->add('default', '7'); break; case 'links_reject': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_SPAMBLOCK_LINKS_REJECT); $propbag->add('description', PLUGIN_EVENT_SPAMBLOCK_LINKS_REJECT_DESC); $propbag->add('default', '13'); break; default: return false; } return true; }
function introspect_config_item($name, &$propbag) { switch ($name) { case 'analytics_account_number': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_GOOGLE_ANALYTICS_ACCOUNT_NUMBER); $propbag->add('description', PLUGIN_EVENT_GOOGLE_ANALYTICS_ACCOUNT_NUMBER_DESC); $propbag->add('validate', '/^[0-9]+-[0-9]+$/'); $propbag->add('default', ''); break; case 'analytics_track_adsense': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_EVENT_GOOGLE_ANALYTICS_TRACK_ADSENSE); $propbag->add('description', PLUGIN_EVENT_GOOGLE_ANALYTICS_TRACK_ADSENSE_DESC); $propbag->add('default', 'false'); break; case 'analytics_anonymizeIp': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_EVENT_GOOGLE_ANALYTICS_ANONYMIZEIP); $propbag->add('description', PLUGIN_EVENT_GOOGLE_ANALYTICS_ANONYMIZEIP_DESC); $propbag->add('default', 'false'); break; case 'analytics_track_external': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_EVENT_GOOGLE_ANALYTICS_TRACK_EXTERNAL); $propbag->add('description', PLUGIN_EVENT_GOOGLE_ANALYTICS_TRACK_EXTERNAL_DESC); $propbag->add('default', 'true'); break; case 'analytics_internal_hosts': $propbag->add('type', 'text'); $propbag->add('name', PLUGIN_EVENT_GOOGLE_ANALYTICS_INTERNAL_HOSTS); $propbag->add('description', PLUGIN_EVENT_GOOGLE_ANALYTICS_INTERNAL_HOSTS_DESC); $propbag->add('default', $_SERVER['HTTP_HOST']); break; case 'analytics_track_downloads': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_EVENT_GOOGLE_ANALYTICS_TRACK_DOWNLOADS); $propbag->add('description', PLUGIN_EVENT_GOOGLE_ANALYTICS_TRACK_DOWNLOADS_DESC); $propbag->add('default', 'true'); break; case 'analytics_download_extensions': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_GOOGLE_ANALYTICS_DOWNLOAD_EXTENSIONS); $propbag->add('description', PLUGIN_EVENT_GOOGLE_ANALYTICS_DOWNLOAD_EXTENSIONS_DESC); $propbag->add('default', 'zip,rar'); break; case 'analytics_enh_link_attr': $propbag->add('type', 'boolean'); $propbag->add('name', PLUGIN_EVENT_GOOGLE_ANALYTICS_ENH_LINK_ATTR); $propbag->add('description', PLUGIN_EVENT_GOOGLE_ANALYTICS_ENH_LINK_ATTR_DESC); $propbag->add('default', 'false'); break; case 'analytics_exclude_groups': $_groups =& serendipity_getAllGroups(); if (is_array($_groups)) { foreach ($_groups as $group) { $groups[$group['confkey']] = $group['confvalue']; } $propbag->add('type', 'multiselect'); $propbag->add('name', PLUGIN_EVENT_GOOGLE_ANALYTICS_EXCLUDE_GROUPS); $propbag->add('description', PLUGIN_EVENT_GOOGLE_ANALYTICS_EXCLUDE_GROUPS_DESC); $propbag->add('select_size', 5); $propbag->add('select_values', $groups); } break; default: $propbag->add('type', 'boolean'); $propbag->add('name', constant($name)); $propbag->add('description', sprintf(APPLY_MARKUP_TO, constant($name))); $propbag->add('default', 'true'); } return true; }
if (!empty($serendipity['POST']['save'])) { $newDir = serendipity_uploadSecure(serendipity_makeFilename($serendipity['POST']['newDir'])); $oldDir = serendipity_uploadSecure($serendipity['POST']['oldDir']); if ($oldDir != $newDir) { //is this possible? ob_start(); serendipity_moveMediaDirectory($oldDir, $newDir); $data['ob_serendipity_moveMediaDirectory'] = ob_get_contents(); ob_end_clean(); $use_dir = $newDir; } serendipity_ACLGrant(0, 'directory', 'read', $serendipity['POST']['read_authors'], $use_dir); serendipity_ACLGrant(0, 'directory', 'write', $serendipity['POST']['write_authors'], $use_dir); $data['print_SETTINGS_SAVED_AT'] = sprintf(SETTINGS_SAVED_AT, serendipity_strftime('%H:%M:%S')); } $groups = serendipity_getAllGroups(); $read_groups = serendipity_ACLGet(0, 'directory', 'read', $use_dir); $write_groups = serendipity_ACLGet(0, 'directory', 'write', $use_dir); if (!empty($serendipity['POST']['update_children'])) { $dir_list = serendipity_traversePath($serendipity['serendipityPath'] . $serendipity['uploadPath'], $use_dir, true, NULL, 1, NULL, 'write', NULL); foreach ($dir_list as $f => $dir) { // Apply parent ACL to children. serendipity_ACLGrant(0, 'directory', 'read', $serendipity['POST']['read_authors'], $dir['relpath']); serendipity_ACLGrant(0, 'directory', 'write', $serendipity['POST']['write_authors'], $dir['relpath']); } } $data['groups'] = $groups; $data['use_dir'] = $use_dir; $data['formtoken'] = serendipity_setFormToken(); $data['dir'] = serendipity_specialchars($serendipity['GET']['dir']); $data['rgroups'] = isset($read_groups[0]) ? true : false;
<?php # $Id$ # Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team) # All rights reserved. See LICENSE file for licensing details // Here be dragons and NO application logic! $res = array(); $res['personal'] = array('title' => USERCONF_CAT_PERSONAL, 'description' => USERCONF_CAT_PERSONAL_DESC, 'items' => array(array('var' => 'username', 'title' => USERCONF_USERNAME, 'description' => USERCONF_USERNAME_DESC, 'type' => 'string', 'default' => 'johndoe', 'permission' => 'personalConfiguration'), array('var' => 'password', 'title' => USERCONF_PASSWORD, 'description' => USERCONF_PASSWORD_DESC, 'type' => 'fullprotected', 'default' => '', 'permission' => 'personalConfiguration'), array('var' => 'check_password', 'title' => USERCONF_CHECK_PASSWORD, 'description' => USERCONF_CHECK_PASSWORD_DESC, 'type' => 'fullprotected', 'default' => '', 'permission' => 'personalConfiguration'), array('var' => 'realname', 'title' => USERCONF_REALNAME, 'description' => USERCONF_REALNAME_DESC, 'type' => 'string', 'default' => 'John Doe', 'permission' => 'personalConfiguration'), array('var' => 'userlevel', 'title' => USERCONF_USERLEVEL, 'description' => USERCONF_USERLEVEL_DESC . "\n" . USERLEVEL_OBSOLETE, 'type' => 'list', 'default' => $serendipity['permissionLevels'], 'permission' => 'personalConfigurationUserlevel', 'view' => 'dangerous'), array('var' => 'groups', 'title' => USERCONF_GROUPS, 'description' => USERCONF_GROUPS_DESC, 'type' => 'multilist', 'permission' => array('adminUsersMaintainOthers', 'adminUsersMaintainSame'), 'perm_mode' => 'or', 'default' => serendipity_getAllGroups(), 'flags' => array('groups'), 'view' => 'dangerous'), array('var' => 'email', 'title' => USERCONF_EMAIL, 'description' => USERCONF_EMAIL_DESC, 'type' => 'string', 'default' => '*****@*****.**', 'permission' => 'personalConfiguration'), array('var' => 'lang', 'title' => INSTALL_LANG, 'description' => INSTALL_LANG_DESC, 'type' => 'list', 'default' => $serendipity['languages'], 'permission' => 'personalConfiguration', 'flags' => array('config')), array('var' => 'wysiwyg', 'title' => INSTALL_WYSIWYG, 'description' => INSTALL_WYSIWYG_DESC, 'type' => 'bool', 'default' => false, 'permission' => 'personalConfiguration', 'flags' => array('config')), array('var' => 'eyecandy', 'title' => PREFERENCE_USE_JS, 'description' => PREFERENCE_USE_JS_DESC, 'type' => 'bool', 'default' => true, 'permission' => 'personalConfiguration', 'flags' => array('config')), array('var' => 'mail_comments', 'title' => USERCONF_SENDCOMMENTS, 'description' => USERCONF_SENDCOMMENTS_DESC, 'type' => 'bool', 'default' => true, 'permission' => 'personalConfiguration'), array('var' => 'mail_trackbacks', 'title' => USERCONF_SENDTRACKBACKS, 'description' => USERCONF_SENDTRACKBACKS_DESC, 'type' => 'bool', 'default' => true, 'permission' => 'personalConfiguration'), array('var' => 'no_create', 'title' => USERCONF_CREATE, 'description' => USERCONF_CREATE_DESC, 'type' => 'bool', 'default' => false, 'permission' => 'personalConfigurationNoCreate', 'flags' => array('config'), 'view' => 'dangerous'), array('var' => 'right_publish', 'title' => USERCONF_ALLOWPUBLISH, 'description' => USERCONF_ALLOWPUBLISH_DESC, 'type' => 'bool', 'default' => true, 'permission' => 'personalConfigurationRightPublish', 'view' => 'dangerous'))); $res['defaults'] = array('title' => USERCONF_CAT_DEFAULT_NEW_ENTRY, 'description' => '', 'items' => array(array('var' => 'moderateCommentsDefault', 'title' => COMMENTS_MODERATE, 'description' => '', 'type' => 'bool', 'default' => false, 'permission' => 'personalConfiguration', 'flags' => array('config')), array('var' => 'allowCommentsDefault', 'title' => COMMENTS_ENABLE, 'description' => '', 'type' => 'bool', 'default' => true, 'permission' => 'personalConfiguration', 'flags' => array('config')), array('var' => 'publishDefault', 'title' => NEW_ENTRY, 'description' => '', 'type' => 'list', 'default' => array('publish' => PUBLISH, 'draft' => DRAFT), 'permission' => 'personalConfiguration', 'flags' => array('config')), array('var' => 'showMediaToolbar', 'title' => SHOW_MEDIA_TOOLBAR, 'description' => '', 'type' => 'bool', 'default' => false, 'permission' => 'personalConfiguration', 'flags' => array('config')))); return $res;
function &getGroups() { global $serendipity; if (!function_exists('serendipity_getAllGroups')) { $str = PLUGIN_ADDUSER_SERENDIPITY09; return $str; } $groups = serendipity_getAllGroups(); $html = '<strong>' . USERCONF_GROUPS . '</strong><br />'; if (is_array($serendipity['POST']['plugin']['usergroups'])) { $valid = $this->usergroups = array(); foreach ($serendipity['POST']['plugin']['usergroups'] as $idx => $id) { $valid[$id] = $id; $this->usergroups[$id] = $id; } } else { $valid =& $this->usergroups; } $html .= '<select name="serendipity[plugin][usergroups][]" multiple="true" size="5">'; if (is_array($groups)) { foreach ($groups as $group) { $html .= '<option value="' . $group['id'] . '"' . (isset($valid[$group['id']]) ? ' selected="selected"' : '') . '>' . (function_exists('serendipity_specialchars') ? serendipity_specialchars($group['name']) : htmlspecialchars($group['name'], ENT_COMPAT, LANG_CHARSET)) . '</option>' . "\n"; } } $html .= '</select>'; return $html; }
function shownotes() { global $serendipity; if ($serendipity['version'][0] < 2) { echo '<h3>' . PLUGIN_ADMINNOTES_TITLE . '</h3>'; } else { echo '<h2>' . PLUGIN_ADMINNOTES_TITLE . '</h2>'; } if (!serendipity_db_bool($this->get_config('feedback')) && $serendipity['serendipityUserlevel'] < USERLEVEL_CHIEF) { return false; } switch ($_REQUEST['action']) { case 'edit': $entry = $this->getMyNotes((int) $_REQUEST['note']); $mode = 'update'; case 'new': if (!isset($mode)) { $mode = 'insert'; } if (!is_array($entry)) { $entry = array(); } if ($_REQUEST['submit']) { $valid_groups = serendipity_getAllGroups($serendipity['authorid']); $targets = array(); if (is_array($_REQUEST['note_target'])) { foreach ($_REQUEST['note_target'] as $groupid) { $found = false; foreach ($valid_groups as $group) { if ($group['confkey'] == $groupid) { $found = true; break; } } if ($found) { $targets[] = (int) $groupid; } } } if ($mode == 'update') { $noteid = (int) $_REQUEST['note']; $q = serendipity_db_query("UPDATE {$serendipity['dbPrefix']}adminnotes\n SET authorid = {$serendipity['authorid']},\n subject = '" . serendipity_db_escape_string($_REQUEST['note_subject']) . "',\n body = '" . serendipity_db_escape_string($_REQUEST['note_body']) . "',\n notetype = '" . serendipity_db_escape_string($_REQUEST['note_notetype']) . "'\n WHERE noteid = {$noteid}"); $q = serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}adminnotes_to_groups WHERE noteid = {$noteid}"); foreach ($targets as $target) { $q = serendipity_db_query("INSERT INTO {$serendipity['dbPrefix']}adminnotes_to_groups (noteid, groupid) VALUES ({$noteid}, {$target})"); } if (is_string($q)) { echo $q . "<br />\n"; } } else { serendipity_db_query("INSERT INTO {$serendipity['dbPrefix']}adminnotes (authorid, notetime, subject, body, notetype) VALUES ('" . $serendipity['authorid'] . "', " . time() . ", '" . serendipity_db_escape_string($_REQUEST['note_subject']) . "', '" . serendipity_db_escape_string($_REQUEST['note_body']) . "', '" . serendipity_db_escape_string($_REQUEST['note_notetype']) . "')"); $noteid = serendipity_db_insert_id('adminnotes', 'noteid'); foreach ($targets as $target) { serendipity_db_query("INSERT INTO {$serendipity['dbPrefix']}adminnotes_to_groups (noteid, groupid) VALUES ({$noteid}, {$target})"); } } if ($serendipity['version'][0] < 2) { echo '<div class="serendipityAdminMsgSuccess"><img style="width: 22px; height: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="' . serendipity_getTemplateFile('admin/img/admin_msg_success.png') . '" alt="" />' . DONE . ': ' . sprintf(SETTINGS_SAVED_AT, serendipity_strftime('%H:%M:%S')) . '</div>'; } else { echo '<span class="msg_success"><span class="icon-ok-circled"></span> ' . DONE . ': ' . sprintf(SETTINGS_SAVED_AT, serendipity_strftime('%H:%M:%S')) . '</span>'; } } echo '<p>' . PLUGIN_ADMINNOTES_FEEDBACK_INFO . '</p>'; echo '<form action="?" method="post">'; echo serendipity_setFormToken(); echo '<input type="hidden" name="serendipity[adminModule]" value="event_display" />'; echo '<input type="hidden" name="serendipity[adminAction]" value="adminnotes" />'; echo '<input type="hidden" name="action" value="' . (function_exists('serendipity_specialchars') ? serendipity_specialchars($_REQUEST['action']) : htmlspecialchars($_REQUEST['action'], ENT_COMPAT, LANG_CHARSET)) . '" />'; echo '<input type="hidden" name="note" value="' . $entry['noteid'] . '" />'; echo '<input type="hidden" name="note_notetype" value="note" />'; if ($serendipity['version'][0] < 2) { echo TITLE . '<br />'; echo '<input class="input_textbox" type="text" name="note_subject" value="' . (function_exists('serendipity_specialchars') ? serendipity_specialchars($entry['subject']) : htmlspecialchars($entry['subject'], ENT_COMPAT, LANG_CHARSET)) . '" /><br /><br />'; } else { echo '<div class="form_field">'; echo '<label for="note_subject" class="block_level">' . TITLE . '</label>'; echo '<input id="note_subject" type="text" name="note_subject" value="' . (function_exists('serendipity_specialchars') ? serendipity_specialchars($entry['subject']) : htmlspecialchars($entry['subject'], ENT_COMPAT, LANG_CHARSET)) . '">'; echo '</div>'; } if ($serendipity['version'][0] < 2) { echo USERCONF_GROUPS . '<br />'; } else { echo '<div class="form_multiselect">'; echo '<label for="note_target" class="block_level">' . USERCONF_GROUPS . '</label>'; } $valid_groups = serendipity_getAllGroups($serendipity['authorid']); if (isset($_REQUEST['note_target'])) { $selected = $_REQUEST['note_target']; } elseif ($mode == 'update') { $sql = serendipity_db_query("SELECT * FROM {$serendipity['dbPrefix']}adminnotes_to_groups"); $selected = array(); foreach ($sql as $row) { $selected[] = $row['groupid']; } } echo '<select id="note_target" name="note_target[]" multiple="multiple" size="5">'; foreach ($valid_groups as $group) { # PRESELECT! if (in_array($group['confkey'], (array) $selected) || count($selected) == 0) { $is_selected = 'selected="selected"'; } else { $is_selected = ''; } echo '<option ' . $is_selected . ' value="' . $group['confkey'] . '">' . (function_exists('serendipity_specialchars') ? serendipity_specialchars($group['confvalue']) : htmlspecialchars($group['confvalue'], ENT_COMPAT, LANG_CHARSET)) . '</option>' . "\n"; } if ($serendipity['version'][0] < 2) { echo '</select><br /><br />'; } else { echo '</select></div>'; } if ($serendipity['version'][0] < 2) { echo ENTRY_BODY . '<br />'; } else { echo '<div class="form_area">'; echo '<label for="note_body" class="block_level">' . ENTRY_BODY . '</label>'; } echo '<textarea id="note_body" rows=10 cols=80 name="note_body">' . (function_exists('serendipity_specialchars') ? serendipity_specialchars($entry['body']) : htmlspecialchars($entry['body'], ENT_COMPAT, LANG_CHARSET)) . '</textarea>'; if ($serendipity['version'][0] < 2) { echo '<br /><br />'; echo '<input type="submit" name="submit" value="' . SAVE . '" class="serendipityPrettyButton input_button" />'; } else { echo '</div>'; echo '<div class="form_buttons"><input type="submit" name="submit" value="' . SAVE . '"></div>'; } echo '</form>'; break; case 'delete': $newLoc = '?' . serendipity_setFormToken('url') . '&serendipity[adminModule]=event_display&serendipity[adminAction]=adminnotes&action=isdelete&note=' . (int) $_REQUEST['note']; $entry = $this->getMyNotes((int) $_REQUEST['note']); if ($serendipity['version'][0] > 1) { echo '<span class="msg_hint"><span class="icon-help-circled"></span> '; } printf(DELETE_SURE, $entry['noteid'] . ' - ' . (function_exists('serendipity_specialchars') ? serendipity_specialchars($entry['subject']) : htmlspecialchars($entry['subject'], ENT_COMPAT, LANG_CHARSET))); if ($serendipity['version'][0] > 1) { echo '</span>'; } if ($serendipity['version'][0] < 2) { ?> <br /> <br /> <div> <a href="<?php echo function_exists('serendipity_specialchars') ? serendipity_specialchars($_SERVER["HTTP_REFERER"]) : htmlspecialchars($_SERVER["HTTP_REFERER"], ENT_COMPAT, LANG_CHARSET); ?> " class="serendipityPrettyButton"><?php echo NOT_REALLY; ?> </a> <?php echo str_repeat(' ', 10); ?> <a href="<?php echo $newLoc; ?> " class="serendipityPrettyButton"><?php echo DUMP_IT; ?> </a> </div> <?php } else { ?> <div class="form_buttons"> <a class="button_link state_submit" href="<?php echo $newLoc; ?> "><?php echo DUMP_IT; ?> </a> <a class="button_link state_cancel" href="<?php echo function_exists('serendipity_specialchars') ? serendipity_specialchars($_SERVER["HTTP_REFERER"]) : htmlspecialchars($_SERVER["HTTP_REFERER"], ENT_COMPAT, LANG_CHARSET); ?> "><?php echo NOT_REALLY; ?> </a> </div> <?php } break; case 'isdelete': if (!serendipity_checkFormToken()) { break; } $entry = $this->getMyNotes((int) $_REQUEST['note']); if (isset($entry['noteid'])) { serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}adminnotes WHERE noteid = " . (int) $_REQUEST['note']); serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}adminnotes_to_groups WHERE noteid = " . (int) $_REQUEST['note']); } if ($serendipity['version'][0] > 1) { echo '<span class="msg_success"><span class="icon-ok-circled"></span> '; } printf(RIP_ENTRY, $entry['noteid'] . ' - ' . (function_exists('serendipity_specialchars') ? serendipity_specialchars($entry['subject']) : htmlspecialchars($entry['subject'], ENT_COMPAT, LANG_CHARSET))); if ($serendipity['version'][0] > 1) { echo '</span>'; } break; default: $notes = $this->getMyNotes(false); echo '<ol class="note_list plainList">'; if (is_array($notes)) { foreach ($notes as $note) { if ($serendipity['version'][0] < 2) { echo '<li><strong>' . $note['subject'] . '</strong> ' . POSTED_BY . ' ' . $note['realname'] . ' ' . ON . ' ' . serendipity_strftime(DATE_FORMAT_SHORT, $note['notetime']) . '<br />'; echo '<a class="serendipityPrettyButton" href="?serendipity[adminModule]=event_display&serendipity[adminAction]=adminnotes&action=edit&note=' . $note['noteid'] . '">' . EDIT . '</a> '; echo '<a class="serendipityPrettyButton" href="?serendipity[adminModule]=event_display&serendipity[adminAction]=adminnotes&action=delete&note=' . $note['noteid'] . '">' . DELETE . '</a> '; echo '<br /><br /></li>'; } else { echo '<li><h3>' . $note['subject'] . '</h3><p>' . POSTED_BY . ' ' . $note['realname'] . ' ' . ON . ' ' . serendipity_strftime(DATE_FORMAT_SHORT, $note['notetime']) . '</p>'; echo '<div class="form_buttons"><a class="button_link state_submit" href="?serendipity[adminModule]=event_display&serendipity[adminAction]=adminnotes&action=edit&note=' . $note['noteid'] . '">' . EDIT . '</a> '; echo '<a class="button_link state_cancel" href="?serendipity[adminModule]=event_display&serendipity[adminAction]=adminnotes&action=delete&note=' . $note['noteid'] . '">' . DELETE . '</a></div></li>'; } } } echo '</ol>'; if ($serendipity['version'][0] < 2) { echo '<a class="serendipityPrettyButton" href="?serendipity[adminModule]=event_display&serendipity[adminAction]=adminnotes&action=new">' . NEW_ENTRY . '</a>'; } else { echo '<div class="form_buttons"><a class="button_link state_submit" href="?serendipity[adminModule]=event_display&serendipity[adminAction]=adminnotes&action=new">' . NEW_ENTRY . '</a></div>'; } break; } }
?> <table width="100%"> <tr> <td><strong><?php echo GROUP; ?> </strong></td> <td width="200"> </td> </tr> <tr> <td colspan="3"> <?php if (serendipity_checkPermission('adminUsersMaintainOthers')) { $groups = serendipity_getAllGroups(); } elseif (serendipity_checkPermission('adminUsersMaintainSame')) { $groups = serendipity_getAllGroups($serendipity['authorid']); } else { $groups = array(); } $i = 0; foreach ($groups as $group) { ?> <div class="serendipity_admin_list_item serendipity_admin_list_item_<?php echo $i++ % 2 ? 'even' : 'uneven'; ?> "> <table width="100%"> <tr> <td><?php echo htmlspecialchars($group['name']); ?>
function introspect_config_item($name, &$propbag) { global $serendipity; switch ($name) { case 'recaptcha': $propbag->add('type', 'radio'); $propbag->add('name', PLUGIN_EVENT_RECAPTCHA_RECAPTCHA); $propbag->add('description', PLUGIN_EVENT_RECAPTCHA_RECAPTCHA_DESC); $propbag->add('default', 'no'); $propbag->add('radio', array('value' => array('yes', 'no'), 'desc' => array(YES, NO))); break; case 'recaptcha_pub': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_RECAPTCHA_RECAPTCHA_PUB); $propbag->add('description', PLUGIN_EVENT_RECAPTCHA_RECAPTCHA_PUB_DESC); $propbag->add('default', ''); break; case 'recaptcha_priv': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_RECAPTCHA_RECAPTCHA_PRIV); $propbag->add('description', PLUGIN_EVENT_RECAPTCHA_RECAPTCHA_PRIV_DESC); $propbag->add('default', ''); break; case 'recaptcha_style': $propbag->add('type', 'radio'); $propbag->add('name', PLUGIN_EVENT_RECAPTCHA_RECAPTCHA_STYLE); $propbag->add('description', PLUGIN_EVENT_RECAPTCHA_RECAPTCHA_STYLE_DESC); $propbag->add('default', 'red'); $propbag->add('radio', array('value' => array('red', 'white', 'blackglass'), 'desc' => array('Red', 'White', 'Blackglass'))); break; case 'hide_for_authors': $_groups =& serendipity_getAllGroups(); $groups = array('all' => ALL_AUTHORS, 'none' => NONE); foreach ($_groups as $group) { $groups[$group['confkey']] = $group['confvalue']; } $propbag->add('type', 'multiselect'); $propbag->add('name', PLUGIN_EVENT_RECAPTCHA_HIDE); $propbag->add('description', PLUGIN_EVENT_RECAPTCHA_HIDE_DESC); $propbag->add('select_values', $groups); $propbag->add('select_size', 5); $propbag->add('default', 'all'); break; case 'logfile': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_RECAPTCHA_LOGFILE); $propbag->add('description', PLUGIN_EVENT_RECAPTCHA_LOGFILE_DESC); $propbag->add('default', $serendipity['serendipityPath'] . 'spamblock.log'); break; case 'logtype': $propbag->add('type', 'radio'); $propbag->add('name', PLUGIN_EVENT_RECAPTCHA_LOGTYPE); $propbag->add('description', PLUGIN_EVENT_RECAPTCHA_LOGTYPE_DESC); $propbag->add('default', 'db'); $propbag->add('radio', array('value' => array('file', 'db', 'none'), 'desc' => array(PLUGIN_EVENT_RECAPTCHA_LOGTYPE_FILE, PLUGIN_EVENT_RECAPTCHA_LOGTYPE_DB, PLUGIN_EVENT_RECAPTCHA_LOGTYPE_NONE))); $propbag->add('radio_per_row', '1'); break; case 'captchas_ttl': $propbag->add('type', 'string'); $propbag->add('name', PLUGIN_EVENT_RECAPTCHA_CAPTCHAS_TTL); $propbag->add('description', PLUGIN_EVENT_RECAPTCHA_CAPTCHAS_TTL_DESC); $propbag->add('default', '7'); break; case 'info': $suche = '!http(?:s)?:\\/\\/(?:(?:[^.]*)\\.)?([^.\\/]*)!'; $result = preg_match($suche, $serendipity['baseURL'], $domain); $propbag->add('type', 'content'); $propbag->add('default', PLUGIN_EVENT_RECAPTCHA_INFO1 . $domain[1] . PLUGIN_EVENT_RECAPTCHA_INFO2); break; case 'sep': $propbag->add('type', 'seperator'); break; default: return false; } return true; }
function show() { global $serendipity; if ($this->selected()) { if (!headers_sent()) { header('HTTP/1.0 200'); header('Status: 200 OK'); } if (!is_object($serendipity['smarty'])) { serendipity_smarty_init(); } $members =& serendipity_db_query("SELECT g.name AS groupname,\n COUNT(e.id) AS posts,\n a.*\n FROM {$serendipity['dbPrefix']}authorgroups AS ag\n LEFT OUTER JOIN {$serendipity['dbPrefix']}groups AS g\n ON g.id = ag.groupid\n LEFT OUTER JOIN {$serendipity['dbPrefix']}authors AS a\n ON ag.authorid = a.authorid\n LEFT OUTER JOIN {$serendipity['dbPrefix']}entries AS e\n ON e.authorid = a.authorid\n WHERE ag.groupid = " . (int) $serendipity['GET']['groupid'] . "\n GROUP BY a.authorid", false, 'assoc'); $group = serendipity_fetchGroup((int) $serendipity['GET']['groupid']); if ('USERLEVEL_' == substr($group['name'], 0, 10)) { $group['name'] = constant($group['name']); } $_ENV['staticpage_pagetitle'] = 'userprofiles'; $serendipity['smarty']->assign(array('staticpage_pagetitle' => 'userprofiles', 'userprofile_groups' => serendipity_getAllGroups(), 'selected_group' => (int) $serendipity['GET']['groupid'], 'selected_group_data' => $group, 'selected_members' => $members)); $tfile = serendipity_getTemplateFile('plugin_groupmembers.tpl', 'serendipityPath'); if (!$tfile) { $tfile = dirname(__FILE__) . '/plugin_groupmembers.tpl'; } $inclusion = $serendipity['smarty']->security_settings[INCLUDE_ANY]; $serendipity['smarty']->security_settings[INCLUDE_ANY] = true; $content = $serendipity['smarty']->fetch('file:' . $tfile); $serendipity['smarty']->security_settings[INCLUDE_ANY] = $inclusion; echo $content; } }
<?php # Copyright (c) 2003-2005, Jannis Hermanns (on behalf the Serendipity Developer Team) # All rights reserved. See LICENSE file for licensing details // Here be dragons and NO application logic! $res = array(); $res['personal'] = array('title' => USERCONF_CAT_PERSONAL, 'description' => USERCONF_CAT_PERSONAL_DESC, 'items' => array(array('var' => 'username', 'title' => USERCONF_USERNAME, 'description' => USERCONF_USERNAME_DESC, 'type' => 'string', 'default' => 'johndoe', 'permission' => 'personalConfiguration'), array('var' => 'password', 'title' => USERCONF_PASSWORD, 'description' => USERCONF_PASSWORD_DESC, 'type' => 'fullprotected', 'default' => '', 'permission' => 'personalConfiguration'), array('var' => 'check_password', 'title' => USERCONF_CHECK_PASSWORD, 'description' => USERCONF_CHECK_PASSWORD_DESC, 'type' => 'fullprotected', 'default' => '', 'permission' => 'personalConfiguration'), array('var' => 'realname', 'title' => USERCONF_REALNAME, 'description' => USERCONF_REALNAME_DESC, 'type' => 'string', 'default' => 'John Doe', 'permission' => 'personalConfiguration'), array('var' => 'userlevel', 'title' => USERCONF_USERLEVEL, 'description' => USERCONF_USERLEVEL_DESC . "\n" . USERLEVEL_OBSOLETE, 'type' => 'list', 'default' => $serendipity['permissionLevels'], 'permission' => 'personalConfigurationUserlevel', 'view' => 'dangerous'), array('var' => 'groups', 'title' => USERCONF_GROUPS, 'description' => USERCONF_GROUPS_DESC, 'type' => 'multilist', 'permission' => array('adminUsersMaintainOthers', 'adminUsersMaintainSame'), 'perm_mode' => 'or', 'default' => serendipity_getAllGroups(), 'flags' => array('groups'), 'view' => 'dangerous'), array('var' => 'email', 'title' => USERCONF_EMAIL, 'description' => USERCONF_EMAIL_DESC, 'type' => 'string', 'default' => '*****@*****.**', 'permission' => 'personalConfiguration'), array('var' => 'lang', 'title' => INSTALL_LANG, 'description' => INSTALL_LANG_DESC, 'type' => 'list', 'default' => $serendipity['languages'], 'permission' => 'personalConfiguration', 'flags' => array('config')), array('var' => 'wysiwyg', 'title' => INSTALL_WYSIWYG, 'description' => INSTALL_WYSIWYG_DESC, 'type' => 'bool', 'default' => false, 'permission' => 'personalConfiguration', 'flags' => array('config')), array('var' => 'wysiwygToolbar', 'title' => USERCONF_USE_CORE_WYSIWYG_TOOLBAR, 'description' => USERCONF_USE_CORE_WYSIWYG_TOOLBAR_DESC, 'type' => 'list', 'permission' => 'personalConfiguration', 'default' => array('Default' => USERCONF_WYSIWYG_PRESET_S9Y, 'Basic' => USERCONF_WYSIWYG_PRESET_BASIC, 'Full' => USERCONF_WYSIWYG_PRESET_FULL, 'Standard' => USERCONF_WYSIWYG_PRESET_STANDARD, 'CKE' => USERCONF_WYSIWYG_PRESET_CKE, '----', 'NOCC-Default' => USERCONF_WYSIWYG_PRESET_NOCC_S9Y, 'NOCC-Basic' => USERCONF_WYSIWYG_PRESET_NOCC_BASIC, 'NOCC-Full' => USERCONF_WYSIWYG_PRESET_NOCC_FULL, 'NOCC-Standard' => USERCONF_WYSIWYG_PRESET_NOCC_STANDARD, 'NOCC-CKE' => USERCONF_WYSIWYG_PRESET_NOCC_CKE), 'flags' => array('config')), array('var' => 'mail_comments', 'title' => USERCONF_SENDCOMMENTS, 'description' => USERCONF_SENDCOMMENTS_DESC, 'type' => 'bool', 'default' => true, 'permission' => 'personalConfiguration'), array('var' => 'mail_trackbacks', 'title' => USERCONF_SENDTRACKBACKS, 'description' => USERCONF_SENDTRACKBACKS_DESC, 'type' => 'bool', 'default' => true, 'permission' => 'personalConfiguration'), array('var' => 'no_create', 'title' => USERCONF_CREATE, 'description' => USERCONF_CREATE_DESC, 'type' => 'bool', 'default' => false, 'permission' => 'personalConfigurationNoCreate', 'flags' => array('config'), 'view' => 'dangerous'), array('var' => 'right_publish', 'title' => USERCONF_ALLOWPUBLISH, 'description' => USERCONF_ALLOWPUBLISH_DESC, 'type' => 'bool', 'default' => true, 'permission' => 'personalConfigurationRightPublish', 'view' => 'dangerous'), array('var' => 'simpleFilters', 'title' => SIMPLE_FILTERS, 'description' => SIMPLE_FILTERS_DESC, 'type' => 'bool', 'permission' => 'personalConfiguration', 'default' => true, 'flags' => array('config')), array('var' => 'enableBackendPopup', 'title' => INSTALL_BACKENDPOPUP, 'description' => INSTALL_BACKENDPOPUP_DESC, 'type' => 'bool', 'default' => false, 'flags' => array('config'), 'permission' => 'personalConfiguration'), array('var' => 'enableBackendPopupGranular', 'title' => INSTALL_BACKENDPOPUP_GRANULAR, 'description' => INSTALL_BACKENDPOPUP_GRANULAR_DESC . 'images, comments, categories, tags, links.', 'type' => 'string', 'permission' => 'personalConfiguration', 'default' => '', 'flags' => array('config')), array('var' => 'showMediaToolbar', 'title' => SHOW_MEDIA_TOOLBAR, 'description' => '', 'type' => 'bool', 'default' => false, 'permission' => 'personalConfiguration', 'flags' => array('config')))); $res['defaults'] = array('title' => USERCONF_CAT_DEFAULT_NEW_ENTRY, 'description' => '', 'items' => array(array('var' => 'moderateCommentsDefault', 'title' => COMMENTS_MODERATE, 'description' => '', 'type' => 'bool', 'default' => false, 'permission' => 'personalConfiguration', 'flags' => array('config')), array('var' => 'allowCommentsDefault', 'title' => COMMENTS_ENABLE, 'description' => '', 'type' => 'bool', 'default' => true, 'permission' => 'personalConfiguration', 'flags' => array('config')), array('var' => 'publishDefault', 'title' => NEW_ENTRY, 'description' => '', 'type' => 'list', 'default' => array('publish' => PUBLISH, 'draft' => DRAFT), 'permission' => 'personalConfiguration', 'flags' => array('config')), array('var' => 'use_autosave', 'title' => CONF_USE_AUTOSAVE, 'description' => CONF_USE_AUTOSAVE_DESC, 'type' => 'bool', 'default' => true, 'permission' => 'personalConfiguration', 'flags' => array('config')))); return $res;