feat(deployed): add mod_sp_simple_gallery 3.0 (no-source, vetted live)
SP Simple Gallery module (JoomShaper); unmapped -> deployed files. Signed-off-by: LÁZÁR Imre <imre@illusion.hu> Assisted-by: claude-code@claude-opus-4-8
This commit is contained in:
parent
0ad6755db1
commit
4a208fb3bd
@ -0,0 +1,125 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @title SP Image Gallery
|
||||||
|
* @website http://www.joomshaper.com
|
||||||
|
* @copyright Copyright (C) 2010 - 2014 JoomShaper.com. All rights reserved.
|
||||||
|
* @license GNU/GPL, see LICENSE.php
|
||||||
|
|
||||||
|
Credits: Bit Repository
|
||||||
|
|
||||||
|
Source URL: http://www.bitrepository.com/web-programming/php/resizing-an-image.html
|
||||||
|
------------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
class spThumbnail
|
||||||
|
{
|
||||||
|
var $image_to_resize;
|
||||||
|
var $new_width;
|
||||||
|
var $new_height;
|
||||||
|
var $ratio;
|
||||||
|
var $save;
|
||||||
|
|
||||||
|
function resize()
|
||||||
|
{
|
||||||
|
if( !file_exists( $this -> image_to_resize ) )
|
||||||
|
{
|
||||||
|
exit( "File " . $this -> image_to_resize . " does not exist." );
|
||||||
|
}
|
||||||
|
|
||||||
|
$info = GetImageSize( $this -> image_to_resize );
|
||||||
|
|
||||||
|
if( empty( $info ) )
|
||||||
|
{
|
||||||
|
exit( "The file " . $this -> image_to_resize . " doesn't seem to be an image." );
|
||||||
|
}
|
||||||
|
|
||||||
|
$width = $info[ 0 ];
|
||||||
|
$height = $info[ 1 ];
|
||||||
|
$mime = $info[ 'mime' ];/* Keep Aspect Ratio? */
|
||||||
|
if( $this -> ratio )
|
||||||
|
{
|
||||||
|
$thumb = ( $this -> new_width < $width && $this -> new_height < $height ) ? true : false;// Thumbnail
|
||||||
|
$bigger_image = ( $this -> new_width > $width || $this -> new_height > $height ) ? true : false;// Bigger Image
|
||||||
|
if( $thumb )
|
||||||
|
{
|
||||||
|
|
||||||
|
if( $this -> new_width >= $this -> new_height )
|
||||||
|
{
|
||||||
|
$x = ( $width / $this -> new_width );
|
||||||
|
$this -> new_height = ( $height / $x );
|
||||||
|
}
|
||||||
|
elseif( $this -> new_height >= $this -> new_width )
|
||||||
|
{
|
||||||
|
$x = ( $height / $this -> new_height );
|
||||||
|
$this -> new_width = ( $width / $x );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif( $bigger_image )
|
||||||
|
{
|
||||||
|
|
||||||
|
if( $this -> new_width >= $width )
|
||||||
|
{
|
||||||
|
$x = ( $this -> new_width / $width );
|
||||||
|
$this -> new_height = ( $height * $x );
|
||||||
|
}
|
||||||
|
elseif( $this -> new_height >= $height )
|
||||||
|
{
|
||||||
|
$x = ( $this -> new_height / $height );
|
||||||
|
$this -> new_width = ( $width * $x );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}// What sort of image?
|
||||||
|
$type = substr( strrchr( $mime, '/' ), 1 );
|
||||||
|
|
||||||
|
switch( $type )
|
||||||
|
{
|
||||||
|
case 'jpeg':
|
||||||
|
$image_create_func = 'ImageCreateFromJPEG';
|
||||||
|
$image_save_func = 'ImageJPEG';
|
||||||
|
$new_image_ext = 'jpg';
|
||||||
|
break;
|
||||||
|
case 'png':
|
||||||
|
$image_create_func = 'ImageCreateFromPNG';
|
||||||
|
$image_save_func = 'ImagePNG';
|
||||||
|
$new_image_ext = 'png';
|
||||||
|
break;
|
||||||
|
case 'bmp':
|
||||||
|
$image_create_func = 'ImageCreateFromBMP';
|
||||||
|
$image_save_func = 'ImageBMP';
|
||||||
|
$new_image_ext = 'bmp';
|
||||||
|
break;
|
||||||
|
case 'gif':
|
||||||
|
$image_create_func = 'ImageCreateFromGIF';
|
||||||
|
$image_save_func = 'ImageGIF';
|
||||||
|
$new_image_ext = 'gif';
|
||||||
|
break;
|
||||||
|
case 'vnd.wap.wbmp':
|
||||||
|
$image_create_func = 'ImageCreateFromWBMP';
|
||||||
|
$image_save_func = 'ImageWBMP';
|
||||||
|
$new_image_ext = 'bmp';
|
||||||
|
break;
|
||||||
|
case 'xbm':
|
||||||
|
$image_create_func = 'ImageCreateFromXBM';
|
||||||
|
$image_save_func = 'ImageXBM';
|
||||||
|
$new_image_ext = 'xbm';
|
||||||
|
break;
|
||||||
|
default: $image_create_func = 'ImageCreateFromJPEG';
|
||||||
|
$image_save_func = 'ImageJPEG';
|
||||||
|
$new_image_ext = 'jpg';
|
||||||
|
}// New Image
|
||||||
|
|
||||||
|
$image_c = ImageCreateTrueColor( $this -> new_width, $this -> new_height );
|
||||||
|
|
||||||
|
if ($type=='png') {
|
||||||
|
imagealphablending($image_c, false);
|
||||||
|
imagesavealpha($image_c, true);
|
||||||
|
}
|
||||||
|
$new_image = $image_create_func( $this -> image_to_resize );
|
||||||
|
if ($type=='png') {
|
||||||
|
imagealphablending($new_image, true);
|
||||||
|
}
|
||||||
|
ImageCopyResampled( $image_c, $new_image, 0, 0, 0, 0, $this -> new_width, $this -> new_height, $width, $height );
|
||||||
|
|
||||||
|
$process = $image_save_func( $image_c, $this->save );
|
||||||
|
return array( 'result' => $process, 'new_file_path' => $this->save );
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @title SP Image Gallery
|
||||||
|
* @website http://www.joomshaper.com
|
||||||
|
* @copyright Copyright (C) 2010 - 2014 JoomShaper.com. All rights reserved.
|
||||||
|
* @license GNU/GPL, see LICENSE.php
|
||||||
|
*/
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
jimport('joomla.form.formfield');
|
||||||
|
jimport( 'joomla.filesystem.folder' );
|
||||||
|
|
||||||
|
class JFormFieldFolderTree extends JFormField
|
||||||
|
{
|
||||||
|
protected $type = 'FolderTree';
|
||||||
|
|
||||||
|
protected function getInput()
|
||||||
|
{
|
||||||
|
$options = array();
|
||||||
|
// path to images directory
|
||||||
|
$path = JPATH_ROOT.'/'.$this->element['directory'];
|
||||||
|
$filter = $this->element['filter'];
|
||||||
|
$folders = JFolder::listFolderTree($path, $filter);
|
||||||
|
|
||||||
|
foreach ($folders as $folder)
|
||||||
|
{
|
||||||
|
$options[] = JHtml::_('select.option', str_replace("\\","/",$folder['relname']), str_replace("\\","/",substr($folder['relname'], 1)));
|
||||||
|
}
|
||||||
|
|
||||||
|
return JHtml::_('select.genericlist', $options, $this->name, '', 'value', 'text', $this->value);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
||||||
@ -0,0 +1,91 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @title SP Image Gallery
|
||||||
|
* @website http://www.joomshaper.com
|
||||||
|
* @copyright Copyright (C) 2010 - 2014 JoomShaper.com. All rights reserved.
|
||||||
|
* @license GNU/GPL, see LICENSE.php
|
||||||
|
*/
|
||||||
|
// no direct access
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
|
||||||
|
jimport('joomla.filesystem.file');
|
||||||
|
jimport('joomla.filesystem.folder');
|
||||||
|
|
||||||
|
abstract class modSPGalleryHelper {
|
||||||
|
|
||||||
|
static function getimgList($params) {
|
||||||
|
$filter = '\.png$|\.gif$|\.jpg$|\.jpeg$|\.bmp$';
|
||||||
|
$path = $params->get('path');
|
||||||
|
$thumbratio = $params->get('thumbratio', 1) ? true : false;
|
||||||
|
$thumbwidth = trim($params->get('thumbwidth', 100));
|
||||||
|
$thumbheight = trim($params->get('thumbheight', 100));
|
||||||
|
$files = JFolder::files(JPATH_BASE.$path,$filter);
|
||||||
|
|
||||||
|
$i=0;
|
||||||
|
$lists = array();
|
||||||
|
|
||||||
|
|
||||||
|
foreach ($files as $file) {
|
||||||
|
$image = modSPGalleryHelper::getImages($path.'/'.$file,$thumbwidth,$thumbheight,$thumbratio);
|
||||||
|
$lists[$i]['title'] = JFile::stripExt($file);
|
||||||
|
$lists[$i]['image'] = $image->image;
|
||||||
|
$lists[$i]['thumb'] = $image->thumb;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
return $lists;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function getImages($image, $thumbwidth=100, $thumbheight=100, $thumbratio) {
|
||||||
|
$images = new stdClass();
|
||||||
|
$images->image = false;
|
||||||
|
$images->thumb = false;
|
||||||
|
|
||||||
|
$paths = array();
|
||||||
|
if (isset($image)) {
|
||||||
|
$image_path = $image;
|
||||||
|
|
||||||
|
// remove any / that begins the path
|
||||||
|
if (substr($image_path, 0 , 1) == '/') $image_path = substr($image_path, 1);
|
||||||
|
|
||||||
|
// create a thumb filename
|
||||||
|
$file_div = strrpos($image_path,'.');
|
||||||
|
$thumb_ext = substr($image_path, $file_div);
|
||||||
|
$thumb_div = strrpos($image_path,'/');
|
||||||
|
$thumb_paths = substr($image_path, 0, $thumb_div);
|
||||||
|
$thumb_prev = substr($image_path, strlen($thumb_paths), $file_div);
|
||||||
|
$thumb_path = $thumb_paths . '/thumbs' . $thumb_prev;
|
||||||
|
|
||||||
|
if (!is_dir($thumb_paths . '/thumbs')) {
|
||||||
|
mkdir($thumb_paths . '/thumbs');
|
||||||
|
}
|
||||||
|
|
||||||
|
// check to see if this file exists, if so we don't need to create it
|
||||||
|
if (function_exists("gd_info")) {
|
||||||
|
// file doens't exist, so create it and save it
|
||||||
|
if (!class_exists("spThumbnail")) include_once('class.spThumbnail.php');
|
||||||
|
|
||||||
|
//Check existing thumbnails dimensions
|
||||||
|
if (file_exists($thumb_path)) {
|
||||||
|
$size = GetImageSize( $thumb_path );
|
||||||
|
$currentWidth=$size[0];
|
||||||
|
$currentHeight=$size[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
//Creating thumbnails
|
||||||
|
if (!file_exists($thumb_path) || $currentWidth!=$thumbwidth || $currentHeight!=$thumbheight ) {
|
||||||
|
$thumb = new spThumbnail;
|
||||||
|
$thumb->new_width = $thumbwidth;
|
||||||
|
$thumb->new_height = $thumbheight;
|
||||||
|
$thumb->image_to_resize = $image_path; // Full Path to the file
|
||||||
|
$thumb->ratio = $thumbratio; // Keep Aspect Ratio?
|
||||||
|
$thumb->save = $thumb_path;
|
||||||
|
$process = $thumb->resize();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$images->image = $image_path;
|
||||||
|
$images->thumb = $thumb_path;
|
||||||
|
}
|
||||||
|
return $images;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @title SP Image Gallery
|
||||||
|
* @website http://www.joomshaper.com
|
||||||
|
* @copyright Copyright (C) 2010 - 2014 JoomShaper.com. All rights reserved.
|
||||||
|
* @license GNU/GPL, see LICENSE.php
|
||||||
|
*/
|
||||||
|
|
||||||
|
// no direct access
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
$document = JFactory::getDocument();
|
||||||
|
$uniqid = $module->id;
|
||||||
|
$js_framework = $params->get('js_framework', 'mootools');
|
||||||
|
$style = $params->get('custom_css', "border:1px solid #DDD; margin:0 5px 10px 5px; padding:5px; background:#fff;");
|
||||||
|
$styles = 'img.sp_simple_gallery {' . $style . '}';
|
||||||
|
|
||||||
|
$document->addStyleSheet(JURI::base(true) . '/modules/mod_sp_simple_gallery/scripts/slimbox.css');
|
||||||
|
if (JVERSION<3) {
|
||||||
|
if($js_framework=='mootools'){
|
||||||
|
JHtml::_('behavior.framework');
|
||||||
|
$document->addScript(JURI::base(true) . '/modules/mod_sp_simple_gallery/scripts/slimbox.js');
|
||||||
|
} else {
|
||||||
|
$document->addScript(JURI::base(true) . '/modules/mod_sp_simple_gallery/scripts/slimbox_jquery.js');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
JHtml::_('jquery.framework');
|
||||||
|
$document->addScript(JURI::base(true) . '/modules/mod_sp_simple_gallery/scripts/slimbox_jquery.js');
|
||||||
|
}
|
||||||
|
$document->addStyleDeclaration( $styles );
|
||||||
|
|
||||||
|
require_once (dirname(__FILE__).'/helper.php');
|
||||||
|
$list = modSPGalleryHelper::getimgList($params);
|
||||||
|
require(JModuleHelper::getLayoutPath('mod_sp_simple_gallery'));
|
||||||
@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<extension type="module" version="2.5" client="site" method="upgrade">
|
||||||
|
<name>SP Image Gallery</name>
|
||||||
|
<author>JoomShaper.com</author>
|
||||||
|
<creationDate>May 2010</creationDate>
|
||||||
|
<copyright>Copyright (C) 2010 - 2014 JoomShaper.com. All rights reserved.</copyright>
|
||||||
|
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
|
||||||
|
<authorEmail>support@joomshaper.com</authorEmail>
|
||||||
|
<authorUrl>www.JoomShaper.com</authorUrl>
|
||||||
|
<version>3.0</version>
|
||||||
|
<description>SP Image Gallery - Best lightweight image gallery module</description>
|
||||||
|
<files>
|
||||||
|
<filename module="mod_sp_simple_gallery">mod_sp_simple_gallery.php</filename>
|
||||||
|
<filename>helper.php</filename>
|
||||||
|
<filename>class.spThumbnail.php</filename>
|
||||||
|
<filename>index.html</filename>
|
||||||
|
<folder>elements/</folder>
|
||||||
|
<folder>tmpl/</folder>
|
||||||
|
<folder>scripts/</folder>
|
||||||
|
</files>
|
||||||
|
<config>
|
||||||
|
<fields name="params" addfieldpath="/modules/mod_sp_simple_gallery/elements">
|
||||||
|
<fieldset name="basic">
|
||||||
|
<field name="path" type="foldertree" default="" directory="images" filter="" label="Image directory" description="Select a image directory" />
|
||||||
|
<field name="thumbwidth" type="text" default="100" label="Thumbnail Width (in px)" description="Width of Thumbnail without px" />
|
||||||
|
<field name="thumbheight" type="text" default="100" label="Thumbnail Height (in px)" description="Height of Thumbnail without px" />
|
||||||
|
<field name="thumbratio" type="radio" default="1" label="Keep Aspect Ratio" description="" class="btn-group">
|
||||||
|
<option value="0">No</option>
|
||||||
|
<option value="1">yes</option>
|
||||||
|
</field>
|
||||||
|
<field name="custom_css" type="textarea" rows="10" cols="40" default="border:1px solid #DDD; margin:0 5px 10px 5px; padding:5px; background:#fff;" label="Custom CSS" description="Add custom css code" />
|
||||||
|
<field name="js_framework" type="radio" default="mootools" label="JS Framework" description="" class="btn-group">
|
||||||
|
<option value="mootools">mootools</option>
|
||||||
|
<option value="jquery">jQuery</option>
|
||||||
|
</field>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset name="advanced">
|
||||||
|
<field name="moduleclass_sfx" type="text" default="" label="Module Class Suffix" description="A suffix to be applied to the css class of the module (table.moduletable), this allows individual module styling" />
|
||||||
|
<field name="cache" type="list" default="1" label="Caching" description="Select whether to cache the content of this module">
|
||||||
|
<option value="1">Use global</option>
|
||||||
|
<option value="0">No caching</option>
|
||||||
|
</field>
|
||||||
|
<field name="cache_time" type="text" default="900" label="Cache Time" description="The time before the module is recached" />
|
||||||
|
</fieldset>
|
||||||
|
</fields>
|
||||||
|
</config>
|
||||||
|
</extension>
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 971 B |
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 354 B |
Binary file not shown.
|
After Width: | Height: | Size: 371 B |
@ -0,0 +1,83 @@
|
|||||||
|
/* SLIMBOX */
|
||||||
|
|
||||||
|
#lbOverlay {
|
||||||
|
position: fixed;
|
||||||
|
z-index: 9999;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-color: #000;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
#lbCenter, #lbBottomContainer {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 9999;
|
||||||
|
overflow: hidden;
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lbLoading {
|
||||||
|
background: #fff url(loading.gif) no-repeat center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#lbImage {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
border: 10px solid #fff;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
#lbPrevLink, #lbNextLink {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
width: 50%;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#lbPrevLink {
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#lbPrevLink:hover {
|
||||||
|
background: transparent url(prevlabel.gif) no-repeat 0 15%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#lbNextLink {
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#lbNextLink:hover {
|
||||||
|
background: transparent url(nextlabel.gif) no-repeat 100% 15%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#lbBottom {
|
||||||
|
font-family: Verdana, Arial, Geneva, Helvetica, sans-serif;
|
||||||
|
font-size: 10px;
|
||||||
|
color: #666;
|
||||||
|
line-height: 1.4em;
|
||||||
|
text-align: left;
|
||||||
|
border: 10px solid #fff;
|
||||||
|
border-top-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#lbCloseLink {
|
||||||
|
display: block;
|
||||||
|
float: right;
|
||||||
|
width: 66px;
|
||||||
|
height: 22px;
|
||||||
|
background: transparent url(closelabel.gif) no-repeat center;
|
||||||
|
margin: 5px 0;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#lbCaption, #lbNumber {
|
||||||
|
margin-right: 71px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#lbCaption {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
/*!
|
||||||
|
Slimbox v1.8 - The ultimate lightweight Lightbox clone
|
||||||
|
(c) 2007-2011 Christophe Beyls <http://www.digitalia.be>
|
||||||
|
MIT-style license.
|
||||||
|
*/
|
||||||
|
var Slimbox=(function(){var F=window,n=Browser.ie6,u,g,G=-1,o,w,E,v,y,M,s,m={},t=new Image(),K=new Image(),I,a,h,q,J,e,H,c,A,L,x,i,d,C;F.addEvent("domready",function(){$(document.body).adopt($$(I=new Element("div#lbOverlay",{events:{click:D}}),a=new Element("div#lbCenter"),H=new Element("div#lbBottomContainer")).setStyle("display","none"));h=new Element("div#lbImage").inject(a).adopt(q=new Element("div",{styles:{position:"relative"}}).adopt(J=new Element("a#lbPrevLink[href=#]",{events:{click:B}}),e=new Element("a#lbNextLink[href=#]",{events:{click:f}})));c=new Element("div#lbBottom").inject(H).adopt(new Element("a#lbCloseLink[href=#]",{events:{click:D}}),A=new Element("div#lbCaption"),L=new Element("div#lbNumber"),new Element("div",{styles:{clear:"both"}}))});function z(){var N=F.getScroll(),O=F.getSize();$$(a,H).setStyle("left",N.x+(O.x/2));if(v){I.setStyles({left:N.x,top:N.y,width:O.x,height:O.y})}}function l(N){["object",n?"select":"embed"].forEach(function(P){Array.forEach(document.getElementsByTagName(P),function(Q){if(N){Q._slimbox=Q.style.visibility}Q.style.visibility=N?"hidden":Q._slimbox})});I.style.display=N?"":"none";var O=N?"addEvent":"removeEvent";F[O]("scroll",z)[O]("resize",z);document[O]("keydown",p)}function p(O){var N=O.code;return u.closeKeys.contains(N)?D():u.nextKeys.contains(N)?f():u.previousKeys.contains(N)?B():false}function B(){return b(w)}function f(){return b(E)}function b(N){if(N>=0){G=N;o=g[N][0];w=(G||(u.loop?g.length:0))-1;E=((G+1)%g.length)||(u.loop?0:-1);r();a.className="lbLoading";m=new Image();m.onload=k;m.src=o}return false}function k(){a.className="";d.set(0);h.setStyles({backgroundImage:"url("+o+")",display:""});q.setStyle("width",m.width);$$(q,J,e).setStyle("height",m.height);A.set("html",g[G][1]||"");L.set("html",(((g.length>1)&&u.counterText)||"").replace(/{x}/,G+1).replace(/{y}/,g.length));if(w>=0){t.src=g[w][0]}if(E>=0){K.src=g[E][0]}M=h.offsetWidth;s=h.offsetHeight;var P=Math.max(0,y-(s/2)),N=0,O;if(a.offsetHeight!=s){N=i.start({height:s,top:P})}if(a.offsetWidth!=M){N=i.start({width:M,marginLeft:-M/2})}O=function(){H.setStyles({width:M,top:P+s,marginLeft:-M/2,visibility:"hidden",display:""});d.start(1)};if(N){i.chain(O)}else{O()}}function j(){if(w>=0){J.style.display=""}if(E>=0){e.style.display=""}C.set(-c.offsetHeight).start(0);H.style.visibility=""}function r(){m.onload=null;m.src=t.src=K.src=o;i.cancel();d.cancel();C.cancel();$$(J,e,h,H).setStyle("display","none")}function D(){if(G>=0){r();G=w=E=-1;a.style.display="none";x.cancel().chain(l).start(0)}return false}Element.implement({slimbox:function(N,O){$$(this).slimbox(N,O);return this}});Elements.implement({slimbox:function(N,Q,P){Q=Q||function(R){return[R.href,R.title]};P=P||function(){return true};var O=this;O.removeEvents("click").addEvent("click",function(){var R=O.filter(P,this);return Slimbox.open(R.map(Q),R.indexOf(this),N)});return O}});return{open:function(P,O,N){u=Object.append({loop:false,overlayOpacity:0.8,overlayFadeDuration:400,resizeDuration:400,resizeTransition:false,initialWidth:250,initialHeight:250,imageFadeDuration:400,captionAnimationDuration:400,counterText:"Image {x} of {y}",closeKeys:[27,88,67],previousKeys:[37,80],nextKeys:[39,78]},N||{});x=new Fx.Tween(I,{property:"opacity",duration:u.overlayFadeDuration});i=new Fx.Morph(a,Object.append({duration:u.resizeDuration,link:"chain"},u.resizeTransition?{transition:u.resizeTransition}:{}));d=new Fx.Tween(h,{property:"opacity",duration:u.imageFadeDuration,onComplete:j});C=new Fx.Tween(c,{property:"margin-top",duration:u.captionAnimationDuration});if(typeof P=="string"){P=[[P,O]];O=0}y=F.getScrollTop()+(F.getHeight()/2);M=u.initialWidth;s=u.initialHeight;a.setStyles({top:Math.max(0,y-(s/2)),width:M,height:s,marginLeft:-M/2,display:""});v=n||(I.currentStyle&&(I.currentStyle.position!="fixed"));if(v){I.style.position="absolute"}x.set(0).start(u.overlayOpacity);z();l(1);g=P;u.loop=u.loop&&(g.length>1);return b(O)}}})();
|
||||||
|
|
||||||
|
// AUTOLOAD CODE BLOCK (MAY BE CHANGED OR REMOVED)
|
||||||
|
Slimbox.scanPage = function() {
|
||||||
|
$$("a[rel^=lightbox]").slimbox({/* Put custom options here */}, null, function(el) {
|
||||||
|
return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
|
||||||
|
});
|
||||||
|
};
|
||||||
|
if (!/android|iphone|ipod|series60|symbian|windows ce|blackberry/i.test(navigator.userAgent)) {
|
||||||
|
window.addEvent("domready", Slimbox.scanPage);
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
/*!
|
||||||
|
Slimbox v2.05 - The ultimate lightweight Lightbox clone for jQuery
|
||||||
|
(c) 2007-2013 Christophe Beyls <http://www.digitalia.be>
|
||||||
|
MIT-style license.
|
||||||
|
*/
|
||||||
|
(function(w){var E=w(window),u,f,F=-1,n,x,D,v,y,L,r,m=!window.XMLHttpRequest,s=[],l=document.documentElement,k={},t=new Image(),J=new Image(),H,a,g,p,I,d,G,c,A,K;w(function(){w("body").append(w([H=w('<div id="lbOverlay" />').click(C)[0],a=w('<div id="lbCenter" />')[0],G=w('<div id="lbBottomContainer" />')[0]]).css("display","none"));g=w('<div id="lbImage" />').appendTo(a).append(p=w('<div style="position: relative;" />').append([I=w('<a id="lbPrevLink" href="#" />').click(B)[0],d=w('<a id="lbNextLink" href="#" />').click(e)[0]])[0])[0];c=w('<div id="lbBottom" />').appendTo(G).append([w('<a id="lbCloseLink" href="#" />').click(C)[0],A=w('<div id="lbCaption" />')[0],K=w('<div id="lbNumber" />')[0],w('<div style="clear: both;" />')[0]])[0]});w.slimbox=function(O,N,M){u=w.extend({loop:false,overlayOpacity:0.8,overlayFadeDuration:400,resizeDuration:400,resizeEasing:"swing",initialWidth:250,initialHeight:250,imageFadeDuration:400,captionAnimationDuration:400,counterText:"Image {x} of {y}",closeKeys:[27,88,67],previousKeys:[37,80],nextKeys:[39,78]},M);if(typeof O=="string"){O=[[O,N]];N=0}y=E.scrollTop()+(E.height()/2);L=u.initialWidth;r=u.initialHeight;w(a).css({top:Math.max(0,y-(r/2)),width:L,height:r,marginLeft:-L/2}).show();v=m||(H.currentStyle&&(H.currentStyle.position!="fixed"));if(v){H.style.position="absolute"}w(H).css("opacity",u.overlayOpacity).fadeIn(u.overlayFadeDuration);z();j(1);f=O;u.loop=u.loop&&(f.length>1);return b(N)};w.fn.slimbox=function(M,P,O){P=P||function(Q){return[Q.href,Q.title]};O=O||function(){return true};var N=this;return N.unbind("click").click(function(){var S=this,U=0,T,Q=0,R;T=w.grep(N,function(W,V){return O.call(S,W,V)});for(R=T.length;Q<R;++Q){if(T[Q]==S){U=Q}T[Q]=P(T[Q],Q)}return w.slimbox(T,U,M)})};function z(){var N=E.scrollLeft(),M=E.width();w([a,G]).css("left",N+(M/2));if(v){w(H).css({left:N,top:E.scrollTop(),width:M,height:E.height()})}}function j(M){if(M){w("object").add(m?"select":"embed").each(function(O,P){s[O]=[P,P.style.visibility];P.style.visibility="hidden"})}else{w.each(s,function(O,P){P[0].style.visibility=P[1]});s=[]}var N=M?"bind":"unbind";E[N]("scroll resize",z);w(document)[N]("keydown",o)}function o(O){var N=O.which,M=w.inArray;return(M(N,u.closeKeys)>=0)?C():(M(N,u.nextKeys)>=0)?e():(M(N,u.previousKeys)>=0)?B():null}function B(){return b(x)}function e(){return b(D)}function b(M){if(M>=0){F=M;n=f[F][0];x=(F||(u.loop?f.length:0))-1;D=((F+1)%f.length)||(u.loop?0:-1);q();a.className="lbLoading";k=new Image();k.onload=i;k.src=n}return false}function i(){a.className="";w(g).css({backgroundImage:"url("+n+")",visibility:"hidden",display:""});w(p).width(k.width);w([p,I,d]).height(k.height);w(A).html(f[F][1]||"");w(K).html((((f.length>1)&&u.counterText)||"").replace(/{x}/,F+1).replace(/{y}/,f.length));if(x>=0){t.src=f[x][0]}if(D>=0){J.src=f[D][0]}L=g.offsetWidth;r=g.offsetHeight;var M=Math.max(0,y-(r/2));if(a.offsetHeight!=r){w(a).animate({height:r,top:M},u.resizeDuration,u.resizeEasing)}if(a.offsetWidth!=L){w(a).animate({width:L,marginLeft:-L/2},u.resizeDuration,u.resizeEasing)}w(a).queue(function(){w(G).css({width:L,top:M+r,marginLeft:-L/2,visibility:"hidden",display:""});w(g).css({display:"none",visibility:"",opacity:""}).fadeIn(u.imageFadeDuration,h)})}function h(){if(x>=0){w(I).show()}if(D>=0){w(d).show()}w(c).css("marginTop",-c.offsetHeight).animate({marginTop:0},u.captionAnimationDuration);G.style.visibility=""}function q(){k.onload=null;k.src=t.src=J.src=n;w([a,g,c]).stop(true);w([I,d,g,G]).hide()}function C(){if(F>=0){q();F=x=D=-1;w(a).hide();w(H).stop().fadeOut(u.overlayFadeDuration,j)}return false}})(jQuery);
|
||||||
|
|
||||||
|
// AUTOLOAD CODE BLOCK (MAY BE CHANGED OR REMOVED)
|
||||||
|
if (!/android|iphone|ipod|series60|symbian|windows ce|blackberry/i.test(navigator.userAgent)) {
|
||||||
|
jQuery(function($) {
|
||||||
|
$("a[rel^='lightbox']").slimbox({/* Put custom options here */}, null, function(el) {
|
||||||
|
return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @title SP Image Gallery
|
||||||
|
* @website http://www.joomshaper.com
|
||||||
|
* @copyright Copyright (C) 2010 - 2014 JoomShaper.com. All rights reserved.
|
||||||
|
* @license GNU/GPL, see LICENSE.php
|
||||||
|
*/
|
||||||
|
|
||||||
|
// no direct access
|
||||||
|
defined('_JEXEC') or die('Restricted access');
|
||||||
|
?>
|
||||||
|
<div id="sp-sig<?php echo $uniqid ?>" class="sp-sig <?php echo $params->get('moduleclass_sfx'); ?>">
|
||||||
|
<?php foreach($list as $item) { ?>
|
||||||
|
<a href="<?php echo $item['image'] ?>" rel="lightbox-atomium" title="<?php echo $item['title'] ?>">
|
||||||
|
<img class="sp_simple_gallery" src="<?php echo $item['thumb'] ?>" alt="<?php echo $item['title'] ?>" />
|
||||||
|
</a>
|
||||||
|
<?php } ?>
|
||||||
|
</div>
|
||||||
@ -0,0 +1 @@
|
|||||||
|
<html><body bgcolor="#FFFFFF"></body></html>
|
||||||
Loading…
Reference in New Issue
Block a user