Index: trunk/extensions/SemanticResultFormats/Gallery/SRF_Gallery.php |
— | — | @@ -7,7 +7,7 @@ |
8 | 8 | * @ingroup SemanticResultFormats |
9 | 9 | * |
10 | 10 | * @author Rowan Rodrik van der Molen |
11 | | - * @author Jeroen De Dauw |
| 11 | + * @author Jeroen De Dauw, mwjames |
12 | 12 | */ |
13 | 13 | class SRFGallery extends SMWResultPrinter { |
14 | 14 | |
— | — | @@ -29,8 +29,20 @@ |
30 | 30 | $ig->setShowFilename( false ); |
31 | 31 | $ig->setParser( $wgParser ); |
32 | 32 | $ig->setCaption( $this->mIntro ); // set caption to IQ header |
33 | | - |
34 | | - if ( $this->m_params['perrow'] !== '' ) { |
| 33 | + |
| 34 | + if ( $this->m_params['galleryformat'] == 'carousel' ) { |
| 35 | + // Set attributes for jcarousel |
| 36 | + $mAttribs['id'] = 'carousel'; |
| 37 | + $mAttribs['class'] = 'jcarousel-skin-smw'; |
| 38 | + $mAttribs['style'] = 'display:none;'; |
| 39 | + $ig->setAttributes( $mAttribs ); |
| 40 | + |
| 41 | + // Require the javascript |
| 42 | + SMWOutputs::requireResource( 'ext.srf.jcarousel' ); |
| 43 | + } |
| 44 | + |
| 45 | + // In case galleryformat = carousel, perrow should not be set |
| 46 | + if ( $this->m_params['perrow'] !== '' && $this->m_params['galleryformat'] !== 'carousel' ) { |
35 | 47 | $ig->setPerRow( $this->m_params['perrow'] ); |
36 | 48 | } |
37 | 49 | |
— | — | @@ -155,14 +167,17 @@ |
156 | 168 | $imgCaption = ''; |
157 | 169 | } |
158 | 170 | } |
159 | | - else { |
160 | | - $imgCaption = $wgParser->recursiveTagParse( $imgCaption ); |
| 171 | + else { |
| 172 | + $imgCaption = $wgParser->recursiveTagParse( $imgCaption ); |
| 173 | + // the above call creates getMaxIncludeSize() fatal error on Special Pages |
| 174 | + // below might fix this |
| 175 | + // $imgCaption = $wgParser->transformMsg( $imgCaption, ParserOptions::newFromUser( null ) ); |
161 | 176 | } |
162 | 177 | |
163 | 178 | $ig->add( $imgTitle, $imgCaption ); |
164 | 179 | |
165 | 180 | // Only add real images (bug #5586) |
166 | | - if ( $imgTitle->getNamespace() == NS_IMAGE ) { |
| 181 | + if ( $imgTitle->getNamespace() == NS_IMAGE && !$imgTitle->getDBkey() == null ) { |
167 | 182 | $wgParser->mOutput->addImage( $imgTitle->getDBkey() ); |
168 | 183 | } |
169 | 184 | } |
— | — | @@ -177,6 +192,10 @@ |
178 | 193 | public function getParameters() { |
179 | 194 | $params = parent::getParameters(); |
180 | 195 | |
| 196 | + $params['galleryformat'] = new Parameter( 'galleryformat', Parameter::TYPE_STRING, '' ); |
| 197 | + $params['galleryformat']->setMessage( 'srf_paramdesc_galleryformat' ); |
| 198 | + $params['galleryformat']->addCriteria( new CriterionInArray( 'carousel' ) ); |
| 199 | + |
181 | 200 | $params['perrow'] = new Parameter( 'perrow', Parameter::TYPE_INTEGER ); |
182 | 201 | $params['perrow']->setMessage( 'srf_paramdesc_perrow' ); |
183 | 202 | $params['perrow']->setDefault( '', false ); |
Index: trunk/extensions/SemanticResultFormats/Gallery/resources/jquery.jcarousel.min.js |
— | — | @@ -0,0 +1,16 @@ |
| 2 | +/*! |
| 3 | + * jCarousel - Riding carousels with jQuery |
| 4 | + * http://sorgalla.com/jcarousel/ |
| 5 | + * |
| 6 | + * Copyright (c) 2006 Jan Sorgalla (http://sorgalla.com) |
| 7 | + * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) |
| 8 | + * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. |
| 9 | + * |
| 10 | + * Built on top of the jQuery library |
| 11 | + * http://jquery.com |
| 12 | + * |
| 13 | + * Inspired by the "Carousel Component" by Bill Scott |
| 14 | + * http://billwscott.com/carousel/ |
| 15 | + */ |
| 16 | + |
| 17 | +(function(g){var q={vertical:!1,rtl:!1,start:1,offset:1,size:null,scroll:3,visible:null,animation:"normal",easing:"swing",auto:0,wrap:null,initCallback:null,setupCallback:null,reloadCallback:null,itemLoadCallback:null,itemFirstInCallback:null,itemFirstOutCallback:null,itemLastInCallback:null,itemLastOutCallback:null,itemVisibleInCallback:null,itemVisibleOutCallback:null,animationStepCallback:null,buttonNextHTML:"<div></div>",buttonPrevHTML:"<div></div>",buttonNextEvent:"click",buttonPrevEvent:"click", buttonNextCallback:null,buttonPrevCallback:null,itemFallbackDimension:null},m=!1;g(window).bind("load.jcarousel",function(){m=!0});g.jcarousel=function(a,c){this.options=g.extend({},q,c||{});this.autoStopped=this.locked=!1;this.buttonPrevState=this.buttonNextState=this.buttonPrev=this.buttonNext=this.list=this.clip=this.container=null;if(!c||c.rtl===void 0)this.options.rtl=(g(a).attr("dir")||g("html").attr("dir")||"").toLowerCase()=="rtl";this.wh=!this.options.vertical?"width":"height";this.lt=!this.options.vertical? this.options.rtl?"right":"left":"top";for(var b="",d=a.className.split(" "),f=0;f<d.length;f++)if(d[f].indexOf("jcarousel-skin")!=-1){g(a).removeClass(d[f]);b=d[f];break}a.nodeName.toUpperCase()=="UL"||a.nodeName.toUpperCase()=="OL"?(this.list=g(a),this.clip=this.list.parents(".jcarousel-clip"),this.container=this.list.parents(".jcarousel-container")):(this.container=g(a),this.list=this.container.find("ul,ol").eq(0),this.clip=this.container.find(".jcarousel-clip"));if(this.clip.size()===0)this.clip= this.list.wrap("<div></div>").parent();if(this.container.size()===0)this.container=this.clip.wrap("<div></div>").parent();b!==""&&this.container.parent()[0].className.indexOf("jcarousel-skin")==-1&&this.container.wrap('<div class=" '+b+'"></div>');this.buttonPrev=g(".jcarousel-prev",this.container);if(this.buttonPrev.size()===0&&this.options.buttonPrevHTML!==null)this.buttonPrev=g(this.options.buttonPrevHTML).appendTo(this.container);this.buttonPrev.addClass(this.className("jcarousel-prev"));this.buttonNext= g(".jcarousel-next",this.container);if(this.buttonNext.size()===0&&this.options.buttonNextHTML!==null)this.buttonNext=g(this.options.buttonNextHTML).appendTo(this.container);this.buttonNext.addClass(this.className("jcarousel-next"));this.clip.addClass(this.className("jcarousel-clip")).css({position:"relative"});this.list.addClass(this.className("jcarousel-list")).css({overflow:"hidden",position:"relative",top:0,margin:0,padding:0}).css(this.options.rtl?"right":"left",0);this.container.addClass(this.className("jcarousel-container")).css({position:"relative"}); !this.options.vertical&&this.options.rtl&&this.container.addClass("jcarousel-direction-rtl").attr("dir","rtl");var j=this.options.visible!==null?Math.ceil(this.clipping()/this.options.visible):null,b=this.list.children("li"),e=this;if(b.size()>0){var h=0,i=this.options.offset;b.each(function(){e.format(this,i++);h+=e.dimension(this,j)});this.list.css(this.wh,h+100+"px");if(!c||c.size===void 0)this.options.size=b.size()}this.container.css("display","block");this.buttonNext.css("display","block");this.buttonPrev.css("display", "block");this.funcNext=function(){e.next()};this.funcPrev=function(){e.prev()};this.funcResize=function(){e.resizeTimer&&clearTimeout(e.resizeTimer);e.resizeTimer=setTimeout(function(){e.reload()},100)};this.options.initCallback!==null&&this.options.initCallback(this,"init");!m&&g.browser.safari?(this.buttons(!1,!1),g(window).bind("load.jcarousel",function(){e.setup()})):this.setup()};var f=g.jcarousel;f.fn=f.prototype={jcarousel:"0.2.8"};f.fn.extend=f.extend=g.extend;f.fn.extend({setup:function(){this.prevLast= this.prevFirst=this.last=this.first=null;this.animating=!1;this.tail=this.resizeTimer=this.timer=null;this.inTail=!1;if(!this.locked){this.list.css(this.lt,this.pos(this.options.offset)+"px");var a=this.pos(this.options.start,!0);this.prevFirst=this.prevLast=null;this.animate(a,!1);g(window).unbind("resize.jcarousel",this.funcResize).bind("resize.jcarousel",this.funcResize);this.options.setupCallback!==null&&this.options.setupCallback(this)}},reset:function(){this.list.empty();this.list.css(this.lt, "0px");this.list.css(this.wh,"10px");this.options.initCallback!==null&&this.options.initCallback(this,"reset");this.setup()},reload:function(){this.tail!==null&&this.inTail&&this.list.css(this.lt,f.intval(this.list.css(this.lt))+this.tail);this.tail=null;this.inTail=!1;this.options.reloadCallback!==null&&this.options.reloadCallback(this);if(this.options.visible!==null){var a=this,c=Math.ceil(this.clipping()/this.options.visible),b=0,d=0;this.list.children("li").each(function(f){b+=a.dimension(this, c);f+1<a.first&&(d=b)});this.list.css(this.wh,b+"px");this.list.css(this.lt,-d+"px")}this.scroll(this.first,!1)},lock:function(){this.locked=!0;this.buttons()},unlock:function(){this.locked=!1;this.buttons()},size:function(a){if(a!==void 0)this.options.size=a,this.locked||this.buttons();return this.options.size},has:function(a,c){if(c===void 0||!c)c=a;if(this.options.size!==null&&c>this.options.size)c=this.options.size;for(var b=a;b<=c;b++){var d=this.get(b);if(!d.length||d.hasClass("jcarousel-item-placeholder"))return!1}return!0}, get:function(a){return g(">.jcarousel-item-"+a,this.list)},add:function(a,c){var b=this.get(a),d=0,p=g(c);if(b.length===0)for(var j,e=f.intval(a),b=this.create(a);;){if(j=this.get(--e),e<=0||j.length){e<=0?this.list.prepend(b):j.after(b);break}}else d=this.dimension(b);p.get(0).nodeName.toUpperCase()=="LI"?(b.replaceWith(p),b=p):b.empty().append(c);this.format(b.removeClass(this.className("jcarousel-item-placeholder")),a);p=this.options.visible!==null?Math.ceil(this.clipping()/this.options.visible): null;d=this.dimension(b,p)-d;a>0&&a<this.first&&this.list.css(this.lt,f.intval(this.list.css(this.lt))-d+"px");this.list.css(this.wh,f.intval(this.list.css(this.wh))+d+"px");return b},remove:function(a){var c=this.get(a);if(c.length&&!(a>=this.first&&a<=this.last)){var b=this.dimension(c);a<this.first&&this.list.css(this.lt,f.intval(this.list.css(this.lt))+b+"px");c.remove();this.list.css(this.wh,f.intval(this.list.css(this.wh))-b+"px")}},next:function(){this.tail!==null&&!this.inTail?this.scrollTail(!1): this.scroll((this.options.wrap=="both"||this.options.wrap=="last")&&this.options.size!==null&&this.last==this.options.size?1:this.first+this.options.scroll)},prev:function(){this.tail!==null&&this.inTail?this.scrollTail(!0):this.scroll((this.options.wrap=="both"||this.options.wrap=="first")&&this.options.size!==null&&this.first==1?this.options.size:this.first-this.options.scroll)},scrollTail:function(a){if(!this.locked&&!this.animating&&this.tail){this.pauseAuto();var c=f.intval(this.list.css(this.lt)), c=!a?c-this.tail:c+this.tail;this.inTail=!a;this.prevFirst=this.first;this.prevLast=this.last;this.animate(c)}},scroll:function(a,c){!this.locked&&!this.animating&&(this.pauseAuto(),this.animate(this.pos(a),c))},pos:function(a,c){var b=f.intval(this.list.css(this.lt));if(this.locked||this.animating)return b;this.options.wrap!="circular"&&(a=a<1?1:this.options.size&&a>this.options.size?this.options.size:a);for(var d=this.first>a,g=this.options.wrap!="circular"&&this.first<=1?1:this.first,j=d?this.get(g): this.get(this.last),e=d?g:g-1,h=null,i=0,k=!1,l=0;d?--e>=a:++e<a;){h=this.get(e);k=!h.length;if(h.length===0&&(h=this.create(e).addClass(this.className("jcarousel-item-placeholder")),j[d?"before":"after"](h),this.first!==null&&this.options.wrap=="circular"&&this.options.size!==null&&(e<=0||e>this.options.size)))j=this.get(this.index(e)),j.length&&(h=this.add(e,j.clone(!0)));j=h;l=this.dimension(h);k&&(i+=l);if(this.first!==null&&(this.options.wrap=="circular"||e>=1&&(this.options.size===null||e<= this.options.size)))b=d?b+l:b-l}for(var g=this.clipping(),m=[],o=0,n=0,j=this.get(a-1),e=a;++o;){h=this.get(e);k=!h.length;if(h.length===0){h=this.create(e).addClass(this.className("jcarousel-item-placeholder"));if(j.length===0)this.list.prepend(h);else j[d?"before":"after"](h);if(this.first!==null&&this.options.wrap=="circular"&&this.options.size!==null&&(e<=0||e>this.options.size))j=this.get(this.index(e)),j.length&&(h=this.add(e,j.clone(!0)))}j=h;l=this.dimension(h);if(l===0)throw Error("jCarousel: No width/height set for items. This will cause an infinite loop. Aborting..."); this.options.wrap!="circular"&&this.options.size!==null&&e>this.options.size?m.push(h):k&&(i+=l);n+=l;if(n>=g)break;e++}for(h=0;h<m.length;h++)m[h].remove();i>0&&(this.list.css(this.wh,this.dimension(this.list)+i+"px"),d&&(b-=i,this.list.css(this.lt,f.intval(this.list.css(this.lt))-i+"px")));i=a+o-1;if(this.options.wrap!="circular"&&this.options.size&&i>this.options.size)i=this.options.size;if(e>i){o=0;e=i;for(n=0;++o;){h=this.get(e--);if(!h.length)break;n+=this.dimension(h);if(n>=g)break}}e=i-o+ 1;this.options.wrap!="circular"&&e<1&&(e=1);if(this.inTail&&d)b+=this.tail,this.inTail=!1;this.tail=null;if(this.options.wrap!="circular"&&i==this.options.size&&i-o+1>=1&&(d=f.intval(this.get(i).css(!this.options.vertical?"marginRight":"marginBottom")),n-d>g))this.tail=n-g-d;if(c&&a===this.options.size&&this.tail)b-=this.tail,this.inTail=!0;for(;a-- >e;)b+=this.dimension(this.get(a));this.prevFirst=this.first;this.prevLast=this.last;this.first=e;this.last=i;return b},animate:function(a,c){if(!this.locked&& !this.animating){this.animating=!0;var b=this,d=function(){b.animating=!1;a===0&&b.list.css(b.lt,0);!b.autoStopped&&(b.options.wrap=="circular"||b.options.wrap=="both"||b.options.wrap=="last"||b.options.size===null||b.last<b.options.size||b.last==b.options.size&&b.tail!==null&&!b.inTail)&&b.startAuto();b.buttons();b.notify("onAfterAnimation");if(b.options.wrap=="circular"&&b.options.size!==null)for(var c=b.prevFirst;c<=b.prevLast;c++)c!==null&&!(c>=b.first&&c<=b.last)&&(c<1||c>b.options.size)&&b.remove(c)}; this.notify("onBeforeAnimation");if(!this.options.animation||c===!1)this.list.css(this.lt,a+"px"),d();else{var f=!this.options.vertical?this.options.rtl?{right:a}:{left:a}:{top:a},d={duration:this.options.animation,easing:this.options.easing,complete:d};if(g.isFunction(this.options.animationStepCallback))d.step=this.options.animationStepCallback;this.list.animate(f,d)}}},startAuto:function(a){if(a!==void 0)this.options.auto=a;if(this.options.auto===0)return this.stopAuto();if(this.timer===null){this.autoStopped= !1;var c=this;this.timer=window.setTimeout(function(){c.next()},this.options.auto*1E3)}},stopAuto:function(){this.pauseAuto();this.autoStopped=!0},pauseAuto:function(){if(this.timer!==null)window.clearTimeout(this.timer),this.timer=null},buttons:function(a,c){if(a==null&&(a=!this.locked&&this.options.size!==0&&(this.options.wrap&&this.options.wrap!="first"||this.options.size===null||this.last<this.options.size),!this.locked&&(!this.options.wrap||this.options.wrap=="first")&&this.options.size!==null&& this.last>=this.options.size))a=this.tail!==null&&!this.inTail;if(c==null&&(c=!this.locked&&this.options.size!==0&&(this.options.wrap&&this.options.wrap!="last"||this.first>1),!this.locked&&(!this.options.wrap||this.options.wrap=="last")&&this.options.size!==null&&this.first==1))c=this.tail!==null&&this.inTail;var b=this;this.buttonNext.size()>0?(this.buttonNext.unbind(this.options.buttonNextEvent+".jcarousel",this.funcNext),a&&this.buttonNext.bind(this.options.buttonNextEvent+".jcarousel",this.funcNext), this.buttonNext[a?"removeClass":"addClass"](this.className("jcarousel-next-disabled")).attr("disabled",a?!1:!0),this.options.buttonNextCallback!==null&&this.buttonNext.data("jcarouselstate")!=a&&this.buttonNext.each(function(){b.options.buttonNextCallback(b,this,a)}).data("jcarouselstate",a)):this.options.buttonNextCallback!==null&&this.buttonNextState!=a&&this.options.buttonNextCallback(b,null,a);this.buttonPrev.size()>0?(this.buttonPrev.unbind(this.options.buttonPrevEvent+".jcarousel",this.funcPrev), c&&this.buttonPrev.bind(this.options.buttonPrevEvent+".jcarousel",this.funcPrev),this.buttonPrev[c?"removeClass":"addClass"](this.className("jcarousel-prev-disabled")).attr("disabled",c?!1:!0),this.options.buttonPrevCallback!==null&&this.buttonPrev.data("jcarouselstate")!=c&&this.buttonPrev.each(function(){b.options.buttonPrevCallback(b,this,c)}).data("jcarouselstate",c)):this.options.buttonPrevCallback!==null&&this.buttonPrevState!=c&&this.options.buttonPrevCallback(b,null,c);this.buttonNextState= a;this.buttonPrevState=c},notify:function(a){var c=this.prevFirst===null?"init":this.prevFirst<this.first?"next":"prev";this.callback("itemLoadCallback",a,c);this.prevFirst!==this.first&&(this.callback("itemFirstInCallback",a,c,this.first),this.callback("itemFirstOutCallback",a,c,this.prevFirst));this.prevLast!==this.last&&(this.callback("itemLastInCallback",a,c,this.last),this.callback("itemLastOutCallback",a,c,this.prevLast));this.callback("itemVisibleInCallback",a,c,this.first,this.last,this.prevFirst, this.prevLast);this.callback("itemVisibleOutCallback",a,c,this.prevFirst,this.prevLast,this.first,this.last)},callback:function(a,c,b,d,f,j,e){if(!(this.options[a]==null||typeof this.options[a]!="object"&&c!="onAfterAnimation")){var h=typeof this.options[a]=="object"?this.options[a][c]:this.options[a];if(g.isFunction(h)){var i=this;if(d===void 0)h(i,b,c);else if(f===void 0)this.get(d).each(function(){h(i,this,d,b,c)});else for(var a=function(a){i.get(a).each(function(){h(i,this,a,b,c)})},k=d;k<=f;k++)k!== null&&!(k>=j&&k<=e)&&a(k)}}},create:function(a){return this.format("<li></li>",a)},format:function(a,c){for(var a=g(a),b=a.get(0).className.split(" "),d=0;d<b.length;d++)b[d].indexOf("jcarousel-")!=-1&&a.removeClass(b[d]);a.addClass(this.className("jcarousel-item")).addClass(this.className("jcarousel-item-"+c)).css({"float":this.options.rtl?"right":"left","list-style":"none"}).attr("jcarouselindex",c);return a},className:function(a){return a+" "+a+(!this.options.vertical?"-horizontal":"-vertical")}, dimension:function(a,c){var b=g(a);if(c==null)return!this.options.vertical?b.outerWidth(!0)||f.intval(this.options.itemFallbackDimension):b.outerHeight(!0)||f.intval(this.options.itemFallbackDimension);else{var d=!this.options.vertical?c-f.intval(b.css("marginLeft"))-f.intval(b.css("marginRight")):c-f.intval(b.css("marginTop"))-f.intval(b.css("marginBottom"));g(b).css(this.wh,d+"px");return this.dimension(b)}},clipping:function(){return!this.options.vertical?this.clip[0].offsetWidth-f.intval(this.clip.css("borderLeftWidth"))- f.intval(this.clip.css("borderRightWidth")):this.clip[0].offsetHeight-f.intval(this.clip.css("borderTopWidth"))-f.intval(this.clip.css("borderBottomWidth"))},index:function(a,c){if(c==null)c=this.options.size;return Math.round(((a-1)/c-Math.floor((a-1)/c))*c)+1}});f.extend({defaults:function(a){return g.extend(q,a||{})},intval:function(a){a=parseInt(a,10);return isNaN(a)?0:a},windowLoaded:function(){m=!0}});g.fn.jcarousel=function(a){if(typeof a=="string"){var c=g(this).data("jcarousel"),b=Array.prototype.slice.call(arguments, 1);return c[a].apply(c,b)}else return this.each(function(){var b=g(this).data("jcarousel");b?(a&&g.extend(b.options,a),b.reload()):g(this).data("jcarousel",new f(this,a))})}})(jQuery); |
Property changes on: trunk/extensions/SemanticResultFormats/Gallery/resources/jquery.jcarousel.min.js |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 18 | + native |
Index: trunk/extensions/SemanticResultFormats/Gallery/resources/images/prev-horizontal.png |
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
Property changes on: trunk/extensions/SemanticResultFormats/Gallery/resources/images/prev-horizontal.png |
___________________________________________________________________ |
Added: svn:mime-type |
2 | 19 | + image/png |
Index: trunk/extensions/SemanticResultFormats/Gallery/resources/images/prev-vertical.png |
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
Property changes on: trunk/extensions/SemanticResultFormats/Gallery/resources/images/prev-vertical.png |
___________________________________________________________________ |
Added: svn:mime-type |
3 | 20 | + image/png |
Index: trunk/extensions/SemanticResultFormats/Gallery/resources/images/next-horizontal.png |
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
Property changes on: trunk/extensions/SemanticResultFormats/Gallery/resources/images/next-horizontal.png |
___________________________________________________________________ |
Added: svn:mime-type |
4 | 21 | + image/png |
Index: trunk/extensions/SemanticResultFormats/Gallery/resources/images/next-vertical.png |
Cannot display: file marked as a binary type. |
svn:mime-type = image/png |
Property changes on: trunk/extensions/SemanticResultFormats/Gallery/resources/images/next-vertical.png |
___________________________________________________________________ |
Added: svn:mime-type |
5 | 22 | + image/png |
Index: trunk/extensions/SemanticResultFormats/Gallery/resources/ext.srf.jcarousel.css |
— | — | @@ -0,0 +1,228 @@ |
| 2 | +/** |
| 3 | + * Adopted .jcarousel-skin-tango css for SRF Gallery Carousel module |
| 4 | + * |
| 5 | + * @licence: GNU GPL v3 or later |
| 6 | + * @author: mwjames and others |
| 7 | + * |
| 8 | + * @release: 0.1 |
| 9 | + */ |
| 10 | + |
| 11 | +.jcarousel-skin-smw .jcarousel-container { |
| 12 | + background: #ffffff; |
| 13 | + border: 1px solid #eee; |
| 14 | +} |
| 15 | + |
| 16 | +.jcarousel-skin-smw .jcarousel-direction-rtl { |
| 17 | + direction: rtl; |
| 18 | +} |
| 19 | + |
| 20 | +.jcarousel-skin-smw .jcarousel-container-horizontal { |
| 21 | + width: 99.6%; |
| 22 | + padding: 0px 1px; |
| 23 | +} |
| 24 | + |
| 25 | +.jcarousel-skin-smw .jcarousel-container-vertical { |
| 26 | + width: 175px; |
| 27 | + height: 345px; |
| 28 | + padding: 40px 20px; |
| 29 | +} |
| 30 | + |
| 31 | +.jcarousel-skin-smw .jcarousel-clip { |
| 32 | + overflow: hidden; |
| 33 | +} |
| 34 | + |
| 35 | +.jcarousel-skin-smw .jcarousel-clip-horizontal { |
| 36 | + width: 97%; |
| 37 | + height: auto; |
| 38 | +} |
| 39 | + |
| 40 | +.jcarousel-skin-smw .jcarousel-clip-vertical { |
| 41 | + width: 175px; |
| 42 | + height: 345px; |
| 43 | +} |
| 44 | + |
| 45 | +.jcarousel-skin-smw .jcarousel-item { |
| 46 | + width: auto; |
| 47 | + height: auto; |
| 48 | +} |
| 49 | + |
| 50 | +.jcarousel-skin-smw .jcarousel-item-horizontal { |
| 51 | + margin-left: 23px; |
| 52 | + margin-right: 0px; |
| 53 | +} |
| 54 | + |
| 55 | +.jcarousel-skin-smw .jcarousel-direction-rtl .jcarousel-item-horizontal { |
| 56 | + margin-left: 10px; |
| 57 | + margin-right: 0; |
| 58 | +} |
| 59 | + |
| 60 | +.jcarousel-skin-smw .jcarousel-item-vertical { |
| 61 | + margin-bottom: 10px; |
| 62 | +} |
| 63 | + |
| 64 | +.jcarousel-skin-smw .jcarousel-item-placeholder { |
| 65 | + background: #fff; |
| 66 | + color: #000; |
| 67 | +} |
| 68 | + |
| 69 | +/** |
| 70 | + * Horizontal Buttons |
| 71 | + */ |
| 72 | +.jcarousel-skin-smw .jcarousel-next-horizontal { |
| 73 | + position: absolute; |
| 74 | + top: -1px; |
| 75 | + right: -1px; |
| 76 | + width: 32px; |
| 77 | + height: 32px; |
| 78 | + cursor: pointer; |
| 79 | + background: transparent url(images/next-horizontal.png) no-repeat 0 0; |
| 80 | + background-size:7px 11px; |
| 81 | +} |
| 82 | + |
| 83 | +.jcarousel-skin-smw .jcarousel-direction-rtl .jcarousel-next-horizontal { |
| 84 | + left: 5px; |
| 85 | + right: auto; |
| 86 | + background-image: url(images/next-horizontal.png); |
| 87 | +} |
| 88 | + |
| 89 | +.jcarousel-skin-smw .jcarousel-next-horizontal:hover, |
| 90 | +.jcarousel-skin-smw .jcarousel-next-horizontal:focus { |
| 91 | + background-position: -32px 0; |
| 92 | +} |
| 93 | + |
| 94 | +.jcarousel-skin-smw .jcarousel-next-horizontal:active { |
| 95 | + background-position: -64px 0; |
| 96 | +} |
| 97 | + |
| 98 | +.jcarousel-skin-smw .jcarousel-next-disabled-horizontal, |
| 99 | +.jcarousel-skin-smw .jcarousel-next-disabled-horizontal:hover, |
| 100 | +.jcarousel-skin-smw .jcarousel-next-disabled-horizontal:focus, |
| 101 | +.jcarousel-skin-smw .jcarousel-next-disabled-horizontal:active { |
| 102 | + cursor: default; |
| 103 | + background-position: -96px 0; |
| 104 | +} |
| 105 | + |
| 106 | +.jcarousel-skin-smw .jcarousel-prev-horizontal { |
| 107 | + position: absolute; |
| 108 | + top: -1px; |
| 109 | + left: -1px; |
| 110 | + width: 32px; |
| 111 | + height: 32px; |
| 112 | + cursor: pointer; |
| 113 | + background: transparent url(images/prev-horizontal.png) no-repeat 0 0; |
| 114 | + background-size:7px 11px; |
| 115 | +} |
| 116 | + |
| 117 | +.jcarousel-skin-smw .jcarousel-direction-rtl .jcarousel-prev-horizontal { |
| 118 | + left: auto; |
| 119 | + right: 5px; |
| 120 | + background-image: url(images/prev-horizontal.png); |
| 121 | +} |
| 122 | + |
| 123 | +.jcarousel-skin-smw .jcarousel-prev-horizontal:hover, |
| 124 | +.jcarousel-skin-smw .jcarousel-prev-horizontal:focus { |
| 125 | + background-position: -32px 0; |
| 126 | +} |
| 127 | + |
| 128 | +.jcarousel-skin-smw .jcarousel-prev-horizontal:active { |
| 129 | + background-position: -64px 0; |
| 130 | +} |
| 131 | + |
| 132 | +.jcarousel-skin-smw .jcarousel-prev-disabled-horizontal, |
| 133 | +.jcarousel-skin-smw .jcarousel-prev-disabled-horizontal:hover, |
| 134 | +.jcarousel-skin-smw .jcarousel-prev-disabled-horizontal:focus, |
| 135 | +.jcarousel-skin-smw .jcarousel-prev-disabled-horizontal:active { |
| 136 | + cursor: default; |
| 137 | + background-position: -96px 0; |
| 138 | +} |
| 139 | + |
| 140 | +.jcarousel-skin-smw .jcarousel-next-horizontal, .jcarousel-skin-smw .jcarousel-prev-horizontal { |
| 141 | + background-color: whiteSmoke; |
| 142 | + background-position: center; |
| 143 | + background-repeat: no-repeat; |
| 144 | + border: 1px solid gainsboro; |
| 145 | + color: #7B7B7B; |
| 146 | + cursor: pointer; |
| 147 | + font-size: 24px; |
| 148 | + font-weight: bold; |
| 149 | + height: 100%; |
| 150 | + line-height: 216px; |
| 151 | + text-align: center; |
| 152 | + text-decoration: none; |
| 153 | + position: absolute; |
| 154 | + width: 23px; |
| 155 | + |
| 156 | + border-radius: 2px 0 0 2px; |
| 157 | + -moz-border-radius: 2px 0 0 2px; |
| 158 | + -webkit-border-radius: 2px 0 0 2px; |
| 159 | + |
| 160 | +} |
| 161 | + |
| 162 | +.jcarousel-skin-smw .jcarousel-next-horizontal:hover, .jcarousel-skin-smw .jcarousel-prev-horizontal:hover { |
| 163 | + background-color: #F8F8F8; |
| 164 | + border-color: #D6D6D6; |
| 165 | + box-shadow:inset 0 0 1px rgba(0, 0, 0, 0.1); |
| 166 | + color: #4B4B4B; |
| 167 | + text-decoration: none; |
| 168 | +} |
| 169 | + |
| 170 | +/** |
| 171 | + * Vertical Buttons |
| 172 | + */ |
| 173 | +.jcarousel-skin-smw .jcarousel-next-vertical { |
| 174 | + position: absolute; |
| 175 | + bottom: 5px; |
| 176 | + left: 43px; |
| 177 | + width: 32px; |
| 178 | + height: 32px; |
| 179 | + cursor: pointer; |
| 180 | + background: transparent url(images/next-vertical.png) no-repeat 0 0; |
| 181 | +} |
| 182 | + |
| 183 | +.jcarousel-skin-smw .jcarousel-next-vertical:hover, |
| 184 | +.jcarousel-skin-smw .jcarousel-next-vertical:focus { |
| 185 | + background-position: 0 -32px; |
| 186 | +} |
| 187 | + |
| 188 | +.jcarousel-skin-smw .jcarousel-next-vertical:active { |
| 189 | + background-position: 0 -64px; |
| 190 | +} |
| 191 | + |
| 192 | +.jcarousel-skin-smw .jcarousel-next-disabled-vertical, |
| 193 | +.jcarousel-skin-smw .jcarousel-next-disabled-vertical:hover, |
| 194 | +.jcarousel-skin-smw .jcarousel-next-disabled-vertical:focus, |
| 195 | +.jcarousel-skin-smw .jcarousel-next-disabled-vertical:active { |
| 196 | + cursor: default; |
| 197 | + background-position: 0 -96px; |
| 198 | +} |
| 199 | + |
| 200 | +.jcarousel-skin-smw .jcarousel-prev-vertical { |
| 201 | + position: absolute; |
| 202 | + top: 5px; |
| 203 | + left: 43px; |
| 204 | + width: 32px; |
| 205 | + height: 32px; |
| 206 | + cursor: pointer; |
| 207 | + background: transparent url(images/prev-vertical.png) no-repeat 0 0; |
| 208 | +} |
| 209 | + |
| 210 | +.jcarousel-skin-smw .jcarousel-prev-vertical:hover, |
| 211 | +.jcarousel-skin-smw .jcarousel-prev-vertical:focus { |
| 212 | + background-position: 0 -32px; |
| 213 | +} |
| 214 | + |
| 215 | +.jcarousel-skin-smw .jcarousel-prev-vertical:active { |
| 216 | + background-position: 0 -64px; |
| 217 | +} |
| 218 | + |
| 219 | +.jcarousel-skin-smw .jcarousel-prev-disabled-vertical, |
| 220 | +.jcarousel-skin-smw .jcarousel-prev-disabled-vertical:hover, |
| 221 | +.jcarousel-skin-smw .jcarousel-prev-disabled-vertical:focus, |
| 222 | +.jcarousel-skin-smw .jcarousel-prev-disabled-vertical:active { |
| 223 | + cursor: default; |
| 224 | + background-position: 0 -96px; |
| 225 | +} |
| 226 | + |
| 227 | +.jcarousel-list .jcarousel-list-horizontal { |
| 228 | + margin-left:20px; |
| 229 | +} |
Property changes on: trunk/extensions/SemanticResultFormats/Gallery/resources/ext.srf.jcarousel.css |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 230 | + native |
Index: trunk/extensions/SemanticResultFormats/Gallery/resources/ext.srf.jcarousel.js |
— | — | @@ -0,0 +1,21 @@ |
| 2 | +/** |
| 3 | + * JavasSript for SRF Gallery Carousel module |
| 4 | + * |
| 5 | + * @licence: GNU GPL v3 or later |
| 6 | + * @author: mwjames |
| 7 | + * |
| 8 | + * @release: 0.1 |
| 9 | + */ |
| 10 | + |
| 11 | +jQuery(function($) { |
| 12 | + $(window).load(function() { |
| 13 | + // Display carousel only after js is loaded and ready otherwise display=none |
| 14 | + $( '#carousel').show(); |
| 15 | + |
| 16 | + // Call the jcarousel plug-in |
| 17 | + $( '#carousel' ).jcarousel({ |
| 18 | + //circular carousel |
| 19 | + wrap: 'circular', |
| 20 | + }); |
| 21 | + }); |
| 22 | +}); |
\ No newline at end of file |
Property changes on: trunk/extensions/SemanticResultFormats/Gallery/resources/ext.srf.jcarousel.js |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 23 | + native |
Index: trunk/extensions/SemanticResultFormats/SRF_Messages.php |
— | — | @@ -95,6 +95,7 @@ |
96 | 96 | 'srf_paramdesc_fileextensions' => 'When using the filename as caption, also display the file extension', |
97 | 97 | 'srf_paramdesc_captionproperty' => 'The name of a semantic property present on the queried pages to be used as caption', |
98 | 98 | 'srf_paramdesc_imageproperty' => 'Name of a semantic property on the queried pages that points to images to use. When set, the queried pages themselves will not be displayed as images', |
| 99 | + 'srf_paramdesc_galleryformat' => 'Gallery format', |
99 | 100 | |
100 | 101 | // "tagcloud" format |
101 | 102 | 'srf_printername_tagcloud' => 'Tag cloud', |
— | — | @@ -136,6 +137,11 @@ |
137 | 138 | 'srf-paramdesc-graph-wwl' => 'Word wrap limit (in # characters)', |
138 | 139 | |
139 | 140 | 'srf-warn-empy-chart' => 'The chart is not shown because there are no results that can be displayed on it.', |
| 141 | + |
| 142 | + //DataTables |
| 143 | + 'srf_printername_datatables' => 'DataTables', |
| 144 | + 'srf-paramdesc-rowindex' => 'Table row index', |
| 145 | + 'srf-paramdesc-displaylength' => 'Initial display length', |
140 | 146 | ); |
141 | 147 | |
142 | 148 | /** Message documentation (Message documentation) |
Index: trunk/extensions/SemanticResultFormats/SRF_Resources.php |
— | — | @@ -110,7 +110,18 @@ |
111 | 111 | 'jquery.progressbar', |
112 | 112 | 'ext.srf.jit', |
113 | 113 | ), |
114 | | - 'position' => 'top' |
| 114 | + 'position' => 'top', |
115 | 115 | ); |
116 | 116 | |
| 117 | +$wgResourceModules['ext.srf.jcarousel'] = $moduleTemplate + array( |
| 118 | + 'scripts' => array( |
| 119 | + 'Gallery/resources/jquery.jcarousel.min.js', |
| 120 | + 'Gallery/resources/ext.srf.jcarousel.js', |
| 121 | + ), |
| 122 | + 'styles' => array( |
| 123 | + 'Gallery/resources/ext.srf.jcarousel.css', |
| 124 | + ), |
| 125 | + 'position' => 'top', |
| 126 | +); |
| 127 | + |
117 | 128 | unset( $moduleTemplate ); |