git-svn-id: https://192.168.0.254/svn/Proyectos.FundacionLQDVI_WebCongresos/trunk@2 94ccb1af-fd9d-d947-8d90-7f70ea60afc8
117 lines
2.6 KiB
PHP
117 lines
2.6 KiB
PHP
<?php
|
|
/**
|
|
* @version $Id: helper.php 14401 2010-01-26 14:10:00Z louis $
|
|
* @package Joomla
|
|
* @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
|
|
* @license GNU/GPL, see LICENSE.php
|
|
* Joomla! is free software. This version may have been modified pursuant
|
|
* to the GNU General Public License, and as distributed it includes or
|
|
* is derivative of works licensed under the GNU General Public License or
|
|
* other free or open source software licenses.
|
|
* See COPYRIGHT.php for copyright notices and details.
|
|
*/
|
|
|
|
// no direct access
|
|
defined( '_JEXEC' ) or die( 'Restricted access' );
|
|
|
|
|
|
class modRandomImageHelper
|
|
{
|
|
function getRandomImage(&$params, $images)
|
|
{
|
|
$width = $params->get( 'width' );
|
|
$height = $params->get( 'height' );
|
|
|
|
$i = count($images);
|
|
$random = mt_rand(0, $i - 1);
|
|
$image = $images[$random];
|
|
$size = getimagesize (JPATH_BASE.DS.$image->folder .DS. $image->name);
|
|
|
|
|
|
if ($width == '') {
|
|
$width = 100;
|
|
}
|
|
|
|
if ($size[0] < $width) {
|
|
$width = $size[0];
|
|
}
|
|
|
|
$coeff = $size[0]/$size[1];
|
|
if ($height == '') {
|
|
$height = (int) ($width/$coeff);
|
|
} else {
|
|
$newheight = min ($height, (int) ($width/$coeff));
|
|
if ($newheight < $height) {
|
|
$height = $newheight;
|
|
} else {
|
|
$width = $height * $coeff;
|
|
}
|
|
}
|
|
|
|
$image->width = $width;
|
|
$image->height = $height;
|
|
$image->folder = str_replace( '\\', '/', $image->folder );
|
|
|
|
return $image;
|
|
}
|
|
|
|
function getImages(&$params, $folder)
|
|
{
|
|
$type = $params->get( 'type', 'jpg' );
|
|
|
|
$files = array();
|
|
$images = array();
|
|
|
|
$dir = JPATH_BASE.DS.$folder;
|
|
|
|
// check if directory exists
|
|
if (is_dir($dir))
|
|
{
|
|
if ($handle = opendir($dir)) {
|
|
while (false !== ($file = readdir($handle))) {
|
|
if ($file != '.' && $file != '..' && $file != 'CVS' && $file != 'index.html' ) {
|
|
$files[] = $file;
|
|
}
|
|
}
|
|
}
|
|
closedir($handle);
|
|
|
|
$i = 0;
|
|
foreach ($files as $img)
|
|
{
|
|
if (!is_dir($dir .DS. $img))
|
|
{
|
|
if (preg_match("#$type#i", $img)) {
|
|
$images[$i]->name = $img;
|
|
$images[$i]->folder = $folder;
|
|
++$i;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return $images;
|
|
}
|
|
|
|
function getFolder(&$params)
|
|
{
|
|
$folder = $params->get( 'folder' );
|
|
|
|
$LiveSite = JURI::base();
|
|
|
|
// if folder includes livesite info, remove
|
|
if ( JString::strpos($folder, $LiveSite) === 0 ) {
|
|
$folder = str_replace( $LiveSite, '', $folder );
|
|
}
|
|
// if folder includes absolute path, remove
|
|
if ( JString::strpos($folder, JPATH_SITE) === 0 ) {
|
|
$folder= str_replace( JPATH_BASE, '', $folder );
|
|
}
|
|
$folder = str_replace('\\',DS,$folder);
|
|
$folder = str_replace('/',DS,$folder);
|
|
|
|
return $folder;
|
|
}
|
|
}
|
|
|