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;
 }
Example #4
0
 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') . '&amp;serendipity[adminModule]=event_display&amp;serendipity[adminAction]=adminnotes&amp;action=isdelete&amp;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('&nbsp;', 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&amp;serendipity[adminAction]=adminnotes&amp;action=edit&amp;note=' . $note['noteid'] . '">' . EDIT . '</a> ';
                            echo '<a class="serendipityPrettyButton" href="?serendipity[adminModule]=event_display&amp;serendipity[adminAction]=adminnotes&amp;action=delete&amp;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&amp;serendipity[adminAction]=adminnotes&amp;action=edit&amp;note=' . $note['noteid'] . '">' . EDIT . '</a> ';
                            echo '<a class="button_link state_cancel" href="?serendipity[adminModule]=event_display&amp;serendipity[adminAction]=adminnotes&amp;action=delete&amp;note=' . $note['noteid'] . '">' . DELETE . '</a></div></li>';
                        }
                    }
                }
                echo '</ol>';
                if ($serendipity['version'][0] < 2) {
                    echo '<a class="serendipityPrettyButton" href="?serendipity[adminModule]=event_display&amp;serendipity[adminAction]=adminnotes&amp;action=new">' . NEW_ENTRY . '</a>';
                } else {
                    echo '<div class="form_buttons"><a class="button_link state_submit" href="?serendipity[adminModule]=event_display&amp;serendipity[adminAction]=adminnotes&amp;action=new">' . NEW_ENTRY . '</a></div>';
                }
                break;
        }
    }
Example #8
0
    ?>
    <table width="100%">
        <tr>
            <td><strong><?php 
    echo GROUP;
    ?>
</strong></td>
            <td width="200">&nbsp;</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;