paste.xcode.ro » ~/paste/1039

  1. <?php
  2. /*
  3.         myThem.es Theme Updater Class
  4.         http://updates.mythem.es/
  5.         v1.0
  6.        
  7.         Example Usage:
  8.        
  9.         include_once( 'mythemes_theme_updates.php' );
  10.         new myThemesThemeUpdates( basename( get_template_directory( ) ), 'rnwjfecqwjwl' );
  11.  
  12.  */
  13.  
  14. if( !class_exists( 'myThemesThemeUpdates' ) ) {
  15.         class myThemesThemeUpdates {
  16.                 var $version = '0.1';
  17.                 var $api_url = 'http://updates.mythem.es/api/1/theme/check';
  18.                
  19.                 var $key = '';
  20.                 var $slug = '';
  21.        
  22.                 function __construct( $theme_slug, $theme_key ) {
  23.                         $this->slug = $theme_slug;
  24.                         $this->key = $theme_key;
  25.                        
  26.                         add_filter( 'pre_set_site_transient_update_themes', array( &$this, 'check_for_update' ) );
  27.                
  28.                 // This is for testing only!
  29.                 set_site_transient( 'update_themes', null );
  30.                 }
  31.                
  32.                 function check_for_update( $trans ) {
  33.                         if( empty( $trans->checked ) )
  34.                                 return $trans;
  35.                                
  36.                         $request_args = array(
  37.                     'slug'              => $this->slug,
  38.                                 'key'           => $this->key,
  39.                         'version'       => $trans->checked[ $this->slug ]
  40.                 );
  41.                        
  42.                 $request_string = $this->prepare_request( 'theme_check', $request_args );
  43.                 $raw_response = wp_remote_post( $this->api_url, $request_string );
  44.                
  45.                 $response = null;
  46.                 if( !is_wp_error( $raw_response ) &&
  47.                                 ( $raw_response[ 'response' ][ 'code' ] == 200 ) )
  48.                         {
  49.                         $response = unserialize( $raw_response[ 'body' ] );
  50.                 }
  51.                        
  52.                 if( !empty( $response ) ) {
  53.                                 // Feed the update data into WP updater
  54.                         $trans->response[ $this->slug ] = $response;
  55.                         }
  56.                
  57.                 return $trans;
  58.                 }
  59.        
  60.                 function prepare_request( $action, $args ) {
  61.                         global $wp_version;
  62.                        
  63.                         return array(
  64.                                 'body' => array(
  65.                                         'action' => $action,
  66.                                         'request' => serialize( $args ),
  67.                                 ),
  68.                                 'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url( )
  69.                         );
  70.                 }
  71.         }
  72. }
  73.  
  74. ?>
Language: php
Posted by xxx at 19 Sep 2013, 11:21:31 Europe/Bucharest