| [ Index ] |
PHP Cross Reference of zeList |
[Summary view] [Print] [Text view]
1 <?php 2 3 define('ZELISTAPI_VERSION', '0.6.1' ); 4 define('ZELISTAPI_XMLRPC_SERVER', 'http://api.zelist.net/xmlrpc.php' ); 5 6 /** 7 * Generic function to get zeList API key 8 * @return false or api key 9 */ 10 function zelist_api_get_key() { 11 return get_option('zelistapi_api_key'); 12 } 13 14 function zelist_api_get_site_id() { 15 return get_option('zelistapi_site_id'); 16 } 17 18 /** 19 * API Admin Page load 20 * @return unknown_type 21 */ 22 function zelist_api_load() { 23 //wp_enqueue_script('zelist_settings',ZELIST_URL.'/js/settings.js',array('jquery-form'),ZELIST_CURRENT_VERSION); 24 25 global $messages; 26 27 if(isset($_GET['action'])) { 28 29 $action = trim($_GET['action']); 30 check_admin_referer($action); 31 32 switch ($action) { 33 case 'deactivate' : case 'activate' : 34 $actives = get_option('zelistapi_features_active'); 35 $features = get_option('zelistapi_features'); 36 $call = trim($_GET['feature']); 37 if(isset($features[$call])) { 38 if($action == 'activate') $actives[$call] = 1; 39 else $actives[$call] = 0; 40 if($action == 'activate') $messages['success'][] = sprintf(__('%s activated','zelist'),$features[$call]['name']); 41 else $messages['success'][] = sprintf(__('%s deactivated','zelist'),$features[$call]['name']); 42 update_option('zelistapi_features_active',$actives); 43 } 44 else $messages['error'][] = __('Feature unknown','zelist'); 45 break; 46 default: 47 break; 48 } 49 } 50 51 if(!$_POST || !$_POST['method']) return; 52 53 54 55 $method = trim($_POST['method']); 56 check_admin_referer('zelist-api'); 57 $zeListAPI = new zeListAPI(); 58 59 if($zeListAPI->is_method($method)) { 60 if($method == 'CheckKey') $args = 'api_key='.trim($_POST['api_key']); 61 $methodname = 'zeListAPI.'.$method; 62 $request = $zeListAPI->call($methodname,$args); 63 if(!$request) { 64 $messages['error'][] = $zeListAPI->error; 65 } 66 else { 67 $response = $zeListAPI->response; 68 $messages['success'][] = $response['message']; 69 70 if($method == 'CheckKey') { 71 // update API key 72 if(get_option('zelistapi_api_key') !== false) update_option('zelistapi_api_key',trim($_POST['api_key'])); 73 else add_option('zelistapi_api_key',trim($_POST['api_key'])); 74 75 // update site_id 76 if(get_option('zelistapi_site_id') !== false) update_option('zelistapi_site_id',$response['site_id']); 77 else add_option('zelistapi_site_id',$response['site_id']); 78 79 // update site info 80 if(get_option('zelistapi_site_info') !== false) update_option('zelistapi_site_info',$response['site_info']); 81 else add_option('zelistapi_site_info',$response['site_info']); 82 } 83 elseif($method == 'GetFeatures') { 84 // update features 85 if(get_option('zelistapi_features') !== false) update_option('zelistapi_features',$response['features']); 86 else add_option('zelistapi_features',$response['features']); 87 } 88 89 } 90 //echo '<pre>'.print_r($messages,1).'</pre>'; echo '<pre>'.print_r($zeListAPI,1).'</pre>'; die(); 91 } 92 } 93 add_action('load-zelist/admin/api.php','zelist_api_load'); 94 95 class zelistAPI { 96 function zeListAPI() { 97 return __construct(); 98 } 99 100 function __construct() { 101 $this->api_server = ZELISTAPI_XMLRPC_SERVER; 102 $this->api_version = ZELISTAPI_VERSION; 103 $this->error = false; 104 $this->error_message = ''; 105 106 $this->site_id = get_option('zelistapi_site_id'); 107 $this->api_key = get_option('zelistapi_api_key'); 108 if(!$this->site_id || !$this->api_key) { 109 $this->error = true; 110 $this->error_message = sprintf(__('<a href="%s">Please register your API first</a>','zelist'),admin_url('admin.php?page=zelist/admin/api.php')); 111 } 112 $this->methods = array('CheckKey','GetFeatures','Parse'); 113 $this->site_name = get_option('blogname'); 114 $this->site_description = get_option('blogdescription'); 115 $this->site_rss = get_bloginfo('rss2_url'); 116 $this->auth_key = $this->site_id . ':' . md5($this->api_key.date('Y-m-d')); 117 $this->site_url = get_option('home'); 118 $this->locale = get_locale(); 119 } 120 121 122 function is_method($method = '') { 123 if(in_array($method,$this->methods)) return true; 124 return false; 125 } 126 127 function call($method,$args = '') { 128 $defaults = array( 129 'api_version' => $this->api_version, 130 'site_id' => $this->site_id, 131 'auth_key' => $this->auth_key, 132 'locale' => $this->locale, 133 ); 134 135 if($method == 'zeListAPI.CheckKey') { 136 $defaults['site_url'] = $this->site_url; 137 $defaults['site_name'] = $this->site_name; 138 $defaults['site_description'] = $this->site_description; 139 $defaults['site_rss'] = $this->site_rss; 140 } 141 elseif($this->error) { 142 return false; 143 } 144 145 $args = wp_parse_args($args,$defaults); 146 147 //$debug = true; 148 require_once( ABSPATH . WPINC . '/class-IXR.php' ); 149 $this->client = new IXR_Client( $this->api_server ); 150 if($debug) $this->client->debug = true; 151 152 $this->client->query( $method, $args); 153 154 if ( $this->client->isError() ) { 155 156 if ( $this->client->getErrorCode() == -32300 ) 157 $this->error = __('Connection to zeList API failed','zelist'). $this->client->getErrorMessage(); 158 else 159 $this->error = $this->client->getErrorMessage(); 160 return false; 161 } else { 162 $this->error = false; 163 } 164 $this->response = $this->client->getResponse(); 165 return true; 166 } 167 168 } 169 170 171 172 173 function zelist_api_get_features() { 174 $features = get_option('zelistapi_features'); 175 $actives = get_option('zelistapi_features_active'); 176 if($actives) foreach($actives as $call => $active) { 177 if(isset($features[$call])) $features[$call]['active'] = $active; 178 } 179 return $features; 180 } 181
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Sat May 30 23:51:06 2009 | Cross-referenced by PHPXref 0.7 |