Revision [6813]
This is an old revision of EnhancedImageAction made by NilsLindenberg on 2005-03-21 13:33:57.
Enhances Image Action
See also:
Documentation: EnhancedImageActionInfo.The code here below is just a quick modification to the offical image action code. Only works from release 1.1.6.0!
<?php
/**
* Displays an image.
*
* You have to specify the url for the location of the image. In contrary to inline images you can set the
* apperance of the image better:
*
* You can specify "width" and "height" for the image (note that the image is just displayed different, it does
* not save any bandwidth), set a target link or make the full size image open in a new window (only possible
* if you don't assign a link to the image).
*
* Syntax:
* {{image url ="http://www.example.com/example.jpg" alt="describing text" [link="http://www.example.com] [heigth=""] [width=""] [class="class"]}}
*
* @package Actions
* @subpackage ?
* @name image
*
* @author ?
* @author {@link http://wikka.jsnx.com/ChristianBarthelemy ChristianBarthelemy} (heigth+width+openfull)
* @author {@link http://wikka.jsnx.com/NilsLindenberg NilsLindenberg} (default values, minor corrections)
*
* @version 0.9
* @copyright Copyright © ?
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
* @since ?
*
* @input string $url mandatory: url of the image to be displayed;
* @input string $alt mandatory: alternative text for the image;
* @input string $link optional: target link for image (optional). Supports URL, WikiName links,
* InterWiki links etc.;
* default: none;
* @input integer $width optional: alternative width for the image;
* default:
* @input integer $heigth optional: alternative heigth for the image;
* default:
* @input string $class optional: a class for the image;
* default: none;
*
* @output the given image;
*
* @uses cleanUrl();
* @todo - do we need to pass the output through SafeHtml?
* - handling when no url and/or alternative text is/are provided
* - documentation for src (also possible instead of url)
* - option to open "full-image" in another window?
*/
//setting default values
$link = $url = $class = $output = $alt = "";
$title = "WikiImage";
$width = $heigth = 0;
//getting the paramters
if (is_array($vars))
{
foreach ($vars as $param => $value)
{
if ($param == 'src' and $vars['url'] == '') {$vars['url']=$value;}
if ($param == 'title') {$title=$this->htmlspecialchars_ent($vars['title']);}
if ($param == 'class') {$class=$this->htmlspecialchars_ent($vars['class']);}
if ($param == 'alt') {$alt=$this->htmlspecialchars_ent($vars['alt']);}
if ($param == 'width') {$width=$this->htmlspecialchars_ent($vars['width']);}
if ($param == 'heigth') {$heigth=$this->htmlspecialchars_ent($vars['heigth']);}
if ($param == 'link') {$link=$this->cleanUrl(trim($vars['link']));}
}
}
//sanatizing url and proofing if it is an image
$url = $this->cleanUrl(trim($vars['url']));
$image = getimagesize($url);
//if it is an image, prepare the output
if ((is_array($image)) && ($alt))
{
if (!$width) $width = $image[0];
if (!$heigth) $heigth = $image[1];
$output.="<img ";
if ($class) {$output.="class=\"".$class."\" ";}
$output.="src=\"".$url."\" ";
if ($alt) {$output.="alt=\"".$alt."\" ";}
if ($title) {$output.="title=\"".$title."\" ";}
$output.="width=\"".$width."\" heigth=\"".$heigth."\" />";
//link?
if ($link) {$output = $this->Link($link, "", $output, 1, 0, 0);}
//make the output save and print it
$output = $this->ReturnSafeHTML($output);
print($output);
}
elseif (!$alt) {echo 'The necessary parameter alt was not provided';}
else {echo 'The image could not be found or it was no image. Please check the url';}
?>
/**
* Displays an image.
*
* You have to specify the url for the location of the image. In contrary to inline images you can set the
* apperance of the image better:
*
* You can specify "width" and "height" for the image (note that the image is just displayed different, it does
* not save any bandwidth), set a target link or make the full size image open in a new window (only possible
* if you don't assign a link to the image).
*
* Syntax:
* {{image url ="http://www.example.com/example.jpg" alt="describing text" [link="http://www.example.com] [heigth=""] [width=""] [class="class"]}}
*
* @package Actions
* @subpackage ?
* @name image
*
* @author ?
* @author {@link http://wikka.jsnx.com/ChristianBarthelemy ChristianBarthelemy} (heigth+width+openfull)
* @author {@link http://wikka.jsnx.com/NilsLindenberg NilsLindenberg} (default values, minor corrections)
*
* @version 0.9
* @copyright Copyright © ?
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
* @since ?
*
* @input string $url mandatory: url of the image to be displayed;
* @input string $alt mandatory: alternative text for the image;
* @input string $link optional: target link for image (optional). Supports URL, WikiName links,
* InterWiki links etc.;
* default: none;
* @input integer $width optional: alternative width for the image;
* default:
* @input integer $heigth optional: alternative heigth for the image;
* default:
* @input string $class optional: a class for the image;
* default: none;
*
* @output the given image;
*
* @uses cleanUrl();
* @todo - do we need to pass the output through SafeHtml?
* - handling when no url and/or alternative text is/are provided
* - documentation for src (also possible instead of url)
* - option to open "full-image" in another window?
*/
//setting default values
$link = $url = $class = $output = $alt = "";
$title = "WikiImage";
$width = $heigth = 0;
//getting the paramters
if (is_array($vars))
{
foreach ($vars as $param => $value)
{
if ($param == 'src' and $vars['url'] == '') {$vars['url']=$value;}
if ($param == 'title') {$title=$this->htmlspecialchars_ent($vars['title']);}
if ($param == 'class') {$class=$this->htmlspecialchars_ent($vars['class']);}
if ($param == 'alt') {$alt=$this->htmlspecialchars_ent($vars['alt']);}
if ($param == 'width') {$width=$this->htmlspecialchars_ent($vars['width']);}
if ($param == 'heigth') {$heigth=$this->htmlspecialchars_ent($vars['heigth']);}
if ($param == 'link') {$link=$this->cleanUrl(trim($vars['link']));}
}
}
//sanatizing url and proofing if it is an image
$url = $this->cleanUrl(trim($vars['url']));
$image = getimagesize($url);
//if it is an image, prepare the output
if ((is_array($image)) && ($alt))
{
if (!$width) $width = $image[0];
if (!$heigth) $heigth = $image[1];
$output.="<img ";
if ($class) {$output.="class=\"".$class."\" ";}
$output.="src=\"".$url."\" ";
if ($alt) {$output.="alt=\"".$alt."\" ";}
if ($title) {$output.="title=\"".$title."\" ";}
$output.="width=\"".$width."\" heigth=\"".$heigth."\" />";
//link?
if ($link) {$output = $this->Link($link, "", $output, 1, 0, 0);}
//make the output save and print it
$output = $this->ReturnSafeHTML($output);
print($output);
}
elseif (!$alt) {echo 'The necessary parameter alt was not provided';}
else {echo 'The image could not be found or it was no image. Please check the url';}
?>
CategoryDevelopment