From 2c40911a2b7e4e2bedf42922c9dd46ba11960180 Mon Sep 17 00:00:00 2001 From: Dongsheng Cai Date: Thu, 21 Oct 2010 03:45:20 +0000 Subject: [PATCH] MDL-24706, added watermark option for flickr public plugin --- repository/flickr_public/image.php | 1 + repository/flickr_public/lib.php | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/repository/flickr_public/image.php b/repository/flickr_public/image.php index 254c6de50df..0e0833be17a 100755 --- a/repository/flickr_public/image.php +++ b/repository/flickr_public/image.php @@ -32,6 +32,7 @@ class moodle_image { private $backup; function __construct($img) { + ini_set('gd.jpeg_ignore_warning', 1); if(!function_exists('imagecreatefrompng') and !function_exists('imagecreatefromjpeg')) { throw new moodle_exception('gdnotexist'); diff --git a/repository/flickr_public/lib.php b/repository/flickr_public/lib.php index 74fac87312f..36910d3d975 100644 --- a/repository/flickr_public/lib.php +++ b/repository/flickr_public/lib.php @@ -1,5 +1,4 @@ libdir.'/flickrlib.php'); +require_once(dirname(__FILE__) . '/image.php'); class repository_flickr_public extends repository { private $flickr; @@ -51,6 +51,7 @@ class repository_flickr_public extends repository { $this->api_key = $this->get_option('api_key'); $this->flickr = new phpFlickr($this->api_key); $this->flickr_account = $this->get_option('email_address'); + $this->usewatermarks = $this->get_option('usewatermarks'); $account = optional_param('flickr_account', '', PARAM_RAW); $fulltext = optional_param('flickr_fulltext', '', PARAM_RAW); @@ -413,6 +414,12 @@ class repository_flickr_public extends repository { public function get_file($photo_id, $file = '') { global $CFG; $info = $this->flickr->photos_getInfo($photo_id); + if ($info['owner']['realname']) { + $author = $info['owner']['realname']; + } else { + $author = $info['owner']['username']; + } + $copyright = get_string('author', 'repository') . ': ' . $author; $result = $this->flickr->photos_getSizes($photo_id); // download link $source = ''; @@ -432,6 +439,12 @@ class repository_flickr_public extends repository { $fp = fopen($path, 'w'); $c = new curl; $c->download(array(array('url'=>$source, 'file'=>$fp))); + // must close file handler, otherwise gd lib will fail to process it + fclose($fp); + if (!empty($this->usewatermarks)) { + $img = new moodle_image($path); + $img->watermark($copyright, array(10,10), array('ttf'=>true, 'fontsize'=>12))->saveas($path); + } return array('path'=>$path, 'url'=>$url, 'author'=>$info['owner']['realname'], 'license'=>$this->license4moodle($info['license'])); } @@ -442,6 +455,7 @@ class repository_flickr_public extends repository { */ public function instance_config_form($mform) { $mform->addElement('text', 'email_address', get_string('emailaddress', 'repository_flickr_public')); + $mform->addElement('checkbox', 'usewatermarks', get_string('watermark', 'repository_flickr_public')); //$mform->addRule('email_address', get_string('required'), 'required', null, 'client'); } @@ -450,7 +464,7 @@ class repository_flickr_public extends repository { * @return array */ public static function get_instance_option_names() { - return array('email_address'); + return array('email_address', 'usewatermarks'); } /**