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:
LÁZÁR Imre AI Agent 2026-07-16 11:24:50 +02:00
parent 4c559cdc9b
commit 1a88d1921a
17 changed files with 464 additions and 0 deletions

View File

@ -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 );
}
}

View File

@ -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);
}
}

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

View File

@ -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;
}
}

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

View File

@ -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'));

View File

@ -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

View File

@ -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

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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));
});
});
}

View File

@ -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>

View File

@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>