paste.xcode.ro » ~/paste/1041

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