Location: PHPKode > projects > Mocovie web framework > webs/common/controls/image.php
<?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
 */

/**
 * Present and format all kinds of images including descriptions.
 *
 * @package mocovi
 * @subpackage controls
 */
class image_control extends Control
{
	protected $defaultOptions = array
		( 'source'		=> ''
		, '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()
	{
		/*
			If the option check is explicitly set, it'll check the file for existence.
			Otherwise it determins whether the requested file is local and checks this too.
			If the user explicitly said check="false" this control won't check the local file!
		*/
		if($this->getOption('check') || ($this->isLocal() && (!isset($this->options['check']) || !in_array($this->options['check'], array('0', 'no', 'false')))))
			if($handle = @fopen($this->getOption('source'), 'r')) // This also works for remote content
				fclose($handle);
			else
				return $this->error('Image '.$this->getOption('source').' could not be found.');
		$this->adoptAttributes('source', 'rule', 'description','orientation', 'crop', 'type');
		if(!$this->isLocal())
			$this->node->setAttribute('external', 'yes');
	}

	protected function isLocal()
	{
		return substr($this->getOption('source'), 0, 4) !== 'http';
	}
}
Return current item: Mocovie web framework