Pastoid

The page you are looking at now is at this URL: http://pastoid.com/ays

This paste was last updated on May 29, 2009 at 9:22 am.

Pasted Coderaw

<?php
class SkippyFlickr extends Plugin
{
	private $flickr= null;
	private $api_key= null;
	private $person_id= null;
	private $photo= null;
 
	public function setup()
	{
		$this->api_key= Options::get( 'skippyflickr__api_key' );
		$this->person_id= Options::get( 'skippyflickr__person' );
	}
 
	function info()
	{
		return array(
			'name' => 'Skippy Flickr',
			'url' => 'http://skippy.net/',
			'author' => 'Scott Merrill',
			'authorurl' => 'http://skippy.net/',
			'version' => '1.2',
			'license' => 'Apache License 2.0',
			'description' => 'provides some Flickr functionality'
		);
	}
 
	public function action_plugin_activation( $file )
	{
		if ( realpath( $file ) == __FILE__ ) {
			CronTab::add_hourly_cron( 'skippyflickr', 'skippyflickr', 'Selects a couple random photos from Flickr based on tags used on the site' );
		}
	}
 
	function action_plugin_deactivation( $file )
	{
		if ( Plugins::id_from_file($file) == Plugins::id_from_file(__FILE__) ) {
			CronTab::delete_cronjob( 'skippyflickr' );
		}
	}
 
	public function filter_plugin_config( $actions, $plugin_id )
	{
		if ( $plugin_id == $this->plugin_id() ) {
			$actions[]= _t('Configure');
			$actions[]= _t('Refresh');
		}
		return $actions;
	}
 
	public function action_plugin_ui( $plugin_id, $action )
	{
		if ( $plugin_id == $this->plugin_id() ) {
			switch ( $action ) {
				case _t('Configure') :
					$ui = new FormUI( strtolower( get_class( $this ) ) );
					$api_key= $ui->append( 'text', 'api_key', 'skippyflickr__api_key', _t('API key: ') );
					$person= $ui->append( 'text', 'person', 'skippyflickr__person',  _t('Person ID: ' ) );
					// $ui->on_success( array( $this, 'updated_config' ) );
					$ui->append( 'submit', 'save', _t('Save') );
					$ui->out();
					break;
				case _t('Refresh') :
					$this->filter_skippyflickr();
					Utils::redirect( URL::get('admin', 'page=plugins') );
					break;
				}
			}
	}
 
	public function updated_config( $ui )
	{
		return true;
	}
 
	public function filter_dash_modules( $modules )
	{
		array_push( $modules, 'Skippy Flickr' );
		return $modules;
	}
 
	public function filter_dash_module_skippy_flickr( $module, $module_id, $theme )
	{
		$this->api_key= Options::get( 'skippyflickr__api_key' );
		$this->person_id= Options::get( 'skippyflickr__person' );
 
		$all_tags= Tags::get();
		$t= array();
		for ( $i= 0; $i < 3; $i++ ) {
			$rand= rand( 1, count( $all_tags ) );
			$tag= $all_tags[$rand];
			$t[]= urlencode($tag->tag);
		}
		$tags= implode( ',', $t );
 
 
		$request= new RemoteRequest( 'http://api.flickr.com/services/rest/?method=flickr.photos.search&format=rest&api_key=' . $this->api_key . '&user_id=' . $this->person_id . '&tags=' . $tags . '&sort=relevance&media=photos&per_page=1' );
		$request->set_timeout( 5 );
		$result= $request->execute();
		$response= $request->get_response_body();
		$xml= new SimpleXMLElement( $response );
		$photo=$xml->photos->photo;
		$photo= '<img src="http://farm' . $photo['farm'] . '.static.flickr.com/' . $photo['server'] . '/' . $photo['id'] . '_' . $photo['secret'] . '_m.jpg">';
		$content= var_export( $xml, true );
		$module['title']= 'Skippy Flickr';
		$module['content']= $photo;
		return $module;
	}
 
	// the workhouse method, which gets invoked hourly by cron
	public function filter_skippyflickr()
	{
		$this->api_key= Options::get( 'skippyflickr__api_key' );
		$this->person_id= Options::get( 'skippyflickr__person' );
 
		// lets fetch a couple of random tags
		$all_tags= Tags::get();
		$t= array();
		for ( $i= 0; $i < 3; $i++ ) {
			$rand= rand( 1, count( $all_tags ) );
			$tag= $all_tags[$rand];
			$t[]= urlencode($tag->tag);
		}
		$tags= implode( ',', $t );
 
		$request= new RemoteRequest( 'http://api.flickr.com/services/rest/?method=flickr.photos.search&format=rest&api_key=' . $this->api_key . '&user_id=' . $this->person_id . '&tags=' . $tags . '&sort=relevance&media=photos&per_page=1' );
		$request->set_timeout( 5 );
		$result= $request->execute();
		if ( Error::is_error( $result ) ) {
			// this is a cronjob, so no sense displaying an error
			EventLog::log( 'Error getting photo from Flickr', 'err', 'default', 'habari' );
			return;
		}
		$response= $request->get_response_body();
		$xml= new SimpleXMLElement( $response );
		if ( ! $xml ) { return; }
		$photo=$xml->photos->photo;
		if ( ! $photo ) { return; }
		if ( ! $photo['id'] ) { return; }
		$newphoto= '<a href="http://www.flickr.com/photos/' . $this->person_id . '/' . $photo['id'] . '"><img src="http://farm' . $photo['farm'] . '.static.flickr.com/' . $photo['server'] . '/' . $photo['id'] . '_' . $photo['secret'] . '_m.jpg"></a>';
		Options::set( 'skippyflickr__photo', $newphoto );
		EventLog::log( 'Updated photo: ' . $photo['title'], 'info', 'default', 'habari' );
	}
 
	public function theme_recent_photo()
	{
		$photo= Options::get( 'skippyflickr__photo' );
		if ( '' != $photo ) {
			echo $photo;
		}
	}
}
?>

Toggle wordwrap

Referring DomainHits
Unknown Referer 127
pastoid.com 11
mibbit.com 1
drunkenmonkey.org 1
search.live.com 1
Is this paste spam?
<Hide