Guest
Public paste!

real34

By: a guest | Mar 1st, 2009 | Syntax: PHP | Size: 5.41 KB | Hits: 187 | Expires: Never
Copy text to clipboard
  1. <?php
  2. /*
  3. Plugin Name: MyOpenID
  4. Plugin URI: http://nikolay.com/projects/wordpress/myopenid/
  5. Description: MyOpenID plugin allows you to use your blog as your OpenID identity by delegating it to an external provide such as myOpenID, myVidoop, and claimID.
  6. Version: 0.3
  7. Author: Nikolay Kolev
  8. Author URI: http://nikolay.com/
  9. */
  10.  
  11. define('MYOPENID_NONCE', 'myopenid_nonce');
  12.  
  13. define('MYOPENID_USERNAME_OPTION', 'myopenid_username');
  14. define('MYOPENID_PROVIDER_OPTION', 'myopenid_provider');
  15.  
  16. function myopenid_reset_settings() {
  17.         delete_option(MYOPENID_PROVIDER_OPTION);
  18.         delete_option(MYOPENID_USERNAME_OPTION);
  19. }
  20.  
  21. function myopenid_has_settings() {
  22.         $provider = get_option(MYOPENID_PROVIDER_OPTION);
  23.         $username = get_option(MYOPENID_USERNAME_OPTION);
  24.         return !empty($provider) && !empty($username);
  25. }
  26.  
  27. add_action('init', 'myopenid_init');
  28.  
  29. function myopenid_init() {
  30.         add_action('admin_menu', 'myopenid_admin_menu');
  31.         add_action('wp_head', 'myopenid_head');
  32. }
  33.  
  34. function myopenid_admin_menu() {
  35.         add_options_page(__('MyOpenID Settings'), __('MyOpenID'), 8, __FILE__, 'myopenid_settings');
  36. }
  37.  
  38. function myopenid_settings() {
  39.         if (isset($_POST['submit'])) {
  40.                 if (!current_user_can('manage_options')) {
  41.                         die(__('Unauthorized access!'));
  42.                 }
  43.                 check_admin_referer(MYOPENID_NONCE);
  44.                 if (isset($_POST['myopenid_provider'])) {
  45.                         $provider = $_POST['myopenid_provider'];
  46.                         if (empty($provider)) {
  47.                                 delete_option(MYOPENID_PROVIDER_OPTION);
  48.                         } else {
  49.                                 update_option(MYOPENID_PROVIDER_OPTION, $provider);
  50.                         }
  51.                 }
  52.                 if (isset($_POST['myopenid_username'])) {
  53.                         $username = $_POST['myopenid_username'];
  54.                         if (empty($username)) {
  55.                                 delete_option(MYOPENID_USERNAME_OPTION);
  56.                         } else {
  57.                                 update_option(MYOPENID_USERNAME_OPTION, $username);
  58.                         }
  59.                 }
  60. ?>
  61. <div id="myopenid_warning" class="updated fade">
  62.         <p><strong><?php _e('MyOpenID:'); ?></strong> <?php _e('Settings saved!'); ?></p>
  63. </div>
  64. <?php
  65.         }
  66.  
  67.         $provider = get_option(MYOPENID_PROVIDER_OPTION);
  68.         $username = get_option(MYOPENID_USERNAME_OPTION);
  69.  
  70. ?>
  71. <div class="wrap">
  72.         <h2><?php _e('MyOpenID Settings'); ?></h2>
  73.         <div id="poststuff" class="metabox-holder">
  74.                 <form name="form0" method="post" action=""><?php wp_nonce_field(MYOPENID_NONCE); ?>
  75.                         <div class="postbox open">
  76.                                 <h3 class="hndle"><?php _e('OpenID Provider Info'); ?></h3>
  77.                                 <div class="inside">
  78.                                         <table class="form-table">
  79.                                                 <tr>
  80.                                                         <th><label for="myopenid_provider"><?php _e('Provider:'); ?></label></th>
  81.                                                         <td><select id="myopenid_provider" name="myopenid_provider">
  82.                                                                 <?php if (empty($provider)) { ?><option></option><?php } ?>
  83.                                                                 <option value="myopenid"<?php if ($provider == 'myopenid') echo ' selected="selected"'; ?>>myOpenID</option>
  84.                                                                 <option value="myvidoop"<?php if ($provider == 'myvidoop') echo ' selected="selected"'; ?>>myVidoop</option>
  85.                                                                 <option value="claimid"<?php if ($provider == 'claimid') echo ' selected="selected"'; ?>>claimID</option>
  86.                                                                 <option value="openidfrance"<?php if ($provider == 'openidfrance') echo ' selected="selected"'; ?>>openIDFrance</option>
  87.                                                         </select></td>
  88.                                                 </tr>
  89.                                                 <tr>
  90.                                                         <th><label for="myopenid_username"><?php _e('Username:'); ?></label></th>
  91.                                                         <td><input type="text" id="myopenid_username" name="myopenid_username" value="<?php echo $username; ?>" /></td>
  92.                                                 </tr>
  93.                                         </table>
  94.                                 </div>
  95.                         </div>
  96.                         <p class="submit">
  97.                                 <input type="submit" name="submit" value="<?php _e('Save Settings'); ?>" class="button-primary" />
  98.                         </p>
  99.                 </form>
  100.         </div>
  101. </div>
  102. <?php
  103. }
  104.  
  105. if (!myopenid_has_settings() && !isset($_POST['submit'])) {
  106.         add_action('admin_notices', 'myopenid_admin_notices');
  107. }
  108.  
  109. function myopenid_admin_notices() {
  110. ?>
  111. <div id="myopenid_warning" class="updated fade">
  112.         <p><strong><?php _e('MyOpenID:'); ?></strong> <?php _e('You need to configure the plugin in order to start utilizing it!'); ?></p>
  113. </div>
  114. <?php
  115. }
  116.  
  117. function myopenid_head() {
  118.         if (myopenid_has_settings()) {
  119.                 $provider = get_option(MYOPENID_PROVIDER_OPTION);
  120.                 $username = get_option(MYOPENID_USERNAME_OPTION);
  121. ?>
  122. <!-- MyOpenID Plugin - Start -->
  123. <?php
  124.                 switch ($provider) {
  125.                         case "myopenid":
  126. ?>
  127. <link rel="openid.server" href="http://www.myopenid.com/server" />
  128. <link rel="openid.delegate" href="http://<?php echo $username; ?>.myopenid.com/" />
  129. <link rel="openid2.local_id" href="http://<?php echo $username; ?>.myopenid.com" />
  130. <link rel="openid2.provider" href="http://www.myopenid.com/server" />
  131. <meta http-equiv="X-XRDS-Location" content="http://www.myopenid.com/xrds?username=<?php echo $username; ?>.myopenid.com" />
  132. <?php
  133.                                 break;
  134.                         case "myvidoop":
  135. ?>
  136. <link rel="openid.server" href="https://myvidoop.com/openid" />
  137. <link rel="openid.delegate" href="http://<?php echo $username; ?>.myvidoop.com" />
  138. <link rel="openid2.local_id" href="http://<?php echo $username; ?>.myvidoop.com" />
  139. <link rel="openid2.provider" href="https://myvidoop.com/openid" />
  140. <?php
  141.                                 break;
  142.                         case "claimid":
  143. ?>
  144. <link rel="openid.server" href="http://openid.claimid.com/server" />
  145. <link rel="openid.delegate" href="http://openid.claimid.com/<?php echo $username; ?>" />
  146. <?php
  147.                                 break;
  148.                         case "openidfrance":
  149. ?>
  150. <link rel="openid.server" href="http://www.openidfrance.fr/index.php" />
  151. <link rel="openid.delegate" href="http://www.openidfrance.fr/<?php echo $username; ?>" />
  152. <?php
  153.                                 break;
  154.                 }
  155. ?>
  156. <!-- MyOpenID Plugin - End -->
  157. <?php
  158.         }
  159. }
  160.  
  161. ?>