Changeset 666050
- Timestamp:
- 02/10/2013 10:42:27 PM (13 years ago)
- Location:
- dko-openid-delegation/trunk
- Files:
-
- 2 edited
-
README.txt (modified) (1 diff)
-
dkoopenid.php (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
dko-openid-delegation/trunk/README.txt
r658250 r666050 50 50 == Changelog == 51 51 52 = 1.0.3 = 53 * Add options menu item on admin_menu hook 54 52 55 = 1.0.2 = 53 56 * Add settings link on plugins page -
dko-openid-delegation/trunk/dkoopenid.php
r658131 r666050 1 1 <?php 2 2 /** 3 * Plugin Name: DKO OpenID Delegat ion3 * Plugin Name: DKO OpenID Delegate 4 4 * Plugin URI: http://davidosomething.com/ 5 * Description: Adds OpenID delegat ion link and metatags to your HTML head6 * Version: 1.0. 25 * Description: Adds OpenID delegate link tags to your HTML head 6 * Version: 1.0.3 7 7 * Author: David O'Trakoun (@davidosomething) 8 8 * Author URI: http://davidosomething.com/ … … 28 28 class DKOOpenID { 29 29 30 private $option_group = 'dkoopenid_option_group';30 private $option_group = 'dkoopenid_option_group'; 31 31 private $settings_page_menu_slug = 'dkoopenid_settings_page'; 32 32 private $settings_section_name = 'dkoopenid_settings_section'; 33 private $settings_page_title = 'DKO OpenID Delegation Settings';34 33 35 34 public function __construct() { … … 38 37 } 39 38 else { 39 add_action('admin_menu', array(&$this, 'add_options_page')); 40 40 add_action('admin_init', array(&$this, 'register_settings')); 41 add_action('admin_menu', array(&$this, 'add_settings_submenu'));42 43 add_filter("plugin_action_links_" . plugin_basename(__FILE__), array(&$this, 'add_settings_link_to_plugins_page'));44 41 } 45 42 } 46 43 47 public function add_settings_link_to_plugins_page($links) { 48 $page = basename(__FILE__); 49 $settings_page_href = admin_url('options-general.php?page=' . $this->settings_page_menu_slug); 50 $settings_link = '<a href="' . $settings_page_href . '">Settings</a>'; 51 array_unshift($links, $settings_link); 52 return $links; 44 public function add_options_page() { 45 $page_title = 'DKO OpenID Settings Page'; 46 $menu_title = 'DKO OpenID Settings'; 47 $capability = 'manage_options'; 48 $menu_slug = $this->settings_page_menu_slug; 49 $function = array(&$this, 'settings_page_html'); 50 add_options_page($page_title, $menu_title, $capability, $menu_slug, $function); 53 51 } 54 52 … … 71 69 } 72 70 73 /**74 * add_settings_submenu75 *76 * @return void77 */78 public function add_settings_submenu() {79 $menu_title = 'DKO OpenID Delegation';80 $capability = 'manage_options';81 $function = array(&$this, 'settings_page_html');82 add_options_page($this->settings_page_title, $menu_title, $capability, $this->settings_page_menu_slug, $function);83 }84 85 71 public function settings_page_html() { 86 ?><div class="wrap"> 87 <div id="icon-options-general" class="icon32"><br></div><h2><?php echo $this->settings_page_title; ?></h2> 88 <form method="post" action="options.php"> 89 <p>For information on what OpenID is, check out this site: <a href="http://openid.net/">OpenID.net</a>.</p> 90 <?php 91 settings_fields($this->option_group); 92 do_settings_sections($this->settings_page_menu_slug); 93 ?> 94 <p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="<?php esc_attr_e('Save Changes'); ?>"></p> 72 ?> 73 <div class="wrap"> 74 <h2>DKO OpenID Settings</h2> 75 <form method="post" action="options.php"> 76 <?php settings_fields($this->option_group); ?> 77 <?php do_settings_sections($this->settings_page_menu_slug); ?> 78 <input name="Submit" type="submit" value="<?php esc_attr_e('Save Changes'); ?>" /> 95 79 </form> 96 80 </div> … … 105 89 $this->settings_page_menu_slug 106 90 ); 107 108 $option_key = 'dkoopenid_provider';109 91 add_settings_field( 110 $option_key,111 'OpenID Provider',92 'dkoopenid_provider', 93 'OpenID server (openid.server and openid2.provider)', 112 94 array(&$this, 'text_input_html'), 113 95 $this->settings_page_menu_slug, 114 $this->settings_section_name, 115 array( 116 'option_key' => $option_key, 117 'label_for' => 'dkoopenid_field_' . $option_key, 118 'placeholder' => 'https://www.myopenid.com/server', 119 'description' => 'This is the href for the <code>openid.server</code> and <code>openid2.provider</code> link tags.', 120 'required' => true, 121 ) 96 $this->settings_section_name 122 97 ); 123 $option_key = 'dkoopenid_local_id';124 98 add_settings_field( 125 $option_key,126 'OpenID Local ID',99 'dkoopenid_local_id', 100 'OpenID delegate (openid.delegate and openid2.local_id)', 127 101 array(&$this, 'text_input_html'), 128 102 $this->settings_page_menu_slug, 129 $this->settings_section_name, 130 array( 131 'option_key' => $option_key, 132 'label_for' => 'dkoopenid_field_' . $option_key, 133 'placeholder' => 'http://USERNAME.myopenid.com', 134 'description' => 'This is the href for the <code>openid.delegate</code> and <code>openid2.local_id</code> link tags.', 135 'field_type' => 'url', 136 'required' => true, 137 ) 103 $this->settings_section_name 138 104 ); 139 140 $option_key = 'dkoopenid_xrds_location';141 105 add_settings_field( 142 $option_key,106 'dkoopenid_xrds_location', 143 107 'X-XRDS-Location', 144 108 array(&$this, 'text_input_html'), 145 109 $this->settings_page_menu_slug, 146 $this->settings_section_name, 147 array( 148 'option_key' => $option_key, 149 'label_for' => 'dkoopenid_field_' . $option_key, 150 'placeholder' => 'http://www.myopenid.com/xrds?username=USERNAME.myopenid.com', 151 'description' => 'This is the content value for the <code>X-XRDS-Location</code> meta tag.', 152 'field_type' => 'url', 153 'required' => false, 154 ) 110 $this->settings_section_name 155 111 ); 156 112 … … 163 119 164 120 public function settings_section_html() { 165 echo <<<EOF166 <p>Enter in your OpenID server information here. To obtain an OpenID, check out167 <a href="http://www.myopenid.com/">MyOpenID</a> (not affiliated). For help on168 how to fill in these fields, check with your OpenID provider, e.g.,169 <a href="https://www.myopenid.com/help#own_domain">https://www.myopenid.com/help#own_domain</a>.170 EOF;171 121 // HTML output 172 122 } 173 123 174 public function text_input_html($args) { 175 $options = get_option(DKOOPENID_OPTIONS_KEY); 176 $field_name = DKOOPENID_OPTIONS_KEY . "[{$args['option_key']}]"; 177 $field_id = 'dkoopenid_field_' . $args['option_key']; 178 179 $field_value = $options[$args['option_key']]; 180 if (!empty($args['field_type']) && $args['field_type'] == 'url') { 181 $field_value = esc_url($field_value); 182 } 183 184 echo '<input type="text" name="', $field_name, '" id="', $field_id ,'" value="', $field_value , '" placeholder="', $args['placeholder'], '" class="regular-text ltr">'; 185 if (!empty($args['required']) && $args['required']) { 186 ?><abbr class="required">*</abbr><?php 187 } 188 if (!empty($args['description'])) { 189 ?><p class="description"><?php echo $args['description']; ?></p><?php 190 } 124 public function text_input_html() { 125 $options = get_option(DKOOPENID_OPTIONS_KEY); 126 echo '<input type="text" name="" id="" value="', $options['dkoopenid_'], '">'; 191 127 } 192 128 193 /**194 * validate_settings195 * Since this plugin only takes URLs in the settings fields, we just196 * filter all the inputs through WP's esc_url_raw() function if it is a valid197 * URL.198 *199 * @param array $input200 * @return array201 */202 129 public function validate_settings($input) { 203 $output = array(); 204 foreach ($input as $field => $value) { 205 $is_url = filter_var($value, FILTER_VALIDATE_URL); 206 if ($is_url) { 207 $output[$field] = esc_url_raw($value); 208 } 209 else { 210 $output[$field] = ''; 211 } 212 } 213 return $output; 130 return $input; 214 131 } 215 132
Note: See TracChangeset
for help on using the changeset viewer.