X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/9c40b4d36daed9e28e48a5fe9205c32557195a4b..2394dc71e94f8323dc422e89f9841959de78d328:/wp-app.php
diff --git a/wp-app.php b/wp-app.php
index 0ada250e..323f832a 100644
--- a/wp-app.php
+++ b/wp-app.php
@@ -2,8 +2,6 @@
/**
* Atom Publishing Protocol support for WordPress
*
- * @author Original by Elias Torres
- * @author Modified by Dougal Campbell
* @version 1.0.5-dc
*/
@@ -17,15 +15,9 @@ define('APP_REQUEST', true);
/** Set up WordPress environment */
require_once('./wp-load.php');
-/** Post Template API */
-require_once(ABSPATH . WPINC . '/post-template.php');
-
/** Atom Publishing Protocol Class */
require_once(ABSPATH . WPINC . '/atomlib.php');
-/** Feed Handling API */
-require_once(ABSPATH . WPINC . '/feed.php');
-
/** Admin Image API for metadata updating */
require_once(ABSPATH . '/wp-admin/includes/image.php');
@@ -69,22 +61,6 @@ function log_app($label,$msg) {
}
}
-if ( !function_exists('wp_set_current_user') ) :
-/**
- * @ignore
- */
-function wp_set_current_user($id, $name = '') {
- global $current_user;
-
- if ( isset($current_user) && ($id == $current_user->ID) )
- return $current_user;
-
- $current_user = new WP_User($id, $name);
-
- return $current_user;
-}
-endif;
-
/**
* Filter to add more post statuses.
*
@@ -240,18 +216,16 @@ class AtomServer {
var $do_output = true;
/**
- * PHP4 constructor - Sets up object properties.
+ * Constructor - Sets up object properties.
*
* @since 2.2.0
* @return AtomServer
*/
- function AtomServer() {
+ function __construct() {
- $this->script_name = array_pop(explode('/',$_SERVER['SCRIPT_NAME']));
- $this->app_base = get_bloginfo('url') . '/' . $this->script_name . '/';
- if ( isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on' ) {
- $this->app_base = preg_replace( '/^http:\/\//', 'https://', $this->app_base );
- }
+ $var_by_ref = explode( '/', $_SERVER['SCRIPT_NAME'] );
+ $this->script_name = array_pop( $var_by_ref );
+ $this->app_base = site_url( $this->script_name . '/' );
$this->selectors = array(
'@/service$@' =>
@@ -287,7 +261,7 @@ class AtomServer {
function handle_request() {
global $always_authenticate;
- if( !empty( $_SERVER['ORIG_PATH_INFO'] ) )
+ if ( !empty( $_SERVER['ORIG_PATH_INFO'] ) )
$path = $_SERVER['ORIG_PATH_INFO'];
else
$path = $_SERVER['PATH_INFO'];
@@ -300,40 +274,38 @@ class AtomServer {
//$this->process_conditionals();
// exception case for HEAD (treat exactly as GET, but don't output)
- if($method == 'HEAD') {
+ if ($method == 'HEAD') {
$this->do_output = false;
$method = 'GET';
}
// redirect to /service in case no path is found.
- if(strlen($path) == 0 || $path == '/') {
+ if (strlen($path) == 0 || $path == '/')
$this->redirect($this->get_service_url());
- }
// check to see if AtomPub is enabled
- if( !get_option( 'enable_app' ) )
- $this->forbidden( sprintf( __( 'AtomPub services are disabled on this blog. An admin user can enable them at %s' ), admin_url('options-writing.php') ) );
+ if ( !get_option( 'enable_app' ) )
+ $this->forbidden( sprintf( __( 'AtomPub services are disabled on this site. An admin user can enable them at %s' ), admin_url('options-writing.php') ) );
// dispatch
- foreach($this->selectors as $regex => $funcs) {
- if(preg_match($regex, $path, $matches)) {
- if(isset($funcs[$method])) {
-
- // authenticate regardless of the operation and set the current
- // user. each handler will decide if auth is required or not.
- if(!$this->authenticate()) {
- if ($always_authenticate) {
- $this->auth_required('Credentials required.');
+ foreach ( $this->selectors as $regex => $funcs ) {
+ if ( preg_match($regex, $path, $matches) ) {
+ if ( isset($funcs[$method]) ) {
+
+ // authenticate regardless of the operation and set the current
+ // user. each handler will decide if auth is required or not.
+ if ( !$this->authenticate() ) {
+ if ( $always_authenticate )
+ $this->auth_required('Credentials required.');
}
- }
- array_shift($matches);
- call_user_func_array(array(&$this,$funcs[$method]), $matches);
- exit();
- } else {
- // only allow what we have handlers for...
- $this->not_allowed(array_keys($funcs));
- }
+ array_shift($matches);
+ call_user_func_array(array(&$this,$funcs[$method]), $matches);
+ exit();
+ } else {
+ // only allow what we have handlers for...
+ $this->not_allowed(array_keys($funcs));
+ }
}
}
@@ -349,17 +321,18 @@ class AtomServer {
function get_service() {
log_app('function','get_service()');
- if( !current_user_can( 'edit_posts' ) )
- $this->auth_required( __( 'Sorry, you do not have the right to access this blog.' ) );
+ if ( !current_user_can( 'edit_posts' ) )
+ $this->auth_required( __( 'Sorry, you do not have the right to access this site.' ) );
$entries_url = esc_attr($this->get_entries_url());
$categories_url = esc_attr($this->get_categories_url());
$media_url = esc_attr($this->get_attachments_url());
+ $accepted_media_types = '';
foreach ($this->media_content_types as $med) {
$accepted_media_types = $accepted_media_types . "" . $med . "";
}
$atom_prefix="atom";
- $atom_blogname=get_bloginfo('name');
+ $atom_blogname = get_bloginfo('name');
$service_doc = <<ATOM_NS">
@@ -389,16 +362,16 @@ EOD;
function get_categories_xml() {
log_app('function','get_categories_xml()');
- if( !current_user_can( 'edit_posts' ) )
- $this->auth_required( __( 'Sorry, you do not have the right to access this blog.' ) );
+ if ( !current_user_can( 'edit_posts' ) )
+ $this->auth_required( __( 'Sorry, you do not have the right to access this site.' ) );
- $home = esc_attr(get_bloginfo_rss('home'));
+ $home = esc_attr(get_bloginfo_rss('url'));
$categories = "";
- $cats = get_categories("hierarchical=0&hide_empty=0");
- foreach ((array) $cats as $cat) {
+ $cats = get_categories(array('hierarchical' => 0, 'hide_empty' => 0));
+ foreach ( (array) $cats as $cat ) {
$categories .= " name) . "\" />\n";
-}
+ }
$output = <<
EOD;
- $this->output($output, $this->CATEGORIES_CONTENT_TYPE);
-}
+ $this->output($output, $this->CATEGORIES_CONTENT_TYPE);
+ }
/**
* Create new post.
@@ -415,39 +388,39 @@ EOD;
* @since 2.2.0
*/
function create_post() {
- global $blog_id, $user_ID;
+ global $user_ID;
$this->get_accepted_content_type($this->atom_content_types);
$parser = new AtomParser();
- if(!$parser->parse()) {
+ if ( !$parser->parse() )
$this->client_error();
- }
$entry = array_pop($parser->feed->entries);
log_app('Received entry:', print_r($entry,true));
$catnames = array();
- foreach($entry->categories as $cat)
+ foreach ( $entry->categories as $cat ) {
array_push($catnames, $cat["term"]);
+ }
$wp_cats = get_categories(array('hide_empty' => false));
$post_category = array();
- foreach($wp_cats as $cat) {
- if(in_array($cat->name, $catnames))
+ foreach ( $wp_cats as $cat ) {
+ if ( in_array($cat->name, $catnames) )
array_push($post_category, $cat->term_id);
}
- $publish = (isset($entry->draft) && trim($entry->draft) == 'yes') ? false : true;
+ $publish = ! ( isset( $entry->draft ) && 'yes' == trim( $entry->draft ) );
$cap = ($publish) ? 'publish_posts' : 'edit_posts';
- if(!current_user_can($cap))
+ if ( !current_user_can($cap) )
$this->auth_required(__('Sorry, you do not have the right to edit/publish new posts.'));
- $blog_ID = (int ) $blog_id;
+ $blog_ID = get_current_blog_id();
$post_status = ($publish) ? 'publish' : 'draft';
$post_author = (int) $user_ID;
$post_title = $entry->title[1];
@@ -469,7 +442,7 @@ EOD;
if ( is_wp_error( $postID ) )
$this->internal_error($postID->get_error_message());
- if (!$postID)
+ if ( !$postID )
$this->internal_error(__('Sorry, your entry could not be posted. Something wrong happened.'));
// getting warning here about unable to set headers
@@ -496,7 +469,7 @@ EOD;
function get_post($postID) {
global $entry;
- if( !current_user_can( 'edit_post', $postID ) )
+ if ( !current_user_can( 'edit_post', $postID ) )
$this->auth_required( __( 'Sorry, you do not have the right to access this post.' ) );
$this->set_current_entry($postID);
@@ -519,9 +492,8 @@ EOD;
$this->get_accepted_content_type($this->atom_content_types);
$parser = new AtomParser();
- if(!$parser->parse()) {
+ if ( !$parser->parse() )
$this->bad_request();
- }
$parsed = array_pop($parser->feed->entries);
@@ -531,10 +503,10 @@ EOD;
global $entry;
$this->set_current_entry($postID);
- if(!current_user_can('edit_post', $entry['ID']))
+ if ( !current_user_can('edit_post', $entry['ID']) )
$this->auth_required(__('Sorry, you do not have the right to edit this post.'));
- $publish = (isset($parsed->draft) && trim($parsed->draft) == 'yes') ? false : true;
+ $publish = ! ( isset($parsed->draft) && 'yes' == trim($parsed->draft) );
$post_status = ($publish) ? 'publish' : 'draft';
extract($entry);
@@ -554,9 +526,8 @@ EOD;
$result = wp_update_post($postdata);
- if (!$result) {
+ if ( !$result )
$this->internal_error(__('For some strange yet very annoying reason, this post could not be edited.'));
- }
do_action( 'atompub_put_post', $ID, $parsed );
@@ -577,16 +548,15 @@ EOD;
global $entry;
$this->set_current_entry($postID);
- if(!current_user_can('edit_post', $postID)) {
+ if ( !current_user_can('edit_post', $postID) )
$this->auth_required(__('Sorry, you do not have the right to delete this post.'));
- }
- if ($entry['post_type'] == 'attachment') {
+ if ( $entry['post_type'] == 'attachment' ) {
$this->delete_attachment($postID);
} else {
$result = wp_delete_post($postID);
- if (!$result) {
+ if ( !$result ) {
$this->internal_error(__('For some strange yet very annoying reason, this post could not be deleted.'));
}
@@ -604,10 +574,10 @@ EOD;
* @param int $postID Optional. Post ID.
*/
function get_attachment($postID = null) {
- if( !current_user_can( 'upload_files' ) )
+ if ( !current_user_can( 'upload_files' ) )
$this->auth_required( __( 'Sorry, you do not have permission to upload files.' ) );
- if (!isset($postID)) {
+ if ( !isset($postID) ) {
$this->get_attachments();
} else {
$this->set_current_entry($postID);
@@ -626,25 +596,25 @@ EOD;
$type = $this->get_accepted_content_type();
- if(!current_user_can('upload_files'))
+ if ( !current_user_can('upload_files') )
$this->auth_required(__('You do not have permission to upload files.'));
$fp = fopen("php://input", "rb");
$bits = null;
- while(!feof($fp)) {
+ while ( !feof($fp) ) {
$bits .= fread($fp, 4096);
}
fclose($fp);
$slug = '';
if ( isset( $_SERVER['HTTP_SLUG'] ) )
- $slug = sanitize_file_name( $_SERVER['HTTP_SLUG'] );
+ $slug = $_SERVER['HTTP_SLUG'];
elseif ( isset( $_SERVER['HTTP_TITLE'] ) )
- $slug = sanitize_file_name( $_SERVER['HTTP_TITLE'] );
+ $slug = $_SERVER['HTTP_TITLE'];
elseif ( empty( $slug ) ) // just make a random name
$slug = substr( md5( uniqid( microtime() ) ), 0, 7);
$ext = preg_replace( '|.*/([a-z0-9]+)|', '$1', $_SERVER['CONTENT_TYPE'] );
- $slug = "$slug.$ext";
+ $slug = sanitize_file_name( "$slug.$ext" );
$file = wp_upload_bits( $slug, NULL, $bits);
log_app('wp_upload_bits returns:',print_r($file,true));
@@ -689,7 +659,7 @@ EOD;
$this->get_accepted_content_type($this->atom_content_types);
$parser = new AtomParser();
- if(!$parser->parse()) {
+ if (!$parser->parse()) {
$this->bad_request();
}
@@ -699,7 +669,7 @@ EOD;
global $entry;
$this->set_current_entry($postID);
- if(!current_user_can('edit_post', $entry['ID']))
+ if ( !current_user_can('edit_post', $entry['ID']) )
$this->auth_required(__('Sorry, you do not have the right to edit this post.'));
extract($entry);
@@ -715,9 +685,8 @@ EOD;
$result = wp_update_post($postdata);
- if (!$result) {
+ if ( !$result )
$this->internal_error(__('For some strange yet very annoying reason, this post could not be edited.'));
- }
log_app('function',"put_attachment($postID)");
$this->ok();
@@ -737,15 +706,14 @@ EOD;
global $entry;
$this->set_current_entry($postID);
- if(!current_user_can('edit_post', $postID)) {
+ if ( !current_user_can('edit_post', $postID) )
$this->auth_required(__('Sorry, you do not have the right to delete this post.'));
- }
$location = get_post_meta($entry['ID'], '_wp_attached_file', true);
$filetype = wp_check_filetype($location);
- if(!isset($location) || 'attachment' != $entry['post_type'] || empty($filetype['ext']))
- $this->internal_error(__('Error ocurred while accessing post metadata for file location.'));
+ if ( !isset($location) || 'attachment' != $entry['post_type'] || empty($filetype['ext']) )
+ $this->internal_error(__('Error occurred while accessing post metadata for file location.'));
// delete file
@unlink($location);
@@ -753,9 +721,8 @@ EOD;
// delete attachment
$result = wp_delete_post($postID);
- if (!$result) {
+ if ( !$result )
$this->internal_error(__('For some strange yet very annoying reason, this post could not be deleted.'));
- }
log_app('function',"delete_attachment($postID). File '$location' deleted.");
$this->ok();
@@ -775,25 +742,33 @@ EOD;
$this->set_current_entry($postID);
// then whether user can edit the specific post
- if(!current_user_can('edit_post', $postID)) {
+ if ( !current_user_can('edit_post', $postID) )
$this->auth_required(__('Sorry, you do not have the right to edit this post.'));
- }
$location = get_post_meta($entry['ID'], '_wp_attached_file', true);
+ $location = get_option ('upload_path') . '/' . $location;
$filetype = wp_check_filetype($location);
- if(!isset($location) || 'attachment' != $entry['post_type'] || empty($filetype['ext']))
- $this->internal_error(__('Error ocurred while accessing post metadata for file location.'));
+ if ( !isset($location) || 'attachment' != $entry['post_type'] || empty($filetype['ext']) )
+ $this->internal_error(__('Error occurred while accessing post metadata for file location.'));
status_header('200');
header('Content-Type: ' . $entry['post_mime_type']);
header('Connection: close');
- $fp = fopen($location, "rb");
- while(!feof($fp)) {
- echo fread($fp, 4096);
+ if ( $fp = fopen($location, "rb") ) {
+ status_header('200');
+ header('Content-Type: ' . $entry['post_mime_type']);
+ header('Connection: close');
+
+ while ( !feof($fp) ) {
+ echo fread($fp, 4096);
+ }
+
+ fclose($fp);
+ } else {
+ status_header ('404');
}
- fclose($fp);
log_app('function',"get_file($postID)");
exit;
@@ -809,7 +784,7 @@ EOD;
function put_file($postID) {
// first check if user can upload
- if(!current_user_can('upload_files'))
+ if ( !current_user_can('upload_files') )
$this->auth_required(__('You do not have permission to upload files.'));
// check for not found
@@ -817,9 +792,8 @@ EOD;
$this->set_current_entry($postID);
// then whether user can edit the specific post
- if(!current_user_can('edit_post', $postID)) {
+ if ( !current_user_can('edit_post', $postID) )
$this->auth_required(__('Sorry, you do not have the right to edit this post.'));
- }
$upload_dir = wp_upload_dir( );
$location = get_post_meta($entry['ID'], '_wp_attached_file', true);
@@ -827,12 +801,12 @@ EOD;
$location = "{$upload_dir['basedir']}/{$location}";
- if(!isset($location) || 'attachment' != $entry['post_type'] || empty($filetype['ext']))
- $this->internal_error(__('Error ocurred while accessing post metadata for file location.'));
+ if (!isset($location) || 'attachment' != $entry['post_type'] || empty($filetype['ext']))
+ $this->internal_error(__('Error occurred while accessing post metadata for file location.'));
$fp = fopen("php://input", "rb");
$localfp = fopen($location, "w+");
- while(!feof($fp)) {
+ while ( !feof($fp) ) {
fwrite($localfp,fread($fp, 4096));
}
fclose($fp);
@@ -849,9 +823,8 @@ EOD;
$post_data = compact('ID', 'post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt');
$result = wp_update_post($post_data);
- if (!$result) {
+ if ( !$result )
$this->internal_error(__('Sorry, your entry could not be posted. Something wrong happened.'));
- }
wp_update_attachment_metadata( $postID, wp_generate_attachment_metadata( $postID, $location ) );
@@ -868,15 +841,13 @@ EOD;
* @return string
*/
function get_entries_url($page = null) {
- if($GLOBALS['post_type'] == 'attachment') {
+ if ( isset($GLOBALS['post_type']) && ( $GLOBALS['post_type'] == 'attachment' ) )
$path = $this->MEDIA_PATH;
- } else {
+ else
$path = $this->ENTRIES_PATH;
- }
$url = $this->app_base . $path;
- if(isset($page) && is_int($page)) {
+ if ( isset($page) && is_int($page) )
$url .= "/$page";
- }
return $url;
}
@@ -896,10 +867,12 @@ EOD;
*
* @since 2.2.0
*
- * @param mixed $deprecated Optional, not used.
+ * @param mixed $deprecated Not used.
* @return string
*/
function get_categories_url($deprecated = '') {
+ if ( !empty( $deprecated ) )
+ _deprecated_argument( __FUNCTION__, '2.5' );
return $this->app_base . $this->CATEGORIES_PATH;
}
@@ -922,7 +895,7 @@ EOD;
*/
function get_attachments_url($page = null) {
$url = $this->app_base . $this->MEDIA_PATH;
- if(isset($page) && is_int($page)) {
+ if (isset($page) && is_int($page)) {
$url .= "/$page";
}
return $url;
@@ -959,7 +932,7 @@ EOD;
* @return string
*/
function get_entry_url($postID = null) {
- if(!isset($postID)) {
+ if (!isset($postID)) {
global $post;
$postID = (int) $post->ID;
}
@@ -990,7 +963,7 @@ EOD;
* @return string
*/
function get_media_url($postID = null) {
- if(!isset($postID)) {
+ if (!isset($postID)) {
global $post;
$postID = (int) $post->ID;
}
@@ -1023,14 +996,14 @@ EOD;
global $entry;
log_app('function',"set_current_entry($postID)");
- if(!isset($postID)) {
+ if (!isset($postID)) {
// $this->bad_request();
$this->not_found();
}
$entry = wp_get_single_post($postID,ARRAY_A);
- if(!isset($entry) || !isset($entry['ID']))
+ if (!isset($entry) || !isset($entry['ID']))
$this->not_found();
return;
@@ -1081,7 +1054,7 @@ EOD;
$this->ENTRY_PATH = $post_type;
- if(!isset($page)) {
+ if (!isset($page)) {
$page = 1;
}
$page = (int) $page;
@@ -1104,22 +1077,22 @@ EOD;
$prev_page = ($page - 1) < 1 ? NULL : $page - 1;
$last_page = ((int)$last_page == 1 || (int)$last_page == 0) ? NULL : (int) $last_page;
$self_page = $page > 1 ? $page : NULL;
-?>
+?> >
the_entries_url() ?>
-
+
-
+
Copyright
-
+
- ID); ?>
+ ID ); ?>
@@ -1193,9 +1166,9 @@ EOD;
-post_type == 'attachment') { ?>
+post_type == 'attachment') { ?>
-
+
post_content ) ) :
@@ -1207,6 +1180,7 @@ list($content_type, $content) = prep_atom_text_construct(get_the_content()); ?>
+
log_app('Status','204: No Content');
header('Content-Type: text/plain');
status_header('204');
- echo "Deleted.";
+ echo "Moved to Trash.";
exit;
}
@@ -1385,7 +1359,7 @@ EOD;
break;
}
header("Content-Type: $this->ATOM_CONTENT_TYPE");
- if(isset($ctloc))
+ if (isset($ctloc))
header('Content-Location: ' . $ctloc);
header('Location: ' . $edit);
status_header('201');
@@ -1440,7 +1414,7 @@ EOD;
header('Content-Type: ' . $ctype);
header('Content-Disposition: attachment; filename=atom.xml');
header('Date: '. date('r'));
- if($this->do_output)
+ if ($this->do_output)
echo $xml;
log_app('function', "output:\n$xml");
exit;
@@ -1479,7 +1453,7 @@ EOD;
// if using mod_rewrite/ENV hack
// http://www.besthostratings.com/articles/http-auth-php-cgi.html
- if(isset($_SERVER['HTTP_AUTHORIZATION'])) {
+ if (isset($_SERVER['HTTP_AUTHORIZATION'])) {
list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) =
explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
} else if (isset($_SERVER['REDIRECT_REMOTE_USER'])) {
@@ -1490,15 +1464,15 @@ EOD;
}
// If Basic Auth is working...
- if(isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
+ if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
log_app("Basic Auth",$_SERVER['PHP_AUTH_USER']);
- }
- $user = wp_authenticate($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']);
- if ( $user && !is_wp_error($user) ) {
- wp_set_current_user($user->ID);
- log_app("authenticate()", $user->user_login);
- return true;
+ $user = wp_authenticate($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']);
+ if ( $user && !is_wp_error($user) ) {
+ wp_set_current_user($user->ID);
+ log_app("authenticate()", $user->user_login);
+ return true;
+ }
}
return false;
@@ -1514,11 +1488,11 @@ EOD;
*/
function get_accepted_content_type($types = null) {
- if(!isset($types)) {
+ if (!isset($types)) {
$types = $this->media_content_types;
}
- if(!isset($_SERVER['CONTENT_LENGTH']) || !isset($_SERVER['CONTENT_TYPE'])) {
+ if (!isset($_SERVER['CONTENT_LENGTH']) || !isset($_SERVER['CONTENT_TYPE'])) {
$this->length_required();
}
@@ -1529,8 +1503,8 @@ EOD;
foreach($types as $t) {
list($acceptedType,$acceptedSubtype) = explode('/',$t);
- if($acceptedType == '*' || $acceptedType == $type) {
- if($acceptedSubtype == '*' || $acceptedSubtype == $subtype)
+ if ($acceptedType == '*' || $acceptedType == $type) {
+ if ($acceptedSubtype == '*' || $acceptedSubtype == $subtype)
return $type . "/" . $subtype;
}
}
@@ -1545,8 +1519,8 @@ EOD;
*/
function process_conditionals() {
- if(empty($this->params)) return;
- if($_SERVER['REQUEST_METHOD'] == 'DELETE') return;
+ if (empty($this->params)) return;
+ if ($_SERVER['REQUEST_METHOD'] == 'DELETE') return;
switch($this->params[0]) {
case $this->ENTRY_PATH:
@@ -1597,11 +1571,11 @@ EOD;
function rfc3339_str2time($str) {
$match = false;
- if(!preg_match("/(\d{4}-\d{2}-\d{2})T(\d{2}\:\d{2}\:\d{2})\.?\d{0,3}(Z|[+-]+\d{2}\:\d{2})/", $str, $match))
+ if (!preg_match("/(\d{4}-\d{2}-\d{2})T(\d{2}\:\d{2}\:\d{2})\.?\d{0,3}(Z|[+-]+\d{2}\:\d{2})/", $str, $match))
return false;
- if($match[3] == 'Z')
- $match[3] == '+0000';
+ if ($match[3] == 'Z')
+ $match[3] = '+0000';
return strtotime($match[1] . " " . $match[2] . " " . $match[3]);
}
@@ -1618,7 +1592,7 @@ EOD;
$pubtime = $this->rfc3339_str2time($published);
- if(!$pubtime) {
+ if (!$pubtime) {
return array(current_time('mysql'),current_time('mysql',1));
} else {
return array(date("Y-m-d H:i:s", $pubtime), gmdate("Y-m-d H:i:s", $pubtime));