Changeset 29
- Timestamp:
- 04/03/07 22:08:28 (2 years ago)
- Files:
-
- trunk/wp-infocard/class.infocard-basic.php (modified) (11 diffs)
- trunk/wp-infocard/login/class.infocard-login.php (modified) (2 diffs)
- trunk/wp-infocard/login/infocard-submit.php (modified) (3 diffs)
- trunk/wp-infocard/login/login.php (modified) (2 diffs)
- trunk/wp-infocard/processing/class.infocard-processing.php (modified) (4 diffs)
- trunk/wp-infocard/processing/infocard-post-decrypt.php (modified) (2 diffs)
- trunk/wp-infocard/processing/infocard-post-get-claims.php (modified) (2 diffs)
- trunk/wp-infocard/processing/infocard-post.php (modified) (9 diffs)
- trunk/wp-infocard/wp-infocard-settings.php (modified) (1 diff)
- trunk/wp-infocard/wp-infocard.php (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/wp-infocard/class.infocard-basic.php
r24 r29 1 1 <?php 2 2 //defined( '_VALID_IC' ) or die( 'Direct Access to this location is not allowed.'); 3 require_once( dirname(__FILE__) . '/wp-infocard-settings.php' ); 3 include_once( dirname(__FILE__) . '/pw-config.php' ); 4 include_once( dirname(__FILE__) . '/' . PW_PLUGIN . '/admin.pw.php' ); 4 5 5 6 class InfocardGeneral { … … 7 8 function printCSSlink(){ 8 9 //print "http://wordpress/ic-admin/infocard.css"; 9 print IC_PLUGINURL . "/infocard.css";10 print PW_PLUGINURL . "/infocard.css"; 10 11 } 11 12 … … 32 33 33 34 function errorPageRedirect( $error_code='', $error_details = '') { 34 $redirect = IC_PLUGINURL . "/error/error.php?error_code=" . $error_code;35 $redirect = PW_PLUGINURL . "/error/error.php?error_code=" . $error_code; 35 36 if ($error_details) 36 37 { … … 57 58 // this sets the link but doesn't actually redirect 58 59 //$redirect = "/wp-content/plugins/wp-infocard/error/error.php?error_code=" . $error_code; 59 $redirect = IC_PLUGINURL . "/error.php?error_code=" . $error_code;60 $redirect = PW_PLUGINURL . "/error.php?error_code=" . $error_code; 60 61 print $redirect; 61 62 } 62 63 63 64 function printUserMessageText( $mesg_type, $lang='en-us' ){ 64 $message_file = IC_SITEMESGPATH . "/$lang" . "/$mesg_type.html";65 $message_file = PW_SITEMESGPATH . "/$lang" . "/$mesg_type.html"; 65 66 66 67 if ( file_exists( $message_file ) ) { 67 68 include_once($message_file); 68 69 } else { 69 if ( IC_DEBUG_ON) {70 if (PW_DEBUG_ON) { 70 71 print "<p>Problems with this file: $message_file</p>"; 71 72 } else { … … 116 117 } // end function checkDBReturn 117 118 118 function testSSLURL( $sslurl ) {119 // Purpose: the goal of this is to attempt to open a specified SSL120 // connection from a possibly non-SSL-protected page.121 // Result: Returns true if the URL was contacted, false if the URL122 // was blank or if there was a problem of any kind.123 //124 if ($sslurl) {125 $errno = '';126 $errstr = '';127 //print "SSLURL: " . $sslurl;128 $bits = parse_url($sslurl);129 if ($bits['port']) {130 $port = $bits['port'];131 } else {132 $port = 443;133 }134 //print_r($bits);135 // don't show the warnings that may appear if there136 // is no ssl socket connection available137 ini_set('display_errors',0);138 $fp = fsockopen("ssl://$bits[host]", $port);139 if (!$fp) {140 return FALSE;141 } else {142 fclose($fp);143 return TRUE;144 }145 146 // allow warnings to be displayed again147 ini_set('display_errors',1);148 } else {149 return FALSE;150 }151 152 } // end function testSSLURL153 154 function verifyGivenCerts (){155 // Purpose: this function grabs the contents of infocard_opener and156 // infocard_key and runs an openssl check on them.157 // Result: Returns true if the openssl_pkey_get_private function158 // gives a valid resource handle back, otherwise returns159 // FALSE160 161 $private_key_cipher = get_settings('infocard_key');162 $private_key_passphrase = get_settings('infocard_opener');163 if (function_exists('openssl_pkey_get_private')) {164 return openssl_pkey_get_private(array($private_key_cipher, $private_key_passphrase));165 166 } else {167 return FALSE;168 }169 } // end function verifyGivenCerts170 171 119 function advancedCertTest ( $imagepath="/") { 172 120 // Purpose: this function checks the APACHE $_SERVER variable for … … 186 134 if ($_SERVER['HTTPS'] == 'on') { 187 135 // page is called via HTTPS - this will work 188 if ( InfocardUtils::verifyGivenCerts()) {136 if (pw_admin::verifyGivenCerts()) { 189 137 if ($_SERVER['SSL_SERVER_CERT']) { 190 138 $private_key_cipher = get_settings('infocard_key'); … … 222 170 // Verify that the token is being processed within the time window 223 171 // specified by the Identity Provider (we could further restrict this) 224 $currentTime = mktime() + IC_VALIDITY_WINDOW;172 $currentTime = mktime() + PW_VALIDITY_WINDOW; 225 173 $adjustedTimeText = substr(gmdate("c",$currentTime), 0, 19)."Z"; 226 174 if ($adjustedTimeText < $NotBefore){ … … 230 178 } 231 179 232 $currentTime = mktime() - IC_VALIDITY_WINDOW;180 $currentTime = mktime() - PW_VALIDITY_WINDOW; 233 181 $adjustedTimeText = substr(gmdate("c",$currentTime), 0, 19)."Z"; 234 182 if ($adjustedTimeText > $NotOnOrAfter){ … … 240 188 241 189 function printUserMessage( $mesg_type, $lang='en-us' ){ 242 $message_file = bloginfo('home') . IC_PLUGINPATH . "/site-messages/$lang" . "/$mesg_type.html";190 $message_file = bloginfo('home') . PW_PLUGINPATH . "/site-messages/$lang" . "/$mesg_type.html"; 243 191 244 192 if ( file_exists( $message_file ) ) { … … 255 203 // or a call to something fancier. 256 204 // 257 // The IC_DEBUG_ON define is set in wp-infocard-settings.php but should205 // The PW_DEBUG_ON define is set in pw-config.php but should 258 206 // really be set by the GUI one day. 259 207 260 if ( IC_DEBUG_ON) {208 if (PW_DEBUG_ON) { 261 209 print $content; 262 210 } … … 267 215 // if debugging is on, this pretty-prints the contents of $binary 268 216 // if debugging is off, printBinary simply returns. 269 if ( IC_DEBUG_ON) {217 if (PW_DEBUG_ON) { 270 218 271 219 InfocardUtils::printDebug( $title . " (length: " .strlen($binary) . " octents) <br/>"); trunk/wp-infocard/login/class.infocard-login.php
r24 r29 1 1 <?php 2 2 defined( '_VALID_IC' ) or die( 'Direct Access to this location is not allowed.'); 3 //include_once( dirname(__FILE__) . '/../wp-infocard-settings.php' );4 3 include_once( dirname(__FILE__) . "/../class.infocard-basic.php" ); 4 5 5 /////////////////////////////////////////////////////////////////////////////// 6 6 // class.infocard-login.php … … 95 95 // up all over the place, including the meta section of the blog 96 96 97 $path = IC_SECUREPLUGINURL . "/login/infocard-submit.php";97 $path = PW_SECUREPLUGINURL . "/login/infocard-submit.php"; 98 98 99 99 if ($clickback) trunk/wp-infocard/login/infocard-submit.php
r26 r29 36 36 . "View the page source to see the object.<br/>"); 37 37 38 InfocardUtils::printDebug("Plugin: " . PW_PLUGIN . "<br/>\n"); 38 39 InfocardUtils::printDebug("Net Agent: $netAgent<br/>\n"); 39 40 InfocardUtils::printDebug("User Agent: $userAgent<br/>\n"); … … 58 59 <?php 59 60 InfocardLogin::printHiddenClickback($clickback); 60 if ( IC_DEBUG_ON)61 if (PW_DEBUG_ON) 61 62 // replace auto-submit with manual submit in debug mode. 62 63 { … … 72 73 ?> 73 74 <?php 74 if ( IC_DEBUG_ON == FALSE)75 if (PW_DEBUG_ON == FALSE) 75 76 { 76 77 ?> trunk/wp-infocard/login/login.php
r26 r29 10 10 /////////////////////////////////////////////////////// 11 11 define( '_VALID_IC', 1 ); 12 include_once( dirname(__FILE__) . '/../class.infocard-basic.php');13 12 include_once('class.infocard-login.php'); ?> 14 13 … … 82 81 </div> 83 82 <ul> 84 <li><a href="<?php InfocardGeneral::printHomeLink(); ?>" title="<?php _e('Are you lost?', 'wp =infocard'); ?>">« <?php _e('Back to blog', 'wp-infocard'); ?></a></li>83 <li><a href="<?php InfocardGeneral::printHomeLink(); ?>" title="<?php _e('Are you lost?', 'wp-infocard'); ?>">« <?php _e('Back to blog', 'wp-infocard'); ?></a></li> 85 84 </ul> 86 85 </div> trunk/wp-infocard/processing/class.infocard-processing.php
r20 r29 132 132 // Message, you would customize this function. 133 133 134 $clickbackUrl = IC_PLUGINURL134 $clickbackUrl = PW_PLUGINURL 135 135 . "/login/infocard-clickback.php?" . $clickbackID; 136 136 … … 185 185 InfocardUtils::checkDBReturn( $extra_data ) ; 186 186 187 if ( IC_DEBUG_ON)187 if (PW_DEBUG_ON) 188 188 { 189 189 InfocardUtils::printDebug("<br/>Action: Compare & Update User Data<br/>"); … … 294 294 class InfocardClickback { 295 295 // this class details all of the functionality needed to support clickbacks. 296 // IC_CLICKBACK_LENGTH is set in wp-infocard-settings.php296 // PW_CLICKBACK_LENGTH is set in pw-config.php 297 297 298 298 function createChallenge( $data ) { 299 $clickback_salt = get_settings('clickback_salt'); 299 //$clickback_salt = get_settings('clickback_salt'); 300 $clickback_salt = pw_attributes::get_attr('pw_clickback_salt'); 300 301 301 302 InfocardUtils::printDebug("Clickback: Challenge Created. <br/>" 302 303 . "Clickback: salted data is " . (($data)?$data:"empty") . "<br/>" 303 . "Clickback: length is " . IC_CLICKBACK_LENGTH304 . "Clickback: length is " . PW_CLICKBACK_LENGTH 304 305 . "<br/>Clickback: salt is $clickback_salt <br/>"); 305 306 306 307 $data = MD5($clickback_salt . $data); 307 308 308 $chopped = substr($data, 0, IC_CLICKBACK_LENGTH);309 $chopped = substr($data, 0, PW_CLICKBACK_LENGTH); 309 310 310 311 InfocardUtils::printDebug("Clickback: Hash of the salted challenge data: $data<br/>" … … 322 323 InfocardUtils::printDebug(" Previous Challenge: " . $previousChallenge . "X<br/>" 323 324 . " Current Challenge: " . $currentChallenge . "X<br/>"); 324 // printBinary only prints if IC_DEBUG_ON is on. Otherwise it just falls through.325 // printBinary only prints if PW_DEBUG_ON is on. Otherwise it just falls through. 325 326 InfocardUtils::printBinary("computed challenge: ", $currentChallenge); 326 327 InfocardUtils::printBinary("previous challenge:", $previousChallenge); trunk/wp-infocard/processing/infocard-post-decrypt.php
r23 r29 1 1 <?php 2 2 include_once( dirname(__FILE__) . '/../pw-config.php' ); 3 include_once( dirname(__FILE__) . '/../' . PW_PLUGIN . '/admin.pw.php' ); 3 4 4 5 function strip_namespace($name) … … 20 21 do { 21 22 22 $private_key_cipher = get_settings('infocard_key');23 $private_key_passphrase = get_settings('infocard_opener');23 $private_key_cipher = pw_attributes::get_attr('infocard_key'); 24 $private_key_passphrase = pw_attributes::get_attr('pw_infocard_opener'); 24 25 if ($private_key_cipher == NULL) 25 26 { trunk/wp-infocard/processing/infocard-post-get-claims.php
r24 r29 142 142 $realTimeText = substr(gmdate("c",$realTime), 0, 19)."Z"; 143 143 InfocardUtils::printDebug(" Current RP Server Time: $realTimeText<br/>" ); 144 $currentTime = $realTime + IC_VALIDITY_WINDOW;144 $currentTime = $realTime + PW_VALIDITY_WINDOW; 145 145 $adjustedTimeText = substr(gmdate("c",$currentTime), 0, 19)."Z"; 146 146 if ($adjustedTimeText < $NotBefore){ 147 $error = "Adjusted current time ($adjustedTimeText) is too far ahead of the start of the validity window ($NotBefore). Margin of error: " . IC_VALIDITY_WINDOW . " seconds.";147 $error = "Adjusted current time ($adjustedTimeText) is too far ahead of the start of the validity window ($NotBefore). Margin of error: " . PW_VALIDITY_WINDOW . " seconds."; 148 148 break; 149 149 } … … 153 153 if ($adjustedTimeText > $NotOnOrAfter){ 154 154 $error = "Adjusted current time ($adjustedTimeText) is after 155 the end of validity window ($NotOnOrAfter). Margin of error: " . IC_VALIDITY_WINDOW . " seconds.";155 the end of validity window ($NotOnOrAfter). Margin of error: " . PW_VALIDITY_WINDOW . " seconds."; 156 156 break; 157 157 } trunk/wp-infocard/processing/infocard-post.php
r26 r29 7 7 include_once("infocard-post-decrypt.php"); 8 8 include_once("infocard-post-get-claims.php"); 9 include_once( dirname(__FILE__) . "/../class.infocard-basic.php");10 9 include_once("class.infocard-processing.php"); 11 10 if (version_compare($wp_version, '2.1', '>=')) … … 21 20 $token = ""; 22 21 23 if ( IC_DEBUG_ON){22 if (PW_DEBUG_ON){ 24 23 // Need to turn on output buffering, otherwise the cookies set later on 25 24 // will break because the headers have already been sent due to all the debug output. … … 71 70 } 72 71 73 if ( IC_DEBUG_ON){72 if (PW_DEBUG_ON){ 74 73 $debug_statement = ""; 75 74 foreach ($claims as $key => $value){ … … 105 104 case "new-card": 106 105 $accountValidationRequired = TRUE; 107 $relocationUrl = IC_SITEMESGURL . '?new-card';106 $relocationUrl = PW_SITEMESGURL . '?new-card'; 108 107 break; 109 108 110 109 case "new-email": 111 110 $accountValidationRequired = TRUE; 112 $relocationUrl = IC_SITEMESGURL . '?new-email';111 $relocationUrl = PW_SITEMESGURL . '?new-email'; 113 112 114 113 // user_row is empty because the email address couldn't … … 141 140 // 142 141 $accountValidationRequired = TRUE; 143 $relocationUrl = IC_SITEMESGURL . '?new-user';142 $relocationUrl = PW_SITEMESGURL . '?new-user'; 144 143 145 144 $user_ID = InfocardProcessing::createNewAccount($user_email, $modulusHash, $user_email, $user_nicename, $user_url, $user_firstname, $user_lastname ); … … 185 184 $accountValidationRequired = FALSE; 186 185 InfocardUtils::printDebug(" Account validation has succeeded <br>"); 187 $relocationUrl = IC_SITEMESGURL . '?clickback-success';186 $relocationUrl = PW_SITEMESGURL . '?clickback-success'; 188 187 $incominguser['status'] = 'clickback-success'; 189 188 } … … 219 218 { 220 219 221 if ( IC_DEBUG_ON)220 if (PW_DEBUG_ON) 222 221 { 223 222 // flush the output buffer to a file … … 245 244 if (array_key_exists("clickback", $_POST)){ 246 245 // show confirmation of clickback success 247 $relocationUrl = IC_SITEMESGURL . '?clickback-success';246 $relocationUrl = PW_SITEMESGURL . '?clickback-success'; 248 247 } else { 249 248 $relocationUrl = urldecode($_SERVER['QUERY_STRING']); … … 266 265 else 267 266 { 268 if ( IC_DEBUG_ON)267 if (PW_DEBUG_ON) 269 268 { 270 269 $debug_statement = "HTTP Cookie After Authentication:<br/>"; trunk/wp-infocard/wp-infocard-settings.php
r27 r29 14 14 define ('IC_TRACINGDIR', '/tmp/tracingdir'); 15 15 define ('IC_USE_WP_THEMES', true); 16 define ('IC_DEBUG_ON', false);16 define ('IC_DEBUG_ON', true); 17 17 define ('IC_CLICKBACK_LENGTH', 16); 18 18 define ('IC_VALIDITY_WINDOW', 300); trunk/wp-infocard/wp-infocard.php
r28 r29 8 8 Author URI: http://www.pamelaproject.com/wp-infocard/contributors 9 9 */ 10 include_once( 'wp-infocard-settings.php' );11 include_once( 'class.infocard-basic.php' );10 include_once( dirname(__FILE__) . '/pw-config.php' ); 11 include_once( dirname(__FILE__) . '/' . PW_PLUGIN . '/admin.pw.php' ); 12 12 13 13 // Protect the script from direct access … … 17 17 } 18 18 19 class wp_infocard { 20 21 // Function: wp_infocard 22 // Description: Constructor -- Set things up. 23 // Input: none 24 // Output: none 25 // Side effect: initializes some parameters 26 function wp_infocard() { 27 global $table_prefix; 28 29 // We use a bunch of tables to store data 30 //$this->table_audit` = $table_prefix . "audit"; 31 $this->table_audit = "infocard_audit"; 32 33 // We also use some tables from Wordpress default set 34 $this->table_options = $table_prefix . "options"; 35 $this->table_users = $table_prefix . "users"; 36 $this->table_usermeta = $table_prefix . "usermeta"; 37 38 } 39 // end wp_infocard 40 41 // Function: createAuditTable 42 // Description: Create audit table 43 // Input: none 44 // Output: boolean to detect if table was created 45 // Side effect: executes SQL code to create DB tables needed by the plugin 46 function _createAuditTable() { 47 global $wpdb; 48 49 $myTableAuditQuery = 50 "CREATE TABLE `$this->table_audit` ( 51 `modulusHash` varchar(40) NOT NULL default '', 52 `email` varchar(128) NOT NULL default '', 53 `time` datetime NOT NULL default '0000-00-00 00:00:00', 54 `IP` varchar(16) NOT NULL default '', 55 `status` varchar(128) NOT NULL default '' 56 ) ENGINE = MYISAM"; 57 58 // Check if table is already there 59 foreach ($wpdb->get_col("SHOW TABLES", 0) as $table ) { 60 if ($table == $this->table_audit) { 61 return false; 62 } 63 } 64 65 // Ok, let's proceed 66 if ( $wpdb->query( $myTableAuditQuery ) === false ) { 67 return false; 68 } 69 70 // Just to be sure, we check that tables were actually created 71 foreach ( $wpdb->get_col("SHOW TABLES", 0) as $table ) { 72 if ( $table == $this->table_audit ) { 73 return true; 74 } 75 } 76 return false; 77 } 78 // end createAuditTable 79 80 81 // Function: setup 82 // Description: Create tables, if they aren't already there. 83 // Input: none 84 // Output: none 85 // Side effect: creates tables 86 function setup() { 87 global $wpdb; 88 89 $isAuditTableCreated = $this->_createAuditTable(); 90 91 } 92 // end setup 93 94 95 96 // Function: getModule 97 // Description: renders a module (div wrapper) 98 // Input: title of module, titles of table columns, queries (array of), 99 // value format (kind of sprintf style), a boolean to 100 // show a "wide" (CSS) module or not, a boolean to show link to resource, 101 // a boolean to wrap or not table inside a DIV (used for public views) 102 // Output: html code to display 103 // Side effect: none 104 function getModule( $title, $table_titles, 105 $query_array, $descr_link_format, 106 $value_format, $filter_clause = '', 107 $is_wide = false, $show_link_resource = false, 108 $is_public = false ) { 109 return ( ( !$is_public ) ? ' 110 <div class="module'.($is_wide?'wide':'').'"> 111 <h3>'.$title.'</h3> 112 <div>' : '' ) . 113 $this->getDataTable( $query_array, $table_titles, 114 $show_link_resource, $descr_link_format, 115 $value_format, $filter_clause ) . 116 ( ( !$is_public ) ? '</div> 117 </div>' : '' ); 118 } 119 // end getModule 120 121 // Function: showOptions 122 // Description: setup options for the plugin 123 // Input: none 124 // Output: none 125 // Side effect: prints out the HTML code for the "options" panel 126 function showOptions() { 127 __('An old database structure was detected. Please run Config -> Upgrade DB.', 'wp-infocard'); 128 } 129 // end showOptions 130 131 } 132 // end of class declaration 133 134 $wpInfocard = new wp_infocard(); 19 $wpInfocard = new pw_admin(); 135 20 136 21 // Define when we want to run the tracking: on shutdown (see wordpress codex) … … 144 29 } 145 30 146 //if the infocard_opener is already set, don't overwrite it.147 //otherwise, set the value.148 $options = get_option('infocard_opener');149 if ( !$options )150 $options = '';151 update_option('infocard_opener', $options);152 153 //if the infocard_key is already set, don't overwrite it.154 //otherwise, set the value.155 $options = get_option('infocard_key');156 if ( !$options )157 $options = 'insert private SSL key here';158 update_option('infocard_key', $options);159 160 // add a 'securesiteurl' option. This is added because161 // otherwise we need to replace "http" with "https" in the162 // siteurl a million times each time we log in, and this163 // seems to be more performant.164 $regular_url = get_option('siteurl');165 $https_url = get_option('securesiteurl');166 if ( !$https_url ) {167 $https_url = "https" . substr($regular_url, 4);168 }169 update_option('securesiteurl', $https_url);170 31 171 32 function infocard_admin_menu() … … 187 48 } 188 49 189 function create_clickback_salt() {190 // this functionality was originally in infocard-post.php191 // but Pam moved it here192 list($usec, $sec) = explode(' ', microtime());193 srand((float) $sec + ((float) $usec * 100000));194 195 $binary = "";196 for ($count=0; $count < 256; $count++){197 $binary = $binary.pack('S', rand());198 }199 return bin2hex($binary);200 }201 50 202 51 function infocard_options() { 203 52 // Content shown in the Options page is constructed here 204 $ic_opener = $new_opener = get_option('infocard_opener'); 205 $ic_key = $new_key = get_option('infocard_key'); 206 $secureurl = $new_secureurl = get_option('securesiteurl'); 207 $clickback_salt = get_option('clickback_salt'); 53 $ic_opener = $new_opener = get_option('pw_infocard_opener'); 54 $ic_key = $new_key = get_option('pw_infocard_key'); 55 $secureurl = $new_secureurl = get_option('pw_securesiteurl'); 208 56 $ic_secret = get_option('secret'); 209 57 … … 215 63 } 216 64 if ( $ic_opener != $new_opener ){ 217 update_option(' infocard_opener', $new_opener);65 update_option('pw_infocard_opener', $new_opener); 218 66 } 219 67 220 68 if ( $ic_key != $new_key ){ 221 update_option(' infocard_key', $new_key);69 update_option('pw_infocard_key', $new_key); 222 70 } 223 71 224 72 if ( $secureurl != $new_secureurl ){ 225 update_option(' securesiteurl', $new_secureurl );73 update_option('pw_securesiteurl', $new_secureurl ); 226 74 } 227 75 228 if (!$clickback_salt) {229 // this should only happen once230 $salt = create_clickback_salt();231 update_option('clickback_salt', $salt );232 }233 234 76 235 77 $openssl_loaded = extension_loaded("openssl"); 236 78 $mcrypt_loaded = extension_loaded("mcrypt"); 237 79 if ($openssl_loaded) { 238 $key_works = InfocardUtils::verifyGivenCerts();80 $key_works = pw_admin::verifyGivenCerts(); 239 81 } 240 82 ?> … … 274 116 <?php _e('SSL Connection to Secure Site URL Works', 'wp-infocard'); ?> 275 117 </td><td valign="bottom"> 276 <img src="<?php print checklist_icon( InfocardUtils::testSSLURL($new_secureurl)); ?>"/>118 <img src="<?php print checklist_icon(pw_admin::verifySSLURL($new_secureurl)); ?>"/> 277 119 <a href="help/help.php?topic=cert"><?php _e('More Information', 'wp-infocard');?></a> 278 120 </td></tr> … … 330 172 <?php _e('Advanced Certificate Check', 'wp-infocard'); ?> 331 173 </td><td valign="bottom"> 332 <?php InfocardUtils::advancedCertTest(IC_IMGURL); ?>174 <?php //pw_admin::advancedCertTest(IC_IMGURL); ?> 333 175 <br/> <a href="help/help.php?topic=advancedcerttest"><?php _e('More Information', 'wp-infocard');?></a> 334 176 </td></tr>
