<?php
/**
* Copyright (C) 2010 Kai Dorschner
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @author Kai Dorschner <the-hide@address.com>
* @copyright Copyright 2010, Kai Dorschner
* @license http://www.gnu.org/licenses/gpl.html GPLv3
* @package mocovi
* @subpackage controls
*/
class_exists('Validator') or require $GLOBALS['library'].'Validator.php';
ControlFactory::load('image');
/**
* Present and format all kinds of images including descriptions.
*
* @package mocovi
* @subpackage controls
*/
class gravatar_control extends image_control
{
protected $defaultOptions = array
( 'source' => ''
, 'email' => ''
, 'description' => ''
, 'orientation' => 'middle'
, 'crop' => 'yes' // yes or no
, 'rule' => '' // even or odd
, 'type' => ''
, 'check' => false // Checks wether a file exists or not.
);
/**
* @override
*/
protected function program()
{
try
{
Validator::validateByRegex(Validator::required($this->getOption('email')), Validator::getRegex('email'));
}
catch(RequiredException $e)
{
return $this->error('The email address attribute is required. Please provide one.');
}
catch(Exception $e)
{
return $this->error('Something is wrong with your provided email address. '.get_class($e).'. '.$e->getMessage());
}
$this->options['source'] = 'http://www.gravatar.com/avatar/'.md5(strtolower(trim($this->getOption('email')))); // as gravatar.com said...
parent::program();
}
}