[ XREF Home ] [ Index ]

PHP Cross Reference of WordPress Trunk

Provided by Yoast

title

Body

[close]

/wp-includes/ -> class-feed.php (source)

   1  <?php
   2  
   3  if ( !class_exists('SimplePie') )
   4      require_once (ABSPATH . WPINC . '/class-simplepie.php');
   5  
   6  class WP_Feed_Cache extends SimplePie_Cache {
   7      /**
   8       * Create a new SimplePie_Cache object
   9       *
  10       * @static
  11       * @access public
  12       */
  13  	function create($location, $filename, $extension) {
  14          return new WP_Feed_Cache_Transient($location, $filename, $extension);
  15      }
  16  }
  17  
  18  class WP_Feed_Cache_Transient {
  19      var $name;
  20      var $mod_name;
  21      var $lifetime = 43200; //Default lifetime in cache of 12 hours
  22  
  23  	function __construct($location, $filename, $extension) {
  24          $this->name = 'feed_' . $filename;
  25          $this->mod_name = 'feed_mod_' . $filename;
  26          $this->lifetime = apply_filters('wp_feed_cache_transient_lifetime', $this->lifetime, $filename);
  27      }
  28  
  29  	function save($data) {
  30          if ( is_a($data, 'SimplePie') )
  31              $data = $data->data;
  32  
  33          set_transient($this->name, $data, $this->lifetime);
  34          set_transient($this->mod_name, time(), $this->lifetime);
  35          return true;
  36      }
  37  
  38  	function load() {
  39          return get_transient($this->name);
  40      }
  41  
  42  	function mtime() {
  43          return get_transient($this->mod_name);
  44      }
  45  
  46  	function touch() {
  47          return set_transient($this->mod_name, time(), $this->lifetime);
  48      }
  49  
  50  	function unlink() {
  51          delete_transient($this->name);
  52          delete_transient($this->mod_name);
  53          return true;
  54      }
  55  }
  56  
  57  class WP_SimplePie_File extends SimplePie_File {
  58  
  59  	function __construct($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false) {
  60          $this->url = $url;
  61          $this->timeout = $timeout;
  62          $this->redirects = $redirects;
  63          $this->headers = $headers;
  64          $this->useragent = $useragent;
  65  
  66          $this->method = SIMPLEPIE_FILE_SOURCE_REMOTE;
  67  
  68          if ( preg_match('/^http(s)?:\/\//i', $url) ) {
  69              $args = array( 'timeout' => $this->timeout, 'redirection' => $this->redirects);
  70  
  71              if ( !empty($this->headers) )
  72                  $args['headers'] = $this->headers;
  73  
  74              if ( SIMPLEPIE_USERAGENT != $this->useragent ) //Use default WP user agent unless custom has been specified
  75                  $args['user-agent'] = $this->useragent;
  76  
  77              $res = wp_remote_request($url, $args);
  78  
  79              if ( is_wp_error($res) ) {
  80                  $this->error = 'WP HTTP Error: ' . $res->get_error_message();
  81                  $this->success = false;
  82              } else {
  83                  $this->headers = wp_remote_retrieve_headers( $res );
  84                  $this->body = wp_remote_retrieve_body( $res );
  85                  $this->status_code = wp_remote_retrieve_response_code( $res );
  86              }
  87          } else {
  88              if ( ! $this->body = file_get_contents($url) ) {
  89                  $this->error = 'file_get_contents could not read the file';
  90                  $this->success = false;
  91              }
  92          }
  93      }
  94  }


Generated: Wed Jun 1 08:30:02 2011 Cross-referenced by PHPXref 0.7
Provided by Yoast and awesome WordPress Hosting