function introspect_config_item($name, &$propbag)
 {
     global $serendipity;
     switch ($name) {
         case 'event_not_installed':
             $propbag->add('type', 'content');
             $propbag->add('default', PLUGIN_TWITTER_EVENT_NOT_INSTALLED);
             break;
             break;
         case 'title':
             $propbag->add('type', 'string');
             $propbag->add('name', TITLE);
             $propbag->add('description', TITLE_FOR_NUGGET);
             $propbag->add('default', PLUGIN_TWITTER_TITLE);
             break;
         case 'service':
             $propbag->add('type', 'radio');
             $propbag->add('name', PLUGIN_TWITTER_SERVICE);
             $propbag->add('description', PLUGIN_TWITTER_SERVICE_DESC);
             $propbag->add('radio', array('value' => array('twitter.com', 'identi.ca'), 'desc' => array('Twitter.com', 'identi.ca')));
             $propbag->add('default', 'twitter.com');
             break;
         case 'twitter_api':
             $propbag->add('type', 'radio');
             $propbag->add('name', PLUGIN_TWITTER_API11);
             $propbag->add('description', PLUGIN_TWITTER_API11_DESC);
             $propbag->add('radio', array('value' => array('1.0', '1.1'), 'desc' => array('API 1.0 [depr]', 'API 1.1')));
             $propbag->add('default', '1.0');
             break;
         case 'twitter_oauth':
             $propbag->add('name', PLUGIN_TWITTER_OAUTHACC);
             $propbag->add('description', PLUGIN_TWITTER_OAUTHACC_DESC);
             $propbag->add('type', 'select');
             $propbag->add('select_values', serendipity_event_twitter::getTwitterOauths());
             $propbag->add('default', '1');
             break;
         case 'username':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_TWITTER_USERNAME);
             $propbag->add('description', PLUGIN_TWITTER_USERNAME_DESC);
             $propbag->add('default', 'username');
             break;
         case 'number':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_TWITTER_NUMBER);
             $propbag->add('description', PLUGIN_TWITTER_NUMBER_DESC);
             $propbag->add('default', 10);
             break;
         case 'toall_only':
             // filter only tweets starting with @
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_TWITTER_TOALL_ONLY);
             $propbag->add('description', PLUGIN_TWITTER_TOALL_ONLY_DESC);
             $propbag->add('default', false);
             break;
         case 'filter_all_user':
             // filter tweets containing @
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_TWITTER_FILTER_ALL);
             $propbag->add('description', PLUGIN_TWITTER_FILTER_ALL_DESC);
             $propbag->add('default', false);
             break;
         case 'filter_rt':
             // filter native retweets
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_TWITTER_FILTER_RT);
             $propbag->add('description', PLUGIN_TWITTER_FILTER_RT_DESC);
             $propbag->add('default', true);
             break;
         case 'followme_link':
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_TWITTER_FOLLOWME_LINK);
             $propbag->add('description', PLUGIN_TWITTER_FOLLOWME_LINK_DESC);
             $propbag->add('default', false);
             break;
         case 'followme_widget':
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_TWITTER_FOLLOWME_WIDGET);
             $propbag->add('description', PLUGIN_TWITTER_FOLLOWME_WIDGET_DESC);
             $propbag->add('default', false);
             break;
         case 'followme_widget_counter':
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_TWITTER_FOLLOWME_WIDGET_COUNT);
             $propbag->add('description', PLUGIN_TWITTER_FOLLOWME_WIDGET_COUNT_DESC);
             $propbag->add('default', true);
             break;
         case 'followme_widget_dark':
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_TWITTER_FOLLOWME_WIDGET_DARK);
             $propbag->add('description', PLUGIN_TWITTER_FOLLOWME_WIDGET_DARK_DESC);
             $propbag->add('default', false);
             break;
         case 'use_time_ago':
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_TWITTER_USE_TIME_AGO);
             $propbag->add('description', PLUGIN_TWITTER_USE_TIME_AGO_DESC);
             $propbag->add('default', 'false');
             break;
         case 'dateformat':
             $propbag->add('type', 'string');
             $propbag->add('name', GENERAL_PLUGIN_DATEFORMAT);
             $propbag->add('description', sprintf(GENERAL_PLUGIN_DATEFORMAT_BLAHBLAH, '%A, %B %e %Y'));
             $propbag->add('default', '%A, %B %e %Y');
             break;
         case 'linktext':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_TWITTER_LINKTEXT);
             $propbag->add('description', PLUGIN_TWITTER_LINKTEXT_DESC);
             $propbag->add('default', 'link');
             break;
         case 'cachetime':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_TWITTER_CACHETIME);
             $propbag->add('description', PLUGIN_TWITTER_CACHETIME_DESC);
             $propbag->add('default', '300');
             break;
         case 'showformat':
             $propbag->add('type', 'radio');
             $propbag->add('name', PLUGIN_TWITTER_SHOWFORMAT);
             $propbag->add('description', PLUGIN_TWITTER_SHOWFORMAT_DESC);
             $propbag->add('radio', array('value' => array('javascript', 'PHP'), 'desc' => array(PLUGIN_TWITTER_SHOWFORMAT_RADIO_JAVASCRIPT, PLUGIN_TWITTER_SHOWFORMAT_RADIO_PHP)));
             $propbag->add('default', 'javascript');
             break;
         case 'backup':
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_TWITTER_BACKUP);
             $propbag->add('description', PLUGIN_TWITTER_BACKUP_DESC);
             $propbag->add('default', 'false');
             break;
         default:
             return false;
     }
     return true;
 }
 function introspect_config_item($name, &$propbag)
 {
     global $serendipity;
     $tb_use_url = array('status' => PLUGIN_EVENT_TWITTER_TB_USE_URL_STATUS, 'profile' => PLUGIN_EVENT_TWITTER_TB_USE_URL_PROFILE, 'weburl' => PLUGIN_EVENT_TWITTER_TB_USE_URL_WEBURL);
     $id_services = array('twitter' => PLUGIN_EVENT_TWITTER_ACCOUNT_SERVICE_TWITTER, 'identica' => PLUGIN_EVENT_TWITTER_ACCOUNT_SERVICE_IDENTICA);
     // Get actual idetntifier count
     if (is_numeric($this->get_config('id_count', 1))) {
         $identitycount = $this->get_config('id_count', 1);
     } else {
         $identitycount = 1;
     }
     switch ($name) {
         case 'tweeter_warning':
             $propbag->add('type', 'content');
             $propbag->add('default', PLUGIN_EVENT_TWITTER_TWEETER_WARNING);
             break;
         case 'config_tab':
             $config_tabs = array('identities' => PLUGIN_EVENT_TWITTER_CFGTAB_IDENTITIES, 'tweetback' => PLUGIN_EVENT_TWITTER_CFGTAB_TWEETBACK, 'announce' => PLUGIN_EVENT_TWITTER_CFGTAB_ANNOUNCE, 'tweeter' => PLUGIN_EVENT_TWITTER_CFGTAB_TWEETER, 'tweetthis' => PLUGIN_EVENT_TWITTER_CFGTAB_TWEETTHIS, 'global' => PLUGIN_EVENT_TWITTER_CFGTAB_GLOBAL, 'all' => PLUGIN_EVENT_TWITTER_CFGTAB_ALL);
             $actConfigUrl = $this->curPageURL();
             $querypar = "plugintab";
             $htmltabline = PLUGIN_EVENT_TWITTER_CFGTAB;
             foreach ($config_tabs as $tabkey => $tabvalue) {
                 $tablink = $actConfigUrl;
                 if (strpos($actConfigUrl, "&{$querypar}=") === FALSE) {
                     $tablink = $actConfigUrl . "&{$querypar}={$tabkey}";
                 } else {
                     $tablink = preg_replace('@' . $querypar . '=.*@', "{$querypar}={$tabkey}", $actConfigUrl);
                 }
                 $htmltabline .= ' [<a href="' . $tablink . '" class="serendipity_pluginconfig_tab">' . $tabvalue . '</a>] ';
             }
             $propbag->add('type', 'content');
             $propbag->add('default', $htmltabline);
             break;
             // Identities
         // Identities
         case 'twitter_title':
             $propbag->add('type', 'content');
             $propbag->add('default', '<h3>' . PLUGIN_EVENT_TWITTER_IDENTITIES . '</h3>');
             break;
         case 'id_count':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_ACCOUNT_IDCOUNT);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_ACCOUNT_IDCOUNT_DESC);
             $propbag->add('default', 1);
             break;
         case 'id_title':
             $propbag->add('type', 'content');
             $propbag->add('default', '<h3>' . PLUGIN_EVENT_TWITTER_IDENTITY . ' (1)</h3>');
             break;
         case 'id_service':
             $propbag->add('type', 'select');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_ACCOUNT_SERVICE);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_ACCOUNT_SERVICE_DESC);
             $propbag->add('select_values', $id_services);
             $propbag->add('default', 'twitter');
             break;
         case 'twittername':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_ACCOUNT_NAME);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_ACCOUNT_NAME_DESC);
             break;
         case 'twitterpwd':
             if (!$this->get_config('id_service') or $this->get_config('id_service') == "identica") {
                 $propbag->add('type', 'string');
                 $propbag->add('name', PLUGIN_EVENT_TWITTER_ACCOUNT_PWD);
                 $propbag->add('description', PLUGIN_EVENT_TWITTER_ACCOUNT_PWD_DESC);
                 $propbag->add('input_type', 'password');
             }
             break;
         case 'twitteroa_consumer_key':
             $this->handleConfig('twitteroa_consumer_key', $propbag);
             break;
         case 'twitteroa_consumer_secret':
             $this->handleConfig('twitteroa_consumer_secret', $propbag);
             break;
         case 'twitteroa_sign_in':
             $this->handleConfig('twitteroa_sign_in', $propbag);
             break;
             // Backend Client
         // Backend Client
         case 'tweeter_title':
             $propbag->add('type', 'content');
             $propbag->add('default', '<h3>' . PLUGIN_EVENT_TWITTER_TWEETER_TITLE . '<h3>');
             break;
         case 'tweeter_show':
             $tweetershow = array('frontpage' => PLUGIN_EVENT_TWITTER_TWEETER_SHOW_FRONTPAGE, 'sidebar' => PLUGIN_EVENT_TWITTER_TWEETER_SHOW_SIDEBAR, 'disable' => PLUGIN_EVENT_TWITTER_TWEETER_SHOW_DISABLE);
             $propbag->add('type', 'select');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_TWEETER_SHOW);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_TWEETER_SHOW_DESC);
             $propbag->add('select_values', $tweetershow);
             $propbag->add('default', 'disable');
             break;
         case 'tweeter_timeline':
             $tb_statuses = array('public_timeline' => 'public_timeline', 'home_timeline' => 'home_timeline', 'friends_timeline' => 'friends_timeline', 'user_timeline' => 'user_timeline', 'mentions' => 'mentions', 'retweeted_by_me' => 'retweeted_by_me', 'retweeted_to_me' => 'retweeted_to_me', 'retweets_of_me' => 'retweets_of_me');
             $propbag->add('type', 'select');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_TIMELINE);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_TIMELINE_DESC);
             $propbag->add('select_values', $tb_statuses);
             $propbag->add('default', 'home_timeline');
             break;
         case 'tweeter_history':
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_TWEETER_HISTORY);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_TWEETER_HISTORY_DESC);
             $propbag->add('default', false);
             break;
         case 'tweeter_history_count':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_TWEETER_HISTORY_COUNT);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_TWEETER_HISTORY_COUNT_DESC);
             $propbag->add('default', '10');
             break;
             // Article announcement
         // Article announcement
         case 'announce_articles_title':
             $propbag->add('type', 'content');
             $propbag->add('default', '<h3>' . PLUGIN_EVENT_TWITTER_ANNOUNCE_ARTICLES_TITLE . '</h3>');
             break;
         case 'announce_articles':
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_ANNOUNCE_ARTICLES);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_ANNOUNCE_ARTICLES_DESC);
             $propbag->add('default', false);
             break;
         case 'announce_articles_default_no':
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_ANNOUNCE_ARTICLES_NO);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_ANNOUNCE_ARTICLES_NO_DESC);
             $propbag->add('default', false);
             break;
         case 'announce_via_accounts':
             $propbag->add('type', 'multiselect');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_ANNOUNCE_ACCOUNTS);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_ANNOUNCE_ACCOUNTS_DESC);
             $propbag->add('select_values', $this->load_identities());
             $propbag->add('default', '0');
             break;
         case 'announce_format':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_ANNOUNCE_FORMAT);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_ANNOUNCE_FORMAT_DESC);
             $propbag->add('default', $this->get_default_announceformat());
             break;
         case 'announce_with_tags':
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_ANNOUNCE_WITHTTAGS);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_ANNOUNCE_WITHTTAGS_DESC);
             $propbag->add('default', false);
             break;
         case 'anounce_url_service':
             $propbag->add('type', 'select');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_ANNOUNCE_SERVICE);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_ANNOUNCE_SERVICE_DESC);
             $propbag->add('select_values', $this->supported_services);
             $propbag->add('default', '7ax.de');
             break;
         case 'announce_bitly_description':
             $propbag->add('type', 'content');
             $propbag->add('default', PLUGIN_EVENT_TWITTER_ANNOUNCE_BITLYDESC);
             break;
         case 'announce_bitly_login':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_ANNOUNCE_BITLYLOGIN);
             $propbag->add('default', 'bitlyapidemo');
             break;
         case 'announce_bitly_apikey':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_ANNOUNCE_BITLYAPIKEY);
             $propbag->add('default', 'R_0da49e0a9118ff35f52f629d2d71bf07');
             break;
         case 'announce_piratly_description':
             $propbag->add('type', 'content');
             $propbag->add('default', PLUGIN_EVENT_TWITTER_ANNOUNCE_PIRATLYDESC);
             break;
         case 'announce_piratly_apikey':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_ANNOUNCE_PIRATLYAPIKEY);
             $propbag->add('default', '0');
             break;
         case 'announce_yourls_description':
             $propbag->add('type', 'content');
             $propbag->add('default', PLUGIN_EVENT_TWITTER_ANNOUNCE_YOURLSDESC);
             break;
         case 'announce_yourls_url':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_ANNOUNCE_YOURLSURL);
             $propbag->add('default', 'http://www.yourls.org');
             break;
         case 'announce_yourls_apikey':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_ANNOUNCE_YOURLSAPIKEY);
             $propbag->add('default', 'API key');
             break;
             // Tweetbacks
         // Tweetbacks
         case 'twitter_api':
             $apis = array('api10' => PLUGIN_EVENT_TWITTER_API_10, 'api11' => PLUGIN_EVENT_TWITTER_API_11);
             $propbag->add('type', 'select');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_API_TYPE);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_API_TYPE_DESC);
             $propbag->add('select_values', $apis);
             $propbag->add('default', 'api10');
             break;
         case 'twitter_generic_acc':
             $propbag->add('name', PLUGIN_TWITTER_OAUTHACC);
             $propbag->add('description', PLUGIN_TWITTER_OAUTHACC_DESC);
             $propbag->add('type', 'select');
             $propbag->add('select_values', serendipity_event_twitter::getTwitterOauths());
             $propbag->add('default', '1');
             break;
         case 'tweetback_title':
             $propbag->add('type', 'content');
             $propbag->add('default', '<h3>' . PLUGIN_EVENT_TWITTER_TWEETBACKS_TITLE . '</h3>');
             break;
         case 'do_tweetbacks':
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_DO_TWEETBACKS);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_DO_TWEETBACKS_DESC);
             $propbag->add('default', false);
             break;
         case 'tweetback_type':
             $tb_types = array('TRACKBACK' => PLUGIN_EVENT_TWITTER_TB_TYPE_TRACKBACK, 'NORMAL' => PLUGIN_EVENT_TWITTER_TB_TYPE_COMMENT);
             $propbag->add('type', 'select');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_TB_TYPE);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_TB_TYPE_DESC);
             $propbag->add('select_values', $tb_types);
             $propbag->add('default', 'TRACKBACK');
             break;
         case 'tweetback_moderate':
             $tb_types = array('save' => PLUGIN_EVENT_TWITTER_TB_MODERATE_DEFAULT, 'pending' => REQUIRES_REVIEW, 'approved' => APPROVE_COMMENT);
             $propbag->add('type', 'select');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_TB_MODERATE);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_TB_MODERATE_DESC);
             $propbag->add('select_values', $tb_types);
             $propbag->add('default', 'approved');
             break;
         case 'ignore_tweetbacks_by_name':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_IGNORE_TWEETBACKS_BYNAME);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_IGNORE_TWEETBACKS_BYNAME_DESC);
             $propbag->add('default', $this->get_config('twittername'));
             break;
         case 'tweetback_url':
             $propbag->add('type', 'select');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_TB_USE_URL);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_TB_USE_URL_DESC);
             $propbag->add('select_values', $tb_use_url);
             $propbag->add('default', 'status');
             break;
         case 'tweetback_check_freq':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_TWEETBACK_CHECK_FREQ);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_TWEETBACK_CHECK_FREQ_DESC);
             $propbag->add('default', '30');
             break;
             // Tweet this
         // Tweet this
         case 'tweetthis_title':
             $propbag->add('type', 'content');
             $propbag->add('default', '<h3>' . PLUGIN_EVENT_TWITTER_TWEETTHIS_TITLE . '</h3>');
             break;
         case 'do_tweetthis':
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_DO_TWEETTHIS);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_DO_TWEETTHIS_DESC);
             $propbag->add('default', false);
             break;
         case 'do_identicathis':
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_DO_IDENTICATHIS);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_DO_IDENTICATHIS_DESC);
             $propbag->add('default', false);
             break;
         case 'tweetthis_format':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_TWEETTHIS_FORMAT);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_TWEETTHIS_FORMAT_DESC);
             $propbag->add('default', '#title# #link#');
             break;
         case 'tweetthis_button':
             $propbag->add('type', 'radio');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_TWEETTHIS_FORMAT_BUTTON);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_TWEETTHIS_FORMAT_BUTTON_DESC);
             $propbag->add('radio', array('value' => array('black', 'white'), 'desc' => array(PLUGIN_EVENT_TWITTER_TWEETTHIS_FORMAT_BUTTON_BLACK, PLUGIN_EVENT_TWITTER_TWEETTHIS_FORMAT_BUTTON_WHITE)));
             $propbag->add('default', 'black');
             break;
         case 'tweetthis_newwindow':
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_TWEETTHIS_NEWWINDOW);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_TWEETTHIS_NEWWINDOW_DESC);
             $propbag->add('default', false);
             break;
         case 'tweetthis_smartify':
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_TWEETTHIS_SMARTIFY);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_TWEETTHIS_SMARTIFY_DESC);
             $propbag->add('default', false);
             break;
         case 'show_shorturl':
             $propbag->add('type', 'boolean');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_SHOW_SHORTURL);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_SHOW_SHORTURL_DESC);
             $propbag->add('default', false);
             break;
             // General
         // General
         case 'general_title':
             $propbag->add('type', 'content');
             $propbag->add('default', '<h3>' . PLUGIN_EVENT_TWITTER_GENERAL_TITLE . '</h3>');
             break;
         case 'plugin_rel_url':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_PLUGIN_EVENT_REL_URL);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_PLUGIN_EVENT_REL_URL_DESC);
             $propbag->add('default', str_replace('//', '/', $serendipity['serendipityHTTPPath'] . preg_replace('@^.*(/plugins.*)@', '$1', dirname(__FILE__))));
             break;
         case 'general_oa_consumerdesc':
             $propbag->add('type', 'content');
             $propbag->add('default', PLUGIN_EVENT_TWITTER_GENERALCONSUMER);
             break;
         case 'general_oa_consumerkey':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_CONSUMER_KEY);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_CONSUMER_KEY_DESC);
             $propbag->add('default', '');
             break;
         case 'general_oa_consumersecret':
             $propbag->add('type', 'string');
             $propbag->add('name', PLUGIN_EVENT_TWITTER_CONSUMER_SECRET);
             $propbag->add('description', PLUGIN_EVENT_TWITTER_CONSUMER_KEY_DESC);
             $propbag->add('default', '');
             break;
     }
     // Process all extra identities:
     for ($idx = 2; $idx <= $identitycount; $idx++) {
         switch ($name) {
             case 'id_title' . $idx:
                 $propbag->add('type', 'content');
                 $propbag->add('default', '<h3>' . PLUGIN_EVENT_TWITTER_IDENTITY . " ({$idx})</h3>");
                 break;
             case 'id_service' . $idx:
                 $propbag->add('type', 'select');
                 $propbag->add('name', PLUGIN_EVENT_TWITTER_ACCOUNT_SERVICE);
                 $propbag->add('description', PLUGIN_EVENT_TWITTER_ACCOUNT_SERVICE_DESC);
                 $propbag->add('select_values', $id_services);
                 $propbag->add('default', 'twitter');
                 break;
             case 'twittername' . $idx:
                 $propbag->add('type', 'string');
                 $propbag->add('name', PLUGIN_EVENT_TWITTER_ACCOUNT_NAME);
                 $propbag->add('description', PLUGIN_EVENT_TWITTER_ACCOUNT_NAME_DESC);
                 break;
             case 'twitterpwd' . $idx:
                 if (!$this->get_config('id_service' . $idx) or $this->get_config('id_service' . $idx) == "identica") {
                     $propbag->add('type', 'string');
                     $propbag->add('name', PLUGIN_EVENT_TWITTER_ACCOUNT_PWD);
                     $propbag->add('description', PLUGIN_EVENT_TWITTER_ACCOUNT_PWD_DESC);
                     $propbag->add('input_type', 'password');
                 }
                 break;
             case 'twitteroa_consumer_key' . $idx:
                 $this->handleConfig('twitteroa_consumer_key', $propbag, $idx);
                 break;
             case 'twitteroa_consumer_secret' . $idx:
                 $this->handleConfig('twitteroa_consumer_secret', $propbag, $idx);
                 break;
             case 'twitteroa_sign_in' . $idx:
                 $this->handleConfig('twitteroa_sign_in', $propbag, $idx);
                 break;
         }
     }
     return true;
 }