diff options
author | vdigital <vdigital@piwigo.org> | 2008-05-23 21:05:41 +0000 |
---|---|---|
committer | vdigital <vdigital@piwigo.org> | 2008-05-23 21:05:41 +0000 |
commit | 77fd1f51a3c5f5a52f72ef8a299fe368228e2285 (patch) | |
tree | a67ede42904657ccf3349ecdaef1cec8b8e36ff8 /BSF/template | |
parent | 553727dffacc48e8337c1d141f2a25af359e74b1 (diff) |
git-svn-id: http://piwigo.org/svn/trunk@2357 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to '')
244 files changed, 9945 insertions, 0 deletions
diff --git a/BSF/template-common/csshover.htc b/BSF/template-common/csshover.htc new file mode 100644 index 000000000..14f88576c --- /dev/null +++ b/BSF/template-common/csshover.htc @@ -0,0 +1,120 @@ +<attach event="ondocumentready" handler="parseStylesheets" /> +<script> +/** + * Whatever:hover - V1.42.060206 - hover & active + * ------------------------------------------------------------ + * (c) 2005 - Peter Nederlof + * Peterned - http://www.xs4all.nl/~peterned/ + * License - http://creativecommons.org/licenses/LGPL/2.1/ + * + * Whatever:hover is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * Whatever:hover is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * Credits and thanks to: + * Arnoud Berendsen, Martin Reurings, Robert Hanson + * + * howto: body { behavior:url("csshover.htc"); } + * ------------------------------------------------------------ + */ + +var csshoverReg = /(^|\s)(([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active)/i, +currentSheet, doc = window.document, hoverEvents = [], activators = { + onhover:{on:'onmouseover', off:'onmouseout'}, + onactive:{on:'onmousedown', off:'onmouseup'} +} + +function parseStylesheets() { + if(!/MSIE (5|6)/.test(navigator.userAgent)) return; + window.attachEvent('onunload', unhookHoverEvents); + var sheets = doc.styleSheets, l = sheets.length; + for(var i=0; i<l; i++) + parseStylesheet(sheets[i]); +} + function parseStylesheet(sheet) { + if(sheet.imports) { + try { + var imports = sheet.imports, l = imports.length; + for(var i=0; i<l; i++) parseStylesheet(sheet.imports[i]); + } catch(securityException){} + } + + try { + var rules = (currentSheet = sheet).rules, l = rules.length; + for(var j=0; j<l; j++) parseCSSRule(rules[j]); + } catch(securityException){} + } + + function parseCSSRule(rule) { + var select = rule.selectorText, style = rule.style.cssText; + if(!csshoverReg.test(select) || !style) return; + + var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, 'on$1'); + var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, '.$2' + pseudo); + var className = (/\.([a-z0-9_-]*on(hover|active))/i).exec(newSelect)[1]; + var affected = select.replace(/:(hover|active).*$/, ''); + var elements = getElementsBySelect(affected); + if(elements.length == 0) return; + + currentSheet.addRule(newSelect, style); + for(var i=0; i<elements.length; i++) + new HoverElement(elements[i], className, activators[pseudo]); + } + +function HoverElement(node, className, events) { + if(!node.hovers) node.hovers = {}; + if(node.hovers[className]) return; + node.hovers[className] = true; + hookHoverEvent(node, events.on, function() { node.className += ' ' + className; }); + hookHoverEvent(node, events.off, function() { node.className = node.className.replace(new RegExp('\\s+'+className, 'g'),''); }); +} + function hookHoverEvent(node, type, handler) { + node.attachEvent(type, handler); + hoverEvents[hoverEvents.length] = { + node:node, type:type, handler:handler + }; + } + + function unhookHoverEvents() { + for(var e,i=0; i<hoverEvents.length; i++) { + e = hoverEvents[i]; + e.node.detachEvent(e.type, e.handler); + } + } + +function getElementsBySelect(rule) { + var parts, nodes = [doc]; + parts = rule.split(' '); + for(var i=0; i<parts.length; i++) { + nodes = getSelectedNodes(parts[i], nodes); + } return nodes; +} + function getSelectedNodes(select, elements) { + var result, node, nodes = []; + var identify = (/\#([a-z0-9_-]+)/i).exec(select); + if(identify) { + var element = doc.getElementById(identify[1]); + return element? [element]:nodes; + } + + var classname = (/\.([a-z0-9_-]+)/i).exec(select); + var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, ''); + var classReg = classname? new RegExp('\\b' + classname[1] + '\\b'):false; + for(var i=0; i<elements.length; i++) { + result = tagName? elements[i].all.tags(tagName):elements[i].all; + for(var j=0; j<result.length; j++) { + node = result[j]; + if(classReg && !classReg.test(node.className)) continue; + nodes[nodes.length] = node; + } + } + + return nodes; + } +</script>
\ No newline at end of file diff --git a/BSF/template-common/default-layout.css b/BSF/template-common/default-layout.css new file mode 100644 index 000000000..1c3d70864 --- /dev/null +++ b/BSF/template-common/default-layout.css @@ -0,0 +1,82 @@ +/* $Id$ */ + +/* Set the width of the menubar for the galery */ +#menubar { + width: 18em; +} +.content { + margin-left: 20em; /* = #menubar width + 2em */ +} +/* Set minimum width of the page before getting a scrollbar */ +/* IE5 and IE6 don't get that */ +BODY { + min-width: 60em; /* ~ 3* #menubar width */ +} +BODY#thePopuphelpPage { + min-width: 0; +} + +/* Set the width of the menubar for the admin section */ +BODY#theAdminPage #menubar { + width: 12.5em; +} +BODY#theAdminPage .content { + margin-left: 14.5em; /* = #menubar width + 2em */ +} + +/* Set some sizes according to your maximum thumbnail width and height */ +.content UL.thumbnails SPAN, +.content UL.thumbnails SPAN.wrap2 A, +.content UL.thumbnails LABEL, +.content DIV.thumbnailCategory DIV.illustration { + width: 140px; /* max thumbnail width + 2px */ +} +.content UL.thumbnails SPAN.wrap2, +.content DIV.thumbnailCategory DIV.description { + height: 140px; /* max thumbnail height + 2px */ +} +.content DIV.comment BLOCKQUOTE { + margin-left: 150px; /*maximum thumbnail width + ~10px */ +} + +/* Category thumbnails on main page */ +.content UL.thumbnailCategories LI { + width: 49.7%; /* 49.7% for 2 per line, 33.2% for 3 per line*/ +} + +/* Set defaults for thumbnails legend */ +.content UL.thumbnails SPAN.thumbLegend { + display: block; /* display: none; if you don't want legend */ + height: 4em; /* legend height (don't set auto to be Gecko friendly)*/ +} + +/* Tooltips*/ +.tooltip { + position: relative; +} + +.tooltip span { + display: none; +} + +.tooltip:hover { + cursor: pointer; + z-index: 500; +} + +.tooltip:hover span { + display: inline; + position: absolute; + top: 30px; + left: -50px; + width: 400px; + + font-size: 11px; + text-decoration: none; + text-align: justify; + background-color: #FFFFCC; + color: #444444; + + padding: 10px; + border: 1px solid Black; +} diff --git a/BSF/template-common/favicon.ico b/BSF/template-common/favicon.ico Binary files differnew file mode 100644 index 000000000..cbceea43d --- /dev/null +++ b/BSF/template-common/favicon.ico diff --git a/BSF/template-common/index.php b/BSF/template-common/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template-common/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template-common/inputfix.htc b/BSF/template-common/inputfix.htc new file mode 100644 index 000000000..e99d2b2c7 --- /dev/null +++ b/BSF/template-common/inputfix.htc @@ -0,0 +1,42 @@ +<public:attach event="oncontentready" onevent="fixElements()" /> + +<script langage=javascript> + +function setFocusStyle() +{ + window.event.srcElement.className += ' focus'; +} + +function setBlurStyle() +{ + window.event.srcElement.className = window.event.srcElement.className.replace( ' focus', ' nofocus'); +} + +function setClassFromType() +{ + this.className += ' ' + this.type; +} + +function fixElements() +{ + for ( var i=0; i<this.elements.length; i++ ) + { + var elem=this.elements[i]; + switch ( elem.tagName ) + { + case "INPUT": + elem.className += ' ' + elem.type; + if ( (elem.type != "radio") && (elem.type != "checkbox") ) + { /* setting focus/nofocus on those is a mess to handle in css */ + elem.attachEvent( 'onfocus', setFocusStyle ); + elem.attachEvent( 'onblur', setBlurStyle ); + } + break; + case "SELECT": + case "TEXTAREA": + elem.attachEvent( 'onfocus', setFocusStyle ); + elem.attachEvent( 'onblur', setBlurStyle ); + } + } +} +</script> diff --git a/BSF/template-common/jquery.accordion.js b/BSF/template-common/jquery.accordion.js new file mode 100644 index 000000000..ffa0711a5 --- /dev/null +++ b/BSF/template-common/jquery.accordion.js @@ -0,0 +1,311 @@ +/* + * jQuery UI Accordion 1.6 + * + * Copyright (c) 2007 Jörn Zaefferer + * + * http://docs.jquery.com/UI/Accordion + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * Revision: $Id$ + * + */ + +;(function($) { + +// If the UI scope is not available, add it +$.ui = $.ui || {}; + +$.fn.extend({ + accordion: function(options, data) { + var args = Array.prototype.slice.call(arguments, 1); + + return this.each(function() { + if (typeof options == "string") { + var accordion = $.data(this, "ui-accordion"); + accordion[options].apply(accordion, args); + // INIT with optional options + } else if (!$(this).is(".ui-accordion")) + $.data(this, "ui-accordion", new $.ui.accordion(this, options)); + }); + }, + // deprecated, use accordion("activate", index) instead + activate: function(index) { + return this.accordion("activate", index); + } +}); + +$.ui.accordion = function(container, options) { + + // setup configuration + this.options = options = $.extend({}, $.ui.accordion.defaults, options); + this.element = container; + + $(container).addClass("ui-accordion"); + + if ( options.navigation ) { + var current = $(container).find("a").filter(options.navigationFilter); + if ( current.length ) { + if ( current.filter(options.header).length ) { + options.active = current; + } else { + options.active = current.parent().parent().prev(); + current.addClass("current"); + } + } + } + + // calculate active if not specified, using the first header + options.headers = $(container).find(options.header); + options.active = findActive(options.headers, options.active); + + if ( options.fillSpace ) { + var maxHeight = $(container).parent().height(); + options.headers.each(function() { + maxHeight -= $(this).outerHeight(); + }); + var maxPadding = 0; + options.headers.next().each(function() { + maxPadding = Math.max(maxPadding, $(this).innerHeight() - $(this).height()); + }).height(maxHeight - maxPadding); + } else if ( options.autoheight ) { + var maxHeight = 0; + options.headers.next().each(function() { + maxHeight = Math.max(maxHeight, $(this).outerHeight()); + }).height(maxHeight); + } + + options.headers + .not(options.active || "") + .next() + .hide(); + options.active.parent().andSelf().addClass(options.selectedClass); + + if (options.event) + $(container).bind((options.event) + ".ui-accordion", clickHandler); +}; + +$.ui.accordion.prototype = { + activate: function(index) { + // call clickHandler with custom event + clickHandler.call(this.element, { + target: findActive( this.options.headers, index )[0] + }); + }, + + enable: function() { + this.options.disabled = false; + }, + disable: function() { + this.options.disabled = true; + }, + destroy: function() { + this.options.headers.next().css("display", ""); + if ( this.options.fillSpace || this.options.autoheight ) { + this.options.headers.next().css("height", ""); + } + $.removeData(this.element, "ui-accordion"); + $(this.element).removeClass("ui-accordion").unbind(".ui-accordion"); + } +} + +function scopeCallback(callback, scope) { + return function() { + return callback.apply(scope, arguments); + }; +} + +function completed(cancel) { + // if removed while animated data can be empty + if (!$.data(this, "ui-accordion")) + return; + var instance = $.data(this, "ui-accordion"); + var options = instance.options; + options.running = cancel ? 0 : --options.running; + if ( options.running ) + return; + if ( options.clearStyle ) { + options.toShow.add(options.toHide).css({ + height: "", + overflow: "" + }); + } + $(this).triggerHandler("change.ui-accordion", [options.data], options.change); +} + +function toggle(toShow, toHide, data, clickedActive, down) { + var options = $.data(this, "ui-accordion").options; + options.toShow = toShow; + options.toHide = toHide; + options.data = data; + var complete = scopeCallback(completed, this); + + // count elements to animate + options.running = toHide.size() == 0 ? toShow.size() : toHide.size(); + + if ( options.animated ) { + if ( !options.alwaysOpen && clickedActive ) { + $.ui.accordion.animations[options.animated]({ + toShow: jQuery([]), + toHide: toHide, + complete: complete, + down: down, + autoheight: options.autoheight + }); + } else { + $.ui.accordion.animations[options.animated]({ + toShow: toShow, + toHide: toHide, + complete: complete, + down: down, + autoheight: options.autoheight + }); + } + } else { + if ( !options.alwaysOpen && clickedActive ) { + toShow.toggle(); + } else { + toHide.hide(); + toShow.show(); + } + complete(true); + } +} + +function clickHandler(event) { + var options = $.data(this, "ui-accordion").options; + if (options.disabled) + return false; + + // called only when using activate(false) to close all parts programmatically + if ( !event.target && !options.alwaysOpen ) { + options.active.parent().andSelf().toggleClass(options.selectedClass); + var toHide = options.active.next(), + data = { + instance: this, + options: options, + newHeader: jQuery([]), + oldHeader: options.active, + newContent: jQuery([]), + oldContent: toHide + }, + toShow = options.active = $([]); + toggle.call(this, toShow, toHide, data ); + return false; + } + // get the click target + var clicked = $(event.target); + + // due to the event delegation model, we have to check if one + // of the parent elements is our actual header, and find that + if ( clicked.parents(options.header).length ) + while ( !clicked.is(options.header) ) + clicked = clicked.parent(); + + var clickedActive = clicked[0] == options.active[0]; + + // if animations are still active, or the active header is the target, ignore click + if (options.running || (options.alwaysOpen && clickedActive)) + return false; + if (!clicked.is(options.header)) + return; + + // switch classes + options.active.parent().andSelf().toggleClass(options.selectedClass); + if ( !clickedActive ) { + clicked.parent().andSelf().addClass(options.selectedClass); + } + + // find elements to show and hide + var toShow = clicked.next(), + toHide = options.active.next(), + //data = [clicked, options.active, toShow, toHide], + data = { + instance: this, + options: options, + newHeader: clicked, + oldHeader: options.active, + newContent: toShow, + oldContent: toHide + }, + down = options.headers.index( options.active[0] ) > options.headers.index( clicked[0] ); + + options.active = clickedActive ? $([]) : clicked; + toggle.call(this, toShow, toHide, data, clickedActive, down ); + + return false; +}; + +function findActive(headers, selector) { + return selector != undefined + ? typeof selector == "number" + ? headers.filter(":eq(" + selector + ")") + : headers.not(headers.not(selector)) + : selector === false + ? $([]) + : headers.filter(":eq(0)"); +} + +$.extend($.ui.accordion, { + defaults: { + selectedClass: "selected", + alwaysOpen: true, + animated: 'slide', + event: "click", + header: "a", + autoheight: true, + running: 0, + navigationFilter: function() { + return this.href.toLowerCase() == location.href.toLowerCase(); + } + }, + animations: { + slide: function(options, additions) { + options = $.extend({ + easing: "swing", + duration: 300 + }, options, additions); + if ( !options.toHide.size() ) { + options.toShow.animate({height: "show"}, options); + return; + } + var hideHeight = options.toHide.height(), + showHeight = options.toShow.height(), + difference = showHeight / hideHeight; + options.toShow.css({ height: 0, overflow: 'hidden' }).show(); + options.toHide.filter(":hidden").each(options.complete).end().filter(":visible").animate({height:"hide"},{ + step: function(now) { + var current = (hideHeight - now) * difference; + if ($.browser.msie || $.browser.opera) { + current = Math.ceil(current); + } + options.toShow.height( current ); + }, + duration: options.duration, + easing: options.easing, + complete: function() { + if ( !options.autoheight ) { + options.toShow.css("height", "auto"); + } + options.complete(); + } + }); + }, + bounceslide: function(options) { + this.slide(options, { + easing: options.down ? "bounceout" : "swing", + duration: options.down ? 1000 : 200 + }); + }, + easeslide: function(options) { + this.slide(options, { + easing: "easeinout", + duration: 700 + }) + } + } +}); + +})(jQuery); diff --git a/BSF/template-common/jquery.accordion.min.js b/BSF/template-common/jquery.accordion.min.js new file mode 100644 index 000000000..e4b6cd9ff --- /dev/null +++ b/BSF/template-common/jquery.accordion.min.js @@ -0,0 +1,14 @@ +/* + * jQuery UI Accordion 1.6 + * + * Copyright (c) 2007 Jörn Zaefferer + * + * http://docs.jquery.com/UI/Accordion + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * Revision: $Id$ + * + */;(function($){$.ui=$.ui||{};$.fn.extend({accordion:function(options,data){var args=Array.prototype.slice.call(arguments,1);return this.each(function(){if(typeof options=="string"){var accordion=$.data(this,"ui-accordion");accordion[options].apply(accordion,args);}else if(!$(this).is(".ui-accordion"))$.data(this,"ui-accordion",new $.ui.accordion(this,options));});},activate:function(index){return this.accordion("activate",index);}});$.ui.accordion=function(container,options){this.options=options=$.extend({},$.ui.accordion.defaults,options);this.element=container;$(container).addClass("ui-accordion");if(options.navigation){var current=$(container).find("a").filter(options.navigationFilter);if(current.length){if(current.filter(options.header).length){options.active=current;}else{options.active=current.parent().parent().prev();current.addClass("current");}}}options.headers=$(container).find(options.header);options.active=findActive(options.headers,options.active);if(options.fillSpace){var maxHeight=$(container).parent().height();options.headers.each(function(){maxHeight-=$(this).outerHeight();});var maxPadding=0;options.headers.next().each(function(){maxPadding=Math.max(maxPadding,$(this).innerHeight()-$(this).height());}).height(maxHeight-maxPadding);}else if(options.autoheight){var maxHeight=0;options.headers.next().each(function(){maxHeight=Math.max(maxHeight,$(this).outerHeight());}).height(maxHeight);}options.headers.not(options.active||"").next().hide();options.active.parent().andSelf().addClass(options.selectedClass);if(options.event)$(container).bind((options.event)+".ui-accordion",clickHandler);};$.ui.accordion.prototype={activate:function(index){clickHandler.call(this.element,{target:findActive(this.options.headers,index)[0]});},enable:function(){this.options.disabled=false;},disable:function(){this.options.disabled=true;},destroy:function(){this.options.headers.next().css("display","");if(this.options.fillSpace||this.options.autoheight){this.options.headers.next().css("height","");}$.removeData(this.element,"ui-accordion");$(this.element).removeClass("ui-accordion").unbind(".ui-accordion");}}function scopeCallback(callback,scope){return function(){return callback.apply(scope,arguments);};}function completed(cancel){if(!$.data(this,"ui-accordion"))return;var instance=$.data(this,"ui-accordion");var options=instance.options;options.running=cancel?0:--options.running;if(options.running)return;if(options.clearStyle){options.toShow.add(options.toHide).css({height:"",overflow:""});}$(this).triggerHandler("change.ui-accordion",[options.data],options.change);}function toggle(toShow,toHide,data,clickedActive,down){var options=$.data(this,"ui-accordion").options;options.toShow=toShow;options.toHide=toHide;options.data=data;var complete=scopeCallback(completed,this);options.running=toHide.size()==0?toShow.size():toHide.size();if(options.animated){if(!options.alwaysOpen&&clickedActive){$.ui.accordion.animations[options.animated]({toShow:jQuery([]),toHide:toHide,complete:complete,down:down,autoheight:options.autoheight});}else{$.ui.accordion.animations[options.animated]({toShow:toShow,toHide:toHide,complete:complete,down:down,autoheight:options.autoheight});}}else{if(!options.alwaysOpen&&clickedActive){toShow.toggle();}else{toHide.hide();toShow.show();}complete(true);}}function clickHandler(event){var options=$.data(this,"ui-accordion").options;if(options.disabled)return false;if(!event.target&&!options.alwaysOpen){options.active.parent().andSelf().toggleClass(options.selectedClass);var toHide=options.active.next(),data={instance:this,options:options,newHeader:jQuery([]),oldHeader:options.active,newContent:jQuery([]),oldContent:toHide},toShow=options.active=$([]);toggle.call(this,toShow,toHide,data);return false;}var clicked=$(event.target);if(clicked.parents(options.header).length)while(!clicked.is(options.header))clicked=clicked.parent();var clickedActive=clicked[0]==options.active[0];if(options.running||(options.alwaysOpen&&clickedActive))return false;if(!clicked.is(options.header))return;options.active.parent().andSelf().toggleClass(options.selectedClass);if(!clickedActive){clicked.parent().andSelf().addClass(options.selectedClass);}var toShow=clicked.next(),toHide=options.active.next(),data={instance:this,options:options,newHeader:clicked,oldHeader:options.active,newContent:toShow,oldContent:toHide},down=options.headers.index(options.active[0])>options.headers.index(clicked[0]);options.active=clickedActive?$([]):clicked;toggle.call(this,toShow,toHide,data,clickedActive,down);return false;};function findActive(headers,selector){return selector!=undefined?typeof selector=="number"?headers.filter(":eq("+selector+")"):headers.not(headers.not(selector)):selector===false?$([]):headers.filter(":eq(0)");}$.extend($.ui.accordion,{defaults:{selectedClass:"selected",alwaysOpen:true,animated:'slide',event:"click",header:"a",autoheight:true,running:0,navigationFilter:function(){return this.href.toLowerCase()==location.href.toLowerCase();}},animations:{slide:function(options,additions){options=$.extend({easing:"swing",duration:300},options,additions);if(!options.toHide.size()){options.toShow.animate({height:"show"},options);return;}var hideHeight=options.toHide.height(),showHeight=options.toShow.height(),difference=showHeight/hideHeight;options.toShow.css({height:0,overflow:'hidden'}).show();options.toHide.filter(":hidden").each(options.complete).end().filter(":visible").animate({height:"hide"},{step:function(now){var current=(hideHeight-now)*difference;if($.browser.msie||$.browser.opera){current=Math.ceil(current);}options.toShow.height(current);},duration:options.duration,easing:options.easing,complete:function(){if(!options.autoheight){options.toShow.css("height","auto");}options.complete();}});},bounceslide:function(options){this.slide(options,{easing:options.down?"bounceout":"swing",duration:options.down?1000:200});},easeslide:function(options){this.slide(options,{easing:"easeinout",duration:700})}}});})(jQuery);
\ No newline at end of file diff --git a/BSF/template-common/jquery.accordion.pack.js b/BSF/template-common/jquery.accordion.pack.js new file mode 100644 index 000000000..447f9de26 --- /dev/null +++ b/BSF/template-common/jquery.accordion.pack.js @@ -0,0 +1,15 @@ +/* + * jQuery UI Accordion 1.6 + * + * Copyright (c) 2007 Jörn Zaefferer + * + * http://docs.jquery.com/UI/Accordion + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * Revision: $Id$ + * + */ +eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';(3($){$.5=$.5||{};$.1L.M({6:3(c,b){7 d=1Q.1k.1K.F(16,1);9 2.B(3(){4(1m c=="1O"){7 a=$.j(2,"5-6");a[c].1h(a,d)}t 4(!$(2).R(".5-6"))$.j(2,"5-6",1D $.5.6(2,c))})},Q:3(a){9 2.6("Q",a)}});$.5.6=3(e,d){2.i=d=$.M({},$.5.6.11,d);2.N=e;$(e).L("5-6");4(d.1Z){7 a=$(e).1t("a").q(d.1r);4(a.V){4(a.q(d.u).V){d.8=a}t{d.8=a.m().m().1N();a.L("1M")}}}d.k=$(e).1t(d.u);d.8=U(d.k,d.8);4(d.1j){7 b=$(e).m().h();d.k.B(3(){b-=$(2).1g()});7 c=0;d.k.o().B(3(){c=P.19(c,$(2).1F()-$(2).h())}).h(b-c)}t 4(d.n){7 b=0;d.k.o().B(3(){b=P.19(b,$(2).1g())}).h(b)}d.k.O(d.8||"").o().10();d.8.m().J().L(d.w);4(d.Y)$(e).1z((d.Y)+".5-6",W)};$.5.6.1k={Q:3(a){W.F(2.N,{X:U(2.i.k,a)[0]})},1v:3(){2.i.Z=s},25:3(){2.i.Z=D},1Y:3(){2.i.k.o().C("1W","");4(2.i.1j||2.i.n){2.i.k.o().C("h","")}$.1V(2.N,"5-6");$(2.N).1U("5-6").1T(".5-6")}}3 1q(a,b){9 3(){9 a.1h(b,16)}}3 1p(a){4(!$.j(2,"5-6"))9;7 b=$.j(2,"5-6");7 c=b.i;c.v=a?0:--c.v;4(c.v)9;4(c.1S){c.l.1R(c.p).C({h:"",1n:""})}$(2).1P("1l.5-6",[c.j],c.1l)}3 I(g,c,b,d,a){7 e=$.j(2,"5-6").i;e.l=g;e.p=c;e.j=b;7 f=1q(1p,2);e.v=c.H()==0?g.H():c.H();4(e.G){4(!e.A&&d){$.5.6.T[e.G]({l:K([]),p:c,x:f,r:a,n:e.n})}t{$.5.6.T[e.G]({l:g,p:c,x:f,r:a,n:e.n})}}t{4(!e.A&&d){g.I()}t{c.10();g.S()}f(D)}}3 W(a){7 c=$.j(2,"5-6").i;4(c.Z)9 s;4(!a.X&&!c.A){c.8.m().J().1i(c.w);7 d=c.8.o(),j={1f:2,i:c,1e:K([]),1d:c.8,12:K([]),1b:d},f=c.8=$([]);I.F(2,f,d,j);9 s}7 b=$(a.X);4(b.1J(c.u).V)1I(!b.R(c.u))b=b.m();7 e=b[0]==c.8[0];4(c.v||(c.A&&e))9 s;4(!b.R(c.u))9;c.8.m().J().1i(c.w);4(!e){b.m().J().L(c.w)}7 f=b.o(),d=c.8.o(),j={1f:2,i:c,1e:b,1d:c.8,12:f,1b:d},r=c.k.1a(c.8[0])>c.k.1a(b[0]);c.8=e?$([]):b;I.F(2,f,d,j,e,r);9 s};3 U(a,b){9 b!=1H?1m b=="1G"?a.q(":18("+b+")"):a.O(a.O(b)):b===s?$([]):a.q(":18(0)")}$.M($.5.6,{11:{w:"1E",A:D,G:\'E\',Y:"1C",u:"a",n:D,v:0,1r:3(){9 2.17.1c()==1B.17.1c()}},T:{E:3(e,d){e=$.M({z:"15",y:1A},e,d);4(!e.p.H()){e.l.14({h:"S"},e);9}7 c=e.p.h(),13=e.l.h(),1s=13/c;e.l.C({h:0,1n:\'1o\'}).S();e.p.q(":1o").B(e.x).1y().q(":1x").14({h:"10"},{1X:3(a){7 b=(c-a)*1s;4($.1u.1w||$.1u.20){b=P.21(b)}e.l.h(b)},y:e.y,z:e.z,x:3(){4(!e.n){e.l.C("h","2a")}e.x()}})},28:3(a){2.E(a,{z:a.r?"27":"15",y:a.r?26:24})},23:3(a){2.E(a,{z:"22",y:29})}}})})(K);',62,135,'||this|function|if|ui|accordion|var|active|return||||||||height|options|data|headers|toShow|parent|autoheight|next|toHide|filter|down|false|else|header|running|selectedClass|complete|duration|easing|alwaysOpen|each|css|true|slide|call|animated|size|toggle|andSelf|jQuery|addClass|extend|element|not|Math|activate|is|show|animations|findActive|length|clickHandler|target|event|disabled|hide|defaults|newContent|showHeight|animate|swing|arguments|href|eq|max|index|oldContent|toLowerCase|oldHeader|newHeader|instance|outerHeight|apply|toggleClass|fillSpace|prototype|change|typeof|overflow|hidden|completed|scopeCallback|navigationFilter|difference|find|browser|enable|msie|visible|end|bind|300|location|click|new|selected|innerHeight|number|undefined|while|parents|slice|fn|current|prev|string|triggerHandler|Array|add|clearStyle|unbind|removeClass|removeData|display|step|destroy|navigation|opera|ceil|easeinout|easeslide|200|disable|1000|bounceout|bounceslide|700|auto'.split('|'),0,{}))
\ No newline at end of file diff --git a/BSF/template-common/lib/chili-1.7.pack.js b/BSF/template-common/lib/chili-1.7.pack.js new file mode 100644 index 000000000..90e7735cb --- /dev/null +++ b/BSF/template-common/lib/chili-1.7.pack.js @@ -0,0 +1 @@ +eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('8={3b:"1.6",2o:"1B.1Y,1B.23,1B.2e",2i:"",2H:1a,12:"",2C:1a,Z:"",2a:\'<H V="$0">$$</H>\',R:"&#F;",1j:"&#F;&#F;&#F;&#F;",1f:"&#F;<1W/>",3c:5(){9 $(y).39("1k")[0]},I:{},N:{}};(5($){$(5(){5 1J(l,a){5 2I(A,h){4 3=(1v h.3=="1h")?h.3:h.3.1w;k.1m({A:A,3:"("+3+")",u:1+(3.c(/\\\\./g,"%").c(/\\[.*?\\]/g,"%").3a(/\\((?!\\?)/g)||[]).u,z:(h.z)?h.z:8.2a})}5 2z(){4 1E=0;4 1x=x 2A;Q(4 i=0;i<k.u;i++){4 3=k[i].3;3=3.c(/\\\\\\\\|\\\\(\\d+)/g,5(m,1F){9!1F?m:"\\\\"+(1E+1+1t(1F))});1x.1m(3);1E+=k[i].u}4 1w=1x.3d("|");9 x 1u(1w,(a.3g)?"2j":"g")}5 1S(o){9 o.c(/&/g,"&3h;").c(/</g,"&3e;")}5 1R(o){9 o.c(/ +/g,5(1X){9 1X.c(/ /g,R)})}5 G(o){o=1S(o);7(R){o=1R(o)}9 o}5 2m(2E){4 i=0;4 j=1;4 h;19(h=k[i++]){4 1b=D;7(1b[j]){4 1U=/(\\\\\\$)|(?:\\$\\$)|(?:\\$(\\d+))/g;4 z=h.z.c(1U,5(m,1V,K){4 3f=\'\';7(1V){9"$"}v 7(!K){9 G(1b[j])}v 7(K=="0"){9 h.A}v{9 G(1b[j+1t(K,10)])}});4 1A=D[D.u-2];4 2h=D[D.u-1];4 2G=2h.2v(11,1A);11=1A+2E.u;14+=G(2G)+z;9 z}v{j+=h.u}}}4 R=8.R;4 k=x 2A;Q(4 A 2r a.k){2I(A,a.k[A])}4 14="";4 11=0;l.c(2z(),2m);4 2y=l.2v(11,l.u);14+=G(2y);9 14}5 2B(X){7(!8.N[X]){4 Y=\'<Y 32="1p" 33="p/2u"\'+\' 30="\'+X+\'">\';8.N[X]=1H;7($.31.34){4 W=J.1L(Y);4 $W=$(W);$("2d").1O($W)}v{$("2d").1O(Y)}}}5 1q(e,a){4 l=e&&e.1g&&e.1g[0]&&e.1g[0].37;7(!l)l="";l=l.c(/\\r\\n?/g,"\\n");4 C=1J(l,a);7(8.1j){C=C.c(/\\t/g,8.1j)}7(8.1f){C=C.c(/\\n/g,8.1f)}$(e).38(C)}5 1o(q,13){4 1l={12:8.12,2x:q+".1d",Z:8.Z,2w:q+".2u"};4 B;7(13&&1v 13=="2l")B=$.35(1l,13);v B=1l;9{a:B.12+B.2x,1p:B.Z+B.2w}}7($.2q)$.2q({36:"2l.15"});4 2n=x 1u("\\\\b"+8.2i+"\\\\b","2j");4 1e=[];$(8.2o).2D(5(){4 e=y;4 1n=$(e).3i("V");7(!1n){9}4 q=$.3u(1n.c(2n,""));7(\'\'!=q){1e.1m(e);4 f=1o(q,e.15);7(8.2H||e.15){7(!8.N[f.a]){1D{8.N[f.a]=1H;$.3v(f.a,5(M){M.f=f.a;8.I[f.a]=M;7(8.2C){2B(f.1p)}$("."+q).2D(5(){4 f=1o(q,y.15);7(M.f==f.a){1q(y,M)}})})}1I(3s){3t("a 3w Q: "+q+\'@\'+3z)}}}v{4 a=8.I[f.a];7(a){1q(e,a)}}}});7(J.1i&&J.1i.29){5 22(p){7(\'\'==p){9""}1z{4 16=(x 3A()).2k()}19(p.3x(16)>-1);p=p.c(/\\<1W[^>]*?\\>/3y,16);4 e=J.1L(\'<1k>\');e.3l=p;p=e.3m.c(x 1u(16,"g"),\'\\r\\n\');9 p}4 T="";4 18=1G;$(1e).3j().G("1k").U("2c",5(){18=y}).U("1M",5(){7(18==y)T=J.1i.29().3k});$("3n").U("3q",5(){7(\'\'!=T){2p.3r.3o(\'3p\',22(T));2V.2R=1a}}).U("2c",5(){T=""}).U("1M",5(){18=1G})}})})(1Z);8.I["1Y.1d"]={k:{2M:{3:/\\/\\*[^*]*\\*+(?:[^\\/][^*]*\\*+)*\\//},25:{3:/\\<!--(?:.|\\n)*?--\\>/},2f:{3:/\\/\\/.*/},2P:{3:/2L|2T|2J|2O|2N|2X|2K|2Z|2U|2S|2W|2Y|2Q|51|c-50/},53:{3:/\\/[^\\/\\\\\\n]*(?:\\\\.[^\\/\\\\\\n]*)*\\/[52]*/},1h:{3:/(?:\\\'[^\\\'\\\\\\n]*(?:\\\\.[^\\\'\\\\\\n]*)*\\\')|(?:\\"[^\\"\\\\\\n]*(?:\\\\.[^\\"\\\\\\n]*)*\\")/},27:{3:/\\b[+-]?(?:\\d*\\.?\\d+|\\d+\\.?\\d*)(?:[1r][+-]?\\d+)?\\b/},4X:{3:/\\b(D|1N|1K|1I|2t|2s|4W|1z|v|1a|Q|5|7|2r|4Z|x|1G|9|1Q|y|1H|1D|1v|4|4Y|19|59)\\b/},1y:{3:/\\b(58|2k|2p|5b|5a|55|J|54|57|1t|56|4L|4K|4N|4M|4H|4G|4J)\\b/},1C:{3:/(?:\\<\\w+)|(?:\\>)|(?:\\<\\/\\w+\\>)|(?:\\/\\>)/},26:{3:/\\s+\\w+(?=\\s*=)/},20:{3:/([\\"\\\'])(?:(?:[^\\1\\\\\\r\\n]*?(?:\\1\\1|\\\\.))*[^\\1\\\\\\r\\n]*?)\\1/},21:{3:/&[\\w#]+?;/},4I:{3:/(\\$|1Z)/}}};8.I["23.1d"]={k:{25:{3:/\\<!--(?:.|\\n)*?--\\>/},1h:{3:/(?:\\\'[^\\\'\\\\\\n]*(?:\\\\.[^\\\'\\\\\\n]*)*\\\')|(?:\\"[^\\"\\\\\\n]*(?:\\\\.[^\\"\\\\\\n]*)*\\")/},27:{3:/\\b[+-]?(?:\\d*\\.?\\d+|\\d+\\.?\\d*)(?:[1r][+-]?\\d+)?\\b/},1C:{3:/(?:\\<\\w+)|(?:\\>)|(?:\\<\\/\\w+\\>)|(?:\\/\\>)/},26:{3:/\\s+\\w+(?=\\s*=)/},20:{3:/([\\"\\\'])(?:(?:[^\\1\\\\\\r\\n]*?(?:\\1\\1|\\\\.))*[^\\1\\\\\\r\\n]*?)\\1/},21:{3:/&[\\w#]+?;/}}};8.I["2e.1d"]={k:{4S:{3:/\\/\\*[^*]*\\*+([^\\/][^*]*\\*+)*\\//},2f:{3:/(?:\\/\\/.*)|(?:[^\\\\]\\#.*)/},4V:{3:/\\\'[^\\\'\\\\]*(?:\\\\.[^\\\'\\\\]*)*\\\'/},4U:{3:/\\"[^\\"\\\\]*(?:\\\\.[^\\"\\\\]*)*\\"/},4P:{3:/\\b(?:[4O][2b][1s][1s]|[4R][4Q][2b][1P]|[5c][5v][1s][5u][1P])\\b/},5x:{3:/\\b[+-]?(\\d*\\.?\\d+|\\d+\\.?\\d*)([1r][+-]?\\d+)?\\b/},5y:{3:/\\b(?:5z|5w(?:5A|5E(?:5F(?:17|1c)|5G(?:17|1c))|17|1T|5B|5C|5D(?:17|1T|1c)|1c)|P(?:5h(?:5k|5j)|5e(?:5d|5g(?:5f|5l)|5r|E(?:5t|5s)|5n(?:5m|5p)|L(?:3X|3W)|O(?:S|3Y(?:3T|3S|3V))|3U|S(?:44|47|46)|41))|40)\\b/},1y:{3:/(?:\\$43|\\$42|\\$3R|\\$3G|\\$3F|\\$3I|\\$3H|\\$3C|\\$3B|\\$3D)\\b/},28:{3:/\\b(?:3O|3N|3P|3K|3J|3M|3L|48|4v|1N|1K|1I|4u|V|4x|4w|2t|4r|2s|4q|1z|4t|v|4s|4D|4C|4F|4E|4z|4y|4B|4A|4p|4d|2F|2F|4g|Q|4f|5|1y|7|4a|4m|4l|4o|4i|4k|x|4j|4h|4n|4b|4c|49|4e|3Q|3E|9|45|1Q|y|3Z|1D|5o|5q|4|19|5i)\\b/},2g:{3:/\\$(\\w+)/,z:\'<H V="28">$</H><H V="2g">$1</H>\'},1C:{3:/(?:\\<\\?[24][4T][24])|(?:\\<\\?)|(?:\\?\\>)/}}}',62,353,'|||exp|var|function||if|ChiliBook|return|recipe||replace||el|path||step|||steps|ingredients|||str|text|recipeName||||length|else||new|this|replacement|stepName|settings|dish|arguments||160|filter|span|recipes|document|||recipeLoaded|required|||for|replaceSpace||insidePRE|bind|class|domLink|stylesheetPath|link|stylesheetFolder||lastIndex|recipeFolder|options|perfect|chili|newline|ERROR|downPRE|while|false|aux|WARNING|js|codes|replaceNewLine|childNodes|string|selection|replaceTab|pre|settingsDef|push|elClass|getPath|stylesheet|makeDish|eE|Ll|parseInt|RegExp|typeof|source|exps|global|do|offset|code|tag|try|prevLength|aNum|null|true|catch|cook|case|createElement|mouseup|break|append|Ee|switch|replaceSpaces|escapeHTML|NOTICE|pattern|escaped|br|spaces|mix|jQuery|avalue|entity|preformatted|xml|Pp|htcom|aname|numbers|keyword|createRange|defaultReplacement|Uu|mousedown|head|php|com|variable|input|elementClass|gi|valueOf|object|chef|selectClass|elementPath|window|metaobjects|in|default|continue|css|substring|stylesheetFile|recipeFile|lastUnmatched|knowHow|Array|checkCSS|stylesheetLoading|each|matched|extends|unmatched|recipeLoading|prepareStep|unblockUI|ajaxSubmit|silverlight|jscom|unblock|block|plugin|clearFields|returnValue|fieldValue|blockUI|formSerialize|event|resetForm|ajaxForm|clearForm|fieldSerialize|href|browser|rel|type|msie|extend|selector|data|html|next|match|version|getPRE|join|lt|bit|ignoreCase|amp|attr|parents|htmlText|innerHTML|innerText|body|setData|Text|copy|clipboardData|recipeNotAvailable|alert|trim|getJSON|unavailable|indexOf|ig|recipePath|Date|_SESSION|_SERVER|php_errormsg|require_once|_GET|_FILES|_REQUEST|_POST|__METHOD__|__LINE__|and|abstract|__FILE__|__CLASS__|__FUNCTION__|require|_ENV|END|CONT|PREFIX|START|OCALSTATEDIR|IBDIR|UTPUT_HANDLER_|throw|__COMPILER_HALT_OFFSET__|VERSION|_COOKIE|GLOBALS|API|static|YSCONFDIR|HLIB_SUFFIX|array|protected|implements|print|private|exit|public|foreach|final|or|isset|old_function|list|include_once|include|php_user_filter|interface|exception|die|declare|elseif|echo|cfunction|as|const|clone|endswitch|endif|eval|endwhile|enddeclare|empty|endforeach|endfor|isNaN|NaN|jquery|Infinity|clearTimeout|setTimeout|clearInterval|setInterval|Nn|value|Rr|Tt|mlcom|Hh|string2|string1|delete|keywords|void|instanceof|content|taconite|gim|regexp|escape|constructor|parseFloat|unescape|toString|with|prototype|element|Ff|BINDIR|HP_|PATH|CONFIG_FILE_|EAR_|xor|INSTALL_DIR|EXTENSION_DIR|SCAN_DIR|MAX|INT_|unset|SIZE|use|DATADIR|XTENSION_DIR|OL|Ss|Aa|E_|number|const1|DEFAULT_INCLUDE_PATH|ALL|PARSE|STRICT|USER_|CO|MPILE_|RE_'.split('|'),0,{})) diff --git a/BSF/template-common/lib/jquery.dimensions.js b/BSF/template-common/lib/jquery.dimensions.js new file mode 100644 index 000000000..3dd7a5c8d --- /dev/null +++ b/BSF/template-common/lib/jquery.dimensions.js @@ -0,0 +1,116 @@ +/* Copyright (c) 2007 Paul Bakaus (paul.bakaus@googlemail.com) and Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net) + * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) + * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. + * + * $LastChangedDate$ + * $Rev$ + * + * Version: @VERSION + * + * Requires: jQuery 1.2+ + */ + +(function($){ + +$.dimensions = { + version: '@VERSION' +}; + +// Create innerHeight, innerWidth, outerHeight and outerWidth methods +$.each( [ 'Height', 'Width' ], function(i, name){ + + // innerHeight and innerWidth + $.fn[ 'inner' + name ] = function() { + if (!this[0]) return; + + var torl = name == 'Height' ? 'Top' : 'Left', // top or left + borr = name == 'Height' ? 'Bottom' : 'Right'; // bottom or right + + return num( this, name.toLowerCase() ) + num(this, 'padding' + torl) + num(this, 'padding' + borr); + }; + + // outerHeight and outerWidth + $.fn[ 'outer' + name ] = function(options) { + if (!this[0]) return; + + var torl = name == 'Height' ? 'Top' : 'Left', // top or left + borr = name == 'Height' ? 'Bottom' : 'Right'; // bottom or right + + options = $.extend({ margin: false }, options || {}); + + return num( this, name.toLowerCase() ) + + num(this, 'border' + torl + 'Width') + num(this, 'border' + borr + 'Width') + + num(this, 'padding' + torl) + num(this, 'padding' + borr) + + (options.margin ? (num(this, 'margin' + torl) + num(this, 'margin' + borr)) : 0); + }; +}); + +// Create scrollLeft and scrollTop methods +$.each( ['Left', 'Top'], function(i, name) { + $.fn[ 'scroll' + name ] = function(val) { + if (!this[0]) return; + + return val != undefined ? + + // Set the scroll offset + this.each(function() { + this == window || this == document ? + window.scrollTo( + name == 'Left' ? val : $(window)[ 'scrollLeft' ](), + name == 'Top' ? val : $(window)[ 'scrollTop' ]() + ) : + this[ 'scroll' + name ] = val; + }) : + + // Return the scroll offset + this[0] == window || this[0] == document ? + self[ (name == 'Left' ? 'pageXOffset' : 'pageYOffset') ] || + $.boxModel && document.documentElement[ 'scroll' + name ] || + document.body[ 'scroll' + name ] : + this[0][ 'scroll' + name ]; + }; +}); + +$.fn.extend({ + position: function() { + var left = 0, top = 0, elem = this[0], offset, parentOffset, offsetParent, results; + + if (elem) { + // Get *real* offsetParent + offsetParent = this.offsetParent(); + + // Get correct offsets + offset = this.offset(); + parentOffset = offsetParent.offset(); + + // Subtract element margins + offset.top -= num(elem, 'marginTop'); + offset.left -= num(elem, 'marginLeft'); + + // Add offsetParent borders + parentOffset.top += num(offsetParent, 'borderTopWidth'); + parentOffset.left += num(offsetParent, 'borderLeftWidth'); + + // Subtract the two offsets + results = { + top: offset.top - parentOffset.top, + left: offset.left - parentOffset.left + }; + } + + return results; + }, + + offsetParent: function() { + var offsetParent = this[0].offsetParent; + while ( offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && $.css(offsetParent, 'position') == 'static') ) + offsetParent = offsetParent.offsetParent; + return $(offsetParent); + } +}); + +function num(el, prop) { + return parseInt($.css(el.jquery?el[0]:el,prop))||0; +}; + +})(jQuery);
\ No newline at end of file diff --git a/BSF/template-common/lib/jquery.easing.js b/BSF/template-common/lib/jquery.easing.js new file mode 100644 index 000000000..881daaafb --- /dev/null +++ b/BSF/template-common/lib/jquery.easing.js @@ -0,0 +1,102 @@ +/* + * jQuery Easing v1.1.1 - http://gsgd.co.uk/sandbox/jquery.easing.php + * + * Uses the built in easing capabilities added in jQuery 1.1 + * to offer multiple easing options + * + * Copyright (c) 2007 George Smith + * Licensed under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + */ + +jQuery.extend(jQuery.easing, { + easein: function(x, t, b, c, d) { + return c*(t/=d)*t + b; // in + }, + easeinout: function(x, t, b, c, d) { + if (t < d/2) return 2*c*t*t/(d*d) + b; + var ts = t - d/2; + return -2*c*ts*ts/(d*d) + 2*c*ts/d + c/2 + b; + }, + easeout: function(x, t, b, c, d) { + return -c*t*t/(d*d) + 2*c*t/d + b; + }, + expoin: function(x, t, b, c, d) { + var flip = 1; + if (c < 0) { + flip *= -1; + c *= -1; + } + return flip * (Math.exp(Math.log(c)/d * t)) + b; + }, + expoout: function(x, t, b, c, d) { + var flip = 1; + if (c < 0) { + flip *= -1; + c *= -1; + } + return flip * (-Math.exp(-Math.log(c)/d * (t-d)) + c + 1) + b; + }, + expoinout: function(x, t, b, c, d) { + var flip = 1; + if (c < 0) { + flip *= -1; + c *= -1; + } + if (t < d/2) return flip * (Math.exp(Math.log(c/2)/(d/2) * t)) + b; + return flip * (-Math.exp(-2*Math.log(c/2)/d * (t-d)) + c + 1) + b; + }, + bouncein: function(x, t, b, c, d) { + return c - jQuery.easing['bounceout'](x, d-t, 0, c, d) + b; + }, + bounceout: function(x, t, b, c, d) { + if ((t/=d) < (1/2.75)) { + return c*(7.5625*t*t) + b; + } else if (t < (2/2.75)) { + return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; + } else if (t < (2.5/2.75)) { + return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; + } else { + return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; + } + }, + bounceinout: function(x, t, b, c, d) { + if (t < d/2) return jQuery.easing['bouncein'] (x, t*2, 0, c, d) * .5 + b; + return jQuery.easing['bounceout'] (x, t*2-d,0, c, d) * .5 + c*.5 + b; + }, + elasin: function(x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + }, + elasout: function(x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; + }, + elasinout: function(x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; + }, + backin: function(x, t, b, c, d) { + var s=1.70158; + return c*(t/=d)*t*((s+1)*t - s) + b; + }, + backout: function(x, t, b, c, d) { + var s=1.70158; + return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; + }, + backinout: function(x, t, b, c, d) { + var s=1.70158; + if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; + return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; + } +});
\ No newline at end of file diff --git a/BSF/template-common/lib/jquery.js b/BSF/template-common/lib/jquery.js new file mode 100644 index 000000000..f5cca331f --- /dev/null +++ b/BSF/template-common/lib/jquery.js @@ -0,0 +1,11 @@ +/* + * jQuery 1.2.3 - New Wave Javascript + * + * Copyright (c) 2008 John Resig (jquery.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * $Date$ + * $Rev$ + */ +eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(J(){7(1e.3N)L w=1e.3N;L E=1e.3N=J(a,b){K 1B E.2l.4T(a,b)};7(1e.$)L D=1e.$;1e.$=E;L u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/;L G=/^.[^:#\\[\\.]*$/;E.1n=E.2l={4T:J(d,b){d=d||T;7(d.15){6[0]=d;6.M=1;K 6}N 7(1o d=="25"){L c=u.2O(d);7(c&&(c[1]||!b)){7(c[1])d=E.4a([c[1]],b);N{L a=T.5J(c[3]);7(a)7(a.2w!=c[3])K E().2s(d);N{6[0]=a;6.M=1;K 6}N d=[]}}N K 1B E(b).2s(d)}N 7(E.1q(d))K 1B E(T)[E.1n.21?"21":"3U"](d);K 6.6E(d.1k==1M&&d||(d.5h||d.M&&d!=1e&&!d.15&&d[0]!=10&&d[0].15)&&E.2I(d)||[d])},5h:"1.2.3",87:J(){K 6.M},M:0,22:J(a){K a==10?E.2I(6):6[a]},2F:J(b){L a=E(b);a.54=6;K a},6E:J(a){6.M=0;1M.2l.1g.1i(6,a);K 6},R:J(a,b){K E.R(6,a,b)},4X:J(b){L a=-1;6.R(J(i){7(6==b)a=i});K a},1J:J(c,a,b){L d=c;7(c.1k==4e)7(a==10)K 6.M&&E[b||"1J"](6[0],c)||10;N{d={};d[c]=a}K 6.R(J(i){Q(c 1p d)E.1J(b?6.W:6,c,E.1l(6,d[c],b,i,c))})},1j:J(b,a){7((b==\'27\'||b==\'1R\')&&2M(a)<0)a=10;K 6.1J(b,a,"2o")},1u:J(b){7(1o b!="3V"&&b!=V)K 6.4x().3t((6[0]&&6[0].2i||T).5r(b));L a="";E.R(b||6,J(){E.R(6.3p,J(){7(6.15!=8)a+=6.15!=1?6.6K:E.1n.1u([6])})});K a},5m:J(b){7(6[0])E(b,6[0].2i).5k().3o(6[0]).2c(J(){L a=6;2b(a.1C)a=a.1C;K a}).3t(6);K 6},8w:J(a){K 6.R(J(){E(6).6z().5m(a)})},8p:J(a){K 6.R(J(){E(6).5m(a)})},3t:J(){K 6.3O(18,P,S,J(a){7(6.15==1)6.38(a)})},6q:J(){K 6.3O(18,P,P,J(a){7(6.15==1)6.3o(a,6.1C)})},6o:J(){K 6.3O(18,S,S,J(a){6.1a.3o(a,6)})},5a:J(){K 6.3O(18,S,P,J(a){6.1a.3o(a,6.2B)})},3h:J(){K 6.54||E([])},2s:J(b){L c=E.2c(6,J(a){K E.2s(b,a)});K 6.2F(/[^+>] [^+>]/.17(b)||b.1f("..")>-1?E.57(c):c)},5k:J(e){L f=6.2c(J(){7(E.14.1d&&!E.3E(6)){L a=6.69(P),4Y=T.3s("1x");4Y.38(a);K E.4a([4Y.3d])[0]}N K 6.69(P)});L d=f.2s("*").4R().R(J(){7(6[F]!=10)6[F]=V});7(e===P)6.2s("*").4R().R(J(i){7(6.15==3)K;L c=E.O(6,"2R");Q(L a 1p c)Q(L b 1p c[a])E.16.1b(d[i],a,c[a][b],c[a][b].O)});K f},1E:J(b){K 6.2F(E.1q(b)&&E.3y(6,J(a,i){K b.1P(a,i)})||E.3e(b,6))},56:J(b){7(b.1k==4e)7(G.17(b))K 6.2F(E.3e(b,6,P));N b=E.3e(b,6);L a=b.M&&b[b.M-1]!==10&&!b.15;K 6.1E(J(){K a?E.33(6,b)<0:6!=b})},1b:J(a){K!a?6:6.2F(E.37(6.22(),a.1k==4e?E(a).22():a.M!=10&&(!a.12||E.12(a,"3u"))?a:[a]))},3H:J(a){K a?E.3e(a,6).M>0:S},7j:J(a){K 6.3H("."+a)},5O:J(b){7(b==10){7(6.M){L c=6[0];7(E.12(c,"2k")){L e=c.3T,5I=[],11=c.11,2X=c.U=="2k-2X";7(e<0)K V;Q(L i=2X?e:0,2f=2X?e+1:11.M;i<2f;i++){L d=11[i];7(d.2p){b=E.14.1d&&!d.9J.1A.9y?d.1u:d.1A;7(2X)K b;5I.1g(b)}}K 5I}N K(6[0].1A||"").1r(/\\r/g,"")}K 10}K 6.R(J(){7(6.15!=1)K;7(b.1k==1M&&/5u|5t/.17(6.U))6.3k=(E.33(6.1A,b)>=0||E.33(6.31,b)>=0);N 7(E.12(6,"2k")){L a=b.1k==1M?b:[b];E("98",6).R(J(){6.2p=(E.33(6.1A,a)>=0||E.33(6.1u,a)>=0)});7(!a.M)6.3T=-1}N 6.1A=b})},3q:J(a){K a==10?(6.M?6[0].3d:V):6.4x().3t(a)},6S:J(a){K 6.5a(a).1V()},6Z:J(i){K 6.2K(i,i+1)},2K:J(){K 6.2F(1M.2l.2K.1i(6,18))},2c:J(b){K 6.2F(E.2c(6,J(a,i){K b.1P(a,i,a)}))},4R:J(){K 6.1b(6.54)},O:J(d,b){L a=d.23(".");a[1]=a[1]?"."+a[1]:"";7(b==V){L c=6.5n("8P"+a[1]+"!",[a[0]]);7(c==10&&6.M)c=E.O(6[0],d);K c==V&&a[1]?6.O(a[0]):c}N K 6.1N("8K"+a[1]+"!",[a[0],b]).R(J(){E.O(6,d,b)})},35:J(a){K 6.R(J(){E.35(6,a)})},3O:J(g,f,h,d){L e=6.M>1,3n;K 6.R(J(){7(!3n){3n=E.4a(g,6.2i);7(h)3n.8D()}L b=6;7(f&&E.12(6,"1O")&&E.12(3n[0],"4v"))b=6.3S("1U")[0]||6.38(6.2i.3s("1U"));L c=E([]);E.R(3n,J(){L a=e?E(6).5k(P)[0]:6;7(E.12(a,"1m")){c=c.1b(a)}N{7(a.15==1)c=c.1b(E("1m",a).1V());d.1P(b,a)}});c.R(6A)})}};E.2l.4T.2l=E.2l;J 6A(i,a){7(a.3Q)E.3P({1c:a.3Q,3l:S,1H:"1m"});N E.5g(a.1u||a.6x||a.3d||"");7(a.1a)a.1a.34(a)}E.1s=E.1n.1s=J(){L b=18[0]||{},i=1,M=18.M,5c=S,11;7(b.1k==8d){5c=b;b=18[1]||{};i=2}7(1o b!="3V"&&1o b!="J")b={};7(M==1){b=6;i=0}Q(;i<M;i++)7((11=18[i])!=V)Q(L a 1p 11){7(b===11[a])6w;7(5c&&11[a]&&1o 11[a]=="3V"&&b[a]&&!11[a].15)b[a]=E.1s(b[a],11[a]);N 7(11[a]!=10)b[a]=11[a]}K b};L F="3N"+(1B 3v()).3L(),6t=0,5b={};L H=/z-?4X|86-?84|1w|6k|7Z-?1R/i;E.1s({7Y:J(a){1e.$=D;7(a)1e.3N=w;K E},1q:J(a){K!!a&&1o a!="25"&&!a.12&&a.1k!=1M&&/J/i.17(a+"")},3E:J(a){K a.1F&&!a.1h||a.28&&a.2i&&!a.2i.1h},5g:J(a){a=E.3g(a);7(a){L b=T.3S("6f")[0]||T.1F,1m=T.3s("1m");1m.U="1u/4m";7(E.14.1d)1m.1u=a;N 1m.38(T.5r(a));b.38(1m);b.34(1m)}},12:J(b,a){K b.12&&b.12.2E()==a.2E()},1T:{},O:J(c,d,b){c=c==1e?5b:c;L a=c[F];7(!a)a=c[F]=++6t;7(d&&!E.1T[a])E.1T[a]={};7(b!=10)E.1T[a][d]=b;K d?E.1T[a][d]:a},35:J(c,b){c=c==1e?5b:c;L a=c[F];7(b){7(E.1T[a]){2V E.1T[a][b];b="";Q(b 1p E.1T[a])1Q;7(!b)E.35(c)}}N{1S{2V c[F]}1X(e){7(c.52)c.52(F)}2V E.1T[a]}},R:J(c,a,b){7(b){7(c.M==10){Q(L d 1p c)7(a.1i(c[d],b)===S)1Q}N Q(L i=0,M=c.M;i<M;i++)7(a.1i(c[i],b)===S)1Q}N{7(c.M==10){Q(L d 1p c)7(a.1P(c[d],d,c[d])===S)1Q}N Q(L i=0,M=c.M,1A=c[0];i<M&&a.1P(1A,i,1A)!==S;1A=c[++i]){}}K c},1l:J(b,a,c,i,d){7(E.1q(a))a=a.1P(b,i);K a&&a.1k==51&&c=="2o"&&!H.17(d)?a+"2S":a},1t:{1b:J(c,b){E.R((b||"").23(/\\s+/),J(i,a){7(c.15==1&&!E.1t.3Y(c.1t,a))c.1t+=(c.1t?" ":"")+a})},1V:J(c,b){7(c.15==1)c.1t=b!=10?E.3y(c.1t.23(/\\s+/),J(a){K!E.1t.3Y(b,a)}).6a(" "):""},3Y:J(b,a){K E.33(a,(b.1t||b).3X().23(/\\s+/))>-1}},68:J(b,c,a){L e={};Q(L d 1p c){e[d]=b.W[d];b.W[d]=c[d]}a.1P(b);Q(L d 1p c)b.W[d]=e[d]},1j:J(d,e,c){7(e=="27"||e=="1R"){L b,46={43:"4W",4U:"1Z",19:"3D"},3c=e=="27"?["7O","7M"]:["7J","7I"];J 5E(){b=e=="27"?d.7H:d.7F;L a=0,2N=0;E.R(3c,J(){a+=2M(E.2o(d,"7E"+6,P))||0;2N+=2M(E.2o(d,"2N"+6+"5X",P))||0});b-=24.7C(a+2N)}7(E(d).3H(":4d"))5E();N E.68(d,46,5E);K 24.2f(0,b)}K E.2o(d,e,c)},2o:J(e,k,j){L d;J 3x(b){7(!E.14.2d)K S;L a=T.4c.4K(b,V);K!a||a.4M("3x")==""}7(k=="1w"&&E.14.1d){d=E.1J(e.W,"1w");K d==""?"1":d}7(E.14.2z&&k=="19"){L c=e.W.50;e.W.50="0 7r 7o";e.W.50=c}7(k.1D(/4g/i))k=y;7(!j&&e.W&&e.W[k])d=e.W[k];N 7(T.4c&&T.4c.4K){7(k.1D(/4g/i))k="4g";k=k.1r(/([A-Z])/g,"-$1").2h();L h=T.4c.4K(e,V);7(h&&!3x(e))d=h.4M(k);N{L f=[],2C=[];Q(L a=e;a&&3x(a);a=a.1a)2C.4J(a);Q(L i=0;i<2C.M;i++)7(3x(2C[i])){f[i]=2C[i].W.19;2C[i].W.19="3D"}d=k=="19"&&f[2C.M-1]!=V?"2H":(h&&h.4M(k))||"";Q(L i=0;i<f.M;i++)7(f[i]!=V)2C[i].W.19=f[i]}7(k=="1w"&&d=="")d="1"}N 7(e.4n){L g=k.1r(/\\-(\\w)/g,J(a,b){K b.2E()});d=e.4n[k]||e.4n[g];7(!/^\\d+(2S)?$/i.17(d)&&/^\\d/.17(d)){L l=e.W.26,3K=e.3K.26;e.3K.26=e.4n.26;e.W.26=d||0;d=e.W.7f+"2S";e.W.26=l;e.3K.26=3K}}K d},4a:J(l,h){L k=[];h=h||T;7(1o h.3s==\'10\')h=h.2i||h[0]&&h[0].2i||T;E.R(l,J(i,d){7(!d)K;7(d.1k==51)d=d.3X();7(1o d=="25"){d=d.1r(/(<(\\w+)[^>]*?)\\/>/g,J(b,a,c){K c.1D(/^(aa|a6|7e|a5|4D|7a|a0|3m|9W|9U|9S)$/i)?b:a+"></"+c+">"});L f=E.3g(d).2h(),1x=h.3s("1x");L e=!f.1f("<9P")&&[1,"<2k 74=\'74\'>","</2k>"]||!f.1f("<9M")&&[1,"<73>","</73>"]||f.1D(/^<(9G|1U|9E|9B|9x)/)&&[1,"<1O>","</1O>"]||!f.1f("<4v")&&[2,"<1O><1U>","</1U></1O>"]||(!f.1f("<9w")||!f.1f("<9v"))&&[3,"<1O><1U><4v>","</4v></1U></1O>"]||!f.1f("<7e")&&[2,"<1O><1U></1U><6V>","</6V></1O>"]||E.14.1d&&[1,"1x<1x>","</1x>"]||[0,"",""];1x.3d=e[1]+d+e[2];2b(e[0]--)1x=1x.5o;7(E.14.1d){L g=!f.1f("<1O")&&f.1f("<1U")<0?1x.1C&&1x.1C.3p:e[1]=="<1O>"&&f.1f("<1U")<0?1x.3p:[];Q(L j=g.M-1;j>=0;--j)7(E.12(g[j],"1U")&&!g[j].3p.M)g[j].1a.34(g[j]);7(/^\\s/.17(d))1x.3o(h.5r(d.1D(/^\\s*/)[0]),1x.1C)}d=E.2I(1x.3p)}7(d.M===0&&(!E.12(d,"3u")&&!E.12(d,"2k")))K;7(d[0]==10||E.12(d,"3u")||d.11)k.1g(d);N k=E.37(k,d)});K k},1J:J(d,e,c){7(!d||d.15==3||d.15==8)K 10;L f=E.3E(d)?{}:E.46;7(e=="2p"&&E.14.2d)d.1a.3T;7(f[e]){7(c!=10)d[f[e]]=c;K d[f[e]]}N 7(E.14.1d&&e=="W")K E.1J(d.W,"9u",c);N 7(c==10&&E.14.1d&&E.12(d,"3u")&&(e=="9r"||e=="9o"))K d.9m(e).6K;N 7(d.28){7(c!=10){7(e=="U"&&E.12(d,"4D")&&d.1a)6Q"U 9i 9h\'t 9g 9e";d.9b(e,""+c)}7(E.14.1d&&/6O|3Q/.17(e)&&!E.3E(d))K d.4z(e,2);K d.4z(e)}N{7(e=="1w"&&E.14.1d){7(c!=10){d.6k=1;d.1E=(d.1E||"").1r(/6M\\([^)]*\\)/,"")+(2M(c).3X()=="96"?"":"6M(1w="+c*6L+")")}K d.1E&&d.1E.1f("1w=")>=0?(2M(d.1E.1D(/1w=([^)]*)/)[1])/6L).3X():""}e=e.1r(/-([a-z])/95,J(a,b){K b.2E()});7(c!=10)d[e]=c;K d[e]}},3g:J(a){K(a||"").1r(/^\\s+|\\s+$/g,"")},2I:J(b){L a=[];7(1o b!="93")Q(L i=0,M=b.M;i<M;i++)a.1g(b[i]);N a=b.2K(0);K a},33:J(b,a){Q(L i=0,M=a.M;i<M;i++)7(a[i]==b)K i;K-1},37:J(a,b){7(E.14.1d){Q(L i=0;b[i];i++)7(b[i].15!=8)a.1g(b[i])}N Q(L i=0;b[i];i++)a.1g(b[i]);K a},57:J(a){L c=[],2r={};1S{Q(L i=0,M=a.M;i<M;i++){L b=E.O(a[i]);7(!2r[b]){2r[b]=P;c.1g(a[i])}}}1X(e){c=a}K c},3y:J(c,a,d){L b=[];Q(L i=0,M=c.M;i<M;i++)7(!d&&a(c[i],i)||d&&!a(c[i],i))b.1g(c[i]);K b},2c:J(d,a){L c=[];Q(L i=0,M=d.M;i<M;i++){L b=a(d[i],i);7(b!==V&&b!=10){7(b.1k!=1M)b=[b];c=c.71(b)}}K c}});L v=8Y.8W.2h();E.14={5K:(v.1D(/.+(?:8T|8S|8R|8O)[\\/: ]([\\d.]+)/)||[])[1],2d:/77/.17(v),2z:/2z/.17(v),1d:/1d/.17(v)&&!/2z/.17(v),48:/48/.17(v)&&!/(8L|77)/.17(v)};L y=E.14.1d?"6H":"75";E.1s({8I:!E.14.1d||T.6F=="79",46:{"Q":"8F","8E":"1t","4g":y,75:y,6H:y,3d:"3d",1t:"1t",1A:"1A",2Y:"2Y",3k:"3k",8C:"8B",2p:"2p",8A:"8z",3T:"3T",6C:"6C",28:"28",12:"12"}});E.R({6B:J(a){K a.1a},8y:J(a){K E.4u(a,"1a")},8x:J(a){K E.2Z(a,2,"2B")},8v:J(a){K E.2Z(a,2,"4t")},8u:J(a){K E.4u(a,"2B")},8t:J(a){K E.4u(a,"4t")},8s:J(a){K E.5i(a.1a.1C,a)},8r:J(a){K E.5i(a.1C)},6z:J(a){K E.12(a,"8q")?a.8o||a.8n.T:E.2I(a.3p)}},J(c,d){E.1n[c]=J(b){L a=E.2c(6,d);7(b&&1o b=="25")a=E.3e(b,a);K 6.2F(E.57(a))}});E.R({6y:"3t",8m:"6q",3o:"6o",8l:"5a",8k:"6S"},J(c,b){E.1n[c]=J(){L a=18;K 6.R(J(){Q(L i=0,M=a.M;i<M;i++)E(a[i])[b](6)})}});E.R({8j:J(a){E.1J(6,a,"");7(6.15==1)6.52(a)},8i:J(a){E.1t.1b(6,a)},8h:J(a){E.1t.1V(6,a)},8g:J(a){E.1t[E.1t.3Y(6,a)?"1V":"1b"](6,a)},1V:J(a){7(!a||E.1E(a,[6]).r.M){E("*",6).1b(6).R(J(){E.16.1V(6);E.35(6)});7(6.1a)6.1a.34(6)}},4x:J(){E(">*",6).1V();2b(6.1C)6.34(6.1C)}},J(a,b){E.1n[a]=J(){K 6.R(b,18)}});E.R(["8f","5X"],J(i,c){L b=c.2h();E.1n[b]=J(a){K 6[0]==1e?E.14.2z&&T.1h["5e"+c]||E.14.2d&&1e["8e"+c]||T.6F=="79"&&T.1F["5e"+c]||T.1h["5e"+c]:6[0]==T?24.2f(24.2f(T.1h["5d"+c],T.1F["5d"+c]),24.2f(T.1h["5L"+c],T.1F["5L"+c])):a==10?(6.M?E.1j(6[0],b):V):6.1j(b,a.1k==4e?a:a+"2S")}});L C=E.14.2d&&4s(E.14.5K)<8c?"(?:[\\\\w*4r-]|\\\\\\\\.)":"(?:[\\\\w\\8b-\\8a*4r-]|\\\\\\\\.)",6v=1B 4q("^>\\\\s*("+C+"+)"),6u=1B 4q("^("+C+"+)(#)("+C+"+)"),6s=1B 4q("^([#.]?)("+C+"*)");E.1s({6r:{"":J(a,i,m){K m[2]=="*"||E.12(a,m[2])},"#":J(a,i,m){K a.4z("2w")==m[2]},":":{89:J(a,i,m){K i<m[3]-0},88:J(a,i,m){K i>m[3]-0},2Z:J(a,i,m){K m[3]-0==i},6Z:J(a,i,m){K m[3]-0==i},3j:J(a,i){K i==0},3J:J(a,i,m,r){K i==r.M-1},6n:J(a,i){K i%2==0},6l:J(a,i){K i%2},"3j-4p":J(a){K a.1a.3S("*")[0]==a},"3J-4p":J(a){K E.2Z(a.1a.5o,1,"4t")==a},"83-4p":J(a){K!E.2Z(a.1a.5o,2,"4t")},6B:J(a){K a.1C},4x:J(a){K!a.1C},82:J(a,i,m){K(a.6x||a.81||E(a).1u()||"").1f(m[3])>=0},4d:J(a){K"1Z"!=a.U&&E.1j(a,"19")!="2H"&&E.1j(a,"4U")!="1Z"},1Z:J(a){K"1Z"==a.U||E.1j(a,"19")=="2H"||E.1j(a,"4U")=="1Z"},80:J(a){K!a.2Y},2Y:J(a){K a.2Y},3k:J(a){K a.3k},2p:J(a){K a.2p||E.1J(a,"2p")},1u:J(a){K"1u"==a.U},5u:J(a){K"5u"==a.U},5t:J(a){K"5t"==a.U},59:J(a){K"59"==a.U},3I:J(a){K"3I"==a.U},58:J(a){K"58"==a.U},6j:J(a){K"6j"==a.U},6i:J(a){K"6i"==a.U},2G:J(a){K"2G"==a.U||E.12(a,"2G")},4D:J(a){K/4D|2k|6h|2G/i.17(a.12)},3Y:J(a,i,m){K E.2s(m[3],a).M},7X:J(a){K/h\\d/i.17(a.12)},7W:J(a){K E.3y(E.3G,J(b){K a==b.Y}).M}}},6g:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,1B 4q("^([:.#]*)("+C+"+)")],3e:J(a,c,b){L d,2m=[];2b(a&&a!=d){d=a;L f=E.1E(a,c,b);a=f.t.1r(/^\\s*,\\s*/,"");2m=b?c=f.r:E.37(2m,f.r)}K 2m},2s:J(t,p){7(1o t!="25")K[t];7(p&&p.15!=1&&p.15!=9)K[];p=p||T;L d=[p],2r=[],3J,12;2b(t&&3J!=t){L r=[];3J=t;t=E.3g(t);L o=S;L g=6v;L m=g.2O(t);7(m){12=m[1].2E();Q(L i=0;d[i];i++)Q(L c=d[i].1C;c;c=c.2B)7(c.15==1&&(12=="*"||c.12.2E()==12))r.1g(c);d=r;t=t.1r(g,"");7(t.1f(" ")==0)6w;o=P}N{g=/^([>+~])\\s*(\\w*)/i;7((m=g.2O(t))!=V){r=[];L l={};12=m[2].2E();m=m[1];Q(L j=0,3f=d.M;j<3f;j++){L n=m=="~"||m=="+"?d[j].2B:d[j].1C;Q(;n;n=n.2B)7(n.15==1){L h=E.O(n);7(m=="~"&&l[h])1Q;7(!12||n.12.2E()==12){7(m=="~")l[h]=P;r.1g(n)}7(m=="+")1Q}}d=r;t=E.3g(t.1r(g,""));o=P}}7(t&&!o){7(!t.1f(",")){7(p==d[0])d.4l();2r=E.37(2r,d);r=d=[p];t=" "+t.6e(1,t.M)}N{L k=6u;L m=k.2O(t);7(m){m=[0,m[2],m[3],m[1]]}N{k=6s;m=k.2O(t)}m[2]=m[2].1r(/\\\\/g,"");L f=d[d.M-1];7(m[1]=="#"&&f&&f.5J&&!E.3E(f)){L q=f.5J(m[2]);7((E.14.1d||E.14.2z)&&q&&1o q.2w=="25"&&q.2w!=m[2])q=E(\'[@2w="\'+m[2]+\'"]\',f)[0];d=r=q&&(!m[3]||E.12(q,m[3]))?[q]:[]}N{Q(L i=0;d[i];i++){L a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];7(a=="*"&&d[i].12.2h()=="3V")a="3m";r=E.37(r,d[i].3S(a))}7(m[1]==".")r=E.55(r,m[2]);7(m[1]=="#"){L e=[];Q(L i=0;r[i];i++)7(r[i].4z("2w")==m[2]){e=[r[i]];1Q}r=e}d=r}t=t.1r(k,"")}}7(t){L b=E.1E(t,r);d=r=b.r;t=E.3g(b.t)}}7(t)d=[];7(d&&p==d[0])d.4l();2r=E.37(2r,d);K 2r},55:J(r,m,a){m=" "+m+" ";L c=[];Q(L i=0;r[i];i++){L b=(" "+r[i].1t+" ").1f(m)>=0;7(!a&&b||a&&!b)c.1g(r[i])}K c},1E:J(t,r,h){L d;2b(t&&t!=d){d=t;L p=E.6g,m;Q(L i=0;p[i];i++){m=p[i].2O(t);7(m){t=t.7V(m[0].M);m[2]=m[2].1r(/\\\\/g,"");1Q}}7(!m)1Q;7(m[1]==":"&&m[2]=="56")r=G.17(m[3])?E.1E(m[3],r,P).r:E(r).56(m[3]);N 7(m[1]==".")r=E.55(r,m[2],h);N 7(m[1]=="["){L g=[],U=m[3];Q(L i=0,3f=r.M;i<3f;i++){L a=r[i],z=a[E.46[m[2]]||m[2]];7(z==V||/6O|3Q|2p/.17(m[2]))z=E.1J(a,m[2])||\'\';7((U==""&&!!z||U=="="&&z==m[5]||U=="!="&&z!=m[5]||U=="^="&&z&&!z.1f(m[5])||U=="$="&&z.6e(z.M-m[5].M)==m[5]||(U=="*="||U=="~=")&&z.1f(m[5])>=0)^h)g.1g(a)}r=g}N 7(m[1]==":"&&m[2]=="2Z-4p"){L e={},g=[],17=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.2O(m[3]=="6n"&&"2n"||m[3]=="6l"&&"2n+1"||!/\\D/.17(m[3])&&"7U+"+m[3]||m[3]),3j=(17[1]+(17[2]||1))-0,d=17[3]-0;Q(L i=0,3f=r.M;i<3f;i++){L j=r[i],1a=j.1a,2w=E.O(1a);7(!e[2w]){L c=1;Q(L n=1a.1C;n;n=n.2B)7(n.15==1)n.4k=c++;e[2w]=P}L b=S;7(3j==0){7(j.4k==d)b=P}N 7((j.4k-d)%3j==0&&(j.4k-d)/3j>=0)b=P;7(b^h)g.1g(j)}r=g}N{L f=E.6r[m[1]];7(1o f=="3V")f=f[m[2]];7(1o f=="25")f=6c("S||J(a,i){K "+f+";}");r=E.3y(r,J(a,i){K f(a,i,m,r)},h)}}K{r:r,t:t}},4u:J(b,c){L d=[];L a=b[c];2b(a&&a!=T){7(a.15==1)d.1g(a);a=a[c]}K d},2Z:J(a,e,c,b){e=e||1;L d=0;Q(;a;a=a[c])7(a.15==1&&++d==e)1Q;K a},5i:J(n,a){L r=[];Q(;n;n=n.2B){7(n.15==1&&(!a||n!=a))r.1g(n)}K r}});E.16={1b:J(f,i,g,e){7(f.15==3||f.15==8)K;7(E.14.1d&&f.53!=10)f=1e;7(!g.2D)g.2D=6.2D++;7(e!=10){L h=g;g=J(){K h.1i(6,18)};g.O=e;g.2D=h.2D}L j=E.O(f,"2R")||E.O(f,"2R",{}),1v=E.O(f,"1v")||E.O(f,"1v",J(){L a;7(1o E=="10"||E.16.5f)K a;a=E.16.1v.1i(18.3R.Y,18);K a});1v.Y=f;E.R(i.23(/\\s+/),J(c,b){L a=b.23(".");b=a[0];g.U=a[1];L d=j[b];7(!d){d=j[b]={};7(!E.16.2y[b]||E.16.2y[b].4j.1P(f)===S){7(f.3F)f.3F(b,1v,S);N 7(f.6b)f.6b("4i"+b,1v)}}d[g.2D]=g;E.16.2a[b]=P});f=V},2D:1,2a:{},1V:J(e,h,f){7(e.15==3||e.15==8)K;L i=E.O(e,"2R"),29,4X;7(i){7(h==10||(1o h=="25"&&h.7T(0)=="."))Q(L g 1p i)6.1V(e,g+(h||""));N{7(h.U){f=h.2q;h=h.U}E.R(h.23(/\\s+/),J(b,a){L c=a.23(".");a=c[0];7(i[a]){7(f)2V i[a][f.2D];N Q(f 1p i[a])7(!c[1]||i[a][f].U==c[1])2V i[a][f];Q(29 1p i[a])1Q;7(!29){7(!E.16.2y[a]||E.16.2y[a].4h.1P(e)===S){7(e.67)e.67(a,E.O(e,"1v"),S);N 7(e.66)e.66("4i"+a,E.O(e,"1v"))}29=V;2V i[a]}}})}Q(29 1p i)1Q;7(!29){L d=E.O(e,"1v");7(d)d.Y=V;E.35(e,"2R");E.35(e,"1v")}}},1N:J(g,c,d,f,h){c=E.2I(c||[]);7(g.1f("!")>=0){g=g.2K(0,-1);L a=P}7(!d){7(6.2a[g])E("*").1b([1e,T]).1N(g,c)}N{7(d.15==3||d.15==8)K 10;L b,29,1n=E.1q(d[g]||V),16=!c[0]||!c[0].36;7(16)c.4J(6.4Z({U:g,2L:d}));c[0].U=g;7(a)c[0].65=P;7(E.1q(E.O(d,"1v")))b=E.O(d,"1v").1i(d,c);7(!1n&&d["4i"+g]&&d["4i"+g].1i(d,c)===S)b=S;7(16)c.4l();7(h&&E.1q(h)){29=h.1i(d,b==V?c:c.71(b));7(29!==10)b=29}7(1n&&f!==S&&b!==S&&!(E.12(d,\'a\')&&g=="4V")){6.5f=P;1S{d[g]()}1X(e){}}6.5f=S}K b},1v:J(c){L a;c=E.16.4Z(c||1e.16||{});L b=c.U.23(".");c.U=b[0];L f=E.O(6,"2R")&&E.O(6,"2R")[c.U],42=1M.2l.2K.1P(18,1);42.4J(c);Q(L j 1p f){L d=f[j];42[0].2q=d;42[0].O=d.O;7(!b[1]&&!c.65||d.U==b[1]){L e=d.1i(6,42);7(a!==S)a=e;7(e===S){c.36();c.44()}}}7(E.14.1d)c.2L=c.36=c.44=c.2q=c.O=V;K a},4Z:J(c){L a=c;c=E.1s({},a);c.36=J(){7(a.36)a.36();a.7S=S};c.44=J(){7(a.44)a.44();a.7R=P};7(!c.2L)c.2L=c.7Q||T;7(c.2L.15==3)c.2L=a.2L.1a;7(!c.4S&&c.5w)c.4S=c.5w==c.2L?c.7P:c.5w;7(c.64==V&&c.63!=V){L b=T.1F,1h=T.1h;c.64=c.63+(b&&b.2v||1h&&1h.2v||0)-(b.62||0);c.7N=c.7L+(b&&b.2x||1h&&1h.2x||0)-(b.60||0)}7(!c.3c&&((c.4f||c.4f===0)?c.4f:c.5Z))c.3c=c.4f||c.5Z;7(!c.7b&&c.5Y)c.7b=c.5Y;7(!c.3c&&c.2G)c.3c=(c.2G&1?1:(c.2G&2?3:(c.2G&4?2:0)));K c},2y:{21:{4j:J(){5M();K},4h:J(){K}},3C:{4j:J(){7(E.14.1d)K S;E(6).2j("4P",E.16.2y.3C.2q);K P},4h:J(){7(E.14.1d)K S;E(6).3w("4P",E.16.2y.3C.2q);K P},2q:J(a){7(I(a,6))K P;18[0].U="3C";K E.16.1v.1i(6,18)}},3B:{4j:J(){7(E.14.1d)K S;E(6).2j("4O",E.16.2y.3B.2q);K P},4h:J(){7(E.14.1d)K S;E(6).3w("4O",E.16.2y.3B.2q);K P},2q:J(a){7(I(a,6))K P;18[0].U="3B";K E.16.1v.1i(6,18)}}}};E.1n.1s({2j:J(c,a,b){K c=="4H"?6.2X(c,a,b):6.R(J(){E.16.1b(6,c,b||a,b&&a)})},2X:J(d,b,c){K 6.R(J(){E.16.1b(6,d,J(a){E(6).3w(a);K(c||b).1i(6,18)},c&&b)})},3w:J(a,b){K 6.R(J(){E.16.1V(6,a,b)})},1N:J(c,a,b){K 6.R(J(){E.16.1N(c,a,6,P,b)})},5n:J(c,a,b){7(6[0])K E.16.1N(c,a,6[0],S,b);K 10},2g:J(){L b=18;K 6.4V(J(a){6.4N=0==6.4N?1:0;a.36();K b[6.4N].1i(6,18)||S})},7D:J(a,b){K 6.2j(\'3C\',a).2j(\'3B\',b)},21:J(a){5M();7(E.2Q)a.1P(T,E);N E.3A.1g(J(){K a.1P(6,E)});K 6}});E.1s({2Q:S,3A:[],21:J(){7(!E.2Q){E.2Q=P;7(E.3A){E.R(E.3A,J(){6.1i(T)});E.3A=V}E(T).5n("21")}}});L x=S;J 5M(){7(x)K;x=P;7(T.3F&&!E.14.2z)T.3F("5W",E.21,S);7(E.14.1d&&1e==3b)(J(){7(E.2Q)K;1S{T.1F.7B("26")}1X(3a){3z(18.3R,0);K}E.21()})();7(E.14.2z)T.3F("5W",J(){7(E.2Q)K;Q(L i=0;i<T.4L.M;i++)7(T.4L[i].2Y){3z(18.3R,0);K}E.21()},S);7(E.14.2d){L a;(J(){7(E.2Q)K;7(T.39!="5V"&&T.39!="1y"){3z(18.3R,0);K}7(a===10)a=E("W, 7a[7A=7z]").M;7(T.4L.M!=a){3z(18.3R,0);K}E.21()})()}E.16.1b(1e,"3U",E.21)}E.R(("7y,7x,3U,7w,5d,4H,4V,7v,"+"7G,7u,7t,4P,4O,7s,2k,"+"58,7K,7q,7p,3a").23(","),J(i,b){E.1n[b]=J(a){K a?6.2j(b,a):6.1N(b)}});L I=J(a,c){L b=a.4S;2b(b&&b!=c)1S{b=b.1a}1X(3a){b=c}K b==c};E(1e).2j("4H",J(){E("*").1b(T).3w()});E.1n.1s({3U:J(g,d,c){7(E.1q(g))K 6.2j("3U",g);L e=g.1f(" ");7(e>=0){L i=g.2K(e,g.M);g=g.2K(0,e)}c=c||J(){};L f="4Q";7(d)7(E.1q(d)){c=d;d=V}N{d=E.3m(d);f="61"}L h=6;E.3P({1c:g,U:f,1H:"3q",O:d,1y:J(a,b){7(b=="1W"||b=="5U")h.3q(i?E("<1x/>").3t(a.4b.1r(/<1m(.|\\s)*?\\/1m>/g,"")).2s(i):a.4b);h.R(c,[a.4b,b,a])}});K 6},7n:J(){K E.3m(6.5T())},5T:J(){K 6.2c(J(){K E.12(6,"3u")?E.2I(6.7m):6}).1E(J(){K 6.31&&!6.2Y&&(6.3k||/2k|6h/i.17(6.12)||/1u|1Z|3I/i.17(6.U))}).2c(J(i,c){L b=E(6).5O();K b==V?V:b.1k==1M?E.2c(b,J(a,i){K{31:c.31,1A:a}}):{31:c.31,1A:b}}).22()}});E.R("5S,6d,5R,6D,5Q,6m".23(","),J(i,o){E.1n[o]=J(f){K 6.2j(o,f)}});L B=(1B 3v).3L();E.1s({22:J(d,b,a,c){7(E.1q(b)){a=b;b=V}K E.3P({U:"4Q",1c:d,O:b,1W:a,1H:c})},7l:J(b,a){K E.22(b,V,a,"1m")},7k:J(c,b,a){K E.22(c,b,a,"3i")},7i:J(d,b,a,c){7(E.1q(b)){a=b;b={}}K E.3P({U:"61",1c:d,O:b,1W:a,1H:c})},85:J(a){E.1s(E.4I,a)},4I:{2a:P,U:"4Q",2U:0,5P:"4o/x-7h-3u-7g",5N:P,3l:P,O:V,6p:V,3I:V,49:{3M:"4o/3M, 1u/3M",3q:"1u/3q",1m:"1u/4m, 4o/4m",3i:"4o/3i, 1u/4m",1u:"1u/a7",4G:"*/*"}},4F:{},3P:J(s){L f,2W=/=\\?(&|$)/g,1z,O;s=E.1s(P,s,E.1s(P,{},E.4I,s));7(s.O&&s.5N&&1o s.O!="25")s.O=E.3m(s.O);7(s.1H=="4E"){7(s.U.2h()=="22"){7(!s.1c.1D(2W))s.1c+=(s.1c.1D(/\\?/)?"&":"?")+(s.4E||"7d")+"=?"}N 7(!s.O||!s.O.1D(2W))s.O=(s.O?s.O+"&":"")+(s.4E||"7d")+"=?";s.1H="3i"}7(s.1H=="3i"&&(s.O&&s.O.1D(2W)||s.1c.1D(2W))){f="4E"+B++;7(s.O)s.O=(s.O+"").1r(2W,"="+f+"$1");s.1c=s.1c.1r(2W,"="+f+"$1");s.1H="1m";1e[f]=J(a){O=a;1W();1y();1e[f]=10;1S{2V 1e[f]}1X(e){}7(h)h.34(g)}}7(s.1H=="1m"&&s.1T==V)s.1T=S;7(s.1T===S&&s.U.2h()=="22"){L i=(1B 3v()).3L();L j=s.1c.1r(/(\\?|&)4r=.*?(&|$)/,"$a4="+i+"$2");s.1c=j+((j==s.1c)?(s.1c.1D(/\\?/)?"&":"?")+"4r="+i:"")}7(s.O&&s.U.2h()=="22"){s.1c+=(s.1c.1D(/\\?/)?"&":"?")+s.O;s.O=V}7(s.2a&&!E.5H++)E.16.1N("5S");7((!s.1c.1f("a3")||!s.1c.1f("//"))&&s.1H=="1m"&&s.U.2h()=="22"){L h=T.3S("6f")[0];L g=T.3s("1m");g.3Q=s.1c;7(s.7c)g.a2=s.7c;7(!f){L l=S;g.9Z=g.9Y=J(){7(!l&&(!6.39||6.39=="5V"||6.39=="1y")){l=P;1W();1y();h.34(g)}}}h.38(g);K 10}L m=S;L k=1e.78?1B 78("9X.9V"):1B 76();k.9T(s.U,s.1c,s.3l,s.6p,s.3I);1S{7(s.O)k.4C("9R-9Q",s.5P);7(s.5C)k.4C("9O-5A-9N",E.4F[s.1c]||"9L, 9K 9I 9H 5z:5z:5z 9F");k.4C("X-9C-9A","76");k.4C("9z",s.1H&&s.49[s.1H]?s.49[s.1H]+", */*":s.49.4G)}1X(e){}7(s.6Y)s.6Y(k);7(s.2a)E.16.1N("6m",[k,s]);L c=J(a){7(!m&&k&&(k.39==4||a=="2U")){m=P;7(d){6I(d);d=V}1z=a=="2U"&&"2U"||!E.6X(k)&&"3a"||s.5C&&E.6J(k,s.1c)&&"5U"||"1W";7(1z=="1W"){1S{O=E.6W(k,s.1H)}1X(e){1z="5x"}}7(1z=="1W"){L b;1S{b=k.5q("6U-5A")}1X(e){}7(s.5C&&b)E.4F[s.1c]=b;7(!f)1W()}N E.5v(s,k,1z);1y();7(s.3l)k=V}};7(s.3l){L d=53(c,13);7(s.2U>0)3z(J(){7(k){k.9t();7(!m)c("2U")}},s.2U)}1S{k.9s(s.O)}1X(e){E.5v(s,k,V,e)}7(!s.3l)c();J 1W(){7(s.1W)s.1W(O,1z);7(s.2a)E.16.1N("5Q",[k,s])}J 1y(){7(s.1y)s.1y(k,1z);7(s.2a)E.16.1N("5R",[k,s]);7(s.2a&&!--E.5H)E.16.1N("6d")}K k},5v:J(s,a,b,e){7(s.3a)s.3a(a,b,e);7(s.2a)E.16.1N("6D",[a,s,e])},5H:0,6X:J(r){1S{K!r.1z&&9q.9p=="59:"||(r.1z>=6T&&r.1z<9n)||r.1z==6R||r.1z==9l||E.14.2d&&r.1z==10}1X(e){}K S},6J:J(a,c){1S{L b=a.5q("6U-5A");K a.1z==6R||b==E.4F[c]||E.14.2d&&a.1z==10}1X(e){}K S},6W:J(r,b){L c=r.5q("9k-U");L d=b=="3M"||!b&&c&&c.1f("3M")>=0;L a=d?r.9j:r.4b;7(d&&a.1F.28=="5x")6Q"5x";7(b=="1m")E.5g(a);7(b=="3i")a=6c("("+a+")");K a},3m:J(a){L s=[];7(a.1k==1M||a.5h)E.R(a,J(){s.1g(3r(6.31)+"="+3r(6.1A))});N Q(L j 1p a)7(a[j]&&a[j].1k==1M)E.R(a[j],J(){s.1g(3r(j)+"="+3r(6))});N s.1g(3r(j)+"="+3r(a[j]));K s.6a("&").1r(/%20/g,"+")}});E.1n.1s({1G:J(c,b){K c?6.2e({1R:"1G",27:"1G",1w:"1G"},c,b):6.1E(":1Z").R(J(){6.W.19=6.5s||"";7(E.1j(6,"19")=="2H"){L a=E("<"+6.28+" />").6y("1h");6.W.19=a.1j("19");7(6.W.19=="2H")6.W.19="3D";a.1V()}}).3h()},1I:J(b,a){K b?6.2e({1R:"1I",27:"1I",1w:"1I"},b,a):6.1E(":4d").R(J(){6.5s=6.5s||E.1j(6,"19");6.W.19="2H"}).3h()},6N:E.1n.2g,2g:J(a,b){K E.1q(a)&&E.1q(b)?6.6N(a,b):a?6.2e({1R:"2g",27:"2g",1w:"2g"},a,b):6.R(J(){E(6)[E(6).3H(":1Z")?"1G":"1I"]()})},9f:J(b,a){K 6.2e({1R:"1G"},b,a)},9d:J(b,a){K 6.2e({1R:"1I"},b,a)},9c:J(b,a){K 6.2e({1R:"2g"},b,a)},9a:J(b,a){K 6.2e({1w:"1G"},b,a)},99:J(b,a){K 6.2e({1w:"1I"},b,a)},97:J(c,a,b){K 6.2e({1w:a},c,b)},2e:J(l,k,j,h){L i=E.6P(k,j,h);K 6[i.2P===S?"R":"2P"](J(){7(6.15!=1)K S;L g=E.1s({},i);L f=E(6).3H(":1Z"),4A=6;Q(L p 1p l){7(l[p]=="1I"&&f||l[p]=="1G"&&!f)K E.1q(g.1y)&&g.1y.1i(6);7(p=="1R"||p=="27"){g.19=E.1j(6,"19");g.32=6.W.32}}7(g.32!=V)6.W.32="1Z";g.40=E.1s({},l);E.R(l,J(c,a){L e=1B E.2t(4A,g,c);7(/2g|1G|1I/.17(a))e[a=="2g"?f?"1G":"1I":a](l);N{L b=a.3X().1D(/^([+-]=)?([\\d+-.]+)(.*)$/),1Y=e.2m(P)||0;7(b){L d=2M(b[2]),2A=b[3]||"2S";7(2A!="2S"){4A.W[c]=(d||1)+2A;1Y=((d||1)/e.2m(P))*1Y;4A.W[c]=1Y+2A}7(b[1])d=((b[1]=="-="?-1:1)*d)+1Y;e.45(1Y,d,2A)}N e.45(1Y,a,"")}});K P})},2P:J(a,b){7(E.1q(a)||(a&&a.1k==1M)){b=a;a="2t"}7(!a||(1o a=="25"&&!b))K A(6[0],a);K 6.R(J(){7(b.1k==1M)A(6,a,b);N{A(6,a).1g(b);7(A(6,a).M==1)b.1i(6)}})},94:J(b,c){L a=E.3G;7(b)6.2P([]);6.R(J(){Q(L i=a.M-1;i>=0;i--)7(a[i].Y==6){7(c)a[i](P);a.72(i,1)}});7(!c)6.5p();K 6}});L A=J(b,c,a){7(!b)K 10;c=c||"2t";L q=E.O(b,c+"2P");7(!q||a)q=E.O(b,c+"2P",a?E.2I(a):[]);K q};E.1n.5p=J(a){a=a||"2t";K 6.R(J(){L q=A(6,a);q.4l();7(q.M)q[0].1i(6)})};E.1s({6P:J(b,a,c){L d=b&&b.1k==92?b:{1y:c||!c&&a||E.1q(b)&&b,2u:b,3Z:c&&a||a&&a.1k!=91&&a};d.2u=(d.2u&&d.2u.1k==51?d.2u:{90:8Z,9D:6T}[d.2u])||8X;d.5y=d.1y;d.1y=J(){7(d.2P!==S)E(6).5p();7(E.1q(d.5y))d.5y.1i(6)};K d},3Z:{70:J(p,n,b,a){K b+a*p},5j:J(p,n,b,a){K((-24.8V(p*24.8U)/2)+0.5)*a+b}},3G:[],3W:V,2t:J(b,c,a){6.11=c;6.Y=b;6.1l=a;7(!c.47)c.47={}}});E.2t.2l={4y:J(){7(6.11.30)6.11.30.1i(6.Y,[6.2J,6]);(E.2t.30[6.1l]||E.2t.30.4G)(6);7(6.1l=="1R"||6.1l=="27")6.Y.W.19="3D"},2m:J(a){7(6.Y[6.1l]!=V&&6.Y.W[6.1l]==V)K 6.Y[6.1l];L r=2M(E.1j(6.Y,6.1l,a));K r&&r>-8Q?r:2M(E.2o(6.Y,6.1l))||0},45:J(c,b,d){6.5B=(1B 3v()).3L();6.1Y=c;6.3h=b;6.2A=d||6.2A||"2S";6.2J=6.1Y;6.4B=6.4w=0;6.4y();L e=6;J t(a){K e.30(a)}t.Y=6.Y;E.3G.1g(t);7(E.3W==V){E.3W=53(J(){L a=E.3G;Q(L i=0;i<a.M;i++)7(!a[i]())a.72(i--,1);7(!a.M){6I(E.3W);E.3W=V}},13)}},1G:J(){6.11.47[6.1l]=E.1J(6.Y.W,6.1l);6.11.1G=P;6.45(0,6.2m());7(6.1l=="27"||6.1l=="1R")6.Y.W[6.1l]="8N";E(6.Y).1G()},1I:J(){6.11.47[6.1l]=E.1J(6.Y.W,6.1l);6.11.1I=P;6.45(6.2m(),0)},30:J(a){L t=(1B 3v()).3L();7(a||t>6.11.2u+6.5B){6.2J=6.3h;6.4B=6.4w=1;6.4y();6.11.40[6.1l]=P;L b=P;Q(L i 1p 6.11.40)7(6.11.40[i]!==P)b=S;7(b){7(6.11.19!=V){6.Y.W.32=6.11.32;6.Y.W.19=6.11.19;7(E.1j(6.Y,"19")=="2H")6.Y.W.19="3D"}7(6.11.1I)6.Y.W.19="2H";7(6.11.1I||6.11.1G)Q(L p 1p 6.11.40)E.1J(6.Y.W,p,6.11.47[p])}7(b&&E.1q(6.11.1y))6.11.1y.1i(6.Y);K S}N{L n=t-6.5B;6.4w=n/6.11.2u;6.4B=E.3Z[6.11.3Z||(E.3Z.5j?"5j":"70")](6.4w,n,0,1,6.11.2u);6.2J=6.1Y+((6.3h-6.1Y)*6.4B);6.4y()}K P}};E.2t.30={2v:J(a){a.Y.2v=a.2J},2x:J(a){a.Y.2x=a.2J},1w:J(a){E.1J(a.Y.W,"1w",a.2J)},4G:J(a){a.Y.W[a.1l]=a.2J+a.2A}};E.1n.5L=J(){L b=0,3b=0,Y=6[0],5l;7(Y)8M(E.14){L d=Y.1a,41=Y,1K=Y.1K,1L=Y.2i,5D=2d&&4s(5K)<8J&&!/a1/i.17(v),2T=E.1j(Y,"43")=="2T";7(Y.6G){L c=Y.6G();1b(c.26+24.2f(1L.1F.2v,1L.1h.2v),c.3b+24.2f(1L.1F.2x,1L.1h.2x));1b(-1L.1F.62,-1L.1F.60)}N{1b(Y.5G,Y.5F);2b(1K){1b(1K.5G,1K.5F);7(48&&!/^t(8H|d|h)$/i.17(1K.28)||2d&&!5D)2N(1K);7(!2T&&E.1j(1K,"43")=="2T")2T=P;41=/^1h$/i.17(1K.28)?41:1K;1K=1K.1K}2b(d&&d.28&&!/^1h|3q$/i.17(d.28)){7(!/^8G|1O.*$/i.17(E.1j(d,"19")))1b(-d.2v,-d.2x);7(48&&E.1j(d,"32")!="4d")2N(d);d=d.1a}7((5D&&(2T||E.1j(41,"43")=="4W"))||(48&&E.1j(41,"43")!="4W"))1b(-1L.1h.5G,-1L.1h.5F);7(2T)1b(24.2f(1L.1F.2v,1L.1h.2v),24.2f(1L.1F.2x,1L.1h.2x))}5l={3b:3b,26:b}}J 2N(a){1b(E.2o(a,"a8",P),E.2o(a,"a9",P))}J 1b(l,t){b+=4s(l)||0;3b+=4s(t)||0}K 5l}})();',62,631,'||||||this|if||||||||||||||||||||||||||||||||||||||function|return|var|length|else|data|true|for|each|false|document|type|null|style||elem||undefined|options|nodeName||browser|nodeType|event|test|arguments|display|parentNode|add|url|msie|window|indexOf|push|body|apply|css|constructor|prop|script|fn|typeof|in|isFunction|replace|extend|className|text|handle|opacity|div|complete|status|value|new|firstChild|match|filter|documentElement|show|dataType|hide|attr|offsetParent|doc|Array|trigger|table|call|break|height|try|cache|tbody|remove|success|catch|start|hidden||ready|get|split|Math|string|left|width|tagName|ret|global|while|map|safari|animate|max|toggle|toLowerCase|ownerDocument|bind|select|prototype|cur||curCSS|selected|handler|done|find|fx|duration|scrollLeft|id|scrollTop|special|opera|unit|nextSibling|stack|guid|toUpperCase|pushStack|button|none|makeArray|now|slice|target|parseFloat|border|exec|queue|isReady|events|px|fixed|timeout|delete|jsre|one|disabled|nth|step|name|overflow|inArray|removeChild|removeData|preventDefault|merge|appendChild|readyState|error|top|which|innerHTML|multiFilter|rl|trim|end|json|first|checked|async|param|elems|insertBefore|childNodes|html|encodeURIComponent|createElement|append|form|Date|unbind|color|grep|setTimeout|readyList|mouseleave|mouseenter|block|isXMLDoc|addEventListener|timers|is|password|last|runtimeStyle|getTime|xml|jQuery|domManip|ajax|src|callee|getElementsByTagName|selectedIndex|load|object|timerId|toString|has|easing|curAnim|offsetChild|args|position|stopPropagation|custom|props|orig|mozilla|accepts|clean|responseText|defaultView|visible|String|charCode|float|teardown|on|setup|nodeIndex|shift|javascript|currentStyle|application|child|RegExp|_|parseInt|previousSibling|dir|tr|state|empty|update|getAttribute|self|pos|setRequestHeader|input|jsonp|lastModified|_default|unload|ajaxSettings|unshift|getComputedStyle|styleSheets|getPropertyValue|lastToggle|mouseout|mouseover|GET|andSelf|relatedTarget|init|visibility|click|absolute|index|container|fix|outline|Number|removeAttribute|setInterval|prevObject|classFilter|not|unique|submit|file|after|windowData|deep|scroll|client|triggered|globalEval|jquery|sibling|swing|clone|results|wrapAll|triggerHandler|lastChild|dequeue|getResponseHeader|createTextNode|oldblock|checkbox|radio|handleError|fromElement|parsererror|old|00|Modified|startTime|ifModified|safari2|getWH|offsetTop|offsetLeft|active|values|getElementById|version|offset|bindReady|processData|val|contentType|ajaxSuccess|ajaxComplete|ajaxStart|serializeArray|notmodified|loaded|DOMContentLoaded|Width|ctrlKey|keyCode|clientTop|POST|clientLeft|clientX|pageX|exclusive|detachEvent|removeEventListener|swap|cloneNode|join|attachEvent|eval|ajaxStop|substr|head|parse|textarea|reset|image|zoom|odd|ajaxSend|even|before|username|prepend|expr|quickClass|uuid|quickID|quickChild|continue|textContent|appendTo|contents|evalScript|parent|defaultValue|ajaxError|setArray|compatMode|getBoundingClientRect|styleFloat|clearInterval|httpNotModified|nodeValue|100|alpha|_toggle|href|speed|throw|304|replaceWith|200|Last|colgroup|httpData|httpSuccess|beforeSend|eq|linear|concat|splice|fieldset|multiple|cssFloat|XMLHttpRequest|webkit|ActiveXObject|CSS1Compat|link|metaKey|scriptCharset|callback|col|pixelLeft|urlencoded|www|post|hasClass|getJSON|getScript|elements|serialize|black|keyup|keypress|solid|change|mousemove|mouseup|dblclick|resize|focus|blur|stylesheet|rel|doScroll|round|hover|padding|offsetHeight|mousedown|offsetWidth|Bottom|Top|keydown|clientY|Right|pageY|Left|toElement|srcElement|cancelBubble|returnValue|charAt|0n|substring|animated|header|noConflict|line|enabled|innerText|contains|only|weight|ajaxSetup|font|size|gt|lt|uFFFF|u0128|417|Boolean|inner|Height|toggleClass|removeClass|addClass|removeAttr|replaceAll|insertAfter|prependTo|contentWindow|contentDocument|wrap|iframe|children|siblings|prevAll|nextAll|prev|wrapInner|next|parents|maxLength|maxlength|readOnly|readonly|reverse|class|htmlFor|inline|able|boxModel|522|setData|compatible|with|1px|ie|getData|10000|ra|it|rv|PI|cos|userAgent|400|navigator|600|slow|Function|Object|array|stop|ig|NaN|fadeTo|option|fadeOut|fadeIn|setAttribute|slideToggle|slideUp|changed|slideDown|be|can|property|responseXML|content|1223|getAttributeNode|300|method|protocol|location|action|send|abort|cssText|th|td|cap|specified|Accept|With|colg|Requested|fast|tfoot|GMT|thead|1970|Jan|attributes|01|Thu|leg|Since|If|opt|Type|Content|embed|open|area|XMLHTTP|hr|Microsoft|onreadystatechange|onload|meta|adobeair|charset|http|1_|img|br|plain|borderLeftWidth|borderTopWidth|abbr'.split('|'),0,{}))
\ No newline at end of file diff --git a/BSF/template-common/pngfix.js b/BSF/template-common/pngfix.js new file mode 100644 index 000000000..549761a1d --- /dev/null +++ b/BSF/template-common/pngfix.js @@ -0,0 +1,37 @@ + +// Correctly handle PNG transparency in Win IE 5.5 or higher. +// http://homepage.ntlworld.com/bobosola. Updated 02-March-2004 +// 15-Jully-2006 : chrisaga use \" instead of ' in imgTitle +// : to fix ' display in tooltips +// : keep the alt attribute + +function correctPNG() + { + for(var i=0; i<document.images.length; i++) + { + var img = document.images[i] + if (img.className == "button" || img.className == "icon") + { + var imgName = img.src.toUpperCase() + if (imgName.substring(imgName.length-3, imgName.length) == "PNG") + { + var imgID = (img.id) ? "id='" + img.id + "' " : "" + var imgClass = (img.className) ? "class='" + img.className + "' " : "" + //var imgTitle = (img.title) ? "title=\"" + img.title + "\" " : "alt=\"" + img.alt + "\" " + var imgTitle = (img.title) ? "title=\"" + img.title + "\" " : ""; + imgTitle = imgTitle + (img.alt) ? "title=\"" + img.alt + "\" " : ""; + var imgStyle = "display:inline-block;" + img.style.cssText + if (img.align == "left") imgStyle = "float:left;" + imgStyle + if (img.align == "right") imgStyle = "float:right;" + imgStyle + if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle + var strNewHTML = "<span " + imgID + imgClass + imgTitle + + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";" + + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" + + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" + img.outerHTML = strNewHTML + i = i-1 + } + } + } + } +window.attachEvent("onload", correctPNG); diff --git a/BSF/template-common/scripts.js b/BSF/template-common/scripts.js new file mode 100644 index 000000000..83f4815e7 --- /dev/null +++ b/BSF/template-common/scripts.js @@ -0,0 +1,74 @@ +function SelectAll( formulaire ) +{ +var len = formulaire.elements.length; +var i=0; +for( i = 0; i < len; i++) +{ + if ( formulaire.elements[i].type=='checkbox' + && formulaire.elements[i].name != 'copie') + { + formulaire.elements[i].checked = true; + } +} +} + +function DeselectAll( formulaire ) +{ +var len = formulaire.elements.length; +var i=0; +for( i = 0; i < len; i++) +{ + if ( formulaire.elements[i].type=='checkbox' + && formulaire.elements[i].name != 'copie') + { + formulaire.elements[i].checked = false; + } +} +} + +function Inverser( formulaire ) +{ +var len = formulaire.elements.length; +var i=0; +for( i=0; i<len; i++) +{ + if ( formulaire.elements[i].type=='checkbox' + && formulaire.elements[i].name != 'copie') + { + formulaire.elements[i].checked = !formulaire.elements[i].checked; + } +} +} + +function phpWGOpenWindow(theURL,winName,features) +{ + img = new Image(); + img.src = theURL; + if (img.complete) + { + var width=img.width +40; + var height=img.height +40; + } + else + { + var width=640; + var height=480; + img.onload = resizeWindowToFit; + } + newWin = window.open(theURL,winName,features+',left=2,top=1,width=' + width + ',height=' + height); +} + +function resizeWindowToFit() +{ + newWin.resizeTo( img.width+50, img.height+100); +} + +function popuphelp(url) +{ + window.open( + url, + 'dc_popup', + 'alwaysRaised=yes,dependent=yes,toolbar=no,height=420,width=500,menubar=no,resizable=yes,scrollbars=yes,status=no' + ); +} + diff --git a/BSF/template-common/tooltipfix.htc b/BSF/template-common/tooltipfix.htc new file mode 100644 index 000000000..4ce943af1 --- /dev/null +++ b/BSF/template-common/tooltipfix.htc @@ -0,0 +1,31 @@ +<public:attach event="onmouseover" onevent="montrer()" /> +<public:attach event="onmouseout" onevent="cacher()" /> + +<script langage=javascript> +var thisImg = this; +var thisTitle = this.title; +var thisAlt = this.alt; +var thisA = this.parentNode; +var aTitle = thisA.title; + +function montrer() +{ + if (aTitle) + { + thisAlt=thisImg.alt; + thisImg.alt=aTitle; + thisImg.title=aTitle; + } + return; +} + +function cacher() { + if (thisAlt) + { + thisImg.alt=thisAlt; + thisImg.title=thisTitle; + } + return; +} +</script> + diff --git a/BSF/template-extension/index.php b/BSF/template-extension/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template-extension/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template-extension/yoga/index.php b/BSF/template-extension/yoga/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template-extension/yoga/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template-extension/yoga/local/README b/BSF/template-extension/yoga/local/README new file mode 100644 index 000000000..dc5a2132c --- /dev/null +++ b/BSF/template-extension/yoga/local/README @@ -0,0 +1,19 @@ +If you want to make some template customization without building a brand new +template, you should use this directory to store yur customized version of the +official template files rather than editing them on place. +Doing this, they won't be lost during the next upgrade. + +For example, if you want your own header file just copy +"template/yoga/header.tpl" to this directory with whatever, but significant, +filename you want. +Then edit "include/page_header.php" and replace the line : + $template->set_filenames(array('header'=>'header.tpl')); +by + $template->set_filenames(array('header'=>'../../template-extension/yoga/local/header.tpl')); +Or whatever new filename you gave instead of header.tpl + +In future version of PWG, you probably won't have to edit the php code, but +a parameter table instead. + +Feel free to ask in the forum for further assistance : +http://forum.phpwebgallery.net/ diff --git a/BSF/template-extension/yoga/local/index.php b/BSF/template-extension/yoga/local/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template-extension/yoga/local/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/index.php b/BSF/template/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/about.tpl b/BSF/template/yoga/about.tpl new file mode 100644 index 000000000..62b51839d --- /dev/null +++ b/BSF/template/yoga/about.tpl @@ -0,0 +1,19 @@ +{* $Id$ *} +<div id="content" class="content"> + <div class="titrePage"> + <ul class="categoryActions"> + <li> + <a href="{$U_HOME}" title="{'return to homepage'|@translate}"> + <img src="{$themeconf.icon_dir}/home.png" class="button" alt="{'home'|@translate}"/> + </a> + </li> + </ul> + <h2>{'About'|@translate}</h2> + </div> + <ul> + {$ABOUT_MESSAGE} + {if isset($THEME_ABOUT) } + <li>{$THEME_ABOUT}</li> + {/if} + </ul> +</div> diff --git a/BSF/template/yoga/admin.tpl b/BSF/template/yoga/admin.tpl new file mode 100644 index 000000000..188888951 --- /dev/null +++ b/BSF/template/yoga/admin.tpl @@ -0,0 +1,103 @@ +{* $Id$ *} +<div id="post-header"></div> +<div id="menubar"> + <dl> + <dt class="rdion">{'Links'|@translate}</dt> + <dd> + <ul> + <li><a href="{$U_RETURN}">{'home'|@translate}</a></li> + <li><a href="{$U_FAQ}">{'instructions'|@translate}</a></li> + <li><a href="{$U_ADMIN}" title="{'hint_admin'|@translate}">{'admin'|@translate}</a></li> + </ul> + </dd> + </dl> + <dl> + <dt class="rdion">{'config'|@translate}</dt> + <dd> + <ul> + <li><a href="{$U_CONFIG_GENERAL}">{'conf_general'|@translate}</a></li> + <li><a href="{$U_CONFIG_DISPLAY}">{'conf_display'|@translate}</a></li> + </ul> + </dd> + </dl> + <dl> + <dt class="rdion">{'Categories'|@translate}</dt> + <dd> + <ul> + <li><a href="{$U_SITE_MANAGER}">{'Site manager'|@translate}</a></li> + <li><a href="{$U_CAT_UPDATE}">{'update'|@translate}</a><br /> </li> + <li><a href="{$U_CATEGORIES}">{'manage'|@translate}</a></li> + <li><a href="{$U_MOVE}">{'Move'|@translate}</a></li> + <li><a href="{$U_CAT_OPTIONS}">{'cat_options_title'|@translate}</a></li> + <li><a href="{$U_PERMALINKS}">{'Permalinks'|@translate}</a></li> + </ul> + </dd> + </dl> + <dl> + <dt class="rdion">{'Pictures'|@translate}</dt> + <dd> + <ul> + <li><a href="{$U_WAITING}">{'waiting'|@translate}</a></li> + <li><a href="{$U_THUMBNAILS}">{'thumbnails'|@translate}</a></li> + <li><a href="{$U_RATING}">{'Rating'|@translate}</a></li> + <li><a href="{$U_TAGS}">{'Tags'|@translate}</a></li> + <li><a href="{$U_CADDIE}">{'Caddie'|@translate}</a></li> + </ul> + </dd> + </dl> + <dl> + <dt class="rdion">{'identification'|@translate}</dt> + <dd> + <ul> + <li><a href="{$U_USERS}">{'users'|@translate}</a></li> + <li><a href="{$U_GROUPS}">{'groups'|@translate}</a></li> + <li><a href="{$U_NOTIFICATION_BY_MAIL}">{'nbm_item_notification'|@translate}</a></li> + </ul> + </dd> + </dl> + <dl> + <dt class="rdion">{'special_admin_menu'|@translate}</dt> + <dd> + <ul> + <li><a href="{$U_HISTORY_STAT}">{'History'|@translate}</a></li> + <li><a href="{$U_MAINTENANCE}">{'Maintenance'|@translate}</a></li> + <li><a href="{$U_ADVANCED_FEATURE}">{'Advanced_features'|@translate}</a></li> + {if isset($U_WS_CHECKER) } + <li><a href="{$U_WS_CHECKER}">{'web_services'|@translate}</a></li> + {/if} + <li> + {'Plugins'|@translate} + <ul> +{foreach from=$plugin_menu_items item=menu_item} + <li><a href="{$menu_item.URL}">{$menu_item.NAME}</a></li> +{/foreach} + </ul> + </li> + </ul> + </dd> + </dl> +</div> <!-- menubar --> + +<div id="content" class="content"> + {if isset($errors)} + <div class="errors"> + <ul> + {foreach from=$errors item=error} + <li>{$error}</li> + {/foreach} + </ul> + </div> + {/if} + + {if isset($infos)} + <div class="infos"> + <ul> + {foreach from=$infos item=info} + <li>{$info}</li> + {/foreach} + </ul> + </div> + {/if} + + {$ADMIN_CONTENT} +</div> diff --git a/BSF/template/yoga/admin/advanced_feature.tpl b/BSF/template/yoga/admin/advanced_feature.tpl new file mode 100644 index 000000000..128428ba1 --- /dev/null +++ b/BSF/template/yoga/admin/advanced_feature.tpl @@ -0,0 +1,13 @@ +{* $Id$ *} +<div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$themeconf.icon_dir}/help.png" class="button" alt="(?)"></a></li> + </ul> + <h2>{'Advanced_features'|@translate}</h2> +</div> + +<ul> + {foreach from=$advanced_features item=feature} + <li><a href="{$feature.URL}" {$TAG_INPUT_ENABLED}>{$feature.CAPTION}</a></li> + {/foreach} +</ul> diff --git a/BSF/template/yoga/admin/cat_list.tpl b/BSF/template/yoga/admin/cat_list.tpl new file mode 100644 index 000000000..b408a5a50 --- /dev/null +++ b/BSF/template/yoga/admin/cat_list.tpl @@ -0,0 +1,65 @@ +{* $Id$ *} +<h2>{'title_categories'|@translate}</h2> + +<h3>{$CATEGORIES_NAV}</h3> + +<form id="addVirtual" action="{$F_ACTION}" method="post"> + <p> + {'cat_add'|@translate} : <input type="text" name="virtual_name" /> + <input class="submit" type="submit" value="{'Submit'|@translate}" name="submitAdd" {$TAG_INPUT_ENABLED} /> + {if count($categories)>9 } + <a href="#EoP" class="button"><img src="{$themeconf.icon_dir}/page_end.png" class="button" alt="page_end" /></a> + {/if} + </p> +</form> + +{if count($categories) } +<form id="categoryOrdering" action="{$F_ACTION}" method="post"> + <p> + <input class="submit" name="submitOrder" type="submit" value="{'Save order'|@translate}" {$TAG_INPUT_ENABLED} /> + <input class="submit" name="submitOrderAlphaNum" type="submit" value="{'Order alphanumerically'|@translate}" {$TAG_INPUT_ENABLED} /> + </p> + <ul class="categoryUl"> + + {foreach from=$categories item=category} + <li class="categoryLi{if $category.IS_VIRTUAL} virtual_cat{/if}"> + <!-- category {$category.ID} --> + <ul class="categoryActions"> + <li><a href="{$category.U_JUMPTO}" title="{'jump to category'|@translate}"><img src="{$themeconf.icon_dir}/category_jump-to.png" class="button" alt="{'jump to category'|@translate}" /></a></li> + <li><a href="{$category.U_EDIT}" title="{'edit category informations'|@translate}"><img src="{$themeconf.icon_dir}/category_edit.png" class="button" alt="{'edit'|@translate}"/></a></li> + {if isset($category.U_MANAGE_ELEMENTS) } + <li><a href="{$category.U_MANAGE_ELEMENTS}" title="{'manage category elements'|@translate}"><img src="{$themeconf.icon_dir}/category_elements.png" class="button" alt="{'elements'|@translate}" /></a></li> + {/if} + <li><a href="{$category.U_CHILDREN}" title="{'manage sub-categories'|@translate}"><img src="{$themeconf.icon_dir}/category_children.png" class="button" alt="{'sub-categories'|@translate}" /></a></li> + {if isset($category.U_MANAGE_PERMISSIONS) } + <li><a href="{$category.U_MANAGE_PERMISSIONS}" title="{'edit category permissions'|@translate}" ><img src="{$themeconf.icon_dir}/category_permissions.png" class="button" alt="{'permissions'|@translate}" /></a></li> + {/if} + {if isset($category.U_DELETE) } + <li><a href="{$category.U_DELETE}" title="{'delete category'|@translate}" onclick="return confirm('{'Are you sure?'|@translate|@escape:javascript}');"><img src="{$themeconf.icon_dir}/category_delete.png" class="button" alt="{'delete'|@translate}" /></a></li> + {/if} + </ul> + + <p> + <strong><a href="{$category.U_CHILDREN}" title="{'manage sub-categories'|@translate}">{$category.NAME}</a></strong> + {if $category.IS_VIRTUAL} + <img src="{$themeconf.icon_dir}/virt_category.png" class="button" alt="{'virtual_category'|@translate}" /> + {/if} + </p> + + <p> + <label> + {'Position'|@translate} : + <input type="text" size="4" name="catOrd[{$category.ID}]" maxlength="4" value="{$category.RANK}" /> + </label> + </p> + + </li> + {/foreach} + </ul> + <p> + <input class="submit" name="submitOrder" type="submit" value="{'Save order'|@translate}" {$TAG_INPUT_ENABLED} /> + <input class="submit" name="submitOrderAlphaNum" type="submit" value="{'Order alphanumerically'|@translate}" {$TAG_INPUT_ENABLED} /> + </p> + +</form> +{/if} diff --git a/BSF/template/yoga/admin/cat_modify.tpl b/BSF/template/yoga/admin/cat_modify.tpl new file mode 100644 index 000000000..88e07e329 --- /dev/null +++ b/BSF/template/yoga/admin/cat_modify.tpl @@ -0,0 +1,229 @@ +{* $Id$ *} +<div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/help.png" class="button" alt="(?)"></a></li> + </ul> + <h2>{'title_edit_cat'|@translate}</h2> +</div> + +<h3>{$CATEGORIES_NAV}</h3> + +<ul class="categoryActions"> + <li><a href="{$U_JUMPTO}" title="{'jump to category'|@translate}"><img src="{$themeconf.icon_dir}/category_jump-to.png" class="button" alt="{'jump to category'|@translate}" /></a></li> + {if isset($U_MANAGE_ELEMENTS) } + <li><a href="{$U_MANAGE_ELEMENTS}" title="{'manage category elements'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/category_elements.png" class="button" alt="{'elements'|@translate}" /></a></li> + {/if} + <li><a href="{$U_CHILDREN}" title="{'manage sub-categories'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/category_children.png" class="button" alt="{'sub-categories'|@translate}" /></a></li> + {if isset($U_MANAGE_PERMISSIONS) } + <li><a href="{$U_MANAGE_PERMISSIONS}" title="{'edit category permissions'|@translate}" ><img src="{$ROOT_URL}{$themeconf.icon_dir}/category_permissions.png" class="button" alt="{'permissions'|@translate}" /></a></li> + {/if} + {if isset($U_DELETE) } + <li><a href="{$U_DELETE}" title="{'delete category'|@translate}" onclick="return confirm('{'Are you sure?'|@translate|@escape:'javascript'}');"><img src="{$ROOT_URL}{$themeconf.icon_dir}/category_delete.png" class="button" alt="{'delete'|@translate}" /></a></li> + {/if} +</ul> + +<form action="{$F_ACTION}" method="POST" id="catModify"> + +<fieldset> + <legend>{'Informations'|@translate}</legend> + <table> + + {if isset($CAT_FULL_DIR) } + <tr> + <td><strong>{'storage'|@translate}</strong></td> + <td class="row1">{$CAT_FULL_DIR}</td> + </tr> + {/if} + + <tr> + <td><strong>{'name'|@translate}</strong></td> + <td> + <input type="text" name="name" value="{$CAT_NAME}" maxlength="60"/> + </td> + </tr> + <tr> + <td><strong>{'description'|@translate}</strong></td> + <td> + <textarea cols="50" rows="5" name="comment" class="description">{$CAT_COMMENT}</textarea> + </td> + </tr> + </table> +</fieldset> + +{if isset($move_cat_options) } +<fieldset id="move"> + <legend>{'Move'|@translate}</legend> + {'Parent category'|@translate} + <select class="categoryDropDown" name="parent"> + <option value="0">------------</option> + {html_options options=$move_cat_options selected=$move_cat_options_selected } + </select> +</fieldset> +{/if} + +<fieldset id="options"> + <legend>{'Options'|@translate}</legend> + <table> + <tr> + <td><strong>{'conf_access'|@translate}</strong> + <td> + {html_radios name='status' values=$status_values output=$status_values|translate selected=$CAT_STATUS} + </td> + </tr> + <tr> + <td><strong>{'lock'|@translate}</strong> + <td> + {html_radios name='visible' values='false,true'|@explode output='No,Yes'|@explode|translate selected=$CAT_VISIBLE} + </td> + </tr> + <tr> + <td><strong>{'comments'|@translate}</strong> + <td> + {html_radios name='commentable' values='false,true'|@explode output='No,Yes'|@explode|translate selected=$CAT_COMMENTABLE} + </td> + </tr> + {if isset($SHOW_UPLOADABLE) } + <tr> + <td><strong>{'editcat_uploadable'|@translate}</strong> + <td> + {html_radios name='uploadable' values='false,true'|@explode output='No,Yes'|@explode|translate selected=$CAT_UPLOADABLE} + </td> + </tr> + {/if} + </table> +</fieldset> + +<fieldset id="image_order"> + <legend>{'Sort order'|@translate}</legend> + <input type="checkbox" name="image_order_default" id="image_order_default" {$IMG_ORDER_DEFAULT} /> + <label for="image_order_default">{'Use default sort order'|@translate}</label> + <br/> + <input type="checkbox" name="image_order_subcats" id="image_order_subcats" /> + <label for="image_order_subcats">{'Apply to subcategories'|@translate}</label> + <br/> + + {foreach from=$image_orders item=order} + <select name="order_field_{$order.ID}"> + {html_options options=$image_order_field_options selected=$order.FIELD }} + </select> + <select name="order_direction_{$order.ID}"> + {html_options options=$image_order_direction_options selected=$order.DIRECTION }} + </select><br/> + {/foreach} + +</fieldset> + +<p style="text-align:center;"> + <input class="submit" type="submit" value="{'Submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED}/> + <input class="submit" type="reset" value="{'Reset'|@translate}" name="reset" /> +</p> + +{if isset($representant) } +<fieldset id="representant"> + <legend>{'Representant'|@translate}</legend> + <table> + <tr> + <td align="center"> + {if isset($representant.picture) } + <a href="{$representant.picture.URL}"><img src="{$representant.picture.SRC}" alt="" class="miniature" /></a> + {else} + <img src="{$ROOT_URL}{$themeconf.icon_dir}/category_representant_random.png" class="button" alt="{'Random picture'|@translate}" class="miniature" /> + {/if} + </td> + <td> + {if $representant.ALLOW_SET_RANDOM } + <p><input class="submit" type="submit" name="set_random_representant" value="{'cat_representant'|@translate}" {$TAG_INPUT_ENABLED}/></p> + {/if} + + {if isset($representant.ALLOW_DELETE) } + <p><input class="submit" type="submit" name="delete_representant" value="{'Delete Representant'|@translate}" /></p> + {/if} + </td> + </tr> + </table> +</fieldset> +{/if} + +</form> + +<form action="{$F_ACTION}" method="POST" id="links"> + +<fieldset id="linkAllNew"> + <legend>{'Link all category elements to a new category'|@translate}</legend> + + <table> + <tr> + <td>{'Virtual category name'|@translate}</td> + <td><input type="text" name="virtual_name"></td> + </tr> + + <tr> + <td>{'Parent category'|@translate}</td> + <td> + <select class="categoryDropDown" name="parent"> + <option value="0">------------</option> + {html_options options=$create_new_parent_options } + </select> + </td> + </tr> + </table> + + <p> + <input class="submit" type="submit" value="{'Submit'|@translate}" name="submitAdd" {$TAG_INPUT_ENABLED}/> + <input class="submit" type="reset" value="{'Reset'|@translate}" name="reset" /> + </p> + +</fieldset> + +<fieldset id="linkAllExist"> + <legend>{'Link all category elements to some existing categories'|@translate}</legend> + + <table> + <tr> + <td>{'Categories'|@translate}</td> + <td> + <select class="categoryList" name="destinations[]" multiple="multiple" size="5"> + {html_options options=$category_destination_options } + </select> + </td> + </tr> + </table> + + <p> + <input class="submit" type="submit" value="{'Submit'|@translate}" name="submitDestinations" {$TAG_INPUT_ENABLED}/> + <input class="submit" type="reset" value="{'Reset'|@translate}" name="reset" /> + </p> + +</fieldset> + +{if isset($group_mail_options)} +<fieldset id="emailCatInfo"> + <legend>{'Send an information email to group members'|@translate}</legend> + + <table> + <tr> + <td><strong>{'Group'|@translate}</strong></td> + <td> + <select name="group"> + {html_options options=$group_mail_options} + </select> + </td> + </tr> + <tr> + <td><strong>{'mail_content'|@translate}</strong></td> + <td> + <textarea cols="50" rows="5" name="mail_content" class="description">{$MAIL_CONTENT}</textarea> + </td> + </tr> + + </table> + + <p> + <input class="submit" type="submit" value="{'Submit'|@translate}" name="submitEmail" {$TAG_INPUT_ENABLED}/> + <input class="submit" type="reset" value="{'Reset'|@translate}" name="reset" /> + </p> + +</fieldset> +{/if} + +</form> diff --git a/BSF/template/yoga/admin/cat_move.tpl b/BSF/template/yoga/admin/cat_move.tpl new file mode 100644 index 000000000..318a025ab --- /dev/null +++ b/BSF/template/yoga/admin/cat_move.tpl @@ -0,0 +1,38 @@ +{* $Id$ *} + +<div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$themeconf.icon_dir}/help.png" class="button" alt="(?)"></a></li> + </ul> + <h2>{'Move categories'|@translate}</h2> +</div> + +<form method="post" action="{$F_ACTION}" class="filter" id="catMove"> + <fieldset> + <legend>{'Virtual categories movement'|@translate}</legend> + + <label> + {'Virtual categories to move'|@translate} + + <select class="categoryList" name="selection[]" multiple="multiple"> + {html_options options=$category_to_move_options} + </select> + </label> + + <label> + {'New parent category'|@translate} + + <select class="categoryDropDown" name="parent"> + <option value="0">------------</option> + {html_options options=$category_parent_options} + </select> + </label> + + </fieldset> + + <p> + <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}> + <input class="submit" type="reset" name="reset" value="{'Reset'|@translate}"> + </p> + +</form> diff --git a/BSF/template/yoga/admin/cat_options.tpl b/BSF/template/yoga/admin/cat_options.tpl new file mode 100644 index 000000000..f9087648a --- /dev/null +++ b/BSF/template/yoga/admin/cat_options.tpl @@ -0,0 +1,16 @@ +{* $Id$ *} +<div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$themeconf.icon_dir}/help.png" class="button" alt="(?)"></a></li> + </ul> + <h2>{'cat_options_title'|@translate} {$TABSHEET_TITLE}</h2> + {$TABSHEET} +</div> + +<form method="post" action="{$F_ACTION}" id="cat_options"> + <fieldset> + <legend>{$L_SECTION}</legend> + {$DOUBLE_SELECT} + </fieldset> +</form> + diff --git a/BSF/template/yoga/admin/cat_perm.tpl b/BSF/template/yoga/admin/cat_perm.tpl new file mode 100644 index 000000000..857448112 --- /dev/null +++ b/BSF/template/yoga/admin/cat_perm.tpl @@ -0,0 +1,68 @@ +{* $Id$ *} +<div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$themeconf.icon_dir}/help.png" class="button" alt="(?)"></a></li> + </ul> + <h2>{'Manage permissions for a category'|@translate}</h2> +</div> + +<h3>{$CATEGORIES_NAV}</h3> + +<form action="{$F_ACTION}" method="post" id="categoryPermissions"> + + <h4>{'Groups'|@translate}</h4> + + <fieldset> + <legend>{'Permission granted'|@translate}</legend> + <ul> + {foreach from=$group_granted_ids item=id} + <li><label><input type="checkbox" name="deny_groups[]" value="{$id}" /> {$all_groups[$id]}</label></li> + {/foreach} + </ul> + <input class="submit" type="submit" name="deny_groups_submit" value="{'Deny selected groups'|@translate}" {$TAG_INPUT_ENABLED}/> + </fieldset> + + <fieldset> + <legend>{'Permission denied'|@translate}</legend> + <ul> + {foreach from=$group_denied_ids item=id} + <li><label><input type="checkbox" name="grant_groups[]" value="{$id}"> {$all_groups[$id]}</label></li> + {/foreach} + </ul> + <input class="submit" type="submit" name="grant_groups_submit" value="{'Grant selected groups'|@translate}" {$TAG_INPUT_ENABLED}/> + </fieldset> + + <h4>{'Users'|@translate}</h4> + + <fieldset> + <legend>{'Permission granted'|@translate}</legend> + <ul> + {foreach from=$user_granted_direct_ids item=id} + <li><label><input type="checkbox" name="deny_users[]" value="{$id}" /> {$all_users[$id]}</label></li> + {/foreach} + </ul> + <input class="submit" type="submit" name="deny_users_submit" value="{'Deny selected users'|@translate}" {$TAG_INPUT_ENABLED}/> + </fieldset> + + <fieldset> + <legend>{'Permission granted thanks to a group'|@translate}</legend> + {if isset($user_granted_indirects) } + <ul> + {foreach from=$user_granted_indirects item=user_group} + <li>{$user_group.USER} ({$user_group.GROUP})</li> + {/foreach} + </ul> + {/if} + </fieldset> + + <fieldset> + <legend>{'Permission denied'|@translate}</legend> + <ul> + {foreach from=$user_denied_ids item=id} + <li><label><input type="checkbox" name="grant_users[]" value="{$id}"> {$all_users[$id]}</label></li> + {/foreach} + </ul> + <input class="submit" type="submit" name="grant_users_submit" value="{'Grant selected users'|@translate}" {$TAG_INPUT_ENABLED}/> + </fieldset> + +</form> diff --git a/BSF/template/yoga/admin/check_integrity.tpl b/BSF/template/yoga/admin/check_integrity.tpl new file mode 100644 index 000000000..1783e69e2 --- /dev/null +++ b/BSF/template/yoga/admin/check_integrity.tpl @@ -0,0 +1,84 @@ +{* $Id$ *} +<dl> + <dt>{'c13y_title'|@translate}</dt> + <dd> + <ul> + <form method="post" name="c13y" id="c13y" action="{$F_C13Y_ACTION}"> + <fieldset> + <table class="table2"> + <tr class="throw"> + <th></th> + <th>{'c13y_Anomaly'|@translate}</th> + <th>{'c13y_Correction'|@translate}</th> + </tr> + {if isset($c13y_list)} + {foreach from=$c13y_list item=c13y name=c13y_loop} + <tr class="{if $smarty.foreach.c13y_loop.index is odd}row1{else}row2{/if}"> + <td> + {if $c13y.can_select} + <input type="checkbox" name="c13y_selection[]" value="{$c13y.id}" id="c13y_selection-{$c13y.id}" /><label for="c13y_selection-{$c13y.id}"></label> + {/if} + </td> + <td><label for="c13y_selection-{$c13y.id}">{$c13y.anomaly}</label></td> + <td> + <label for="c13y_selection-{$c13y.id}"> + {if $c13y.show_ignore_msg} + {'c13y_ignore_msg1'|@translate} + <br /> + {'c13y_ignore_msg2'|@translate} + {/if} + {if $c13y.show_correction_fct} + {'c13y_Automatic_correction'|@translate} + {/if} + {if $c13y.show_correction_bad_fct} + {'c13y_Impossible_automatic_correction'|@translate} + {/if} + {if $c13y.show_correction_success_fct} + {'c13y_Correction_applied_success'|@translate} + {/if} + {if !empty($c13y.correction_error_fct)} + {'c13y_Correction_applied_error'|@translate} + <br /> + {$c13y.c13y.correction_error_fct} + {/if} + {if !empty($c13y.correction_msg)} + {if $c13y.show_correction_success_fct or !empty($c13y.correction_error_fct) or $c13y.show_correction_fct or $c13y.show_correction_bad_fct } + <br /> + {/if} + {$c13y.correction_msg|@nl2br} + {/if} + </label> + </td> + </tr> + {/foreach} + {/if} + </table> + + <p> + {if $c13y_show_submit_ignore} + <a href="#" onclick="SelectAll(document.getElementById('c13y')); return false;">{'Check all'|@translate}</a> + / <a href="#" onclick="DeselectAll(document.getElementById('c13y')); return false;">{'Uncheck all'|@translate}</a> + {/if} + {if isset($c13y_do_check)} + / <a href="#" onclick="DeselectAll(document.getElementById('c13y')); + {foreach from=$c13y_do_check item=ID} + document.getElementById('c13y_selection-{$ID}').checked = true; + {/foreach} + return false;">{'c13y_check_auto'|@translate}</a> + {/if} + </p> + + <p> + {if $c13y_show_submit_automatic_correction} + <input class="submit" type="submit" value="{'c13y_submit_correction'|@translate}" name="c13y_submit_correction" {$TAG_INPUT_ENABLED} /> + {/if} + {if $c13y_show_submit_ignore} + <input class="submit" type="submit" value="{'c13y_submit_ignore'|@translate}" name="c13y_submit_ignore" {$TAG_INPUT_ENABLED} /> + {/if} + <input class="submit" type="submit" value="{'c13y_submit_refresh'|@translate}" name="c13y_submit_refresh" /> + </p> + + </fieldset> + </form> + </ul> + </dd> diff --git a/BSF/template/yoga/admin/comments.tpl b/BSF/template/yoga/admin/comments.tpl new file mode 100644 index 000000000..84b1677c6 --- /dev/null +++ b/BSF/template/yoga/admin/comments.tpl @@ -0,0 +1,33 @@ +{* $Id$ *} +<div class="titrePage"> + <h2>{'waiting'|@translate} {$TABSHEET_TITLE}</h2> + {$TABSHEET} +</div> + +<h3>{'User comments validation'|@translate}</h3> + +{if !empty($comments) } +<form method="post" action="{$F_ACTION}"> + + {foreach from=$comments item=comment} + <div class="comment"> + <a class="illustration" href="{$comment.U_PICTURE}"><img src="{$comment.TN_SRC}" /></a> + <p class="commentHeader"><strong>{$comment.AUTHOR}</strong> - <em>{$comment.DATE}</em></p> + <blockquote>{$comment.CONTENT}</blockquote> + <ul class="actions"> + <li><label><input type="radio" name="action-{$comment.ID}" value="reject" />{'Reject'|@translate}</label></li> + <li><label><input type="radio" name="action-{$comment.ID}" value="validate" />{'Validate'|@translate}</label></li> + </ul> + </div> + {/foreach} + + <p class="bottomButtons"> + <input type="hidden" name="list" value="{$LIST}" /> + <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}/> + <input class="submit" type="submit" name="validate-all" value="{'Validate All'|@translate}" {$TAG_INPUT_ENABLED}/> + <input class="submit" type="submit" name="reject-all" value="{'Reject All'|@translate}" {$TAG_INPUT_ENABLED}/> + <input class="submit" type="reset" value="{'Reset'|@translate}" /> + </p> + +</form> +{/if}
\ No newline at end of file diff --git a/BSF/template/yoga/admin/configuration.tpl b/BSF/template/yoga/admin/configuration.tpl new file mode 100644 index 000000000..04d8c7855 --- /dev/null +++ b/BSF/template/yoga/admin/configuration.tpl @@ -0,0 +1,179 @@ +{* $Id$ *} +<div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$themeconf.icon_dir}/help.png" class="button" alt="(?)"></a></li> + </ul> + <h2>{'title_configuration'|@translate} {$TABSHEET_TITLE}</h2> + {$TABSHEET} +</div> + +<form method="post" action="{$F_ACTION}" class="properties"> + +{if isset($main)} +<fieldset id="mainConf"> + <ul> + <li> + <span class="property"> + <label for="gallery_title">{'Gallery title'|@translate}</label> + </span> + <input type="text" maxlength="255" size="50" name="gallery_title" id="gallery_title" value="{$main.CONF_GALLERY_TITLE}" /> + </li> + + <li> + <span class="property"> + <label for="page_banner">{'Page banner'|@translate}</label> + </span> + <textarea class="description" name="page_banner" id="page_banner">{$main.CONF_PAGE_BANNER}</textarea> + </li> + + <li> + <span class="property"> + <label for="gallery_url">{'Gallery URL'|@translate}</label> + </span> + <input type="text" maxlength="255" size="50" name="gallery_url" id="gallery_url" value="{$main.CONF_GALLERY_URL}" /> + </li> + </ul> +</fieldset> + +<fieldset id="mainConfCheck"> + <ul> + + <li> + <label> + <span class="property">{'Lock gallery'|@translate}</span> + <input type="checkbox" name="gallery_locked" {if ($main.gallery_locked)}checked="checked"{/if} /> + </label> + </li> + + <li> + <label> + <span class="property">{'Rating'|@translate}</span> + <input type="checkbox" name="rate" {if ($main.rate)}checked="checked"{/if} /> + </label> + </li> + + <li> + <label> + <span class="property">{'Rating by guests'|@translate}</span> + <input type="checkbox" name="rate_anonymous" {if ($main.rate_anonymous)}checked="checked"{/if} /> + </label> + </li> + + <li> + <label> + <span class="property">{'Allow user registration'|@translate}</span> + <input type="checkbox" name="allow_user_registration" {if ($main.allow_user_registration)}checked="checked"{/if} /> + </label> + </li> + + <li> + <label> + <span class="property">{'obligatory_user_mail_address'|@translate}</span> + <input type="checkbox" name="obligatory_user_mail_address" {if ($main.obligatory_user_mail_address)}checked="checked"{/if} /> + </label> + </li> + + <li> + <label> + <span class="property">{'Email administrators when a new user registers'|@translate}</span> + <input type="checkbox" name="email_admin_on_new_user" {if ($main.email_admin_on_new_user)}checked="checked"{/if} /> + </label> + </li> + </ul> +</fieldset> +{/if} + +{if isset($history)} +<fieldset id="historyConf"> + <ul> + <li> + <label><span class="property">{'conf_history_guest'|@translate}</span><input type="checkbox" name="history_guest" {if ($history.history_guest)}checked="checked"{/if} /></label> + </li> + + <li> + <label><span class="property">{'conf_history_user'|@translate}</span><input type="checkbox" name="log" {if ($history.log)}checked="checked"{/if} /></label> + </li> + + <li> + <label><span class="property">{'conf_history_admin'|@translate}</span><input type="checkbox" name="history_admin" {if ($history.history_admin)}checked="checked"{/if} /></label> + </li> + </ul> +</fieldset> +{/if} + + +{if isset($comments)} +<fieldset id="commentsConf"> + <ul> + <li> + <label> + <span class="property">{'Comments for all'|@translate}</span> + <input type="checkbox" name="comments_forall" {if ($comments.comments_forall)}checked="checked"{/if} /> + </label> + </li> + + <li> + <span class="property"> + <label for="nb_comment_page">{'Number of comments per page'|@translate}</label> + </span> + <input type="text" size="3" maxlength="4" name="nb_comment_page" id="nb_comment_page" value="{$comments.NB_COMMENTS_PAGE}" /> + </li> + + <li> + <label> + <span class="property">{'Validation'|@translate}</span> + <input type="checkbox" name="comments_validation" {if ($comments.comments_validation)}checked="checked"{/if} /> + </label> + </li> + + + <li> + <label> + <span class="property">{'Email administrators when a valid comment is entered'|@translate}</span> + <input type="checkbox" name="email_admin_on_comment" {if ($comments.email_admin_on_comment)}checked="checked"{/if} /> + </label> + </li> + + <li> + <label> + <span class="property">{'Email administrators when a comment requires validation'|@translate}</span> + <input type="checkbox" name="email_admin_on_comment_validation" {if ($comments.email_admin_on_comment_validation)}checked="checked"{/if} /> + </label> + </li> + + </ul> +</fieldset> +{/if} + +{if isset($upload)} +<fieldset id="uploadConf"> + <ul> + <li> + <label><span class="property">{'Show upload link every time'|@translate}</span> + <input type="checkbox" name="upload_link_everytime" {if ($upload.upload_link_everytime)}checked="checked"{/if} /></label> + </li> + <li> + <label><span class="property">{'User access level to upload'|@translate}</span> + {html_options name="upload_user_access" options=$upload.upload_user_access_options selected=$upload.upload_user_access_options_selected} + </li> + <li> + <label> + <span class="property">{'Email administrators when a picture is uploaded'|@translate}</span> + <input type="checkbox" name="email_admin_on_picture_uploaded" {if ($upload.email_admin_on_picture_uploaded)}checked="checked"{/if} /> + </label> + </li> + </ul> +</fieldset> +{/if} + +{if isset($default)} +{$PROFILE_CONTENT} +{/if} + +{if !isset($default)} + <p> + <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}> + <input class="submit" type="reset" name="reset" value="{'Reset'|@translate}"> + </p> +{/if} +</form> diff --git a/BSF/template/yoga/admin/default-layout.css b/BSF/template/yoga/admin/default-layout.css new file mode 100644 index 000000000..45e352606 --- /dev/null +++ b/BSF/template/yoga/admin/default-layout.css @@ -0,0 +1,245 @@ +/* $Id: */ +BODY#theAdminPage #theHeader P { + display: none; +} + +/* History tables */ +TABLE.table2 { + border: 1px solid black; + margin: 1em auto; + padding: 0; +} + +TABLE.table2 TD, TABLE.table2 TH { + padding: 0 0.8em; +} + +TABLE.table2 TR { + text-align: left; +} + +TABLE.table2 TR.throw { + text-align: center; +} + +.hour { + white-space: pre; +} + +.number { + text-align: right; +} + +TABLE#dailyStats { + width: 60%; +} + +TABLE#detailedStats { + width: 99%; +} + +/* categoryOrdering */ +SELECT.categoryList { + width: 100%; +} + +FORM#categoryOrdering { + padding-left: 1em; /* same as FIELDSET margin (there is no fieldset in this form) */ + padding-right: 1em; /* same as FIELDSET margin (there is no fieldset in this form) */ +} +FORM#categoryOrdering p { + text-align: left; + margin-top: 1em; + margin-bottom: 1em; +} +UL.categoryUl { + list-style: none; + padding: 0; + margin: 0; +} + +LI.categoryLi { + border: 1px solid gray; + padding: 0px 5px; + margin-bottom: 5px; +} + +FORM#categoryOrdering UL.categoryActions { + float: right; + margin-top: 5px; +} +/* */ + +FORM#catModify TABLE { width: auto; } + +FIELDSET.elementEdit A { + display: block; + float: right; +} + +TABLE.doubleSelect { + text-align: center; + margin: 0 auto; + width: 100%; +} + +TABLE.doubleSelect TD { + padding: 0 5px; + width: 50%; +} + +TABLE.doubleSelect SELECT.categoryList { + width: 100%; +} + +FORM#categoryPermissions LI { + display:inline; + white-space: nowrap; +} + +FIELDSET#mainConfCheck SPAN.property, +FIELDSET#historyConf SPAN.property, +FIELDSET#commentsConf SPAN.property, +FIELDSET#uploadConf SPAN.property { + float: right; + text-align: left; +} +FIELDSET#mainConfCheck INPUT, +FIELDSET#historyConf INPUT, +FIELDSET#commentsConf INPUT, +FIELDSET#uploadConf INPUT { + float: none; +} + +FIELDSET#mainConf SPAN.property { + width: 25%; +} +FIELDSET#mainConf TEXTAREA.description { + width: 70%; +} + +FIELDSET#mainConfCheck SPAN.property, +FIELDSET#historyConf SPAN.property { + width: 90%; +} +FIELDSET#mainConfCheck INPUT, +FIELDSET#historyConf INPUT, +FIELDSET#commentsConf INPUT, +FIELDSET#uploadConf SELECT, +FIELDSET#uploadConf INPUT { + margin-left: 5%; +} + +FIELDSET#commentsConf SPAN.property { + width: 85%; +} + +FIELDSET#uploadConf SPAN.property { + width: 75%; +} + +/* PWG Links Menu is fixed Graphic charts */ +.pwgmenu { + display: table; + list-style-type: none; + list-style-image: none; /* for firefox */ + white-space: nowrap; + position: relative; + text-decoration : none; + font-family: verdana, arial, helvetica, sans-serif; + font-size: 70%; + line-height: 1.1em; + width: 66em; + margin: 1px 8px 1px auto; + padding: 3px; + background: transparent; +} +.pwgmenu li { + float: left; + width: 10em !important; + text-align: center; + margin: 0 6px; + padding: 0; + +} +.pwgmenu a { + width: 9em !important; + display: block; + padding: 4px 8px; + background: #69c; /* PWG Graphic charts */ + color: white; + text-align: center; + text-decoration: none; + font-weight: bold; + border: 1px solid #fff; /* Why bordered? in case of #69c background */ +} +.pwgmenu a:hover { + background: #f92; + color: white; +} /* PWG Graphic charts */ + + +.statBar { + height: 10px; + background-color: #66f; + border: 1px solid black; +} + +/* Tabsheet */ +UL.tabsheet { + list-style: none; + white-space: nowrap; + text-decoration: none; + border-bottom: 1px solid #fff; + margin-left: 5px; margin-right: 5px; + padding: 3px 5px; +} + +UL.tabsheet LI { + display: inline; + margin: 0px 6px; + font-size: 120%; + font-weight: normal; + border: 1px solid #fff; + border-bottom: none; + padding: 3px 2em; +} + +UL.tabsheet LI.selected_tab { + font-weight: bold; + position: relative; + top: 1px; + padding-top: 4px; +} + +.over{ +position: relative; +z-index: 0; +} + +.over:hover{ +background-color: transparent; +z-index: 50; +} + +.over span{ /*CSS for enlarged image*/ +position: absolute; +background-color: #eee; +padding: 5px; +left: -1000px; +border: 1px solid #69c; +visibility: hidden; +color: black; +text-decoration: none; +} + +.over span img{ /*CSS for enlarged image*/ +border-width: 0; +padding: 2px; +} + +.over:hover span{ /*CSS for enlarged image on hover*/ +visibility: visible; +top: 0; +left: 60px; /*position where enlarged image should offset horizontally */ +} diff --git a/BSF/template/yoga/admin/double_select.tpl b/BSF/template/yoga/admin/double_select.tpl new file mode 100644 index 000000000..aeed8500a --- /dev/null +++ b/BSF/template/yoga/admin/double_select.tpl @@ -0,0 +1,20 @@ +{* $Id$ *} +<table class="doubleSelect"> + <tr> + <td> + <h3>{$L_CAT_OPTIONS_TRUE}</h3> + <select class="categoryList" name="cat_true[]" multiple="multiple" size="30"> + {html_options options=$category_option_true selected=$category_option_true_selected} + </select> + <p><input class="submit" type="submit" value="»" name="falsify" style="font-size:15px;" {$TAG_INPUT_ENABLED}/></p> + </td> + + <td> + <h3>{$L_CAT_OPTIONS_FALSE}</h3> + <select class="categoryList" name="cat_false[]" multiple="multiple" size="30"> + {html_options options=$category_option_false selected=$category_option_false_selected} + </select> + <p><input class="submit" type="submit" value="«" name="trueify" style="font-size:15px;" {$TAG_INPUT_ENABLED}/></p> + </td> + </tr> +</table> diff --git a/BSF/template/yoga/admin/element_set_global.tpl b/BSF/template/yoga/admin/element_set_global.tpl new file mode 100644 index 000000000..fc5a92e70 --- /dev/null +++ b/BSF/template/yoga/admin/element_set_global.tpl @@ -0,0 +1,190 @@ +{* $Id$ *} + +<h2>{'Batch management'|@translate}</h2> + +<h3>{$CATEGORIES_NAV}</h3> + +{if !empty($thumbnails)} + <p style="text-align:center;"> + {'global mode'|@translate} + | <a href="{$U_UNIT_MODE}">{'unit mode'|@translate}</a> + </p> + + <fieldset> + + <legend>{'Display options'|@translate}</legend> + + <p>{'elements per page'|@translate}: + <a href="{$U_DISPLAY}&display=20">20</a> + | <a href="{$U_DISPLAY}&display=50">50</a> + | <a href="{$U_DISPLAY}&display=100">100</a> + | <a href="{$U_DISPLAY}&display=all">{'all'|@translate}</a> + </p> + + </fieldset> + + <form action="{$F_ACTION}" method="post"> + + <fieldset> + + <legend>{'Elements'|@translate}</legend> + + {if !empty($NAV_BAR)}<div class="navigationBar">{$NAV_BAR}</div>{/if} + + {if !empty($thumbnails)} + <ul class="thumbnails"> + {foreach from=$thumbnails item=thumbnail} + <li><span class="wrap1"> + <label> + <span class="wrap2"> + {if $thumbnail.LEVEL > 0} + <em class="levelIndicatorB">{$thumbnail.LEVEL}</em> + <em class="levelIndicatorF" title="{$pwg->l10n($pwg->sprintf('Level %d',$thumbnail.LEVEL))}">{$thumbnail.LEVEL}</em> + {/if} + <span> + <img src="{$thumbnail.TN_SRC}" + alt="{$thumbnail.FILE}" + title="{$thumbnail.TITLE}" + class="thumbnail" /> + </span></span> + <input type="checkbox" name="selection[]" value="{$thumbnail.ID}" /> + </label> + </span> + </li> + {/foreach} + </ul> + {/if} + + </fieldset> + + <fieldset> + + <legend>{'Form'|@translate}</legend> + + <table> + + <tr> + <td>{'associate to category'|@translate}</td> + <td> + <select style="width:400px" name="associate" size="1"> + <option value="0">------------</option> + {html_options options=$associate_options } + </select> + </td> + </tr> + + <tr> + <td>{'dissociate from category'|@translate}</td> + <td> + <select style="width:400px" name="dissociate" size="1"> + <option value="0">------------</option> + {if !empty($dissociate_options)}{html_options options=$dissociate_options }{/if} + </select> + </td> + </tr> + + <tr> + <td>{'add tags'|@translate}</td> + <td>{if !empty($ADD_TAG_SELECTION)}{$ADD_TAG_SELECTION}{else}<p>{'No tag defined. Use Administration>Pictures>Tags'|@translate}</p>{/if}</td> + </tr> + + {if !empty($DEL_TAG_SELECTION)} + <tr> + <td>{'remove tags'|@translate}</td> + <td>{$DEL_TAG_SELECTION}</td> + </tr> + {/if} + + <tr> + <td>{'Author'|@translate}</td> + <td> + <label><input type="radio" name="author_action" value="leave" checked="checked" /> {'leave'|@translate}</label> + <label><input type="radio" name="author_action" value="unset" /> {'unset'|@translate}</label> + <label><input type="radio" name="author_action" value="set" id="author_action_set" /> {'set to'|@translate}</label> + <input onchange="document.getElementById('author_action_set').checked = true;" type="text" name="author" value="" /> + </td> + </tr> + + <tr> + <td>{'title'|@translate}</td> + <td> + <label><input type="radio" name="name_action" value="leave" checked="checked" /> {'leave'|@translate}</label> + <label><input type="radio" name="name_action" value="unset" /> {'unset'|@translate}</label> + <label><input type="radio" name="name_action" value="set" id="name_action_set" /> {'set to'|@translate}</label> + <input onchange="document.getElementById('name_action_set').checked = true;" type="text" name="name" value="" /> + </td> + </tr> + + <tr> + <td>{'Creation date'|@translate}</td> + <td> + <label><input type="radio" name="date_creation_action" value="leave" checked="checked" /> {'leave'|@translate}</label> + <label><input type="radio" name="date_creation_action" value="unset" /> {'unset'|@translate}</label> + <label><input type="radio" name="date_creation_action" value="set" id="date_creation_action_set" /> {'set to'|@translate}</label> + <select onchange="document.getElementById('date_creation_action_set').checked = true;" name="date_creation_day"> + <option value="0">--</option> + {section name=day start=1 loop=32} + <option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$DATE_CREATION_DAY}selected="selected"{/if}>{$smarty.section.day.index}</option> + {/section} + </select> + <select onchange="document.getElementById('date_creation_action_set').checked = true;" name="date_creation_month"> + {html_options options=$month_list selected=$DATE_CREATION_MONTH} + </select> + <input onchange="document.getElementById('date_creation_action_set').checked = true;" + name="date_creation_year" + type="text" + size="4" + maxlength="4" + value="{$DATE_CREATION_YEAR}" /> + </td> + </tr> + + <tr> + <td>{'Minimum privacy level'|@translate}</td> + <td> + <label><input type="radio" name="level_action" value="leave" checked="checked" />{'leave'|@translate}</label> + <label><input type="radio" name="level_action" value="set" id="level_action_set" />{'set to'|@translate}</label> + <select onchange="document.getElementById('level_action_set').checked = true;" name="level" size="1"> + {html_options options=$level_options} + </select> + </td> + </tr> + + </table> + + <p> + {'target'|@translate} + <label><input type="radio" name="target" value="all" /> {'all'|@translate}</label> + <label><input type="radio" name="target" value="selection" checked="checked" /> {'selection'|@translate}</label> + </p> + + + <p><input class="submit" type="submit" value="{'Submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED}/></p> + + </fieldset> + + <fieldset> + + <legend>{'Caddie management'|@translate}</legend> + + <ul style="list-style-type:none;"> + {if ($IN_CADDIE)} + <li><label><input type="radio" name="caddie_action" value="empty_all" /> {'Empty caddie'|@translate}</label></li> + <li><label><input type="radio" name="caddie_action" value="empty_selected" /> {'Take selected elements out of caddie'|@translate}</label></li> + {else} + <li><label><input type="radio" name="caddie_action" value="add_selected" /> {'Add selected elements to caddie'|@translate}</label></li> + {/if} + + <li><label><input type="radio" name="caddie_action" value="export" /> {'Export data'|@translate}</label></li> + + </ul> + + <p><input class="submit" type="submit" value="{'Submit'|@translate}" name="submit_caddie" /></p> + + </fieldset> + + </form> + +{else} + <div class="infos"><p>{'Caddie is currently empty'|@translate}</p></div> +{/if} diff --git a/BSF/template/yoga/admin/element_set_unit.tpl b/BSF/template/yoga/admin/element_set_unit.tpl new file mode 100644 index 000000000..34366fada --- /dev/null +++ b/BSF/template/yoga/admin/element_set_unit.tpl @@ -0,0 +1,93 @@ +{* $Id$ *} + +<h2>{'Batch management'|@translate}</h2> + +<h3>{$CATEGORIES_NAV}</h3> + +<p style="text-align:center;"> + <a href="{$U_GLOBAL_MODE}">{'global mode'|@translate}</a> + | {'unit mode'|@translate} +</p> + +<form action="{$F_ACTION}" method="POST"> +<fieldset> + <legend>{'Display options'|@translate}</legend> + <p>{'elements per page'|@translate} : + <a href="{$U_ELEMENTS_PAGE}&display=5">5</a> + | <a href="{$U_ELEMENTS_PAGE}&display=10">10</a> + | <a href="{$U_ELEMENTS_PAGE}&display=50">50</a> + | <a href="{$U_ELEMENTS_PAGE}&display=all">{'all'|@translate}</a> + </p> + +</fieldset> + +{if !empty($NAV_BAR) } +<div class="navigationBar">{$NAV_BAR}</div> +{/if} + +{if !empty($elements) } +<input type="hidden" name="element_ids" value="{$ELEMENT_IDS}" /> +{foreach from=$elements item=element} +<fieldset class="elementEdit"> + <legend>{$element.LEGEND}</legend> + + <a href="{$element.U_EDIT}"><img src="{$element.TN_SRC}" alt="" title="{'Edit all picture informations'|@translate}" /></a> + + <table> + + <tr> + <td><strong>{'Name'|@translate}</strong></td> + <td><input type="text" name="name-{$element.ID}" value="{$element.NAME}" /></td> + </tr> + + <tr> + <td><strong>{'Author'|@translate}</strong></td> + <td><input type="text" name="author-{$element.ID}" value="{$element.AUTHOR}" /></td> + </tr> + + <tr> + <td><strong>{'Creation date'|@translate}</strong></td> + <td> + <label><input type="radio" name="date_creation_action-{$element.ID}" value="unset" /> {'unset'|@translate}</label> + <label><input type="radio" name="date_creation_action-{$element.ID}" value="set" id="date_creation_action_set-{$element.ID}" /> {'set to'|@translate}</label> + + <select onmousedown="document.getElementById('date_creation_action_set-{$element.ID}').checked = true;" name="date_creation_day-{$element.ID}"> + <option value="0">--</option> + {section name=day start=1 loop=32} + <option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$element.DATE_CREATION_DAY}selected="selected"{/if}>{$smarty.section.day.index}</option> + {/section} + </select> + <select onmousedown="document.getElementById('date_creation_action_set-{$element.ID}').checked = true;" name="date_creation_month-{$element.ID}"> + {html_options options=$month_list selected=$element.DATE_CREATION_MONTH} + </select> + <input onmousedown="document.getElementById('date_creation_action_set-{$element.ID}').checked = true;" + name="date_creation_year-{$element.ID}" + type="text" + size="4" + maxlength="4" + value="{$element.DATE_CREATION_YEAR}" /> + </td> + </tr> + + <tr> + <td><strong>{'Tags'|@translate}</strong></td> + <td>{$element.TAG_SELECTION}</td> + </tr> + + <tr> + <td><strong>{'Description'|@translate}</strong></td> + <td><textarea name="description-{$element.ID}" class="description">{$element.DESCRIPTION}</textarea></td> + </tr> + + </table> + +</fieldset> +{/foreach} + +<p> + <input class="submit" type="submit" value="{'Submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED}/> + <input class="submit" type="reset" value="{'Reset'|@translate}" /> +</p> +{/if} + +</form> diff --git a/BSF/template/yoga/admin/group_list.tpl b/BSF/template/yoga/admin/group_list.tpl new file mode 100644 index 000000000..274445f4b --- /dev/null +++ b/BSF/template/yoga/admin/group_list.tpl @@ -0,0 +1,46 @@ +{* $Id$ *} +<div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/help.png" class="button" alt="(?)"></a></li> + </ul> + <h2>{'title_groups'|@translate}</h2> +</div> + +<form method="post" name="add_user" action="{$F_ADD_ACTION}" class="properties"> + <fieldset> + <legend>{'Add group'|@translate}</legend> + + <span class="property"> + <label for="groupname">{'Group name'|@translate}</label> + </span> + <input type="text" id="groupname" name="groupname" maxlength="50" size="20" /> + + <p> + <input class="submit" type="submit" name="submit_add" value="{'Add'|@translate}" {$TAG_INPUT_ENABLED}/> + </p> + </fieldset> +</form> + +<table class="table2"> + <tr class="throw"> + <th>{'Group name'|@translate}</th> + <th>{'Members'|@translate}</th> + <th>{'Actions'|@translate}</th> + </tr> + {if not empty($groups)} + {foreach from=$groups item=group name=group_loop} + <tr class="{if $smarty.foreach.group_loop.index is odd}row1{else}row2{/if}"> + <td>{$group.NAME}<i><small>{$group.IS_DEFAULT}</small></i></td> + <td><a href="{$group.U_MEMBERS}">{$group.MEMBERS}</a></td> + <td style="text-align:center;"> + <a href="{$group.U_PERM}"> + <img src="{$ROOT_URL}{$themeconf.icon_dir}/permissions.png" class="button" style="border:none" id="btn_permissions" alt="{'permissions'|@translate}" title="{'permissions'|@translate}" /></a> + <a href="{$group.U_DELETE}" onclick="return confirm( document.getElementById('btn_delete').title + '\n\n' + '{'Are you sure?'|@translate|@escape:'javascript'}');"> + <img src="{$ROOT_URL}{$themeconf.icon_dir}/delete.png" class="button" style="border:none" id="btn_delete" alt="{'delete'|@translate}" title="{'delete'|@translate}" {$TAG_INPUT_ENABLED}/></a> + <a href="{$group.U_ISDEFAULT}" onclick="return confirm( document.getElementById('btn_toggle_is_default_group').title + '\n\n' + '{'Are you sure?'|@translate|@escape:'javascript'}');"> + <img src="{$ROOT_URL}{$themeconf.icon_dir}/toggle_is_default_group.png" class="button" style="border:none" id="btn_toggle_is_default_group" alt="{'toggle_is_default_group'|@translate}" title="{'toggle_is_default_group'|@translate}" {$TAG_INPUT_ENABLED}/></a> + </td> + </tr> + {/foreach} + {/if} +</table> diff --git a/BSF/template/yoga/admin/group_perm.tpl b/BSF/template/yoga/admin/group_perm.tpl new file mode 100644 index 000000000..1dded1291 --- /dev/null +++ b/BSF/template/yoga/admin/group_perm.tpl @@ -0,0 +1,8 @@ +{* $Id *} +<h2>{$TITLE}</h2> + +<form method="post" action="{$F_ACTION}"> + {$DOUBLE_SELECT} +</form> + +<p>{'Only private categories are listed'|@translate}</p> diff --git a/BSF/template/yoga/admin/history.tpl b/BSF/template/yoga/admin/history.tpl new file mode 100644 index 000000000..a8b7701dc --- /dev/null +++ b/BSF/template/yoga/admin/history.tpl @@ -0,0 +1,151 @@ +{* $Id$ *} +<div class="titrePage"> + <ul class="categoryActions"> + <li> + <a + href="{$U_HELP}" + onclick="popuphelp(this.href); return false;" + title="{'Help'|@translate}" + > + <img src="{$themeconf.icon_dir}/help.png" class="button" alt="(?)"> + </a> + </li> + </ul> + <h2>{'History'|@translate} {$TABSHEET_TITLE}</h2> + {$TABSHEET} +</div> + +<form class="filter" method="post" name="filter" action="{$F_ACTION}"> +<fieldset> + <legend>{'Filter'|@translate}</legend> + <ul> + <li><label>{'search_date_from'|@translate}</label></li> + <li> + <select name="start_day"> + <option value="0">--</option> + {section name=day start=1 loop=32} + <option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$START_DAY_SELECTED}selected="selected"{/if}>{$smarty.section.day.index}</option> + {/section} + </select> + <select name="start_month"> + {html_options options=$month_list selected=$START_MONTH_SELECTED} + </select> + <input name="start_year" value="{$START_YEAR}" type="text" size="4" maxlength="4" > + </li> + </ul> + <ul> + <li><label>{'search_date_to'|@translate}</label></li> + <li> + <select name="end_day"> + <option value="0">--</option> + {section name=day start=1 loop=32} + <option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$END_DAY_SELECTED}selected="selected"{/if}>{$smarty.section.day.index}</option> + {/section} + </select> + <select name="end_month"> + {html_options options=$month_list selected=$END_MONTH_SELECTED} + </select> + <input name="end_year" value="{$END_YEAR}" type="text" size="4" maxlength="4" > + </li> + </ul> + + <label> + {'Element type'|@translate} + <select name="types[]" multiple="multiple" size="4"> + {html_options values=$type_option_values output=$type_option_values|translate selected=$type_option_selected} + </select> + </label> + + <label> + {'User'|@translate} + <select name="user"> + <option value="-1">------------</option> + {html_options options=$user_options selected=$user_options_selected} + </select> + </label> + + <label> + {'Image id'|@translate} + <input name="image_id" value="{$IMAGE_ID}" type="text" size="5"> + </label> + + <label> + {'File name'|@translate} + <input name="filename" value="{$FILENAME}" type="text"> + </label> + + <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}" /> +</fieldset> +<fieldset> + <legend>{'Display'|@translate}</legend> + <ul> + <li> + {'Thumbnails'|@translate} + <select name="display_thumbnail"> + {html_options values=$display_thumbnail_values output=$display_thumbnail_values|translate selected=$display_thumbnail_selected} + </select> + </li> + </ul> +</fieldset> +</form> + +{if isset($search_summary)} +<fieldset> + <legend>{'Summary'|@translate}</legend> + + <ul> + <li>{$search_summary.NB_LINES}, {$search_summary.FILESIZE}</li> + <li> + {$search_summary.USERS} + <ul> + <li>{$search_summary.MEMBERS}</li> + <li>{$search_summary.GUESTS}</li> + </ul> + </li> + </ul> +</fieldset> +{/if} + + +{if !empty($NAV_BAR)} +<div class="navigationBar"> + {$NAV_BAR} +</div> +{/if} + + +<table class="table2" id="detailedStats"> +<tr class="throw"> + <th>{'Date'|@translate}</th> + <th>{'time'|@translate}</th> + <th>{'user'|@translate}</th> + <th>{'IP'|@translate}</th> + <th>{'image'|@translate}</th> + <th>{'Element type'|@translate}</th> + <th>{'section'|@translate}</th> + <th>{'category'|@translate}</th> + <th>{'tags'|@translate}</th> +</tr> +{if !empty($search_results) } +{foreach from=$search_results item=detail name=res_loop} +<tr class="{if $smarty.foreach.res_loop.index is odd}row1{else}row2{/if}"> + <td class="hour">{$detail.DATE}</td> + <td class="hour">{$detail.TIME}</td> + <td>{$detail.USER}</td> + <td>{$detail.IP}</td> + <td>{$detail.IMAGE}</td> + <td>{$detail.TYPE}</td> + <td>{$detail.SECTION}</td> + <td>{$detail.CATEGORY}</td> + <td>{$detail.TAGS}</td> +</tr> +{/foreach} +{/if} +</table> + + +{if !empty($NAV_BAR)} +<div class="navigationBar"> + {$NAV_BAR} +</div> +{/if} diff --git a/BSF/template/yoga/admin/index.php b/BSF/template/yoga/admin/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/admin/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/admin/intro.tpl b/BSF/template/yoga/admin/intro.tpl new file mode 100644 index 000000000..069940ecf --- /dev/null +++ b/BSF/template/yoga/admin/intro.tpl @@ -0,0 +1,46 @@ +{* $Id$ *} +<h2>{'title_default'|@translate}</h2> +<dl> + <dt>{'Piwigo version'|@translate}</dt> + <dd> + <ul> + <li>Piwigo {$PWG_VERSION}</li> + <li><a href="{$U_CHECK_UPGRADE}">{'Check for upgrade'|@translate}</a></li> + </ul> + </dd> + + <dt>{'Environment'|@translate}</dt> + <dd> + <ul> + <li>{'Operating system'|@translate}: {$OS}</li> + <li>PHP: {$PHP_VERSION} (<a href="{$U_PHPINFO}">{'Show info'|@translate}</a>) [{$PHP_DATATIME}]</li> + <li>MySQL: {$MYSQL_VERSION} [{$DB_DATATIME}]</li> + </ul> + </dd> + + <dt>{'Database'|@translate}</dt> + <dd> + <ul> + <li> + {$DB_ELEMENTS} + {if isset($waiting)} + (<a href="{$waiting.URL}">{$waiting.INFO}</a>) + {/if} + + {if isset($first_added)} + ({$first_added.DB_DATE}) + {/if} + </li> + <li>{$DB_CATEGORIES} ({$DB_IMAGE_CATEGORY})</li> + <li>{$DB_TAGS} ({$DB_IMAGE_TAG})</li> + <li>{$DB_USERS}</li> + <li>{$DB_GROUPS}</li> + <li> + {$DB_COMMENTS} + {if isset($unvalidated)} + (<a href="{$unvalidated.URL}">{$unvalidated.INFO}</a>) + {/if} + </li> + </ul> + </dd> +</dl> diff --git a/BSF/template/yoga/admin/maintenance.tpl b/BSF/template/yoga/admin/maintenance.tpl new file mode 100644 index 000000000..59cf4ff82 --- /dev/null +++ b/BSF/template/yoga/admin/maintenance.tpl @@ -0,0 +1,25 @@ +{* $Id$ *} +<div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$themeconf.icon_dir}/help.png" class="button" alt="(?)"></a></li> + </ul> + <h2>{'Maintenance'|@translate}</h2> +</div> + +<ul> + <li><a href="{$U_MAINT_CATEGORIES}" {$TAG_INPUT_ENABLED}>{'update categories informations'|@translate}</a></li> + <li><a href="{$U_MAINT_IMAGES}" {$TAG_INPUT_ENABLED}>{'update images informations'|@translate}</a></li> + <li><a href="{$U_MAINT_DATABASE}" {$TAG_INPUT_ENABLED}>{'repair and optimize database'|@translate}</a></li> +</ul> + +<ul> + <li><a href="{$U_MAINT_HISTORY_DETAIL}" onclick="return confirm('{'Are you sure?'|@translate}');" {$TAG_INPUT_ENABLED}>{'purge history detail'|@translate}</a></li> + <li><a href="{$U_MAINT_HISTORY_SUMMARY}" onclick="return confirm('{'Are you sure?'|@translate}');" {$TAG_INPUT_ENABLED}>{'purge history summary'|@translate}</a></li> + <li><a href="{$U_MAINT_SESSIONS}" {$TAG_INPUT_ENABLED}>{'purge sessions'|@translate}</a></li> + <li><a href="{$U_MAINT_FEEDS}" {$TAG_INPUT_ENABLED}>{'purge never used notification feeds'|@translate}</a></li> + <li><a href="{$U_MAINT_COMPILED_TEMPLATES}" {$TAG_INPUT_ENABLED}>{'Purge compiled templates'|@translate}</a></li> +</ul> + +<ul> + <li><a href="{$U_MAINT_C13Y}" {$TAG_INPUT_ENABLED}>{'c13y_maintenance'|@translate}</a></li> +</ul> diff --git a/BSF/template/yoga/admin/notification_by_mail.tpl b/BSF/template/yoga/admin/notification_by_mail.tpl new file mode 100644 index 000000000..eb5e2a0f9 --- /dev/null +++ b/BSF/template/yoga/admin/notification_by_mail.tpl @@ -0,0 +1,124 @@ +{* $Id$ *} + +<div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$themeconf.icon_dir}/help.png" class="button" alt="(?)"></a></li> + </ul> + <h2>{'nbm_send_mail_to_users'|@translate} {$TABSHEET_TITLE}</h2> + {$TABSHEET} +</div> + +<form method="post" name="notification_by_mail" id="notification_by_mail" action="{$F_ACTION}"> + {if isset($REPOST_SUBMIT_NAME)} + <fieldset> + <div class="infos"> + <input class="submit" type="submit" value="{'nbm_repost_submit'|@translate}" name="{$REPOST_SUBMIT_NAME}" {$TAG_INPUT_ENABLED}/> + </div> + </fieldset> + {/if} + + {if isset($param)} + <fieldset> + <legend>{'nbm_title_param'|@translate}</legend> + <table> + <tr> + <td><label>{'nbm_send_html_mail'|@translate}</label></td> + <td> + <label><input type="radio" name="nbm_send_html_mail" value="true" {if $param.SEND_HTML_MAIL}checked="checked"{/if}/>{'Yes'|@translate}</label> + <label><input type="radio" name="nbm_send_html_mail" value="false" {if not $param.SEND_HTML_MAIL}checked="checked"{/if}/>{'No'|@translate}</label> + </td> + </tr> + <tr> + <td> + <label for="send_mail_as">{'nbm_send_mail_as'|@translate}</label> + <br/><i><small>{'nbm_info_send_mail_as'|@translate}</small></i> + </td> + <td><input type="text" maxlength="35" size="35" name="nbm_send_mail_as" id="send_mail_as" value="{$param.SEND_MAIL_AS}"/></td> + </tr> + <tr> + <td><label>{'nbm_send_detailed_content'|@translate}</label></td> + <td> + <label><input type="radio" name="nbm_send_detailed_content" value="true" {if $param.SEND_DETAILED_CONTENT}checked="checked"{/if}/>{'Yes'|@translate}</label> + <label><input type="radio" name="nbm_send_detailed_content" value="false" {if not $param.SEND_DETAILED_CONTENT}checked="checked"{/if}/>{'No'|@translate}</label> + </td> + </tr> + <tr> + <td><label for="complementary_mail_content">{'nbm_complementary_mail_content'|@translate}</label></td> + <td><textarea cols="50" rows="5" name="nbm_complementary_mail_content" id="complementary_mail_content">{$param.COMPLEMENTARY_MAIL_CONTENT}</textarea></td> + </tr> + <tr> + <td> + <label>{'nbm_send_recent_post_dates'|@translate}</label> + <br/><i><small>{'nbm_info_send_recent_post_dates'|@translate}</small></i> + </td> + <td> + <label><input type="radio" name="nbm_send_recent_post_dates" value="true" {if $param.SEND_RECENT_POST_DATES}checked="checked"{/if}/>{'Yes'|@translate}</label> + <label><input type="radio" name="nbm_send_recent_post_dates" value="false" {if not $param.SEND_RECENT_POST_DATES}checked="checked"{/if}/>{'No'|@translate}</label> + </td> + </tr> + </table> + </fieldset> + + <p> + <input class="submit" type="submit" value="{'Submit'|@translate}" name="param_submit" {$TAG_INPUT_ENABLED}/> + <input class="submit" type="reset" value="{'Reset'|@translate}" name="param_reset"/> + </p> + {/if}{* isset $param*} + + {if isset($subscribe)} + <fieldset> + <legend>{'nbm_title_subscribe'|@translate}</legend> + <p><i>{'nbm_warning_subscribe_unsubscribe'|@translate}</i></p> + {$DOUBLE_SELECT} + </fieldset> + {/if}{* isset $subscribe*} + + {if isset($send)} + {if empty($send.users)} + <p>{'nbm_no_user_available_to_send_L1'|@translate}</p> + <p> + {'nbm_no_user_available_to_send_L2'|@translate}<br> + {'nbm_no_user_available_to_send_L3'|@translate} + </p> + {else} + <fieldset> + <legend>{'nbm_title_send'|@translate}</legend> + <table class="table2"> + <tr class="throw"> + <th>{'nbm_col_user'|@translate}</th> + <th>{'nbm_col_mail'|@translate}</th> + <th>{'nbm_col_last_send'|@translate}</th> + <th>{'nbm_col_check_user_send_mail'|@translate}</th> + </tr> + {foreach from=$send.users item=u name=user_loop} + <tr class="{if $smarty.foreach.user_loop.index is odd}row1{else}row2{/if}"> + <td><label for="send_selection-{$u.ID}">{$u.USERNAME}</label></td> + <td><label for="send_selection-{$u.ID}">{$u.EMAIL}</label></td> + <td><label for="send_selection-{$u.ID}">{$u.LAST_SEND}</label></td> + <td><input type="checkbox" name="send_selection[]" value="{$u.ID}" {$u.CHECKED} id="send_selection-{$u.ID}"/></td> + </tr> + {/foreach} + </table> + <p> + <a href="#" onclick="SelectAll(document.getElementById('notification_by_mail')); return false;">{'Check all'|@translate}</a> + / <a href="#" onclick="DeselectAll(document.getElementById('notification_by_mail')); return false;">{'Uncheck all'|@translate}</a> + </p> + </fieldset> + + <fieldset> + <legend>{'nbm_send_options'|@translate}</legend> + <table> + <tr> + <td><label for="send_customize_mail_content">{'nbm_send_complementary_mail_content'|@translate}</label></td> + <td><textarea cols="50" rows="5" name="send_customize_mail_content" id="send_customize_mail_content">{$send.CUSTOMIZE_MAIL_CONTENT}</textarea></td> + </tr> + </table> + </fieldset> + + <p> + <input class="submit" type="submit" value="{'nbm_send_submit'|@translate}" name="send_submit" {$TAG_INPUT_ENABLED}/> + </p> + {/if} + {/if}{* isset $send*} + +</form> diff --git a/BSF/template/yoga/admin/permalinks.tpl b/BSF/template/yoga/admin/permalinks.tpl new file mode 100644 index 000000000..f6a1d72ac --- /dev/null +++ b/BSF/template/yoga/admin/permalinks.tpl @@ -0,0 +1,70 @@ +{* $Id$ *} +<div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/help.png" class="button" alt="(?)"></a></li> + </ul> + <h2>{'Permalinks'|@translate}</h2> +</div> + +<form method="post" action="{$F_ACTION}"> +<fieldset><legend>{'Add/delete a permalink'|@translate}</legend> + <label>{'Category'|@translate}: + <select name="cat_id"> + <option value="0">------</option> + {html_options options=$categories selected=$categories_selected} + </select> + </label> + + <label>{'Permalink'|@translate}: + <input name="permalink" /> + </label> + + <label>{'Save to permalink history'|@translate}: + <input type="checkbox" name="save" checked="checked" /> + </label> + + <p> + <input type="submit" class="submit" name="set_permalink" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}/> + </p> + </fieldset> +</form> + +<h3>{'Permalinks'|@translate}</h3> +<table class="table2"> + <tr class="throw"> + <td>Id {$SORT_ID}</td> + <td>{'Category'|@translate} {$SORT_NAME}</td> + <td>{'Permalink'|@translate} {$SORT_PERMALINK}</td> + </tr> +{foreach from=$permalinks item=permalink name="permalink_loop"} + <tr class="{if $smarty.foreach.permalink_loop.index is odd}row1{else}row2{/if}"> + <td>{$permalink.id}</td> + <td>{$permalink.name}</td> + <td>{$permalink.permalink}</td> + </tr> +{/foreach} +</table> + +<h3>{'Permalink history'|@translate} <a name="old_permalinks"></a></h3> +<table class="table2"> + <tr class="throw"> + <td>Id {$SORT_OLD_CAT_ID}</td> + <td>{'Category'|@translate}</td> + <td>{'Permalink'|@translate} {$SORT_OLD_PERMALINK}</td> + <td>Deleted on {$SORT_OLD_DATE_DELETED}</td> + <td>Last hit {$SORT_OLD_LAST_HIT}</td> + <td>Hit {$SORT_OLD_HIT}</td> + <td></td> + </tr> +{foreach from=$deleted_permalinks item=permalink} + <tr> + <td>{$permalink.cat_id}</td> + <td>{$permalink.name}</td> + <td>{$permalink.permalink}</td> + <td>{$permalink.date_deleted}</td> + <td>{$permalink.last_hit}</td> + <td>{$permalink.hit}</td> + <td><a href="{$permalink.U_DELETE}" {$TAG_INPUT_ENABLED}><img src="{$ROOT_URL}{$themeconf.icon_dir}/delete.png" alt="[{'delete'|@translate}]" class="button"></a></td> + </tr> +{/foreach} +</table> diff --git a/BSF/template/yoga/admin/picture_modify.tpl b/BSF/template/yoga/admin/picture_modify.tpl new file mode 100644 index 000000000..f6243acb9 --- /dev/null +++ b/BSF/template/yoga/admin/picture_modify.tpl @@ -0,0 +1,190 @@ +{* $Id$ *} +<h2>{'title_picmod'|@translate}</h2> + +<img src="{$TN_SRC}" alt="{'thumbnail'|@translate}" class="thumbnail" /> + +<ul class="categoryActions"> + {if isset($U_JUMPTO) } + <li><a href="{$U_JUMPTO}" title="{'jump to image'|@translate}"><img src="{$themeconf.icon_dir}/category_jump-to.png" class="button" alt="{'jump to image'|@translate}" /></a></li> + {/if} + <li><a href="{$U_SYNC}" title="{'synchronize metadata'|@translate}" {$TAG_INPUT_ENABLED}><img src="{$themeconf.icon_dir}/sync_metadata.png" class="button" alt="{'synchronize'|@translate}" /></a></li> +</ul> + +<form action="{$F_ACTION}" method="post" id="properties"> + + <fieldset> + <legend>{'Informations'|@translate}</legend> + + <table> + + <tr> + <td><strong>{'Path'|@translate}</strong></td> + <td>{$PATH}</td> + </tr> + + <tr> + <td><strong>{'Post date'|@translate}</strong></td> + <td>{$REGISTRATION_DATE}</td> + </tr> + + <tr> + <td><strong>{'Dimensions'|@translate}</strong></td> + <td>{$DIMENSIONS}</td> + </tr> + + <tr> + <td><strong>{'Filesize'|@translate}</strong></td> + <td>{$FILESIZE}</td> + </tr> + +{if isset($HIGH_FILESIZE) } + <tr> + <td><strong>{'High filesize'|@translate}</strong></td> + <td>{$HIGH_FILESIZE}</td> + </tr> +{/if} + + <tr> + <td><strong>{'Storage category'|@translate}</strong></td> + <td>{$STORAGE_CATEGORY}</td> + </tr> + + {if isset($related_categories) } + <tr> + <td><strong>{'Linked categories'|@translate}</strong></td> + <td> + <ul> + {foreach from=$related_categories item=name} + <li>{$name}</li> + {/foreach} + </ul> + </td> + </tr> + {/if} + + </table> + + </fieldset> + + <fieldset> + <legend>{'Properties'|@translate}</legend> + + <table> + + <tr> + <td><strong>{'Name'|@translate}</strong></td> + <td><input type="text" name="name" value="{$NAME}" /></td> + </tr> + + <tr> + <td><strong>{'Author'|@translate}</strong></td> + <td><input type="text" name="author" value="{$AUTHOR}" /></td> + </tr> + + <tr> + <td><strong>{'Creation date'|@translate}</strong></td> + <td> + <label><input type="radio" name="date_creation_action" value="unset" /> {'unset'|@translate}</label> + <input type="radio" name="date_creation_action" value="set" id="date_creation_action_set" /> {'set to'|@translate} + <select onmousedown="document.getElementById('date_creation_action_set').checked = true;" name="date_creation_day"> + <option value="0">--</option> + {section name=day start=1 loop=32} + <option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$DATE_CREATION_DAY_VALUE}selected="selected"{/if}>{$smarty.section.day.index}</option> + {/section} + </select> + <select onmousedown="document.getElementById('date_creation_action_set').checked = true;" name="date_creation_month"> + {html_options options=$month_list selected=$DATE_CREATION_MONTH_VALUE} + </select> + <input onmousedown="document.getElementById('date_creation_action_set').checked = true;" + name="date_creation_year" + type="text" + size="4" + maxlength="4" + value="{$DATE_CREATION_YEAR_VALUE}" /> + </td> + </tr> + + <tr> + <td><strong>{'Tags'|@translate}</strong></td> + <td>{$TAG_SELECTION}</td> + </tr> + + + <tr> + <td><strong>{'Description'|@translate}</strong></td> + <td><textarea name="description" class="description">{$DESCRIPTION}</textarea></td> + </tr> + + <tr> + <td><strong>{'Minimum privacy level'|@translate}</strong></td> + <td> + <select name="level" size="1"> + {html_options options=$level_options selected=$level_options_selected} + </select> + </td> + </tr> + + </table> + + <p style="text-align:center;"> + <input class="submit" type="submit" value="{'Submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED}/> + <input class="submit" type="reset" value="{'Reset'|@translate}" name="reset" /> + </p> + + </fieldset> + +</form> + +<form id="associations" method="post" action="{$F_ACTION}#associations"> + <fieldset> + <legend>{'Association to categories'|@translate}</legend> + + <table class="doubleSelect"> + <tr> + <td> + <h3>{'Associated'|@translate}</h3> + <select class="categoryList" name="cat_associated[]" multiple="multiple" size="30"> + {html_options options=$associated_options} + </select> + <p><input class="submit" type="submit" value="»" name="dissociate" style="font-size:15px;" {$TAG_INPUT_ENABLED}/></p> + </td> + + <td> + <h3>{'Dissociated'|@translate}</h3> + <select class="categoryList" name="cat_dissociated[]" multiple="multiple" size="30"> + {html_options options=$dissociated_options} + </select> + <p><input class="submit" type="submit" value="«" name="associate" style="font-size:15px;" {$TAG_INPUT_ENABLED}/></p> + </td> + </tr> + </table> + + </fieldset> +</form> + +<form id="representation" method="post" action="{$F_ACTION}#representation"> + <fieldset> + <legend>{'Representation of categories'|@translate}</legend> + + <table class="doubleSelect"> + <tr> + <td> + <h3>{'Represents'|@translate}</h3> + <select class="categoryList" name="cat_elected[]" multiple="multiple" size="30"> + {html_options options=$elected_options} + </select> + <p><input class="submit" type="submit" value="»" name="dismiss" style="font-size:15px;" {$TAG_INPUT_ENABLED}/></p> + </td> + + <td> + <h3>{'Does not represent'|@translate}</h3> + <select class="categoryList" name="cat_dismissed[]" multiple="multiple" size="30"> + {html_options options=$dismissed_options} + </select> + <p><input class="submit" type="submit" value="«" name="elect" style="font-size:15px;" {$TAG_INPUT_ENABLED}/></p> + </td> + </tr> + </table> + + </fieldset> +</form> diff --git a/BSF/template/yoga/admin/plugins_list.tpl b/BSF/template/yoga/admin/plugins_list.tpl new file mode 100644 index 000000000..abba01861 --- /dev/null +++ b/BSF/template/yoga/admin/plugins_list.tpl @@ -0,0 +1,51 @@ +<div class="titrePage"> + <h2>{'Plugins'|@translate}</h2> +{$TABSHEET} +</div> + +{'Sort order'|@translate} : + <select onchange="document.location = this.options[this.selectedIndex].value;" style="width:100px"> + {html_options options=$order_options selected=$order_selected} + </select> + +{if isset($plugins)} +<table class="table2"> +<thead> + <tr class="throw"> + <td>{'Name'|@translate}</td> + <td>{'Version'|@translate}</td> + <td>{'Description'|@translate}</td> + <td>{'Actions'|@translate}</td> + </tr> +</thead> +{html_head} {*add the style to html head for strict standard compliance*} +<style type="text/css"> +TABLE.table2 TR TD.pluginState {ldelim} + padding-left:16px; +} +TABLE.table2 TR TD.active {ldelim} + background: url({$ROOT_URL}{$themeconf.admin_icon_dir}/plugin_active.gif) no-repeat center left +} +TABLE.table2 TR TD.inactive {ldelim} + background: url({$ROOT_URL}{$themeconf.admin_icon_dir}/plugin_inactive.gif) no-repeat center left +} +</style> +{/html_head} +{foreach from=$plugins item=plugin name=plugins_loop} + <tr class="{if $smarty.foreach.plugins_loop.index is odd}row1{else}row2{/if}"> + <td class="pluginState{if not empty($plugin.STATE)} {$plugin.STATE}{/if}"> + {$plugin.NAME} + </td> + <td>{$plugin.VERSION}</td> + <td>{$plugin.DESCRIPTION}</td> + <td> + {foreach from=$plugin.actions item=action} + <a href="{$action.U_ACTION}" + {if isset($action.CONFIRM)} onclick="return confirm('{$action.CONFIRM|@escape:'javascript'}');"{/if} + {$TAG_INPUT_ENABLED}>{$action.L_ACTION}</a> + {/foreach} + </td> + </tr> +{/foreach} +</table> +{/if} diff --git a/BSF/template/yoga/admin/plugins_new.tpl b/BSF/template/yoga/admin/plugins_new.tpl new file mode 100644 index 000000000..fa22aaa26 --- /dev/null +++ b/BSF/template/yoga/admin/plugins_new.tpl @@ -0,0 +1,37 @@ +<div class="titrePage"> + <h2>{'Plugins'|@translate}</h2> +{$TABSHEET} +</div> + +{'Sort order'|@translate} : + <select onchange="document.location = this.options[this.selectedIndex].value;" style="width:150px"> + {html_options options=$order_options selected=$order_selected} + </select> + +{if isset($plugins)} +<br> +<table class="table2"> +<thead> + <tr class="throw"> + <td>{'Name'|@translate}</td> + <td>{'Version'|@translate}</td> + <td>{'Date'|@translate}</td> + <td>{'Author'|@translate}</td> + <td>{'Actions'|@translate}</td> + </tr> +</thead> +{foreach from=$plugins item=plugin name=plugins_loop} + <tr class="{if $smarty.foreach.plugins_loop.index is odd}row1{else}row2{/if}"> + <td><a href="{$plugin.EXT_URL}" onclick="window.open(this.href); return false;" class="tooltip">{$plugin.EXT_NAME} + <span>{$plugin.EXT_DESC}</span></a></td> + <td style="text-align:center;"><a href="{$plugin.VERSION_URL}" onclick="window.open(this.href); return false;" class="tooltip">{$plugin.VERSION} + <span>{$plugin.VER_DESC}</span></a></td> + <td>{$plugin.DATE}</td> + <td>{$plugin.AUTHOR}</td> + <td style="text-align:center;"><a href="{$plugin.URL_INSTALL}" onclick="return confirm('{'plugins_confirm_install'|@translate|@escape:javascript}');">{'plugins_auto_install'|@translate}</a> + / <a href="{$plugin.URL_DOWNLOAD}">{'plugins_download'|@translate}</a> + </td> + </tr> +{/foreach} +</table> +{/if} diff --git a/BSF/template/yoga/admin/plugins_update.tpl b/BSF/template/yoga/admin/plugins_update.tpl new file mode 100644 index 000000000..df0ac4ae0 --- /dev/null +++ b/BSF/template/yoga/admin/plugins_update.tpl @@ -0,0 +1,71 @@ +<div class="titrePage"> + <h2>{'Plugins'|@translate}</h2> +{$TABSHEET} +</div> + +{if isset($plugins_not_uptodate)} +<br> +<b>{'plugins_need_update'|@translate}</b> +<table class="table2"> +<thead> + <tr class="throw"> + <td>{'Name'|@translate}</td> + <td>{'plugins_actual_version'|@translate}</td> + <td>{'plugins_new_version'|@translate}</td> + <td>{'Actions'|@translate}</td> + </tr> +</thead> +{foreach from=$plugins_not_uptodate item=plugin name=plugins_loop} + <tr class="{if $smarty.foreach.plugins_loop.index is odd}row1{else}row2{/if}"> + <td><a href="{$plugin.EXT_URL}" onclick="window.open(this.href); return false;" class="tooltip">{$plugin.EXT_NAME} + <span>{$plugin.EXT_DESC}</span></a></td> + <td style="text-align:center;">{$plugin.VERSION}</td> + <td style="text-align:center;"><a href="{$plugin.VERSION_URL}" onclick="window.open(this.href); return false;" class="tooltip">{$plugin.NEW_VERSION} + <span>{$plugin.NEW_VER_DESC}</span></a></td> + <td style="text-align:center;"><a href="{$plugin.URL_UPDATE}" onclick="return confirm('{'plugins_confirm_upgrade'|@translate|@escape:javascript}');">{'plugins_auto_update'|@translate}</a> + / <a href="{$plugin.URL_DOWNLOAD}">{'plugins_download'|@translate}</a></td> + </tr> +{/foreach} +</table> +{/if} + + +{if isset($plugins_uptodate)} +<br> +<b>{'plugins_dontneed_update'|@translate}</b> +<table class="table2"> +<thead> + <tr class="throw"> + <td>{'Name'|@translate}</td> + <td>{'Version'|@translate}</td> + </tr> +</thead> +{foreach from=$plugins_uptodate item=plugin name=plugins_loop} + <tr class="{if $smarty.foreach.plugins_loop.index is odd}row1{else}row2{/if}"> + <td><a href="{$plugin.URL}" onclick="window.open(this.href); return false;" class="tooltip">{$plugin.NAME} + <span>{$plugin.EXT_DESC}</span></a></td> + <td style="text-align:center;">{$plugin.VERSION}</td> + </tr> +{/foreach} +</table> +{/if} + + +{if isset($plugins_cant_check)} +<br> +<b>{'plugins_cant_check'|@translate}</b> +<table class="table2"> +<thead> + <tr class="throw"> + <td>{'Name'|@translate}</td> + <td>{'Version'|@translate}</td> + </tr> +</thead> +{foreach from=$plugins_cant_check item=plugin name=plugins_loop} + <tr class="{if $smarty.foreach.plugins_loop.index is odd}row1{else}row2{/if}"> + <td>{$plugin.NAME}</td> + <td style="text-align:center;">{$plugin.VERSION}</td> + </tr> +{/foreach} +</table> +{/if} diff --git a/BSF/template/yoga/admin/profile.tpl b/BSF/template/yoga/admin/profile.tpl new file mode 100644 index 000000000..f6326319c --- /dev/null +++ b/BSF/template/yoga/admin/profile.tpl @@ -0,0 +1,6 @@ +{* $Id$ *} +<div class="titrePage"> + <h2>{'Profile'|@translate}</h2> +</div> + +{$PROFILE_CONTENT} diff --git a/BSF/template/yoga/admin/rating.tpl b/BSF/template/yoga/admin/rating.tpl new file mode 100644 index 000000000..aa91892dc --- /dev/null +++ b/BSF/template/yoga/admin/rating.tpl @@ -0,0 +1,64 @@ +{* $Id$ *} +<h2>{'Rating'|@translate} [{$NB_ELEMENTS} {'elements'|@translate}]</h2> + +<form action="{$F_ACTION}" method="GET" id="update" class="filter"> + <fieldset> + <legend>{'Filter'|@translate}</legend> + + <label> + {'Sort by'|@translate} + <select name="order_by"> + {html_options options=$order_by_options selected=$order_by_options_selected} + </select> + </label> + + <label> + {'Users'|@translate} + <select name="users"> + {html_options options=$user_options selected=$user_options_selected} + </select> + </label> + + <label> + {'Number of items'|@translate} + <input type="text" name="display" size="2" value="{$DISPLAY}"> + </label> + + <input class="submit" type="submit" name="submit_filter" value="{'Submit'|@translate}" /> + <input type="hidden" name="page" value="rating" /> + </fieldset> +</form> + +<div class="navigationBar">{$NAVBAR}</div> +<table width="99%"> +<tr class="throw"> + <td>{'File'|@translate}</td> + <td>{'Number of rates'|@translate}</td> + <td>{'Average rate'|@translate}</td> + <td>{'Controversy'|@translate}</td> + <td>{'Sum of rates'|@translate}</td> + <td>{'Rate'|@translate}</td> + <td>{'Username'|@translate}</td> + <td>{'Rate date'|@translate}</td> + <td></td> +</tr> +{foreach from=$images item=image} +<tr valign="bottom"> + <td rowspan="{$image.NB_RATES_TOTAL+1}"><a href="{$image.U_URL}"><img src="{$image.U_THUMB}" alt="{$image.FILE}" title="{$image.FILE}"></a></td> + <td rowspan="{$image.NB_RATES_TOTAL+1}"><strong>{$image.NB_RATES}/{$image.NB_RATES_TOTAL}</strong></td> + <td rowspan="{$image.NB_RATES_TOTAL+1}"><strong>{$image.AVG_RATE}</strong></td> + <td rowspan="{$image.NB_RATES_TOTAL+1}"><strong>{$image.STD_RATE}</strong></td> + <td rowspan="{$image.NB_RATES_TOTAL+1}" style="border-right: 1px solid;" ><strong>{$image.SUM_RATE}</strong></td> +</tr> +{foreach from=$image.rates item=rate} +<tr> + <td>{$rate.RATE}</td> + <td><b>{$rate.USER}</b></td> + <td><span class="date">{$rate.DATE}</span></td> + <td><a href="{$rate.U_DELETE}" {$TAG_INPUT_ENABLED}><img src="{$themeconf.icon_dir}/delete.png" class="button" style="border:none;vertical-align:middle; margin-left:5px;" alt="[{'delete'|@translate}]"/></a></td> +</tr> +{/foreach} {*rates*} +{/foreach} {*images*} +</table> + +<div class="navigationBar">{$NAVBAR}</div> diff --git a/BSF/template/yoga/admin/site_manager.tpl b/BSF/template/yoga/admin/site_manager.tpl new file mode 100644 index 000000000..627181c5a --- /dev/null +++ b/BSF/template/yoga/admin/site_manager.tpl @@ -0,0 +1,73 @@ +{* $Id$ *} +<div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/help.png" class="button" alt="(?)"></a></li> + </ul> + <h2>{'Site manager'|@translate}</h2> +</div> + +{if not empty($remote_output)} +<div class="remoteOutput"> + <ul> + {foreach from=$remote_output item=remote_line} + <li class="{$remote_line.CLASS}">{$remote_line.CONTENT}</li> + {/foreach} + </ul> +</div> +{/if} + +{if isset($local_listing)} +{'remote_site_local_found'|@translate} {$local_listing.URL} +{if isset($local_listing.CREATE)} +<form action="{$F_ACTION}" method="post"> + <p> + {'remote_site_local_create'|@translate}: + <input type="hidden" name="no_check" value="1"/> + <input type="hidden" name="galleries_url" value="{$local_listing.URL}" /> + <input type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED} /> + </p> +</form> +{/if} +{if isset($local_listing.U_SYNCHRONIZE)} + <a href="{$local_listing.U_SYNCHRONIZE}" title="{'remote_site_local_update'|@translate}">{'site_synchronize'|@translate}</a> +<br/><br/> +{/if} +{/if} + +{if not empty($sites)} +<table border="1" cellpadding="0" cellspacing="0"> + {foreach from=$sites item=site} + <tr style="text-align:left"><td> + <a href="{$site.NAME}">{$site.NAME}</a><br/>({$site.TYPE}, {$site.CATEGORIES} {'Categories'|@translate}, {$pwg->l10n_dec('%d element','%d elements',$site.IMAGES)}) + </td><td> + [<a href="{$site.U_SYNCHRONIZE}" title="{'site_synchronize_hint'|@translate}">{'site_synchronize'|@translate}</a>] + {if isset($site.U_DELETE)} + [<a href="{$site.U_DELETE}" onclick="return confirm('{'Are you sure?'|@translate|escape:'javascript'}');" + title="{'site_delete_hint'|@translate}" {$TAG_INPUT_ENABLED}>{'site_delete'|@translate}</a>] + {/if} + {if isset($site.remote)} + <br/> + [<a href="{$site.remote.U_TEST}" title="{'remote_site_test_hint'|@translate}" {$TAG_INPUT_ENABLED}>{'remote_site_test'|@translate}</a>] + [<a href="{$site.remote.U_GENERATE}" title="{'remote_site_generate_hint'|@translate}" {$TAG_INPUT_ENABLED}>{'remote_site_generate'|@translate}</a>] + [<a href="{$site.remote.U_CLEAN}" title="{'remote_site_clean_hint'|@translate}" {$TAG_INPUT_ENABLED}>{'remote_site_clean'|@translate}</a>] + {/if} + {if not empty($site.plugin_links)} + <br> + {foreach from=$site.plugin_links item=plugin_link} + [<a href="{$plugin_link.U_HREF}" title='{$plugin_link.U_HINT}' {$TAG_INPUT_ENABLED}>{$plugin_link.U_CAPTION}</a>] + {/foreach} + {/if} + </td></tr> + {/foreach} +</table> +{/if} + +<form action="{$F_ACTION}" method="post"> + <p> + <label for="galleries_url" >{'site_create'|@translate}</label> + <input type="text" name="galleries_url" id="galleries_url" /> + </p> + <p> + <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED} /> + </p> +</form> diff --git a/BSF/template/yoga/admin/site_update.tpl b/BSF/template/yoga/admin/site_update.tpl new file mode 100644 index 000000000..fc0899a90 --- /dev/null +++ b/BSF/template/yoga/admin/site_update.tpl @@ -0,0 +1,109 @@ +{* $Id$ *} + +<div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/help.png" class="button" alt="(?)"></a></li> + </ul> + <h2>{'title_update'|@translate}: <a href="{$SITE_URL}">{$SITE_URL}</a></h2> +</div> + +{if isset($update_result)} +<h3>{$L_RESULT_UPDATE}</h3> +<ul> + <li class="update_summary_new">{$update_result.NB_NEW_CATEGORIES} {'update_nb_new_categories'|@translate}</li> + <li class="update_summary_new">{$update_result.NB_NEW_ELEMENTS} {'update_nb_new_elements'|@translate}</li> + <li class="update_summary_del">{$update_result.NB_DEL_CATEGORIES} {'update_nb_del_categories'|@translate}</li> + <li class="update_summary_del">{$update_result.NB_DEL_ELEMENTS} {'update_nb_del_elements'|@translate}</li> + <li>{$update_result.NB_UPD_ELEMENTS} {'update_nb_upd_elements'|@translate}</li> + <li class="update_summary_err">{$update_result.NB_ERRORS} {'update_nb_errors'|@translate}</li> +</ul> +{/if} + +{if isset($metadata_result)} +<h3>{$L_RESULT_METADATA}</h3> +<ul> + <li>{$metadata_result.NB_ELEMENTS_DONE} {'update_nb_elements_metadata_sync'|@translate}</li> + <li>{$metadata_result.NB_ELEMENTS_CANDIDATES} {'update_nb_elements_metadata_available'|@translate}</li> + <li>{'update_used_metadata'|@translate} : {$METADATA_LIST}</li> +</ul> +{/if} + + +{if not empty($sync_errors)} +<h3>{'update_error_list_title'|@translate}</h3> +<div class="errors"> +<ul> + {foreach from=$sync_errors item=error} + <li>[{$error.ELEMENT}] {$error.LABEL}</li> + {/foreach} +</ul> +</div> +<h3>{'update_errors_caption'|@translate}</h3> +<ul> + {foreach from=$sync_error_captions item=caption} + <li><strong>{$caption.TYPE}</strong>: {$caption.LABEL}</li> + {/foreach} +</ul> +{/if} + +{if not empty($sync_infos)} +<h3>{'update_infos_title'|@translate}</h3> +<div class="infos"> +<ul> + {foreach from=$sync_infos item=info} + <li>[{$info.ELEMENT}] {$info.LABEL}</li> + {/foreach} +</ul> +</div> +{/if} + +{if isset($introduction)} +<h3>{'update_default_title'|@translate}</h3> +<form action="" method="post" id="update"> + + <fieldset id="syncFiles"> + <legend>{'update_sync_files'|@translate}</legend> + <ul> + <li><label><input type="radio" name="sync" value="dirs" {if 'dirs'==$introduction.sync}checked="checked"{/if}/> {'update_sync_dirs'|@translate}</label></li> + <li><label><input type="radio" name="sync" value="files" {if 'files'==$introduction.sync}checked="checked"{/if}/> {'update_sync_all'|@translate}</label></li> + <li><label><input type="checkbox" name="display_info" value="1" {if $introduction.display_info}checked="checked"{/if}/> {'update_display_info'|@translate}</label></li> + <li><label><input type="checkbox" name="add_to_caddie" value="1" {if $introduction.add_to_caddie}checked="checked"{/if}/> {'add new elements to caddie'|@translate}</label></li> + <li><label>{'Minimum privacy level'|@translate} <select name="privacy_level">{html_options options=$introduction.privacy_level_options selected=$introduction.privacy_level_selected}</select></label></li> + </ul> + </fieldset> + + <fieldset id="syncMetadata"> + <legend>{'update_sync_metadata'|@translate}</legend> + {'update_used_metadata'|@translate} : {$METADATA_LIST}.<br/> + <ul> + <li><label><input type="radio" name="sync" value="metadata_new" {if 'metadata_new'==$introduction.sync}checked="checked"{/if}/> {'update_sync_metadata_new'|@translate}</label></li> + <li><label><input type="radio" name="sync" value="metadata_all" {if 'metadata_all'==$introduction.sync}checked="checked"{/if}/> {'update_sync_metadata_all'|@translate}</label></li> + </ul> + </fieldset> + + <fieldset id="syncSimulate"> + <legend></legend> + <ul><li><label><input type="checkbox" name="simulate" value="1" checked="checked" {$TAG_INPUT_ENABLED} /> {'update_simulate'|@translate}</label></li></ul> + </fieldset> + + <fieldset id="catSubset"> + <legend>{'update_cats_subset'|@translate}</legend> + <ul> + <li> + <select class="categoryList" name="cat" size="10"> + {html_options options=$category_options selected=$category_options_selected} + </select> + </li> + + <li><label><input type="checkbox" name="subcats-included" value="1" {if $introduction.subcats_included}checked="checked"{/if}/> {'search_subcats_included'|@translate}</label></li> + </ul> + </fieldset> + + <p class="bottomButtons"> + <input class="submit" type="submit" value="{'Submit'|@translate}" name="submit" /> + <input class="submit" type="reset" value="{'Reset'|@translate}" name="reset" /> + </p> +</form> +{/if}{*isset $introduction*} + +<p><a href="{$U_SITE_MANAGER}">{'Site manager'|@translate}</a></p> diff --git a/BSF/template/yoga/admin/stats.tpl b/BSF/template/yoga/admin/stats.tpl new file mode 100644 index 000000000..95331b7ef --- /dev/null +++ b/BSF/template/yoga/admin/stats.tpl @@ -0,0 +1,38 @@ +{* $Id$ *} + +<div class="titrePage"> + <ul class="categoryActions"> + <li> + <a + href="{$U_HELP}" + onclick="popuphelp(this.href); return false;" + title="{'Help'|@translate}" + > + <img src="{$themeconf.icon_dir}/help.png" class="button" alt="(?)"> + </a> + </li> + </ul> + <h2>{'History'|@translate} {$TABSHEET_TITLE}</h2> + {$TABSHEET} +</div> + +<h3>{$L_STAT_TITLE}</h3> + +<table class="table2" id="dailyStats"> + <tr class="throw"> + <th>{$PERIOD_LABEL}</th> + <th>{'Pages seen'|@translate}</th> + <th></th> + </tr> + +{if not empty($statrows)} +{foreach from=$statrows item=row} + <tr> + <td style="white-space: nowrap">{$row.VALUE}</td> + <td class="number">{$row.PAGES}</td> + <td><div class="statBar" style="width:{$row.WIDTH}px"></div></td> + </tr> +{/foreach} +{/if} + +</table> diff --git a/BSF/template/yoga/admin/tabsheet.tpl b/BSF/template/yoga/admin/tabsheet.tpl new file mode 100644 index 000000000..a89adfd8d --- /dev/null +++ b/BSF/template/yoga/admin/tabsheet.tpl @@ -0,0 +1,8 @@ +{* $Id$ *} +{if isset($tabsheet) and count($tabsheet)} +<ul class="tabsheet"> +{foreach from=$tabsheet key=name item=sheet} + <li class="{if ($name == $tabsheet_selected)}selected_tab{else}normal_tab{/if}"><a href="{$sheet.url}">{$sheet.caption}</a></li> +{/foreach} +</ul> +{/if}
\ No newline at end of file diff --git a/BSF/template/yoga/admin/tags.tpl b/BSF/template/yoga/admin/tags.tpl new file mode 100644 index 000000000..b2ce57341 --- /dev/null +++ b/BSF/template/yoga/admin/tags.tpl @@ -0,0 +1,54 @@ +{* $Id$ *} +<div class="titrePage"> + <h2>{'Manage tags'|@translate}</h2> +</div> + +<form action="{$F_ACTION}" method="post"> + + {if isset($EDIT_TAGS_LIST)} + <fieldset> + <legend>{'Edit tags'|@translate}</legend> + <input type="hidden" name="edit_list" value="{$EDIT_TAGS_LIST}" /> + <table class="table2"> + <tr class="throw"> + <th>{'Current name'|@translate}</th> + <th>{'New name'|@translate}</th> + </tr> + {foreach from=$tags item=tag} + <tr> + <td>{$tag.NAME}</td> + <td><input type="text" name="tag_name-{$tag.ID}" value="{$tag.NAME}" /></td> + </tr> + {/foreach} + </table> + + <p> + <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED} /> + <input class="submit" type="reset" value="{'Reset'|@translate}" /> + </p> + </fieldset> + {/if} + + <fieldset> + <legend>{'Add a tag'|@translate}</legend> + + <label> + {'New tag'|@translate} + <input type="text" name="add_tag" /> + </label> + + <p><input class="submit" type="submit" name="add" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}/></p> + </fieldset> + + <fieldset> + <legend>{'Tag selection'|@translate}</legend> + + {$TAG_SELECTION} + + <p> + <input class="submit" type="submit" name="edit" value="{'Edit selected tags'|@translate}"/> + <input class="submit" type="submit" name="delete" value="{'Delete selected tags'|@translate}" onclick="return confirm('{'Are you sure?'|@translate}');" {$TAG_INPUT_ENABLED}/> + </p> + </fieldset> + +</form> diff --git a/BSF/template/yoga/admin/thumbnail.tpl b/BSF/template/yoga/admin/thumbnail.tpl new file mode 100644 index 000000000..6bb652caa --- /dev/null +++ b/BSF/template/yoga/admin/thumbnail.tpl @@ -0,0 +1,123 @@ +{* $Id$ *} +<div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$themeconf.icon_dir}/help.png" class="button" alt="(?)"></a></li> + </ul> + <h2>{'title_thumbnails'|@translate}</h2> +</div> + +{if isset($results) } +<div class="admin">{'tn_results_title'|@translate}</div> +<table style="width:100%;"> + <tr class="throw"> + <td>{'path'|@translate}</td> + <td>{'thumbnail'|@translate}</td> + <td>{'tn_results_gen_time'|@translate}</td> + <td>{'filesize'|@translate}</td> + <td>{'Dimensions'|@translate}</td> + </tr> + {foreach from=$results.elements item=elt} + <tr> + <td>{$elt.PATH}</td> + <td><img src="{$elt.TN_FILE_IMG}" /></td> + <td style="text-align:right;">{$elt.GEN_TIME}</td> + <td style="text-align:right;">{$elt.TN_FILESIZE_IMG}</td> + <td style="text-align:right;">{$elt.TN_WIDTH_IMG} x {$elt.TN_HEIGHT_IMG}</td> + </tr> + {/foreach} +</table> + +<table class="table2"> + <tr class="throw"> + <td colspan="2">{'tn_stats'|@translate}</td> + </tr> + <tr> + <td>{'tn_stats_nb'|@translate}</td> + <td style="text-align:center;">{$results.TN_NB}</td> + </tr> + <tr> + <td>{'tn_stats_total'|@translate}</td> + <td style="text-align:right;">{$results.TN_TOTAL}</td> + </tr> + <tr> + <td>{'tn_stats_max'|@translate}</td> + <td style="text-align:right;">{$results.TN_MAX}</td> + </tr> + <tr> + <td>{'tn_stats_min'|@translate}</td> + <td style="text-align:right;">{$results.TN_MIN}</td> + </tr> + <tr> + <td>{'tn_stats_mean'|@translate}</td> + <td style="text-align:right;">{$results.TN_AVERAGE}</td> + </tr> +</table> +<br /> +{/if} + +{if isset($params) } +<form method="post" action="{$params.F_ACTION}" class="properties"> + + <fieldset> + <legend>{'tn_params_title'|@translate}</legend> + + <ul> + <li> + <span class="property">{'tn_params_GD'|@translate}</span> + <label> + <input type="radio" name="gd" value="2" {if $params.GD_SELECTED==2}checked="checked"{/if} />2.x + </label> + <label> + <input type="radio" name="gd" value="1" {if $params.GD_SELECTED==1}checked="checked"{/if} />1.x + </label> + </li> + + <li> + <span class="property"> + <label for="width">{'maximum width'|@translate}</label> + </span> + <input type="text" id="width" name="width" value="{$params.WIDTH_TN}" /> + </li> + + <li> + <span class="property"> + <label for="height">{'maximum height'|@translate}</label> + </span> + <input type="text" id="height" name="height" value="{$params.HEIGHT_TN}" /> + </li> + + <li> + <span class="property">{'Number of thumbnails to create'|@translate}</span> + <label><input type="radio" name="n" value="5" {if $params.N_SELECTED==5}checked="checked"{/if} /> 5</label> + <label><input type="radio" name="n" value="10" {if $params.N_SELECTED==10}checked="checked"{/if} /> 10</label> + <label><input type="radio" name="n" value="20" {if $params.N_SELECTED==20}checked="checked"{/if} /> 20</label> + <label><input type="radio" name="n" value="all" {if $params.N_SELECTED=='all'}checked="checked"{/if} /> {'tn_all'|@translate}</label> + </li> + </ul> + </fieldset> + + <p><input class="submit" type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}/></p> +</form> +{/if} {*isset params*} + +{if !empty($remainings) } +<div class="admin">{$TOTAL_NB_REMAINING} {'tn_alone_title'|@translate}</div> +<table style="width:100%;"> + <tr class="throw"> + <td> </td> + <td style="width:60%;">{'path'|@translate}</td> + <td>{'filesize'|@translate}</td> + <td>{'Dimensions'|@translate}</td> + </tr> + {foreach from=$remainings item=elt name=remain_loop} + <tr class="{if $smarty.foreach.remain_loop.index is odd}row1{else}row2{/if}"> + <td>{$smarty.foreach.remain_loop.iteration}</td> + <td><div style="margin-left:10px;">{$elt.PATH}</div></td> + <td><div style="margin-left:10px;">{$elt.FILESIZE_IMG}</div></td> + <td><div style="margin-left:10px;">{$elt.WIDTH_IMG} x {$elt.HEIGHT_IMG}</div></td> + </tr> + {/foreach} +</table> +{else} +<div style="text-align:center;font-weight:bold;margin:10px;"> [ {'tn_no_missing'|@translate} ]</div> +{/if} diff --git a/BSF/template/yoga/admin/upload.tpl b/BSF/template/yoga/admin/upload.tpl new file mode 100644 index 000000000..f95609316 --- /dev/null +++ b/BSF/template/yoga/admin/upload.tpl @@ -0,0 +1,53 @@ +{* $Id$ *} +<div class="titrePage"> + <h2>{'waiting'|@translate} {$TABSHEET_TITLE}</h2> + {$TABSHEET} +</div> + +<h3>{'title_upload'|@translate}</h3> + +<form action="{$F_ACTION}" method="post" id="waiting"> + <table style="width:99%;" > + <tr class="throw"> + <th style="width:20%;">{'category'|@translate}</th> + <th style="width:20%;">{'Date'|@translate}</th> + <th style="width:20%;">{'file'|@translate}</th> + <th style="width:20%;">{'thumbnail'|@translate}</th> + <th style="width:20%;">{'Author'|@translate}</th> + <th style="width:1px;"> </th> + </tr> + + {if not empty($pictures) } + {foreach from=$pictures item=picture name=picture_loop} + <tr class="{if $smarty.foreach.picture_loop.index is odd}row1{else}row2{/if}"> + <td style="white-space:nowrap;">{$picture.CATEGORY_IMG}</td> + <td style="white-space:nowrap;">{$picture.DATE_IMG}</td> + <td style="white-space:nowrap;"> + <a href="{$picture.PREVIEW_URL_IMG}" title="{$picture.FILE_TITLE}">{$picture.FILE_IMG}</a> + </td> + <td style="white-space:nowrap;"> + {if not empty($picture.thumbnail) } + <a href="{$picture.thumbnail.PREVIEW_URL_TN_IMG}" title="{$picture.thumbnail.FILE_TN_TITLE}">{$picture.thumbnail.FILE_TN_IMG}</a> + {/if} + </td> + <td style="white-space:nowrap;"> + <a href="mailto:{$picture.UPLOAD_EMAIL}">{$picture.UPLOAD_USERNAME}</a> + </td> + <td style="white-space:nowrap;"> + <label><input type="radio" name="action-{$picture.ID_IMG}" value="validate" /> {'Validate'|@translate}</label> + <label><input type="radio" name="action-{$picture.ID_IMG}" value="reject" /> {'Reject'|@translate}</label> + </td> + </tr> + {/foreach} + {/if} + </table> + + <p class="bottomButtons"> + <input type="hidden" name="list" value="{$LIST}" /> + <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}/> + <input class="submit" type="submit" name="validate-all" value="{'Validate All'|@translate}" {$TAG_INPUT_ENABLED}/> + <input class="submit" type="submit" name="reject-all" value="{'Reject All'|@translate}" {$TAG_INPUT_ENABLED}/> + <input class="submit" type="reset" value="{'Reset'|@translate}" /> + </p> + +</form> diff --git a/BSF/template/yoga/admin/user_list.tpl b/BSF/template/yoga/admin/user_list.tpl new file mode 100644 index 000000000..db67093f6 --- /dev/null +++ b/BSF/template/yoga/admin/user_list.tpl @@ -0,0 +1,312 @@ +{* $Id$ *} +<div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/help.png" class="button" alt="(?)"></a></li> + </ul> + <h2>{'title_liste_users'|@translate}</h2> +</div> + +<form class="filter" method="post" name="add_user" action="{$F_ADD_ACTION}"> + <fieldset> + <legend>{'Add a user'|@translate}</legend> + <label>{'Username'|@translate} <input type="text" name="login" maxlength="50" size="20" /></label> + <label>{'Password'|@translate} <input type="text" name="password" /></label> + <label>{'Email address'|@translate} <input type="text" name="email" /></label> + <input class="submit" type="submit" name="submit_add" value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED} /> + </fieldset> +</form> + +<form class="filter" method="get" name="filter" action="{$F_FILTER_ACTION}"> +<fieldset> + <legend>{'Filter'|@translate}</legend> + <input type="hidden" name="page" value="user_list" /> + + <label>{'Username'|@translate} <input type="text" name="username" value="{$F_USERNAME}" /></label> + + <label> + {'status'|@translate} + {html_options name=status options=$status_options selected=$status_selected} + </label> + + <label> + {'group'|@translate} + {html_options name=group options=$group_options selected=$group_selected} + </label> + + <label> + {'Sort by'|@translate} + {html_options name=order_by options=$order_options selected=$order_selected} + </label> + + <label> + {'Sort order'|@translate} + {html_options name=direction options=$direction_options selected=$direction_selected} + </label> + + <input class="submit" type="submit" value="{'Submit'|@translate}" /> + +</fieldset> + +</form> + +<form method="post" name="preferences" action=""> + +<table class="table2"> + <tr class="throw"> + <th> </th> + <th>{'Username'|@translate}</th> + <th>{'user_status'|@translate}</th> + <th>{'Email address'|@translate}</th> + <th>{'Groups'|@translate}</th> + <th>{'properties'|@translate}</th> + {if not empty($plugin_user_list_column_titles)} + {foreach from=$plugin_user_list_column_titles item=title} + <th>{$title}</th> + {/foreach} + {/if} + <th>{'Actions'|@translate}</th> + </tr> + {foreach from=$users item=user name=users_loop} + <tr class="{if $smarty.foreach.users_loop.index is odd}row1{else}row2{/if}"> + <td><input type="checkbox" name="selection[]" value="{$user.ID}" {$user.CHECKED} id="selection-{$user.ID}" /></td> + <td><label for="selection-{$user.ID}">{$user.USERNAME}</label></td> + <td>{$user.STATUS}</td> + <td>{$user.EMAIL}</td> + <td>{$user.GROUPS}</td> + <td>{$user.PROPERTIES}</td> + {foreach from=$user.plugin_columns item=data} + <td>{$data}</td> + {/foreach} + <td style="text-align:center;"> + <a href="{$user.U_PERM}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/permissions.png" class="button" style="border:none" alt="{'permissions'|@translate}" title="{'permissions'|@translate}" /></a> + <a href="{$user.U_PROFILE}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/edit_s.png" class="button" style="border:none" alt="{'Profile'|@translate}" title="{'Profile'|@translate}" /></a> + {foreach from=$user.plugin_actions item=data} + {$data} + {/foreach} + </td> + </tr> + {/foreach} +</table> + +<div class="navigationBar">{$NAVBAR}</div> + +{* delete the selected users ? *} +<fieldset> + <legend>{'Deletions'|@translate}</legend> + <label><input type="checkbox" name="confirm_deletion" value="1" /> {'confirm'|@translate}</label> + <input class="submit" type="submit" value="{'Delete selected users'|@translate}" name="delete" {$TAG_INPUT_ENABLED}/> +</fieldset> + +<fieldset> + <legend>{'Status'|@translate}</legend> + + <table> + <tr> + <td>{'Status'|@translate}</td> + <td> + <label><input type="radio" name="status_action" value="leave" checked="checked" /> {'leave'|@translate}</label> + <label><input type="radio" name="status_action" value="set" id="status_action_set" /> {'set to'|@translate}</label> + <select onchange="document.getElementById('status_action_set').checked = true;" name="status" size="1"> + {html_options options=$pref_status_options selected=$pref_status_selected} + </select> + </td> + </tr> + + {if isset($adviser)} + <tr> + <td>{'adviser'|@translate}</td> + <td> + <label><input type="radio" name="adviser" value="leave" checked="checked" /> {'leave'|@translate}</label> + / {'set to'|@translate} + <label><input type="radio" name="adviser" value="true" />{'Yes'|@translate}</label> + <label><input type="radio" name="adviser" value="false" />{'No'|@translate}</label> + </td> + </tr> + {/if} + + </table> +</fieldset> + +{* form to set properties for many users at once *} +<fieldset> + <legend>{'Groups'|@translate}</legend> + +<table> + + <tr> + <td>{'associate to group'|@translate}</td> + <td> + {html_options name=associate options=$association_options selected=$associate_selected} + </td> + </tr> + + <tr> + <td>{'dissociate from group'|@translate}</td> + <td> + {html_options name=dissociate options=$association_options selected=$dissociate_selected} + </td> + </tr> + +</table> + +</fieldset> + +{* Properties *} +<fieldset> + <legend>{'properties'|@translate}</legend> + + <table> + + <tr> + <td>{'enabled_high'|@translate}</td> + <td> + <label><input type="radio" name="enabled_high" value="leave" checked="checked" /> {'leave'|@translate}</label> + / {'set to'|@translate} + <label><input type="radio" name="enabled_high" value="true" />{'Yes'|@translate}</label> + <label><input type="radio" name="enabled_high" value="false" />{'No'|@translate}</label> + </td> + </tr> + + <tr> + <td>{'Privacy level'|@translate}</td> + <td> + <label><input type="radio" name="level_action" value="leave" checked="checked" />{'leave'|@translate}</label> + <label><input type="radio" name="level_action" value="set" id="level_action_set" />{'set to'|@translate}</label> + <select onchange="document.getElementById('level_action_set').checked = true;" name="level" size="1"> + {html_options options=$level_options selected=$level_selected} + </select> + </td> + </tr> + + </table> + +</fieldset> + +{* preference *} +<fieldset> + <legend>{'Preferences'|@translate}</legend> + +<table> + + <tr> + <td>{'nb_image_per_row'|@translate}</td> + <td> + <label><input type="radio" name="nb_image_line_action" value="leave" checked="checked" /> {'leave'|@translate}</label> + <label><input type="radio" name="nb_image_line_action" value="set" id="nb_image_line_action_set" /> {'set to'|@translate}</label> + <input onmousedown="document.getElementById('nb_image_line_action_set').checked = true;" + size="3" maxlength="2" type="text" name="nb_image_line" value="{$NB_IMAGE_LINE}" /> + </td> + </tr> + + <tr> + <td>{'nb_row_per_page'|@translate}</td> + <td> + <label><input type="radio" name="nb_line_page_action" value="leave" checked="checked" /> {'leave'|@translate}</label> + <label><input type="radio" name="nb_line_page_action" value="set" id="nb_line_page_action_set" /> {'set to'|@translate}</label> + <input onmousedown="document.getElementById('nb_line_page_action_set').checked = true;" + size="3" maxlength="2" type="text" name="nb_line_page" value="{$NB_LINE_PAGE}" /> + <td> + </tr> + + <tr> + <td>{'theme'|@translate}</td> + <td> + <label><input type="radio" name="template_action" value="leave" checked="checked" /> {'leave'|@translate}</label> + <label><input type="radio" name="template_action" value="set" id="template_action_set" /> {'set to'|@translate}</label> + <select onchange="document.getElementById('template_action_set').checked = true;" name="template" size="1"> + {html_options values=$template_options output=$template_options selected=$template_selected} + </select> + </td> + </tr> + + <tr> + <td>{'language'|@translate}</td> + <td> + <label><input type="radio" name="language_action" value="leave" checked="checked" /> {'leave'|@translate}</label> + <label><input type="radio" name="language_action" value="set" id="language_action_set" /> {'set to'|@translate}</label> + <select onchange="document.getElementById('language_action_set').checked = true;" name="language" size="1"> + {html_options options=$language_options selected=$language_selected} + </select> + </td> + </tr> + + <tr> + <td>{'recent_period'|@translate}</td> + <td> + <label><input type="radio" name="recent_period_action" value="leave" checked="checked" /> {'leave'|@translate}</label> + <label><input type="radio" name="recent_period_action" value="set" id="recent_period_action_set" /> {'set to'|@translate}</label> + <input onmousedown="document.getElementById('recent_period_action_set').checked = true;" + type="text" size="3" maxlength="2" name="recent_period" value="{$RECENT_PERIOD}" /> + </td> + </tr> + + <tr> + <td>{'auto_expand'|@translate}</td> + <td> + <label><input type="radio" name="expand" value="leave" checked="checked" /> {'leave'|@translate}</label> + / {'set to'|@translate} + <label><input type="radio" name="expand" value="true" />{'Yes'|@translate}</label> + <label><input type="radio" name="expand" value="false" />{'No'|@translate}</label> + </td> + </tr> + + <tr> + <td>{'show_nb_comments'|@translate}</td> + <td> + <label><input type="radio" name="show_nb_comments" value="leave" checked="checked" /> {'leave'|@translate}</label> + / {'set to'|@translate} + <label><input type="radio" name="show_nb_comments" value="true" />{'Yes'|@translate}</label> + <label><input type="radio" name="show_nb_comments" value="false" />{'No'|@translate}</label> + </td> + </tr> + + <tr> + <td>{'show_nb_hits'|@translate}</td> + <td> + <label><input type="radio" name="show_nb_hits" value="leave" checked="checked" /> {'leave'|@translate}</label> + / {'set to'|@translate} + <label><input type="radio" name="show_nb_hits" value="true" />{'Yes'|@translate}</label> + <label><input type="radio" name="show_nb_hits" value="false" />{'No'|@translate}</label> + </td> + </tr> + + <tr> + <td>{'maxwidth'|@translate}</td> + <td> + <label><input type="radio" name="maxwidth_action" value="leave" checked="checked" /> {'leave'|@translate}</label> + <label><input type="radio" name="maxwidth_action" value="unset" /> {'unset'|@translate}</label> + <label><input type="radio" name="maxwidth_action" value="set" id="maxwidth_action_set" /> {'set to'|@translate}</label> + <input onmousedown="document.getElementById('maxwidth_action_set').checked = true;" + type="text" size="4" maxlength="4" name="maxwidth" value="{$MAXWIDTH}" /> + </td> + </tr> + + + <tr> + <td>{'maxheight'|@translate}</td> + <td> + <label><input type="radio" name="maxheight_action" value="leave" checked="checked" /> {'leave'|@translate}</label> + <label><input type="radio" name="maxheight_action" value="unset" /> {'unset'|@translate}</label> + <label><input type="radio" name="maxheight_action" value="set" id="maxheight_action_set" /> {'set to'|@translate}</label> + <input onmousedown="document.getElementById('maxheight_action_set').checked = true;" + type="text" size="4" maxlength="4" name="maxheight" value="{$MAXHEIGHT}" /> + </td> + </tr> + + +</table> + +</fieldset> + +<p> + {'target'|@translate} + <label><input type="radio" name="target" value="all" /> {'all'|@translate}</label> + <label><input type="radio" name="target" value="selection" checked="checked" /> {'selection'|@translate}</label> +</p> + +<p> + <input class="submit" type="submit" value="{'Submit'|@translate}" name="pref_submit" {$TAG_INPUT_ENABLED} /> + <input class="submit" type="reset" value="{'Reset'|@translate}" name="pref_reset" /> +</p> + +</form> diff --git a/BSF/template/yoga/admin/user_perm.tpl b/BSF/template/yoga/admin/user_perm.tpl new file mode 100644 index 000000000..3183c82e7 --- /dev/null +++ b/BSF/template/yoga/admin/user_perm.tpl @@ -0,0 +1,23 @@ +{* $Id$ *} +<h2>{$TITLE}</h2> + +{if isset($categories_because_of_groups) } +<fieldset> + <legend>{'Categories authorized thanks to group associations'|@translate}</legend> + + <ul> + {foreach from=$categories_because_of_groups item=cat } + <li>{$cat}</li> + {/foreach} + </ul> +</fieldset> +{/if} + + +<fieldset> + <legend>{'Other private categories'|@translate}</legend> + + <form method="post" action="{$F_ACTION}"> + {$DOUBLE_SELECT} + </form> +</fieldset> diff --git a/BSF/template/yoga/admin/ws_checker.tpl b/BSF/template/yoga/admin/ws_checker.tpl new file mode 100644 index 000000000..cce3c7f49 --- /dev/null +++ b/BSF/template/yoga/admin/ws_checker.tpl @@ -0,0 +1,218 @@ +{* $Id$ *} + +<div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$themeconf.icon_dir}/help.png" class="button" alt="(?)"></a></li> + </ul> + <h2>{'title_wscheck'|@translate} - {'web_services'|@translate}</h2> +</div> + +{if !empty($update_results)} +<ul> + {foreach from=$update_results item=result} + <li>$result</li> + {/foreach} +</ul> +{/if} + +{* Add Access *} +<form method="post" name="adding_access" action="{$F_STATUS_ACTION}"> + <!-- Current Default --> + <fieldset> + <legend>{'ws_adding_legend'|@translate}</legend> + <table> + {* Access key *} + <tr> + <td> + <label for="KeyName">{'Confidential partner key'|@translate} </label> + </td> + <td> + <input type="text" maxlength="35" size="35" name="add_partner" + id="add_partner" value="{$F_ADD_PARTNER}" + title="{'Basis of access key calculation'|@translate}" /> + </td> + </tr> + + {* Target (cat/ids, tag/ids, or list/ids ids=id,id-id,...) *} + <tr> + <td> + <label for="Access">{'Target'|@translate}</label> + </td> + <td> + <input type="text" maxlength="128" size="35" name="add_target" + id="add_target" value="{$F_ADD_ACCESS}" + title="{'Facultative and restrictive option'|@translate}" /> + <i><small> ({'Access: see help text for more'|@translate}) + </small></i> + </td> + </tr> + + {* Restricted access to specific request *} + <tr> + <td> + <label for="add_request">{'Restrict access to'|@translate}</label> + </td> + <td> + <select name="add_request" id="add_request" style="width: 18em" + onfocus="this.className='focus';" + onblur="this.className='nofocus';"> + <option value=""></option> + {html_options values=$add_requests output=$add_requests} + </select> + <i><small> ({'ws_Methods'|@translate})</small></i> + </td> + </tr> + + {* Limit number of images information to be return *} + <tr> + <td> + <label for="add_limit">{'Returned images limit'|@translate}</label> + </td> + <td> + <select name="add_limit" id="add_limit" style="width: 10em" + onfocus="this.className='focus';" + onblur="this.className='nofocus';"> + {html_options values=$add_limits output=$add_limits} + </select> + </td> + </tr> + + {* Open service is postponed by n days *} + {* In comment currently + <tr> + <td> + <label for="add_start">{'Postponed availability in days'|@translate}</label> + </td> + <td> + <select name="add_start" id="add_start" style="width: 10em" + onfocus="this.className='focus';" + onblur="this.className='nofocus';"> + <!-- BEGIN add_start --> + <option value="{add_start.VALUE}" + {add_start.SELECTED}>{add_start.CONTENT} + </option> + <!-- END add_start --> + </select> + </td> + </tr> + *} + + {* Opened service only for n days *} + <tr> + <td> + <label for="add_end">{'Duration in days'|@translate}</label> + </td> + <td> + <select name="add_end" id="add_end" style="width: 10em" + onfocus="this.className='focus';" + onblur="this.className='nofocus';"> + {html_options values=$add_ends output=$add_ends} + </select> + </td> + </tr> + + {* Idendify your partner (name / website / phone) as you want *} + <tr> + <td> + <label for="add_Comment">{'ws_Comment'|@translate}</label> + <br /> + </td> + <td> + <textarea name="add_comment" id="add_comment" + rows="4" cols="80">{'Comment to identify your partner clearly'|@translate}</textarea> + </td> + </tr> + + {* Add submit button *} + <tr> + <td> + </td> + <td> + <input class="submit" type="submit" name="wsa_submit" style="width: 10em; padding-top: 3px;" + value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED} + title="{'Add this access definition'|@translate}" /> + </td> + </tr> + </table> + </fieldset> +</form> + +{if !empty($access_list)} +<!-- Access list --> +<form method="post" name="preferences" action="{$F_STATUS_ACTION}"> + <input type="hidden" name="partner_prev" value="{$F_PREV_PARTNER}"> + <input type="hidden" name="request_prev" value="{$F_PREV_REQUEST}"> + <input type="hidden" name="high_prev" value="{$F_PREV_HIGH}"> + <input type="hidden" name="normal_prev" value="{$F_PREV_NORMAL}"> + <input type="hidden" name="order_prev" value="{$F_PREV_ORDER}"> + <input type="hidden" name="dir5n_prev" value="{$F_PREV_DIR5N}"> + <!-- Delete / Update Selected --> + <fieldset> + <legend>{'ws_update_legend'|@translate}</legend> + <table class="table2"> + <tr class="throw"> + <th> </th> + <th>{'ws_KeyName'|@translate}</th> + <th>{'ws_Access'|@translate}</th> + <th>{'ws_End'|@translate}</th> + <th>{'ws_Request'|@translate}</th> + <th>{'ws_Limit'|@translate}</th> + <th>{'ws_Comment'|@translate}</th> + </tr> + {foreach from=$access_list item=access name=access_loop} + <tr class="{if $smarty.foreach.access_loop.index is odd}row1{else}row2{/if}"> + <td> + <input type="radio" name="selection" + value="{$access.ID}" id="selection-{$access.ID}"> + </td> + <td><label for="selection-{$access.ID}">{$access.NAME}</label></td> + <td>{$access.TARGET}</td> + <td>{$access.END}</td> + <td>{$access.REQUEST}</td> + <td>{$access.LIMIT}</td> + <td>{$access.COMMENT}</td> + </tr> + {/foreach} + </table> + + <table> + <tr> + <td> + {'ws_delete_legend'|@translate} + </td> + <td> + <input type="radio" name="delete_confirmation" + value="true"> + <input class="submit" type="submit" name="wsX_submit" style="width: 10em; padding-top: 3px;" + value="{'Delete'|@translate}" {$TAG_INPUT_ENABLED}> + </td> + </tr> + </table> + <hr> + <table> + <tr> + <td> + <span class="property"> + <label for="upd_end">{'Modify End from Now +'|@translate} </label> + </span> + <select name="upd_end" id="upd_end" style="width: 10em" + onfocus="this.className='focus';" + onblur="this.className='nofocus';"> + {html_options values=$add_ends output=$add_ends} + </select> + <input class="submit" type="submit" name="wsu_submit" style="width: 10em; padding-top: 3px;" + value="{'Submit'|@translate}" {$TAG_INPUT_ENABLED}> + </td> + <td> + <i><small> ({'Web Services availability duration in days'|@translate})</small></i> + </td> + </tr> + </table> + + </fieldset> +</form> +{/if} + +{if isset($WS_STATUS)} + <h3>{$WS_STATUS}</h3> +{/if} diff --git a/BSF/template/yoga/comments.tpl b/BSF/template/yoga/comments.tpl new file mode 100644 index 000000000..2e2beaf34 --- /dev/null +++ b/BSF/template/yoga/comments.tpl @@ -0,0 +1,99 @@ +{* $Id$ *} +<div id="content" class="content"> + + <div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HOME}" title="{'return to homepage'|@translate}"><img src="{$themeconf.icon_dir}/home.png" class="button" alt="{'home'|@translate}"/></a></li> + </ul> + <h2>{'User comments'|@translate}</h2> + </div> + +<form class="filter" action="{$F_ACTION}" method="get"> + + <fieldset> + <legend>{'Filter'|@translate}</legend> + + <label>{'Keyword'|@translate}<input type="text" name="keyword" value="{$F_KEYWORD}" /></label> + + <label>{'Author'|@translate}<input type="text" name="author" value="{$F_AUTHOR}" /></label> + + <label> + {'Category'|@translate} + <select name="cat"> + <option value="0">------------</option> + {html_options options=$categories selected=$categories_selected} + </select> + </label> + + <label> + {'Since'|@translate} + <select name="since"> + {html_options options=$since_options selected=$since_options_selected} + </select> + </label> + + </fieldset> + + <fieldset> + + <legend>{'Display'|@translate}</legend> + + <label> + {'Sort by'|@translate} + <select name="sort_by"> + {html_options options=$sort_by_options selected=$sort_by_options_selected} + </select> + </label> + + <label> + {'Sort order'|@translate} + <select name="sort_order"> + {html_options options=$sort_order_options selected=$sort_order_options_selected} + </select> + </label> + + <label> + {'Number of items'|@translate} + <select name="items_number"> + {html_options options=$item_number_options selected=$item_number_options_selected} + </select> + </label> + + </fieldset> + + <p><input class="submit" type="submit" value="{'Filter and display'|@translate}"></p> + +</form> + +<div class="navigationBar">{$NAVBAR}</div> + +{if isset($comments)} +<div id="comments"> + + {foreach from=$comments item=comment} + <div class="comment"> + <a class="illustration" href="{$comment.U_PICTURE}"><img src="{$comment.TN_SRC}" alt="{$comment.ALT}" /></a> + <p class="commentHeader"><span class="author">{$comment.AUTHOR}</span> - <span class="date">{$comment.DATE}</span> + + {if isset($comment.U_DELETE)} + <a href="{$comment.U_DELETE}" title="{'comments_del'|@translate}"> + <img src="{$ROOT_URL}{$themeconf.icon_dir}/delete.png" class="button" style="border:none;vertical-align:middle; margin-left:5px;" alt="[{'delete'|@translate}]"/> + </a> + {/if} + + {if isset($comment.U_VALIDATE)} + <a href="{$comment.U_VALIDATE}" title="validate this comment"> + <img src="{$ROOT_URL}{$themeconf.icon_dir}/validate_s.png" class="button" style="border:none;vertical-align:middle; margin-left:5px;" alt="[validate]"/> + </a> + {/if} + + </p> + <blockquote>{$comment.CONTENT}</blockquote> + <hr class="separation"> + </div> + + {/foreach} +</div> +{/if} + +</div> <!-- content --> diff --git a/BSF/template/yoga/content.css b/BSF/template/yoga/content.css new file mode 100644 index 000000000..05e246069 --- /dev/null +++ b/BSF/template/yoga/content.css @@ -0,0 +1,241 @@ +/* $Id$ */ +.content { + margin-right: 1em; + margin-bottom: 1em; /* when it's longer than menu bar */ +} + +BODY#theCommentsPage .content, +BODY#theUploadPage .content, +BODY#theRegisterPage .content, +BODY#theIdentificationPage .content, +BODY#theProfilePage .content, +BODY#theSearchPage .content, +BODY#theAboutPage .content, +BODY#thePopuphelpPage .content, +BODY#thePasswordPage .content, +BODY#theNotificationPage .content, +BODY#theTagsPage .content, +BODY#theNBMPage .content +{ + margin: 1em; +} + +.content H3 { + margin-bottom: 1ex; +} + +.content H2 { margin-bottom: 3px;} /*<- for IE otherwise calendar select is displaced to middle of page*/ + +.content H3 { + text-align: center; +} + +.content .navigationBar, .content .additional_info { + margin: 10px 0; + text-align: center; +} + +.content .pageNumberSelected { + font-style: italic; + font-weight: bold; +} + +.content .additional_info { + font-size: 110%; +} + +.content FORM { + text-align: left; +} + +/* content defaults */ +.content DL, DD { margin: 10px; } +.content DT { + margin-bottom: 5px; + font-style: italic; + font-size: 110%; +} + +/* actions */ +UL.categoryActions { + margin: 0 2px; + width: auto; + padding: 0; + text-indent: 0; + list-style: none; + text-align: center; +} + +.content DIV.titrePage UL.categoryActions { + float: right; + text-align: center; +} + +.content DIV.titrePage { + padding: 0 0 3px; +} + +.content UL.categoryActions LI { + display: inline; +} + +.content UL.categoryActions A IMG, UL.categoryActions A { + border: none; + margin-bottom: -5px; +} + +/* User comments */ + +.content DIV#comments { + padding-left: 5px; + padding-right: 5px; +} +.content DIV.comment { + margin: 0 0 0.5em 0; + padding: 0; + overflow: hidden; /* these 2 lines keep the floating child in the DIV */ + width: 100%; /* don't ask why. It's a very usefull trick */ +} + +.content DIV.comment A.illustration { + display: block; + float: left; + margin: 0.5em 0 0 0.5em; +} + +.content DIV.comment P.commentHeader { + text-align: right; + margin: 0.5em 0.5em 0 0; +} + +.content DIV.comment UL.actions { + text-align: center; + margin: 0.2em; +} + +.content DIV.comment BLOCKQUOTE { + margin-right: 0.5em; + overflow: visible; /*avoid a very strange margin behaviour (all browsers) */ +} + +/* begin chronology/calendar elements*/ +.content DIV.calendarViews { + display: block; + float: right; + margin: 2px 0 0; +} + +.content DIV.calendarBar { margin: 8px 4px; } + +SPAN.calItem, SPAN.calItemEmpty { + font-weight: bold; + margin: 0 1px; +} + +SPAN.calItem A { border:0 } + +.content DIV.calendarCalBar { + margin: 10px 10px; + text-align: left; +} + +SPAN.calCalHead { + font-weight: bold; + font-size: 110%; + margin: 0 2px; +} + +SPAN.calCal { margin: 0 2px; } + +/* nice looking month calendar*/ +TABLE.calMonth { + border: none; + border-collapse: collapse; + margin-bottom: 10px; /*<-IE ignores this */ +} + +TD.calDayCellFull, TD.calDayCellEmpty, TD.calDayCellBlank { + text-align:left; + vertical-align: top; + font: bold 18px Arial, Helvetica, sans-serif; +} + +TD.calDayHead { font: bold 12px Arial, Helvetica, sans-serif; } + +DIV.calImg { + overflow: hidden; + vertical-align: bottom; + z-index: 1; + position: relative; /*<- this required by IE*/ +} + +.calImg img { + position: relative; + border: 0; +} + +.calBackDate { + padding-left: 4px; + padding-top: 0px; + z-index: 2; + position: absolute; + text-align: left; + vertical-align: top; + color: #000; +} + +.calForeDate { + padding-left: 5px; + padding-top: 1px; + z-index: 3; + position: absolute; + text-align: left; + vertical-align: top; + color: #fff; +} + +/* Category thumbnails on main page, CSS code inspired from MOD subcatify */ +.content UL.thumbnailCategories { + margin: 0; + padding: 0; + list-style: none; + text-align: center; + overflow: hidden; + width: 100%; +} + +.content UL.thumbnailCategories LI { + margin:0; + padding:0; + float:left; +} + +.content DIV.thumbnailCategory { + display:block; + padding: 2px 0px 0px 2px; + margin: 5px; +} + +.content DIV.thumbnailCategory DIV.description { + font-size: 90%; + overflow: auto; + /*width: inherit;*/ +} + +.content DIV.thumbnailCategory DIV.description H3 { + text-align: left; + background: transparent; + margin: 0; + padding: 0.1em; + font-size: 120%; +} + +.content DIV.thumbnailCategory DIV.description P { + margin: 0; +} + +.content DIV.thumbnailCategory DIV.illustration { + text-align: left; + margin: 2px 0 0 2px; + float: left; +} diff --git a/BSF/template/yoga/default-colors.css b/BSF/template/yoga/default-colors.css new file mode 100644 index 000000000..1534e4f11 --- /dev/null +++ b/BSF/template/yoga/default-colors.css @@ -0,0 +1,112 @@ +/* $Id$ */ + +/* others */ + +#imageToolBar * { + background: inherit; +} + +/* So that non-links are slightly greyed out */ +.content .navigationBar, SPAN.calItemEmpty, TD.calDayCellEmpty { + color: #b0b0b0; +} + +/* Tables & forms */ + +/* IE <= 6 is so bad with this that you can't merge with the following rule */ +INPUT[type="text"], INPUT[type="password"], INPUT[type="button"], +INPUT[type="submit"], INPUT[type="reset"], INPUT[type="file"] { + color:black; + background-color: #d3d3d3; /* lightgrey */ +} + +INPUT.text, INPUT.password, INPUT.button, +INPUT.submit, INPUT.reset, INPUT.file, +SELECT, TEXTAREA { + color:black; + background-color: #d3d3d3; /* lightgrey */ +} + +INPUT:focus, SELECT:focus, TEXTAREA:focus, INPUT.focus, FORM .focus { + background-color: #f5f5f5; /* whitesmoke */ +} + +/* some theme set a border on INPUT which is not pretty for radio/checkbox */ +INPUT[type="radio"], INPUT[type="checkbox"] { + border: none; /* <= Opera needs this */ +} + +INPUT.radio, INPUT.checkbox { + border: none; /* <= IE6 needs this */ +} + +/* rate buttons displayed like links */ +INPUT.rateButton, INPUT.rateButtonSelected, INPUT.rateButtonStarFull, INPUT.rateButtonStarEmpty { + color:inherit; + background-color:transparent; /* Konqueror doesn't accept transparent here */ +} + +.errors { /* Errors display */ + color: red; + background-color: #ffe1e1; + font-weight: bold; + text-align: left; + margin: 5px; + border: 1px solid red; + background-image: url(icon/admin/errors.png); + background-repeat: no-repeat; + background-position: top right; + padding: 10px 50px 10px 10px; +} + +/** + * Informations box in administration + */ +.infos { + text-align: left; + color: #002000; + background-color: #98fb98; /* palegreen */ + background-image: url(icon/admin/infos.png); + background-repeat: no-repeat; + background-position: top right; + margin: 5px; + padding: 10px 50px 10px 10px; +} + +/** + * Header message like upgrade or adviser mode + */ +.header_msgs { + text-align:center; + font-weight: bold; + color:#696969; /* dimgray */ + background-color: #d3d3d3; + margin: 1px; + padding: 1px; +} + +/** + * Header notes box in public/administration + */ +.header_notes { + border: 1px solid #aaaaaa; /* border color and style */ + text-align: center; + background-image: url(icon/note.png); + background-repeat: no-repeat; + background-position: top left; + font-weight: bold; + margin: 14px; + padding: 5px 00px 0px 0px; +} + +LEGEND { + font-style: italic; +} + +/*calendar*/ +SPAN.calItem, SPAN.calItemEmpty, +TD.calDayCellEmpty, TD.calDayCellFull { + border: 1px solid gray; +} + + diff --git a/BSF/template/yoga/default-layout.css b/BSF/template/yoga/default-layout.css new file mode 100644 index 000000000..c6b229481 --- /dev/null +++ b/BSF/template/yoga/default-layout.css @@ -0,0 +1,270 @@ +/* $Id$ */ +@import "admin/default-layout.css"; +BODY { + margin: 5px; + padding: 0; + font-size: 0.8em; + font-family: Univers, Helvetica, Optima, "Bitstream Vera Sans", sans-serif; + text-align: center; /* be nice to IE5 */ +} + +#the_page { + /* Just in case another template needs an inner frame */ +} + +H1 { + text-align: center; + font-size: 150%; + font-weight: bold; + padding: 0; + margin: 0.5em 0 1em 0; +} + +H2 { + margin: 0; + padding: 5px 0.5em 5px 0.5em; + text-align: left; + font-size: 120%; +} + +A { + text-decoration:none; + border-bottom: 1px dotted #005e89; +} +A:hover { + border-bottom: 1px solid #858460; +} +A.button, A.button:hover { + border: 0; +} +IMG { + border: none; +} + +HR.separation { + visibility: hidden; + clear: both; +} + +#copyright { + clear: both; + font-size: 83%; + text-align: center; + margin: 0 0 10px 0; +} + +/** General defaults **/ +INPUT, SELECT { + margin: 0; + font-size: 1em; /* <= some browsers don't set it correctly */ +} +UL, DL, LI { text-align: left;} +TABLE { /* horizontaly centered */ + margin-left: auto; + margin-right: auto; +} +/* for debugging purpose */ +PRE { text-align:left; } + +/** forms **/ + +FORM { padding: 0em; } + +FORM P { + text-align: center; + margin-top: 2em; + margin-bottom: 2em; +} + +FORM FIELDSET P { + margin-top: 1em; + margin-bottom: 0; +} + +.small { + font-size: 80%; +} + +TEXTAREA.description { + height: 6em; + width: 40em; + overflow: auto; +} + +SELECT.categoryList { + height: 20em; + width: auto; +} + +DIV.comment BLOCKQUOTE { + padding: 0.5em; + overflow: auto; /* no solution for IE6 */ + min-height: 2.75em; /* fix a Gecko bug whith scrollbar and 1 line only */ +} + + +/** + * Filter forms are displayed label by label with the input (or select...) + * below the label. Use an UL to make a group (radiobox for instance). + * Use a SPAN to group objects in line + */ +FIELDSET { + padding: 1em; + margin: 1em; + overflow: hidden; /* <- makes Opera happy */ +} + +FORM.filter FIELDSET UL { + margin: 0; +} +FORM.filter FIELDSET UL, +FORM.filter FIELDSET LABEL { + display: block; + float: left; + margin-right: 1em; + padding: 0; +} + +FORM.filter FIELDSET LI { + list-style: none; + margin-bottom: 0.5em; +} + +FORM.filter FIELDSET LI LABEL { + display: inline; + float: none; +} + +FORM.filter FIELDSET UL.tagSelection LABEL { + display: inline; + float: none; + margin-right:0.5em;/*reduce from above*/ +} + +/* cannot use FIELDSET>LABEL because of IE<=6 */ +FORM.filter FIELDSET LABEL INPUT, +FORM.filter FIELDSET LABEL SELECT, +FORM.filter FIELDSET LABEL SPAN, +FORM.filter FIELDSET LABEL TEXTAREA { + display: block; + margin: 0.5em 0; +} +FORM.filter FIELDSET * LABEL INPUT, +FORM.filter FIELDSET * LABEL SELECT, +FORM.filter FIELDSET * LABEL TEXTAREA, +FORM.filter FIELDSET LABEL SPAN INPUT, +FORM.filter FIELDSET LABEL SPAN SELECT, +FORM.filter FIELDSET LABEL SPAN TEXTAREA { + display: inline; + vertical-align: top; + margin: 0 0.5em 0 0; +} + +FORM.filter FIELDSET UL.tagSelection LI LABEL INPUT { + margin-right:0; +} + +/* following declaration is important to avoid strange FF behaviour */ +FORM.filter FIELDSET LABEL SPAN SELECT { + margin: 0; +} + +FORM.filter FIELDSET P +{ + clear: left; + display: block; +} + +FORM.filter INPUT[type="submit"] { + margin-top: 1em; +} + +FORM.properties UL, FORM#update UL { + list-style-type: none; + margin: 0; + padding: 0; +} + +FORM.properties LI, FORM#update UL { + margin-bottom: 0.5em; + padding: 0; + line-height: 1.8em; + clear: left; +} + +FORM.properties SPAN.property { + font-weight: bold; + float: left; + width: 50%; + text-align: right; + margin: 0; + padding: 0 0.5em 0 0; +} + +#theHeader H1 { + margin-bottom: 0.5em; +} + +/* button tools */ +UL.actions { + text-indent: 0; + list-style: none; +} +UL.actions LI { + display: inline; +} +UL.actions A { + border: none; +} + +UL.tagSelection { + width: 99%; + margin: 1em 0 1em 0; + padding: 0; +} + +UL.tagSelection LI { + display: inline; + white-space: nowrap; +} + +#fullTagCloud { + font-size: 120%; + text-align: justify; + padding: 0; + margin: 1em 2em 1em 2em; +} + +#fullTagCloud LI { + display: inline; + white-space: nowrap; + margin: 0 2px; +} + + +.tagLevel5 { font-size: 150%; } +.tagLevel4 { font-size: 140%; } +.tagLevel3 { font-size: 120%; } +.tagLevel2 { font-size: 100%; } +.tagLevel1 { font-size: 90%; } + + +/* Popup help page */ +BODY#thePopuphelpPage #copyright { + display: none; +} + +BODY#thePopuphelpPage .content P { + text-align: justify; + padding: 0.5em; +} + +BODY#thePopuphelpPage .content OL LI, +BODY#thePopuphelpPage .content UL LI +{ + margin-bottom: 0.5em; +} + +BODY#thePopuphelpPage P#pageBottomActions A { + border: none; +} diff --git a/BSF/template/yoga/fix-ie5-ie6.css b/BSF/template/yoga/fix-ie5-ie6.css new file mode 100644 index 000000000..b78bc7bf4 --- /dev/null +++ b/BSF/template/yoga/fix-ie5-ie6.css @@ -0,0 +1,23 @@ +/* $Id$ */ +/* Issues in IE from 5 to 6 only not to be used with IE7 */ + +@import "thumbnails-fix-ie5-ie6.css"; + +/* to avoid vanishing objects in IE6 */ +H1, #theHeader { + width: 100%; /* <- useless but seems to make IE6 happy */ +} +.content { + height: 1em; /* for IE6 it's like min-height */ +} + +/* fix category thumbnails on main page */ +.content UL.thumbnailCategories { + width: 99%; /* buggy IE box model */ +} + + +/* fix quickconnect layout */ +FORM#quickconnect FIELDSET { + width: 99%; /* correct an ugly 1 or 2 px misalignement with IE */ +} diff --git a/BSF/template/yoga/fix-ie7.css b/BSF/template/yoga/fix-ie7.css new file mode 100644 index 000000000..33599dd18 --- /dev/null +++ b/BSF/template/yoga/fix-ie7.css @@ -0,0 +1,22 @@ +/* $Id$ */ +/* fix IE with another layout for thumbnails */ + +.content UL.thumbnails SPAN.wrap2 { + display: block; + position: relative; + text-align: left; +} +.content UL.thumbnails SPAN.wrap2 A, +.content UL.thumbnails SPAN.wrap2 SPAN { + overflow: visible; + position: absolute; + top: 50%; + text-align: center; +} + +.content UL.thumbnails IMG.thumbnail { + position: relative; + top: -50%; + margin-top: 2%; +} + diff --git a/BSF/template/yoga/fix-khtml.css b/BSF/template/yoga/fix-khtml.css new file mode 100644 index 000000000..29ffd1877 --- /dev/null +++ b/BSF/template/yoga/fix-khtml.css @@ -0,0 +1,20 @@ +/* $Id$ */ +/* Issue in Safari/Konqueror only */ +/* If H2 has a 0 margin-top categoryActions doesn't float right but overwrites H2 */ +.content>DIV.titrePage>H2 { + margin: 1px 0 0 0; /* add an arbitrary margin-top */ +} + +.content>div.titrePage { + position: relative; + top: -1px; /* move the container up by the same amount */ + margin-bottom: 5px; +} + +#menubar #menuTagCloud LI +{ + display: inline-block;/* required for Safari 3.1 - otherwise overflows on the right */ +} + +/* end Safari/Konqueror */ + diff --git a/BSF/template/yoga/footer.tpl b/BSF/template/yoga/footer.tpl new file mode 100644 index 000000000..fff70e1f1 --- /dev/null +++ b/BSF/template/yoga/footer.tpl @@ -0,0 +1,32 @@ +{* $Id$ *} +<div id="copyright"> + <a name="EoP"></a> <!-- End of Page --> + {if isset($debug.TIME) } + {'generation_time'|@translate} {$debug.TIME} ({$debug.NB_QUERIES} {'sql_queries_in'|@translate} {$debug.SQL_TIME}) - + {/if} + + {* Please, do not remove this copyright. If you really want to, + contact us on http://piwigo.org to find a solution on how + to show the origin of the script... + *} + + {'powered_by'|@translate} + <a href="http://piwigo.org" class="PWG"> + <span class="P">Php</span><span class="W">Web</span><span class="G">Gallery</span></a> + {$VERSION} + {if isset($CONTACT_MAIL)} + - {'send_mail'|@translate} + <a href="mailto:{$CONTACT_MAIL}?subject={'title_send_mail'|@translate|@escape:url}">{'Webmaster'|@translate}</a> + {/if} + +</div> <!-- copyright --> +{if isset($footer_elements)} +{foreach from=$footer_elements item=v} +{$v} +{/foreach} +{/if} +</div> <!-- the_page --> + +{if isset($debug.QUERIES_LIST)}{$debug.QUERIES_LIST}{/if} +</body> +</html>
\ No newline at end of file diff --git a/BSF/template/yoga/header.tpl b/BSF/template/yoga/header.tpl new file mode 100644 index 000000000..d0bec5e61 --- /dev/null +++ b/BSF/template/yoga/header.tpl @@ -0,0 +1,84 @@ +{* $Id$ *} +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" +"http://www.w3.org/TR/html4/strict.dtd"> +<html lang="{$LANG}" dir="{$DIR}"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset={$CONTENT_ENCODING}"> +<meta name="generator" content="Piwigo (aka PWG), see piwigo.org"> +<title>{$GALLERY_TITLE} :: {$PAGE_TITLE}</title> +<link rel="shortcut icon" type="image/x-icon" href="{$ROOT_URL}template-common/favicon.ico"> + +<link rel="start" title="{'home'|@translate}" href="{$U_HOME}" > +<link rel="search" title="{'Search'|@translate}" href="{$ROOT_URL}search.php" > +{if isset($first.U_IMG) }<link rel="first" title="{'first_page'|@translate}" href="{$first.U_IMG}" >{/if} +{if isset($previous.U_IMG)}<link rel="prev" title="{'previous_page'|@translate}" href="{$previous.U_IMG}" >{/if} +{if isset($next.U_IMG) }<link rel="next" title="{'next_page'|@translate}" href="{$next.U_IMG}" >{/if} +{if isset($last.U_IMG) }<link rel="last" title="{'last_page'|@translate}" href="{$last.U_IMG}" >{/if} +{if isset($U_UP) }<link rel="up" title="{'thumbnails'|@translate}" href="{$U_UP}" >{/if} + +<link rel="stylesheet" type="text/css" href="{$ROOT_URL}template/{$themeconf.template}/layout.css"> +{* the next css is used to fix khtml (Konqueror/Safari) issue the "text/nonsense" prevents gecko based browsers to load it *} +<link rel="stylesheet" type="text/nonsense" href="{$ROOT_URL}template/{$themeconf.template}/fix-khtml.css"> +<!--[if lt IE 7]> + <link rel="stylesheet" type="text/css" href="{$ROOT_URL}template/{$themeconf.template}/fix-ie5-ie6.css"> +<![endif]--> +<!--[if gt IE 6]> + <link rel="stylesheet" type="text/css" href="{$ROOT_URL}template/{$themeconf.template}/fix-ie7.css"> +<![endif]--> +<!--[if !IE]> <--> + <link rel="stylesheet" href="{$ROOT_URL}template/{$themeconf.template}/not-ie.css" type="text/css"> +<!--> <![endif]--> +<link rel="stylesheet" type="text/css" media="print" href="{$ROOT_URL}template/{$themeconf.template}/print.css"> +<link rel="stylesheet" type="text/css" href="{$ROOT_URL}template/{$themeconf.template}/default-colors.css"> +<link rel="stylesheet" type="text/css" href="{$ROOT_URL}template/{$themeconf.template}/theme/{$themeconf.theme}/theme.css"> +{$themeconf.local_head} +{if isset($U_PREFETCH) }<link rel="prefetch" href="{$U_PREFETCH}">{/if} + +{if not empty($page_refresh) }<meta http-equiv="refresh" content="{$page_refresh.TIME};url={$page_refresh.U_REFRESH}">{/if} + +<script type="text/javascript" src="{$ROOT_URL}template-common/scripts.js"></script> +<!--[if lt IE 7]> +<style> + {* only because we need {$ROOT_URL} otherwise use fix-ie5-ie6.css *} + BODY {ldelim} behavior:url("{$ROOT_URL}template-common/csshover.htc"); } + A IMG, .button, .icon {ldelim} + behavior:url("{$ROOT_URL}template-common/tooltipfix.htc"); + } + FORM {ldelim} behavior: url("{$ROOT_URL}template-common/inputfix.htc"); } +</style> +<script type="text/javascript" src="{$ROOT_URL}template-common/pngfix.js"></script> +<![endif]--> + +{if not empty($head_elements)} + {foreach from=$head_elements item=elt}{$elt}{/foreach} +{/if} + +</head> + +<body id="{$BODY_ID}"> +<div id="the_page"> + +{if not empty($header_msgs)} +<div class="header_msgs"> + {foreach from=$header_msgs item=elt} + <p>{$elt}</p> + {/foreach} +</div> +{/if} + +<div id="theHeader">{$PAGE_BANNER}</div> +{if isset($pwgmenu)} +<ul class="pwgmenu"> + <li><a href="{$pwgmenu.HOME}" onclick="window.open(this.href, ''); return false;"><span class="bg">{'HOME'|@translate}</span></a></li> + <li><a href="{$pwgmenu.WIKI}" onclick="window.open(this.href, ''); return false;"><span class="bg">{'WIKI / DOC'|@translate}</span></a></li> + <li><a href="{$pwgmenu.FORUM}" onclick="window.open(this.href, ''); return false;"><span class="bg">{'FORUM'|@translate}</span></a></li> + <li><a href="{$pwgmenu.EXTENSIONS}" onclick="window.open(this.href, ''); return false;"><span class="bg">{'EXTENSIONS'|@translate}</span></a></li> +</ul> +{/if} +{if not empty($header_notes)} +<div class="header_notes"> + {foreach from=$header_notes item=elt} + <p>{$elt}</p> + {/foreach} +</div> +{/if} diff --git a/BSF/template/yoga/icon/add_tag.png b/BSF/template/yoga/icon/add_tag.png Binary files differnew file mode 100644 index 000000000..9051a1d26 --- /dev/null +++ b/BSF/template/yoga/icon/add_tag.png diff --git a/BSF/template/yoga/icon/admin/errors.png b/BSF/template/yoga/icon/admin/errors.png Binary files differnew file mode 100644 index 000000000..3c8a37df5 --- /dev/null +++ b/BSF/template/yoga/icon/admin/errors.png diff --git a/BSF/template/yoga/icon/admin/index.php b/BSF/template/yoga/icon/admin/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/icon/admin/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/icon/admin/infos.png b/BSF/template/yoga/icon/admin/infos.png Binary files differnew file mode 100644 index 000000000..dc8c8a457 --- /dev/null +++ b/BSF/template/yoga/icon/admin/infos.png diff --git a/BSF/template/yoga/icon/admin/plugin_active.gif b/BSF/template/yoga/icon/admin/plugin_active.gif Binary files differnew file mode 100644 index 000000000..fe49227da --- /dev/null +++ b/BSF/template/yoga/icon/admin/plugin_active.gif diff --git a/BSF/template/yoga/icon/admin/plugin_inactive.gif b/BSF/template/yoga/icon/admin/plugin_inactive.gif Binary files differnew file mode 100644 index 000000000..19d551865 --- /dev/null +++ b/BSF/template/yoga/icon/admin/plugin_inactive.gif diff --git a/BSF/template/yoga/icon/caddie_add.png b/BSF/template/yoga/icon/caddie_add.png Binary files differnew file mode 100644 index 000000000..eb20f4e06 --- /dev/null +++ b/BSF/template/yoga/icon/caddie_add.png diff --git a/BSF/template/yoga/icon/calendar.png b/BSF/template/yoga/icon/calendar.png Binary files differnew file mode 100644 index 000000000..e0a44a13d --- /dev/null +++ b/BSF/template/yoga/icon/calendar.png diff --git a/BSF/template/yoga/icon/calendar_created.png b/BSF/template/yoga/icon/calendar_created.png Binary files differnew file mode 100644 index 000000000..14a84c43c --- /dev/null +++ b/BSF/template/yoga/icon/calendar_created.png diff --git a/BSF/template/yoga/icon/category_children.png b/BSF/template/yoga/icon/category_children.png Binary files differnew file mode 100644 index 000000000..7205c3f61 --- /dev/null +++ b/BSF/template/yoga/icon/category_children.png diff --git a/BSF/template/yoga/icon/category_delete.png b/BSF/template/yoga/icon/category_delete.png Binary files differnew file mode 100644 index 000000000..da796da11 --- /dev/null +++ b/BSF/template/yoga/icon/category_delete.png diff --git a/BSF/template/yoga/icon/category_edit.png b/BSF/template/yoga/icon/category_edit.png Binary files differnew file mode 100644 index 000000000..0f3b619ed --- /dev/null +++ b/BSF/template/yoga/icon/category_edit.png diff --git a/BSF/template/yoga/icon/category_elements.png b/BSF/template/yoga/icon/category_elements.png Binary files differnew file mode 100644 index 000000000..1d367b38f --- /dev/null +++ b/BSF/template/yoga/icon/category_elements.png diff --git a/BSF/template/yoga/icon/category_jump-to.png b/BSF/template/yoga/icon/category_jump-to.png Binary files differnew file mode 100644 index 000000000..62db1f4ee --- /dev/null +++ b/BSF/template/yoga/icon/category_jump-to.png diff --git a/BSF/template/yoga/icon/category_permissions.png b/BSF/template/yoga/icon/category_permissions.png Binary files differnew file mode 100644 index 000000000..4780841ae --- /dev/null +++ b/BSF/template/yoga/icon/category_permissions.png diff --git a/BSF/template/yoga/icon/category_representant_random.png b/BSF/template/yoga/icon/category_representant_random.png Binary files differnew file mode 100644 index 000000000..dfa69846f --- /dev/null +++ b/BSF/template/yoga/icon/category_representant_random.png diff --git a/BSF/template/yoga/icon/check.png b/BSF/template/yoga/icon/check.png Binary files differnew file mode 100644 index 000000000..d9abf2763 --- /dev/null +++ b/BSF/template/yoga/icon/check.png diff --git a/BSF/template/yoga/icon/dec_period.png b/BSF/template/yoga/icon/dec_period.png Binary files differnew file mode 100644 index 000000000..107cd16ec --- /dev/null +++ b/BSF/template/yoga/icon/dec_period.png diff --git a/BSF/template/yoga/icon/dec_period_unactive.png b/BSF/template/yoga/icon/dec_period_unactive.png Binary files differnew file mode 100644 index 000000000..5bc67affd --- /dev/null +++ b/BSF/template/yoga/icon/dec_period_unactive.png diff --git a/BSF/template/yoga/icon/del_favorite.png b/BSF/template/yoga/icon/del_favorite.png Binary files differnew file mode 100644 index 000000000..cfc609749 --- /dev/null +++ b/BSF/template/yoga/icon/del_favorite.png diff --git a/BSF/template/yoga/icon/delete.png b/BSF/template/yoga/icon/delete.png Binary files differnew file mode 100644 index 000000000..af10be03e --- /dev/null +++ b/BSF/template/yoga/icon/delete.png diff --git a/BSF/template/yoga/icon/edit_s.png b/BSF/template/yoga/icon/edit_s.png Binary files differnew file mode 100644 index 000000000..e4951d22f --- /dev/null +++ b/BSF/template/yoga/icon/edit_s.png diff --git a/BSF/template/yoga/icon/exit.png b/BSF/template/yoga/icon/exit.png Binary files differnew file mode 100644 index 000000000..2aafbb4cb --- /dev/null +++ b/BSF/template/yoga/icon/exit.png diff --git a/BSF/template/yoga/icon/favorite.png b/BSF/template/yoga/icon/favorite.png Binary files differnew file mode 100644 index 000000000..58befd9e3 --- /dev/null +++ b/BSF/template/yoga/icon/favorite.png diff --git a/BSF/template/yoga/icon/first.png b/BSF/template/yoga/icon/first.png Binary files differnew file mode 100644 index 000000000..2b8db1cff --- /dev/null +++ b/BSF/template/yoga/icon/first.png diff --git a/BSF/template/yoga/icon/first_unactive.png b/BSF/template/yoga/icon/first_unactive.png Binary files differnew file mode 100644 index 000000000..f0c0364f2 --- /dev/null +++ b/BSF/template/yoga/icon/first_unactive.png diff --git a/BSF/template/yoga/icon/flat.png b/BSF/template/yoga/icon/flat.png Binary files differnew file mode 100644 index 000000000..43584e825 --- /dev/null +++ b/BSF/template/yoga/icon/flat.png diff --git a/BSF/template/yoga/icon/help.png b/BSF/template/yoga/icon/help.png Binary files differnew file mode 100644 index 000000000..c76f68292 --- /dev/null +++ b/BSF/template/yoga/icon/help.png diff --git a/BSF/template/yoga/icon/home.png b/BSF/template/yoga/icon/home.png Binary files differnew file mode 100644 index 000000000..cce450d85 --- /dev/null +++ b/BSF/template/yoga/icon/home.png diff --git a/BSF/template/yoga/icon/inc_period.png b/BSF/template/yoga/icon/inc_period.png Binary files differnew file mode 100644 index 000000000..28fef3d1b --- /dev/null +++ b/BSF/template/yoga/icon/inc_period.png diff --git a/BSF/template/yoga/icon/inc_period_unactive.png b/BSF/template/yoga/icon/inc_period_unactive.png Binary files differnew file mode 100644 index 000000000..f45507dce --- /dev/null +++ b/BSF/template/yoga/icon/inc_period_unactive.png diff --git a/BSF/template/yoga/icon/index.php b/BSF/template/yoga/icon/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/icon/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/icon/last.png b/BSF/template/yoga/icon/last.png Binary files differnew file mode 100644 index 000000000..12e1367a7 --- /dev/null +++ b/BSF/template/yoga/icon/last.png diff --git a/BSF/template/yoga/icon/last_unactive.png b/BSF/template/yoga/icon/last_unactive.png Binary files differnew file mode 100644 index 000000000..90469d5c4 --- /dev/null +++ b/BSF/template/yoga/icon/last_unactive.png diff --git a/BSF/template/yoga/icon/left.png b/BSF/template/yoga/icon/left.png Binary files differnew file mode 100644 index 000000000..63d306c9c --- /dev/null +++ b/BSF/template/yoga/icon/left.png diff --git a/BSF/template/yoga/icon/left_unactive.png b/BSF/template/yoga/icon/left_unactive.png Binary files differnew file mode 100644 index 000000000..0aefc64e4 --- /dev/null +++ b/BSF/template/yoga/icon/left_unactive.png diff --git a/BSF/template/yoga/icon/lost_password.png b/BSF/template/yoga/icon/lost_password.png Binary files differnew file mode 100644 index 000000000..ad6d71422 --- /dev/null +++ b/BSF/template/yoga/icon/lost_password.png diff --git a/BSF/template/yoga/icon/metadata.png b/BSF/template/yoga/icon/metadata.png Binary files differnew file mode 100644 index 000000000..d5d8fa6dc --- /dev/null +++ b/BSF/template/yoga/icon/metadata.png diff --git a/BSF/template/yoga/icon/mimetypes/avi.png b/BSF/template/yoga/icon/mimetypes/avi.png Binary files differnew file mode 100644 index 000000000..065f0b282 --- /dev/null +++ b/BSF/template/yoga/icon/mimetypes/avi.png diff --git a/BSF/template/yoga/icon/mimetypes/index.php b/BSF/template/yoga/icon/mimetypes/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/icon/mimetypes/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/icon/mimetypes/mp3.png b/BSF/template/yoga/icon/mimetypes/mp3.png Binary files differnew file mode 100644 index 000000000..afb7e1b0a --- /dev/null +++ b/BSF/template/yoga/icon/mimetypes/mp3.png diff --git a/BSF/template/yoga/icon/mimetypes/mpg.png b/BSF/template/yoga/icon/mimetypes/mpg.png Binary files differnew file mode 100644 index 000000000..f7dbd2388 --- /dev/null +++ b/BSF/template/yoga/icon/mimetypes/mpg.png diff --git a/BSF/template/yoga/icon/mimetypes/ogg.png b/BSF/template/yoga/icon/mimetypes/ogg.png Binary files differnew file mode 100644 index 000000000..ead3f62c3 --- /dev/null +++ b/BSF/template/yoga/icon/mimetypes/ogg.png diff --git a/BSF/template/yoga/icon/mimetypes/zip.png b/BSF/template/yoga/icon/mimetypes/zip.png Binary files differnew file mode 100644 index 000000000..1f08fe1a3 --- /dev/null +++ b/BSF/template/yoga/icon/mimetypes/zip.png diff --git a/BSF/template/yoga/icon/normal_mode.png b/BSF/template/yoga/icon/normal_mode.png Binary files differnew file mode 100644 index 000000000..92d27a234 --- /dev/null +++ b/BSF/template/yoga/icon/normal_mode.png diff --git a/BSF/template/yoga/icon/note.png b/BSF/template/yoga/icon/note.png Binary files differnew file mode 100644 index 000000000..5849f791b --- /dev/null +++ b/BSF/template/yoga/icon/note.png diff --git a/BSF/template/yoga/icon/page_end.png b/BSF/template/yoga/icon/page_end.png Binary files differnew file mode 100644 index 000000000..c8f54fb91 --- /dev/null +++ b/BSF/template/yoga/icon/page_end.png diff --git a/BSF/template/yoga/icon/page_top.png b/BSF/template/yoga/icon/page_top.png Binary files differnew file mode 100644 index 000000000..8b18f13c3 --- /dev/null +++ b/BSF/template/yoga/icon/page_top.png diff --git a/BSF/template/yoga/icon/pause.png b/BSF/template/yoga/icon/pause.png Binary files differnew file mode 100644 index 000000000..6a3928c51 --- /dev/null +++ b/BSF/template/yoga/icon/pause.png diff --git a/BSF/template/yoga/icon/permissions.png b/BSF/template/yoga/icon/permissions.png Binary files differnew file mode 100644 index 000000000..33091eb85 --- /dev/null +++ b/BSF/template/yoga/icon/permissions.png diff --git a/BSF/template/yoga/icon/play.png b/BSF/template/yoga/icon/play.png Binary files differnew file mode 100644 index 000000000..dfde7e96a --- /dev/null +++ b/BSF/template/yoga/icon/play.png diff --git a/BSF/template/yoga/icon/preferences.png b/BSF/template/yoga/icon/preferences.png Binary files differnew file mode 100644 index 000000000..0f3b619ed --- /dev/null +++ b/BSF/template/yoga/icon/preferences.png diff --git a/BSF/template/yoga/icon/rating-stars.gif b/BSF/template/yoga/icon/rating-stars.gif Binary files differnew file mode 100644 index 000000000..535443e06 --- /dev/null +++ b/BSF/template/yoga/icon/rating-stars.gif diff --git a/BSF/template/yoga/icon/recent.png b/BSF/template/yoga/icon/recent.png Binary files differnew file mode 100644 index 000000000..78c1428ca --- /dev/null +++ b/BSF/template/yoga/icon/recent.png diff --git a/BSF/template/yoga/icon/recent_by_child.png b/BSF/template/yoga/icon/recent_by_child.png Binary files differnew file mode 100644 index 000000000..48e2b4bf7 --- /dev/null +++ b/BSF/template/yoga/icon/recent_by_child.png diff --git a/BSF/template/yoga/icon/register.png b/BSF/template/yoga/icon/register.png Binary files differnew file mode 100644 index 000000000..d1dd3c834 --- /dev/null +++ b/BSF/template/yoga/icon/register.png diff --git a/BSF/template/yoga/icon/remove_s.png b/BSF/template/yoga/icon/remove_s.png Binary files differnew file mode 100644 index 000000000..c78c38f17 --- /dev/null +++ b/BSF/template/yoga/icon/remove_s.png diff --git a/BSF/template/yoga/icon/representative.png b/BSF/template/yoga/icon/representative.png Binary files differnew file mode 100644 index 000000000..f1141d91b --- /dev/null +++ b/BSF/template/yoga/icon/representative.png diff --git a/BSF/template/yoga/icon/right.png b/BSF/template/yoga/icon/right.png Binary files differnew file mode 100644 index 000000000..f998098e4 --- /dev/null +++ b/BSF/template/yoga/icon/right.png diff --git a/BSF/template/yoga/icon/right_unactive.png b/BSF/template/yoga/icon/right_unactive.png Binary files differnew file mode 100644 index 000000000..cf2f9614c --- /dev/null +++ b/BSF/template/yoga/icon/right_unactive.png diff --git a/BSF/template/yoga/icon/save.png b/BSF/template/yoga/icon/save.png Binary files differnew file mode 100644 index 000000000..b4b9da08b --- /dev/null +++ b/BSF/template/yoga/icon/save.png diff --git a/BSF/template/yoga/icon/search_rules.png b/BSF/template/yoga/icon/search_rules.png Binary files differnew file mode 100644 index 000000000..300186647 --- /dev/null +++ b/BSF/template/yoga/icon/search_rules.png diff --git a/BSF/template/yoga/icon/start_filter.png b/BSF/template/yoga/icon/start_filter.png Binary files differnew file mode 100644 index 000000000..3d81a4d2e --- /dev/null +++ b/BSF/template/yoga/icon/start_filter.png diff --git a/BSF/template/yoga/icon/start_repeat.png b/BSF/template/yoga/icon/start_repeat.png Binary files differnew file mode 100644 index 000000000..74272979e --- /dev/null +++ b/BSF/template/yoga/icon/start_repeat.png diff --git a/BSF/template/yoga/icon/start_slideshow.png b/BSF/template/yoga/icon/start_slideshow.png Binary files differnew file mode 100644 index 000000000..9733eb445 --- /dev/null +++ b/BSF/template/yoga/icon/start_slideshow.png diff --git a/BSF/template/yoga/icon/stop_filter.png b/BSF/template/yoga/icon/stop_filter.png Binary files differnew file mode 100644 index 000000000..1ff012e96 --- /dev/null +++ b/BSF/template/yoga/icon/stop_filter.png diff --git a/BSF/template/yoga/icon/stop_repeat.png b/BSF/template/yoga/icon/stop_repeat.png Binary files differnew file mode 100644 index 000000000..f1cc1b564 --- /dev/null +++ b/BSF/template/yoga/icon/stop_repeat.png diff --git a/BSF/template/yoga/icon/stop_slideshow.png b/BSF/template/yoga/icon/stop_slideshow.png Binary files differnew file mode 100644 index 000000000..7b8d3ac26 --- /dev/null +++ b/BSF/template/yoga/icon/stop_slideshow.png diff --git a/BSF/template/yoga/icon/sync_metadata.png b/BSF/template/yoga/icon/sync_metadata.png Binary files differnew file mode 100644 index 000000000..03570ead6 --- /dev/null +++ b/BSF/template/yoga/icon/sync_metadata.png diff --git a/BSF/template/yoga/icon/toggle_is_default_group.png b/BSF/template/yoga/icon/toggle_is_default_group.png Binary files differnew file mode 100644 index 000000000..9eaa3c601 --- /dev/null +++ b/BSF/template/yoga/icon/toggle_is_default_group.png diff --git a/BSF/template/yoga/icon/uncheck.png b/BSF/template/yoga/icon/uncheck.png Binary files differnew file mode 100644 index 000000000..2f7df3503 --- /dev/null +++ b/BSF/template/yoga/icon/uncheck.png diff --git a/BSF/template/yoga/icon/up.png b/BSF/template/yoga/icon/up.png Binary files differnew file mode 100644 index 000000000..0c9cda5b1 --- /dev/null +++ b/BSF/template/yoga/icon/up.png diff --git a/BSF/template/yoga/icon/validate_s.png b/BSF/template/yoga/icon/validate_s.png Binary files differnew file mode 100644 index 000000000..400bf8a24 --- /dev/null +++ b/BSF/template/yoga/icon/validate_s.png diff --git a/BSF/template/yoga/icon/virt_category.png b/BSF/template/yoga/icon/virt_category.png Binary files differnew file mode 100644 index 000000000..15f4f2267 --- /dev/null +++ b/BSF/template/yoga/icon/virt_category.png diff --git a/BSF/template/yoga/identification.tpl b/BSF/template/yoga/identification.tpl new file mode 100644 index 000000000..71ba02750 --- /dev/null +++ b/BSF/template/yoga/identification.tpl @@ -0,0 +1,71 @@ +{* $Id$ *} +<div id="content" class="content"> + + <div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_LOST_PASSWORD}" title="{'Forgot your password?'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/lost_password.png" class="button" alt="{'Forgot your password?'|@translate}"></a></li> + {if isset($U_REGISTER) } + <li><a href="{$U_REGISTER}" title="{'Create a new account'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/register.png" class="button" alt="{'Register'|@translate}"/></a></li> + {/if} + <li><a href="{$U_HOME}" title="{'Go through the gallery as a visitor'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/home.png" class="button" alt="{'home'|@translate}"/></a></li> + </ul> + <h2>{'Identification'|@translate}</h2> + </div> + + {if isset($errors) } + <div class="errors"> + <ul> + {foreach from=$errors item=error} + <li>{$error}</li> + {/foreach} + </ul> + </div> + {/if} + +<form action="{$F_LOGIN_ACTION}" method="post" name="login_form" class="properties"> + <fieldset> + <legend>{'Connection settings'|@translate}</legend> + + <input type="hidden" name="redirect" value="{$U_REDIRECT}"> + + <ul> + <li> + <span class="property"> + <label for="username">{'Username'|@translate}</label> + </span> + <input tabindex="1" class="login" type="text" name="username" id="username" size="25" maxlength="40" /> + </li> + + <li> + <span class="property"> + <label for="password">{'Password'|@translate}</label> + </span> + <input tabindex="2" class="login" type="password" name="password" id="password" size="25" maxlength="25" /> + </li> + + {if $authorize_remembering } + <li> + <span class="property"> + <label for="remember_me">{'remember_me'|@translate}</label> + </span> + <input tabindex="3" type="checkbox" name="remember_me" id="remember_me" value="1"> + </li> + {/if} + </ul> + </fieldset> + + <p><input class="submit" tabindex="4" type="submit" name="login" value="{'Submit'|@translate}"></p> +</form> + +<script type="text/javascript"><!-- +document.login_form.username.focus(); +//--></script> + + <p> + {if isset($U_REGISTER) } + <a href="{$U_REGISTER}" title="{'Create a new account'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/register.png" class="button" alt="{'Register'|@translate}"> {'Register'|@translate}</a> + {/if} + <a href="{$U_LOST_PASSWORD}" title="{'Forgot your password?'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/lost_password.png" class="button" alt="{'Forgot your password?'|@translate}"> {'Forgot your password?'|@translate}</a> + </p> + +</div> <!-- content --> diff --git a/BSF/template/yoga/index.php b/BSF/template/yoga/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/index.tpl b/BSF/template/yoga/index.tpl new file mode 100644 index 000000000..814cce81f --- /dev/null +++ b/BSF/template/yoga/index.tpl @@ -0,0 +1,119 @@ +{* $Id$ *} +{$MENUBAR} +{if !empty($PLUGIN_INDEX_CONTENT_BEFORE)}{$PLUGIN_INDEX_CONTENT_BEFORE}{/if} +<div id="content" class="content"> + <div class="titrePage"> + <ul class="categoryActions"> + <li> </li> + {if !empty($image_orders) } + <li> + {'Sort order'|@translate}: + <select onchange="document.location = this.options[this.selectedIndex].value;"> + {foreach from=$image_orders item=image_order } + <option value="{$image_order.URL}"{if $image_order.SELECTED} selected="selected"{/if}}>{$image_order.DISPLAY}</option> + {/foreach} + </select> + </li> + {/if} + + {if isset($U_CADDIE) } + <li><a href="{$U_CADDIE}" title="{'add to caddie'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/caddie_add.png" class="button" alt="{'caddie'|@translate}"/></a></li> + {/if} + + {if isset($U_EDIT) } + <li><a href="{$U_EDIT}" title="{'edit category informations'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/category_edit.png" class="button" alt="{'edit'|@translate}"/></a></li> + {/if} + + {if isset($U_SEARCH_RULES) } + <li><a href="{$U_SEARCH_RULES}" style="border:none;" onclick="popuphelp(this.href); return false;" title="{'Search rules'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/search_rules.png" class="button" alt="(?)"></a></li> + {/if} + + {if isset($U_SLIDESHOW) } + <li><a href="{$U_SLIDESHOW}" title="{'slideshow'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/start_slideshow.png" class="button" alt="{'slideshow'|@translate}"/></a></li> + {/if} + + {if isset($U_MODE_FLAT) } + <li><a href="{$U_MODE_FLAT}" title="{'mode_flat_hint'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/flat.png" class="button" alt="{'mode_flat_hint'|@translate}"></a></li> + {/if} + + {if isset($U_MODE_NORMAL) } + <li><a href="{$U_MODE_NORMAL}" title="{'mode_normal_hint'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/normal_mode.png" class="button" alt="{'mode_normal_hint'|@translate}"></a></li> + {/if} + + {if isset($U_MODE_POSTED) } + <li><a href="{$U_MODE_POSTED}" title="{'mode_posted_hint'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/calendar.png" class="button" alt="{'mode_posted_hint'|@translate}"></a></li> + {/if} + + {if isset($U_MODE_CREATED) } + <li><a href="{$U_MODE_CREATED}" title="{'mode_created_hint'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/calendar_created.png" class="button" alt="{'mode_created_hint'|@translate}"></a></li> + {/if} + + {if !empty($PLUGIN_INDEX_ACTIONS)}{$PLUGIN_INDEX_ACTIONS}{/if} + </ul> + + <h2>{$TITLE}</h2> + + {if isset($chronology_views) } + <div class="calendarViews">{'calendar_view'|@translate}: + <select onchange="document.location = this.options[this.selectedIndex].value;"> + {foreach from=$chronology_views item=view} + <option value="{$view.VALUE}"{if $view.SELECTED} selected="selected"{/if}>{$view.CONTENT}</option> + {/foreach} + </select> + </div> + {/if} + + {if isset($chronology.TITLE) } + <h2>{$chronology.TITLE}</h2> + {/if} + + </div> <!-- titrePage --> + +{if !empty($PLUGIN_INDEX_CONTENT_BEGIN)}{$PLUGIN_INDEX_CONTENT_BEGIN}{/if} + +{if !empty($category_search_results) } +<div style="font-size:16px;text-align:left;margin:10px">{'Category results for'|@translate} <strong>{$QUERY_SEARCH}</strong> : + <em><strong> + {foreach from=$category_search_results item=res name=res_loop} + {if !$smarty.foreach.res_loop.first} — {/if} + {$res} + {/foreach} + </strong></em> +</div> +{/if} + +{if !empty($tag_search_results) } +<div style="font-size:16px;text-align:left;margin:10px">{'Tag results for'|@translate} <strong>{$QUERY_SEARCH}</strong> : + <em><strong> + {foreach from=$tag_search_results item=res name=res_loop} + {if !$smarty.foreach.res_loop.first} — {/if} + {$res} + {/foreach} + </strong></em> +</div> +{/if} + +{if isset($FILE_CHRONOLOGY_VIEW) } +{include file=$FILE_CHRONOLOGY_VIEW} +{/if} + +{if !empty($CATEGORIES) }{$CATEGORIES}{/if} +{if !empty($THUMBNAILS) }{$THUMBNAILS}{/if} + + +{if !empty($NAV_BAR) } +<div class="navigationBar"> + {$NAV_BAR} +</div> +{/if} + +{if !empty($CONTENT_DESCRIPTION) } +<div class="additional_info"> + {$CONTENT_DESCRIPTION} +</div> +{/if} + +{if !empty($PLUGIN_INDEX_CONTENT_END) }{$PLUGIN_INDEX_CONTENT_END}{/if} +</div> <!-- content --> + +{if !empty($PLUGIN_INDEX_CONTENT_AFTER)}{$PLUGIN_INDEX_CONTENT_AFTER}{/if} diff --git a/BSF/template/yoga/install.tpl b/BSF/template/yoga/install.tpl new file mode 100644 index 000000000..9f73c6320 --- /dev/null +++ b/BSF/template/yoga/install.tpl @@ -0,0 +1,255 @@ +{* $Id$ *} +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" +"http://www.w3.org/TR/html4/strict.dtd"> +<html lang="fr"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset={$T_CONTENT_ENCODING}"> +<meta http-equiv="Content-script-type" content="text/javascript"> +<meta http-equiv="Content-Style-Type" content="text/css"> +<title>Piwigo {$RELEASE}</title> +{literal} +<style type="text/css"> + +body, input, select { + background-color:#cde; +} + +body { + margin: 5px; + padding: 0; + font-size: 0.8em; + font-family: Univers, Helvetica, Optima, "Bitstream Vera Sans", sans-serif; +} + +body, table, input, form, select { + color:#369; + text-align:left; +} + +a { + text-decoration: none; + color: #c60; +} + +a:hover { + color: #f92; +} + +table { + border-collapse:separate; +} + +.title { + letter-spacing: 0.2em; + text-align : center; + font-size: 150%; + font-weight: bold; + padding: 0; + margin: 0.5em 0 1em 0; +} + +.contenucellule { + border-color: #69c; + background-color:#eee; + margin:12px 20px; + border-width: 3px; + border-style: solid ; +} + +.error_copy { + color: #900; +} + +th, .submit { + text-align: center; + font-weight: bold; + background-color: #369; +} + +th { + font-size: 120%; + margin-bottom:10px; + color:#fff; +} + +td.row { + font-size: 90%; +} + +.submit { + color: #cde +} + +.header { + font-weight: normal; + text-align: center; + margin: 20px; +} + +.infos { + padding: 15px; + font-weight: normal; + text-align: left; +} + +.infos_title { + font-size: 150%; + padding: 15px; + font-weight: bold; + text-align: left; +} + +.errors { + text-align: left; + margin: 25px; + color: #900; + background-color: #ffe1e1; + border:1px solid red; +} +</style> +{/literal} +</head> +<body> + <table style="width:100%;height:100%"> + <tr align="center" valign="middle"> + <td> + <div class="title">Piwigo {$RELEASE}</div> + <table class="table1"> + {if isset($errors)} + <tr> + <td class="contenucellule" colspan="3"> + <div class="errors"> + <ul> + {foreach from=$errors item=error} + <li>{$error}</li> + {/foreach} + </ul> + </div> + </td> + </tr> + {/if} + {if isset($infos)} + <tr> + <td class="contenucellule" colspan="3"> + <div class="infos"> + <ul> + {foreach from=$infos item=info} + <li>{$info}</li> + {/foreach} + </ul> + </div> + </td> + </tr> + {/if} + <tr> + <td class="contenucellule"> + +{if isset($error_copy)} +{'step1_err_copy'|@translate} : +<br />-----------------------------------------------------<br /> +<div class="error_copy">{$error_copy}</div> +-----------------------------------------------------<br /> +{/if} + +{if isset($install)} +<form method="POST" action="{$F_ACTION}" name="install_form"> + <table> + <tr> + <th colspan="3">{'Initial_config'|@translate}</th> + </tr> + <tr> + <td style="width:30%;">{'Default_lang'|@translate}</td> + <td colspan="2" align="left"> + <select name="language" onchange="document.location = 'install.php?language='+this.options[this.selectedIndex].value;"> + {html_options options=$language_options selected=$language_selection} + </select> + </td> + </tr> + <tr> + <td colspan="3"> </td> + </tr> + <tr> + <th colspan="3">{'step1_title'|@translate}</th> + </tr> + <tr> + <td>{'step1_host'|@translate}</td> + <td align=center><input type="text" name="dbhost" value="{$F_DB_HOST}" /></td> + <td class="row">{'step1_host_info'|@translate}</td> + </tr> + <tr> + <td>{'step1_user'|@translate}</td> + <td align=center><input type="text" name="dbuser" value="{$F_DB_USER}" /></td> + <td class="row">{'step1_user_info'|@translate}</td> + </tr> + <tr> + <td>{'step1_pass'|@translate}</td> + <td align=center><input type="password" name="dbpasswd" value="" /></td> + <td class="row">{'step1_pass_info'|@translate}</td> + </tr> + <tr> + <td>{'step1_database'|@translate}</td> + <td align=center><input type="text" name="dbname" value="{$F_DB_NAME}" /></td> + <td class="row">{'step1_database_info'|@translate}</td> + </tr> + <tr> + <td>{'step1_prefix'|@translate}</td> + <td align=center><input type="text" name="prefix" value="{$F_DB_PREFIX}" /></td> + <td class="row">{'step1_prefix_info'|@translate}</td> + </tr> + <tr> + <td colspan="3"> </td> + </tr> + <tr> + <th colspan="3">{'step2_title'|@translate}</th> + </tr> + <tr> + <td>{'install_webmaster'|@translate}</td> + <td align="center"><input type="text" name="admin_name" value="{$F_ADMIN}" /></td> + <td class="row">{'install_webmaster_info'|@translate}</td> + </tr> + <tr> + <td>{'step2_pwd'|@translate}</td> + <td align="center"><input type="password" name="admin_pass1" value="" /></td> + <td class="row">{'step2_pwd_info'|@translate}</td> + </tr> + <tr> + <td>{'step2_pwd_conf'|@translate}</td> + <td align="center"><input type="password" name="admin_pass2" value="" /></td> + <td class="row">{'step2_pwd_conf_info'|@translate}</td> + </tr> + <tr> + <td>{'conf_mail_webmaster'|@translate}</td> + <td align="center"><input type="text" name="admin_mail" value="{$F_ADMIN_EMAIL}" /></td> + <td class="row">{'conf_mail_webmaster_info'|@translate}</td> + </tr> + <tr> + <td colspan="3"> </td> + </tr> + <tr> + <td colspan="3" align="center"> + <input class="submit" type="submit" name="install" value="{'Start_Install'|@translate}" /> + </td> + </tr> + <tr> + <td colspan="3"> </td> + </tr> + </table> +</form> +{else} +<div class="infos_title"> +{'install_end_title'|@translate} +</div> +<div class="infos"> +{'install_end_message'|@translate} +</div> +{/if} + + </td> + </tr> + </table> + <div class="header">{$L_INSTALL_HELP}</div> + </td> + </tr> + </table> + </body> +</html> diff --git a/BSF/template/yoga/layout.css b/BSF/template/yoga/layout.css new file mode 100644 index 000000000..348ea2f4c --- /dev/null +++ b/BSF/template/yoga/layout.css @@ -0,0 +1,15 @@ +/* $Id$ */ + +/* template css */ +@import "menubar.css"; +@import "content.css"; +@import "thumbnails.css"; +@import "picture.css"; +@import "default-layout.css"; +/* Override properties with import local file */ +@import "local-layout.css"; +/* common css */ +@import "../../template-common/default-layout.css"; +/* Override properties with import local file */ +@import "../../template-common/local-layout.css"; + diff --git a/BSF/template/yoga/mail/index.php b/BSF/template/yoga/mail/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/mail/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/mail/text/html/admin/cat_group_info.tpl b/BSF/template/yoga/mail/text/html/admin/cat_group_info.tpl new file mode 100644 index 000000000..2c8c45d6a --- /dev/null +++ b/BSF/template/yoga/mail/text/html/admin/cat_group_info.tpl @@ -0,0 +1,9 @@ +{* $Id$ *} +<div id="cat_group_info"> +<h2>{'Informations'|@translate}</h2> +<p>{$IMG_URL}</p> +<p>{'Hello,'|@translate}</p> +<p>{'Come to discover the category:'|@translate} <a href="{$LINK}">{$CAT_NAME}</a></p> +<p>{$CPL_CONTENT}</p> +<p>{'See you soon.'|@translate}</p> +</div> diff --git a/BSF/template/yoga/mail/text/html/admin/index.php b/BSF/template/yoga/mail/text/html/admin/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/mail/text/html/admin/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/mail/text/html/admin/notification_by_mail.tpl b/BSF/template/yoga/mail/text/html/admin/notification_by_mail.tpl new file mode 100644 index 000000000..52627ebe4 --- /dev/null +++ b/BSF/template/yoga/mail/text/html/admin/notification_by_mail.tpl @@ -0,0 +1,57 @@ +{* $Id$ *} +<div id="nbm_message"> +<h2>{'Notification'|@translate}</h2> +<p>{'nbm_content_hello_1'|@translate}{$USERNAME}{'nbm_content_hello_2'|@translate}</p> + +{if isset($subscribe_by_admin)} +<p>{'nbm_content_subscribe_by_admin'|@translate}</p> +{/if} +{if isset($subscribe_by_himself)} +<p>{'nbm_content_subscribe_by_himself'|@translate}</p> +{/if} +{if isset($unsubscribe_by_admin)} +<p>{'nbm_content_unsubscribe_by_admin'|@translate}</p> +{/if} +{if isset($unsubscribe_by_himself)} +<p>{'nbm_content_unsubscribe_by_himself'|@translate}</p> +{/if} +{if isset($content_new_elements_single)} +<p>{'nbm_content_new_elements'|@translate}{'nbm_content_new_elements_single'|@translate}{$content_new_elements_single.DATE_SINGLE}.</p> +{/if} +{if isset($content_new_elements_between)} +<p>{'nbm_content_new_elements'|@translate}{'nbm_content_new_elements_between_1'|@translate}{$content_new_elements_between.DATE_BETWEEN_1}{'nbm_content_new_elements_between_2'|@translate}{$content_new_elements_between.DATE_BETWEEN_2}.</p> +{/if} + +{if not empty($global_new_lines)} +<ul id="nbm_new_line"> +{foreach from=$global_new_lines item=line} + <li>{$line}</li> +{/foreach} +</ul> +{/if} + +{if not empty($custom_mail_content)} +<p>{$custom_mail_content}</p> +{/if} + +{if not empty($GOTO_GALLERY_TITLE)} +<p>{'nbm_content_goto_1'|@translate}<a href="{$GOTO_GALLERY_URL}">{$GOTO_GALLERY_TITLE}</a>{'nbm_content_goto_2'|@translate}</p> +{/if} +<p>{'nbm_content_byebye'|@translate}</p> +<p style="text-align:center">{$SEND_AS_NAME}</p> +<p> +<br/><hr/> +{'nbm_content_unsubscribe_link'|@translate}{'nbm_content_click_on'|@translate}<a href="{$UNSUBSCRIBE_LINK}">{$UNSUBSCRIBE_LINK}</a><br/> +{'nbm_content_subscribe_link'|@translate}{'nbm_content_click_on'|@translate}<a href="{$SUBSCRIBE_LINK}">{$SUBSCRIBE_LINK}</a><br/> +{'nbm_content_problem_contact'|@translate}<a href="mailto:{$CONTACT_EMAIL}?subject={'nbm_content_pb_contact_object'|@translate}">{$CONTACT_EMAIL}</a><br/> +<hr/><br/> +</p> +{if not empty($recent_posts)} +</div> +<div id="nbm_recent_post"> + {foreach from=$recent_posts item=recent_post } + <h2>{$recent_post.TITLE}</h2> + {$recent_post.HTML_DATA} + {/foreach} +{/if} +</div> diff --git a/BSF/template/yoga/mail/text/html/footer.tpl b/BSF/template/yoga/mail/text/html/footer.tpl new file mode 100644 index 000000000..e09201a4f --- /dev/null +++ b/BSF/template/yoga/mail/text/html/footer.tpl @@ -0,0 +1,20 @@ +{* $Id$ *} +</div> <!-- content --> +<div id="copyright"> +<hr/> + {* Please, do not remove this copyright. If you really want to, + contact us on http://piwigo.org to find a solution on how + to show the origin of the script...*} + + {'powered_by'|@translate} + <a href="http://piwigo.org" class="PWG"> + <span class="P">Pi</span><span class="W">wi</span><span class="G">go</span></a> + {$VERSION} + - {'send_mail'|@translate} + <a href="mailto:{$MAIL}?subject={$TITLE_MAIL}">{'Webmaster'|@translate}</a> + +</div> <!-- copyright --> +</div> <!-- the_page --> + +</body> +</html> diff --git a/BSF/template/yoga/mail/text/html/global-mail-css.tpl b/BSF/template/yoga/mail/text/html/global-mail-css.tpl new file mode 100644 index 000000000..29b34f375 --- /dev/null +++ b/BSF/template/yoga/mail/text/html/global-mail-css.tpl @@ -0,0 +1,12 @@ +{* $Id$ *} +/* Global mail css */ + +body {ldelim} font-family: Univers, Helvetica, Optima; font-size:12px; margin:0px; padding:0px; } +#the_page {ldelim} margin:0px; padding:0px; text-align:left;} +#content {ldelim} margin:0px; padding:82px 0px 0px 62px; width:732px;} +hr {ldelim} width:632px; margin-left:0;} +#copyright {ldelim} font-size:10px; margin:0px; padding:48px 0px 32px 62px;} +.PWG {ldelim} font-family:verdana, sans-serif !important; font-size:0.9em; font-weight:normal; letter-spacing:0px;} +h2 {ldelim} padding:7px 15px; width:617px; font-weight:bold;} +img {ldelim} margin:16px; border:16px solid #aaa; -moz-border-radius: 4px; border-radius: 4px 4px; } +img:hover {ldelim} padding: 15px; border: 1px solid yellow; -moz-border-radius: 4px; border-radius: 4px 4px; } diff --git a/BSF/template/yoga/mail/text/html/header.tpl b/BSF/template/yoga/mail/text/html/header.tpl new file mode 100644 index 000000000..2aeb2b434 --- /dev/null +++ b/BSF/template/yoga/mail/text/html/header.tpl @@ -0,0 +1,19 @@ +{* $Id$ *} +-----={$BOUNDARY_KEY} +Content-Type: {$CONTENT_TYPE}; charset="{$CONTENT_ENCODING}"; +Content-Transfer-Encoding: 8bit + +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="{$LANG}" dir="{$DIR}"> +<head> +<title>Piwigo Mail</title> +<meta http-equiv="Content-Type" content="text/html; charset={$CONTENT_ENCODING}"> +<style><!-- /* Mini style for mails */ +{if isset($GLOBAL_MAIL_CSS)}{$GLOBAL_MAIL_CSS}{/if} +{if isset($MAIL_CSS)}{$MAIL_CSS}{/if} +{if isset($LOCAL_MAIL_CSS)}{$LOCAL_MAIL_CSS}{/if} +--></style> +</head> +<body> +<div id="the_page"> +<div id="content" class="content"> diff --git a/BSF/template/yoga/mail/text/html/images/footer-bg.png b/BSF/template/yoga/mail/text/html/images/footer-bg.png Binary files differnew file mode 100644 index 000000000..fd3c2925f --- /dev/null +++ b/BSF/template/yoga/mail/text/html/images/footer-bg.png diff --git a/BSF/template/yoga/mail/text/html/images/header-bg.png b/BSF/template/yoga/mail/text/html/images/header-bg.png Binary files differnew file mode 100644 index 000000000..1770a3ddc --- /dev/null +++ b/BSF/template/yoga/mail/text/html/images/header-bg.png diff --git a/BSF/template/yoga/mail/text/html/images/index.php b/BSF/template/yoga/mail/text/html/images/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/mail/text/html/images/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/mail/text/html/images/mailbody-bg.png b/BSF/template/yoga/mail/text/html/images/mailbody-bg.png Binary files differnew file mode 100644 index 000000000..722a24f63 --- /dev/null +++ b/BSF/template/yoga/mail/text/html/images/mailbody-bg.png diff --git a/BSF/template/yoga/mail/text/html/index.php b/BSF/template/yoga/mail/text/html/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/mail/text/html/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/mail/text/index.php b/BSF/template/yoga/mail/text/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/mail/text/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/mail/text/plain/admin/cat_group_info.tpl b/BSF/template/yoga/mail/text/plain/admin/cat_group_info.tpl new file mode 100644 index 000000000..d91c0ebcc --- /dev/null +++ b/BSF/template/yoga/mail/text/plain/admin/cat_group_info.tpl @@ -0,0 +1,9 @@ +{* $Id$ *} +{'Hello,'|@translate} + +{'Come to discover the category:'|@translate} {$CAT_NAME} +{$LINK} + +{$CPL_CONTENT} + +{'See you soon.'|@translate} diff --git a/BSF/template/yoga/mail/text/plain/admin/index.php b/BSF/template/yoga/mail/text/plain/admin/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/mail/text/plain/admin/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/mail/text/plain/admin/notification_by_mail.tpl b/BSF/template/yoga/mail/text/plain/admin/notification_by_mail.tpl new file mode 100644 index 000000000..256232f37 --- /dev/null +++ b/BSF/template/yoga/mail/text/plain/admin/notification_by_mail.tpl @@ -0,0 +1,42 @@ +{* $Id$ *} +{'nbm_content_hello_1'|@translate}{$USERNAME}{'nbm_content_hello_2'|@translate} + +{if isset($subscribe_by_admin)} +{'nbm_content_subscribe_by_admin'|@translate} +{/if} +{if isset($subscribe_by_himself)} +{'nbm_content_subscribe_by_himself'|@translate} +{/if} +{if isset($unsubscribe_by_admin)} +{'nbm_content_unsubscribe_by_admin'|@translate} +{/if} +{if isset($unsubscribe_by_himself)} +{'nbm_content_unsubscribe_by_himself'|@translate} +{/if} +{if isset($content_new_elements_single)} +{'nbm_content_new_elements'|@translate}{'nbm_content_new_elements_single'|@translate}{$content_new_elements_single.DATE_SINGLE}. +{/if} +{if isset($content_new_elements_between)} +{'nbm_content_new_elements'|@translate}{'nbm_content_new_elements_between_1'|@translate}{$content_new_elements_between.DATE_BETWEEN_1}{'nbm_content_new_elements_between_2'|@translate}{$content_new_elements_between.DATE_BETWEEN_2}. +{/if} +{if not empty($global_new_lines)} +{foreach from=$global_new_lines item=line} + o {$line} +{/foreach} +{/if} +{if not empty($custom_mail_content)} +{$custom_mail_content} +{/if} +{if not empty($GOTO_GALLERY_TITLE)} +{'nbm_content_goto_1'|@translate}{$GOTO_GALLERY_TITLE} {$GOTO_GALLERY_URL} {'nbm_content_goto_2'|@translate} +{/if} + +{'nbm_content_byebye'|@translate} + {$SEND_AS_NAME} + +______________________________________________________________________________ + +{'nbm_content_unsubscribe_link'|@translate}{'nbm_content_click_on'|@translate}{$UNSUBSCRIBE_LINK} +{'nbm_content_subscribe_link'|@translate}{'nbm_content_click_on'|@translate}{$SUBSCRIBE_LINK} +{'nbm_content_problem_contact'|@translate}{$CONTACT_EMAIL} +______________________________________________________________________________ diff --git a/BSF/template/yoga/mail/text/plain/footer.tpl b/BSF/template/yoga/mail/text/plain/footer.tpl new file mode 100644 index 000000000..86ac31e3e --- /dev/null +++ b/BSF/template/yoga/mail/text/plain/footer.tpl @@ -0,0 +1,4 @@ +{* $Id$ *} + +------------------------ +Piwigo {$VERSION} diff --git a/BSF/template/yoga/mail/text/plain/header.tpl b/BSF/template/yoga/mail/text/plain/header.tpl new file mode 100644 index 000000000..7471010c9 --- /dev/null +++ b/BSF/template/yoga/mail/text/plain/header.tpl @@ -0,0 +1,4 @@ +{* $Id$ *} +-----={$BOUNDARY_KEY} +Content-Type: {$CONTENT_TYPE}; charset="{$CONTENT_ENCODING}"; +Content-Transfer-Encoding: 8bit diff --git a/BSF/template/yoga/mail/text/plain/index.php b/BSF/template/yoga/mail/text/plain/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/mail/text/plain/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/mainpage_categories.tpl b/BSF/template/yoga/mainpage_categories.tpl new file mode 100644 index 000000000..b28c619fb --- /dev/null +++ b/BSF/template/yoga/mainpage_categories.tpl @@ -0,0 +1,27 @@ +{* $Id$ *} + +<ul class="thumbnailCategories"> + {foreach from=$category_thumbnails item=cat} + <li> + <div class="thumbnailCategory"> + <div class="illustration"> + <a href="{$cat.URL}"> + <img src="{$cat.TN_SRC}" alt="{$cat.ALT}" title="{'hint_category'|@translate}"> + </a> + </div> + <div class="description"> + <h3> + <a href="{$cat.URL}">{$cat.NAME}</a> + {$cat.ICON} + </h3> + {if isset($cat.INFO_DATES) } + <p>{$cat.INFO_DATES}</p> + {/if} + <p>{$cat.CAPTION_NB_IMAGES}</p> + <p>{$cat.DESCRIPTION}</p> + </div> + </div> + </li> + {/foreach} +</ul> + diff --git a/BSF/template/yoga/menubar.css b/BSF/template/yoga/menubar.css new file mode 100644 index 000000000..e676d5784 --- /dev/null +++ b/BSF/template/yoga/menubar.css @@ -0,0 +1,149 @@ +#menubar { + float: left; + margin: 0 0 10px 1em; + padding: 0; + /* Fix against the "double margin of a floated item" IE bug */ + /* Damned: that screws up top_navbar in opera 7.54/Linux! */ + display: inline; + text-align: left; /* follow-up of the "be nice to IE5" rule */ +} + +#menubar DL, #menubar DT, #menubar DD { + margin: 0; padding: 0; display: block; +} + +#menubar .button { + margin: 0 2px; + width: auto; + padding: 0; + text-indent: 0; + list-style: none; + text-align: center; + float: right; +} + +/* H2 properties copied here */ +#menubar DT { + font-weight: bold; /* default for h2 */ + margin: 0; + padding: 5px 5px 5px 5px; + font-size: 120%; + text-align: center; +} + +#menubar UL, +#menubar HR, +#menubar FORM, +#menubar P, /* ooh, careful... */ +#menubar .totalImages { + font-size: 92%; + margin: 10px 0 10px 10px; +} +#menubar UL { + list-style-type: square; + list-style-position: inside; + padding: 0 0 0 2px; +} +#menubar UL UL { + font-size: 100%; + margin-top: 0; + margin-bottom: 0; +} + +#menubar LI.selected A { + font-weight: bold; +} + +#menubar LI.selected LI A { + font-weight: normal; +} + +#menubar .menuInfoCatByChild { + font-size: 80%; + font-style: italic; +} + +#menubar HR { + display: block; + margin: 10px auto; + width: 90%; +} +#menubar INPUT { + text-indent: 2px; +} + +/* quickconnect form */ +FORM#quickconnect { + margin: 0; + padding: 5px; +} + +FORM#quickconnect FIELDSET { + margin: 0; + padding: 0 0 0.5em 0; +} + +FORM#quickconnect P { + margin-left: 0; + font-size: 100%; + float: left; + clear: left; +} + +FORM#quickconnect P INPUT { + margin: 0; +} + +FORM#quickconnect UL.actions { + display: inline; + float: right; + padding: 0; + text-align: right; /* Opera 7.5 */ +} +FORM#quickconnect FIELDSET>UL.actions { + width: 40%; /* Opera 7.5 cannot find why width:auto fails :-( */ +} + +FORM#quickconnect UL.actions, +FORM#quickconnect P, +FORM#quickconnect LABEL { + padding: 0 0.5em 0 0.5em; +} + +FORM#quickconnect LABEL { + margin:0; + width: 100%; + box-sizing: border-box; /* CSS3 */ +} + +FORM#quickconnect INPUT[type=text], +FORM#quickconnect INPUT[type=password] { + width: 100%; /* mozilla can handle 100% */ +} +/* same as above for IE with inputfix.htc */ +/* unfortunately IE doesn't handle that correctly */ +/* so you should set a width in em in local_layout.css */ +/*FORM#quickconnect INPUT.text, +FORM#quickconnect INPUT.password { + width: 95%; +}*/ + +FORM#quicksearch { + margin-top: 4px; + margin-bottom: 1px; +} +input#qsearchInput { + width: 90%; +} +#menubar #mbMenu p { margin: 0px; padding: 0px; } + +#menubar #menuTagCloud { + text-align: center; + margin: 5px 0; +} + +#menubar #menuTagCloud LI +{ + display: inline; + white-space: nowrap; /* No line break in the LI but Opera set nowrap to */ +} diff --git a/BSF/template/yoga/menubar.tpl b/BSF/template/yoga/menubar.tpl new file mode 100644 index 000000000..fda136c29 --- /dev/null +++ b/BSF/template/yoga/menubar.tpl @@ -0,0 +1,165 @@ +{* $Id$ *} + +<div id="menubar"> +{if not empty($links)} +<dl id="mbLinks"> + <dt>{'Links'|@translate}</dt> + <dd> + <ul> + {foreach from=$links item=link} + <li> + <a href="{$link.URL}" + {if isset($link.new_window) }onclick="window.open(this.href, '{$link.new_window.NAME|@escape:'javascript'}','{$link.new_window.FEATURES|@escape:'javascript'}'); return false;"{/if} + > + {$link.LABEL} + </a> + </li> + {/foreach}{*links*} + </ul> + </dd> +</dl> +{/if}{*links*} + + {if isset($U_START_FILTER)} + <a href="{$U_START_FILTER}" title="{'start_filter_hint'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/start_filter.png" class="button" alt="{'start_filter_hint'|@translate}"></a> + {/if} + {if isset($U_STOP_FILTER)} + <a href="{$U_STOP_FILTER}" title="{'stop_filter_hint'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/stop_filter.png" class="button" alt="{'stop_filter_hint'|@translate}"></a> + {/if} + +<dl id="mbCategories"> + <dt><a href="{$U_CATEGORIES}">{'Categories'|@translate}</a></dt> + <dd> + {$MENU_CATEGORIES_CONTENT} + {if isset($U_UPLOAD)} + <ul><li> + <a href="{$U_UPLOAD}">{'upload_picture'|@translate}</a> + </li></ul> + {/if} + <p class="totalImages">{$pwg->l10n_dec('%d element', '%d elements', $NB_PICTURE)}</p> + </dd> +</dl> + + +{if not empty($related_tags)} +<dl id="mbTags"> + <dt>{'Related tags'|@translate}</dt> + <dd> + <ul id="menuTagCloud"> + {foreach from=$related_tags item=tag} + <li> + {if !empty($tag.add) } + <a href="{$tag.add.URL}" + title="{$pwg->l10n_dec('%d element are also linked to current tags', '%d elements are also linked to current tags', $tag.add.COUNTER)}" + rel="nofollow"> + <img src="{$ROOT_URL}{$themeconf.icon_dir}/add_tag.png" alt="+" /> + </a> + {/if} + <a href="{$tag.U_TAG}" class="{$tag.CLASS}" title="{'See elements linked to this tag only'|@translate}">{$tag.NAME}</a> + </li> + {/foreach} + </ul> + </dd> +</dl> +{/if} + + +<dl id="mbSpecial"> + <dt>{'special_categories'|@translate}</dt> + <dd> + <ul> + {foreach from=$special_categories item=cat} + <li><a href="{$cat.URL}" title="{$cat.TITLE}" {if isset($cat.REL)}{$cat.REL}{/if}>{$cat.NAME}</a></li> + {/foreach} + </ul> + </dd> +</dl> + + +<dl id="mbMenu"> + <dt>{'title_menu'|@translate}</dt> + <dd> + <form action="{$ROOT_URL}qsearch.php" method="get" id="quicksearch"> + <p> + <input type="text" name="q" id="qsearchInput" onfocus="if (value==qsearch_prompt) value='';" onblur="if (value=='') value=qsearch_prompt;" /> + </p> + </form> + <script type="text/javascript">var qsearch_prompt="{'qsearch'|@translate|@escape:'javascript'}"; document.getElementById('qsearchInput').value=qsearch_prompt;</script> + + <ul> + {foreach from=$summaries item=sum} + <li><a href="{$sum.U_SUMMARY}" title="{$sum.TITLE}" {if isset($sum.REL)}{$sum.REL}{/if}>{$sum.NAME}</a></li> + {/foreach} + </ul> + </dd> +</dl> + + +<dl id="mbIdentification"> + <dt>{'identification'|@translate}</dt> + <dd> + {if isset($USERNAME)} + <p>{'hello'|@translate} {$USERNAME} !</p> + {/if} + + <ul> + {if isset($U_REGISTER)} + <li><a href="{$U_REGISTER}" title="{'Create a new account'|@translate}" rel="nofollow">{'Register'|@translate}</a></li> + {/if} + + {if isset($U_IDENTIFY)} + <li><a href="{$U_IDENTIFY}" rel="nofollow">{'Connection'|@translate}</a></li> + {/if} + + {if isset($U_LOGOUT)} + <li><a href="{$U_LOGOUT}">{'logout'|@translate}</a></li> + {/if} + + {if isset($U_PROFILE)} + <li><a href="{$U_PROFILE}" title="{'hint_customize'|@translate}">{'customize'|@translate}</a></li> + {/if} + + {if isset($U_ADMIN)} + <li><a href="{$U_ADMIN}" title="{'hint_admin'|@translate}">{'admin'|@translate}</a></li> + {/if} + </ul> + + {if isset($U_IDENTIFY)} + <form method="post" action="{$U_IDENTIFY}" class="filter" id="quickconnect"> + <fieldset> + <legend>{'Quick connect'|@translate}</legend> + + <label> + {'Username'|@translate} + <input type="text" name="username" size="15" value=""> + </label> + + <label> + {'Password'|@translate} + <input type="password" name="password" size="15"> + </label> + + {if $AUTHORIZE_REMEMBERING} + <label> + {'remember_me'|@translate} + <input type="checkbox" name="remember_me" value="1"> + </label> + {/if} + <p> + <input class="submit" type="submit" name="login" value="{'Submit'|@translate}"> + </p> + + <ul class="actions"> + <li><a href="{$U_LOST_PASSWORD}" title="{'Forgot your password?'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/lost_password.png" class="button" alt="{'Forgot your password?'|@translate}"></a></li> + {if isset($U_REGISTER)} + <li><a href="{$U_REGISTER}" title="{'Create a new account'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/register.png" class="button" alt="{'Register'|@translate}"/></a></li> + {/if} + </ul> + + </fieldset> + </form> + {/if} + + </dd> +</dl> +</div> <!-- menubar --> diff --git a/BSF/template/yoga/month_calendar.tpl b/BSF/template/yoga/month_calendar.tpl new file mode 100644 index 000000000..410824b23 --- /dev/null +++ b/BSF/template/yoga/month_calendar.tpl @@ -0,0 +1,70 @@ +{* $Id$ *} + +{if !empty($chronology_navigation_bars) } +{foreach from=$chronology_navigation_bars item=bar} +<div class="calendarBar"> + {if isset($bar.previous)} + <div style="float:left">« <a href="{$bar.previous.URL}">{$bar.previous.LABEL}</a></div> + {/if} + {if isset($bar.next)} + <div style="float:right"><a href="{$bar.next.URL}">{$bar.next.LABEL}</a> »</div> + {/if} + {if isset($bar.CONTENT)} + {$bar.CONTENT} + {else} + + {/if} +</div> +{/foreach} +{/if} + +{if !empty($chronology_calendar.calendar_bars) } +{foreach from=$chronology_calendar.calendar_bars item=bar} +<div class="calendarCalBar"> + <span class="calCalHead"><a href="{$bar.U_HEAD}">{$bar.HEAD_LABEL}</a> ({$bar.NB_IMAGES})</span><br/> + {$bar.NAV_BAR} +</div> +{/foreach} +{/if} + +{if isset($chronology_calendar.month_view) } +<table class="calMonth"> + <thead> + <tr> + {foreach from=$chronology_calendar.month_view.wday_labels item=wday} + <td class="calDayHead">{$wday}</td> + {/foreach} + </tr> + </thead> +{html_head} {*add the style to html head for strict standard compliance*} +<style type="text/css"> +TABLE.calMonth TBODY TD, TABLE.calMonth TBODY TD DIV.calImg {ldelim} + width:{$chronology_calendar.month_view.CELL_WIDTH}px;height:{$chronology_calendar.month_view.CELL_HEIGHT}px; +} +</style> +{/html_head} + {foreach from=$chronology_calendar.month_view.weeks item=week} + <tr> + {foreach from=$week item=day} + {if !empty($day)} + {if isset($day.IMAGE)} + <td class="calDayCellFull"> + <div class="calBackDate">{$day.DAY}</div><div class="calForeDate">{$day.DAY}</div> + <div class="calImg"> + <a href="{$day.U_IMG_LINK}"> + <img style="{$day.IMAGE_STYLE}" src="{$day.IMAGE}" alt="{$day.IMAGE_ALT}" title="{$pwg->l10n_dec('%d element','%d elements', $day.NB_ELEMENTS)}" /> + </a> + </div> + {else} + <td class="calDayCellEmpty">{$day.DAY} + {/if} + {else} + <td class="calDayCellBlank"> + {/if} + </td> + {/foreach} {*day in week*} + </tr> + {/foreach} {*week in month*} +</table> +{/if} + diff --git a/BSF/template/yoga/nbm.tpl b/BSF/template/yoga/nbm.tpl new file mode 100644 index 000000000..7fa2845eb --- /dev/null +++ b/BSF/template/yoga/nbm.tpl @@ -0,0 +1,31 @@ +{* $Id$ *} + +<div id="content" class="content"> + <div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HOME}" title="{'Go through the gallery as a visitor'|@translate}"><img src="{$themeconf.icon_dir}/home.png" class="button" alt="{'home'|@translate}"/></a></li> + </ul> + <h2>{'nbm_item_notification'|@translate}</h2> + </div> + + {if not empty($errors)} + <div class="errors"> + <ul> + {foreach from=$errors item=error} + <li>{$error}</li> + {/foreach} + </ul> + </div> + {/if} + + {if not empty($infos)} + <div class="infos"> + <ul> + {foreach from=$infos item=info} + <li>{$info}</li> + {/foreach} + </ul> + </div> + {/if} + +</div> diff --git a/BSF/template/yoga/not-ie.css b/BSF/template/yoga/not-ie.css new file mode 100644 index 000000000..9fc85502c --- /dev/null +++ b/BSF/template/yoga/not-ie.css @@ -0,0 +1,24 @@ +/* $Id$ */ + +/* All directives not supported by IE */ +/* can be overiden in any theme but not hidden to IE */ + +.content UL.thumbnails SPAN.wrap2 { + -moz-border-radius: 4px; /* round corners with Geko */ + -webkit-border-radius: 4px; /* Safari webkit project */ +} +.content DIV#comments { + padding-left: 5px; + padding-right: 5px; + -moz-box-sizing: padding-box !important; +} +FORM#quickconnect LABEL { + margin:0; + width: 100%; + -moz-box-sizing: padding-box !important; + box-sizing: border-box; /* CSS3 */ +} +ul.tabsheet li { + -moz-border-radius: 6px 6px 0px 0px; /* round corners with Geko */ + -webkit-border-radius: 6px 6px 0px 0px; /* Safari webkit project */ +} diff --git a/BSF/template/yoga/notification.tpl b/BSF/template/yoga/notification.tpl new file mode 100644 index 000000000..b62db4bc0 --- /dev/null +++ b/BSF/template/yoga/notification.tpl @@ -0,0 +1,15 @@ +{* $Id$ *} +<div id="content" class="content"> + + <div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HOME}" title="{'return to homepage'|@translate}"><img src="{$themeconf.icon_dir}/home.png" class="button" alt="{'home'|@translate}"/></a></li> + </ul> + <h2>{'Notification'|@translate}</h2> + </div> + + <p>{'The RSS notification feed provides notification on news from this website : new pictures, updated categories, new comments. Use a RSS feed reader.'|@translate}</p> + + <p><a href="{$U_FEED_IMAGE_ONLY}">{'Image only RSS feed'|@translate}</a></p> + <p><a href="{$U_FEED}">{'Complete RSS feed'|@translate}</a></p> +</div> diff --git a/BSF/template/yoga/password.tpl b/BSF/template/yoga/password.tpl new file mode 100644 index 000000000..8071b16d2 --- /dev/null +++ b/BSF/template/yoga/password.tpl @@ -0,0 +1,54 @@ +{* $Id$ *} +<div id="content" class="content"> + + <div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HOME}" title="{'Go through the gallery as a visitor'|@translate}"><img src="{$themeconf.icon_dir}/home.png" class="button" alt="{'home'|@translate}"/></a></li> + </ul> + <h2>{'Password forgotten'|@translate}</h2> + </div> + + {if count($errors)} + <div class="errors"> + <ul> + {foreach from=$errors item=error} + <li>{$error}</li> + {/foreach} + </ul> + </div> + {/if} + + {if count($infos)} + <div class="infos"> + <ul> + {foreach from=$infos item=info} + <li>{$info}</li> + {/foreach} + </ul> + </div> + {/if} + +<form action="{$F_ACTION}" method="post" class="properties"> + <fieldset> + <legend>{'Retrieve password'|@translate}</legend> + + <ul> + <li> + <span class="property"> + <label for="mail_address">{'Email address'|@translate}</label> + </span> + <input class="login" type="text" name="mail_address" id="mail_address" size="40" maxlength="40" > + </li> + <li> + <span class="property"> + <label for="no_mail_address">{'No email address'|@translate}</label> + </span> + <input type="checkbox" id="no_mail_address" name="no_mail_address" value="1"> + </li> + </ul> + </fieldset> + + <p><input class="submit" type="submit" name="submit" value="{'Send new password'|@translate}"></p> +</form> + +</div> <!-- content --> diff --git a/BSF/template/yoga/picture.css b/BSF/template/yoga/picture.css new file mode 100644 index 000000000..839760053 --- /dev/null +++ b/BSF/template/yoga/picture.css @@ -0,0 +1,143 @@ +/* $Id$ */ +#imageHeaderBar { + padding-top: 2px; + padding-bottom: 2px; + margin-top: 4px; + overflow: hidden; + width: 100%; +} + +#imageHeaderBar .browsePath { + float: left; + margin-left: 10px; +} + +#imageHeaderBar .imageNumber { + float: right; + margin-right: 10px; +} + +#imageHeaderBar H2 { + text-align: center; + padding: 0; + clear: both; +} + +#imageToolBar { + text-align: center; + position: relative; + clear: both; + margin-bottom: 4px; + padding: 0; +} + +#imageToolBar { + height: 28px; +} +#imageToolBar A, #imageToolBar IMG { + display: block; + border: none; + margin: 0; padding: 0; +} +#imageToolBar A { width: 48px; } +#imageToolBar IMG { margin: 2px auto; } +#imageToolBar .randomButtons A { float: left; } +#imageToolBar .navButtons A { float: right; } + +#theImage { + clear: left; +} + +#theImage>IMG { + display: block; + margin: 0 auto; +} + +#theImage IMG { + border-width: 3px; + border-style: solid; +} + +.navThumb { + margin-top: 2px; +} +#thumbPrev { + float: left; +} + +#thumbNext { + float: right; +} + +#linkPrev { + margin-right: 10px; + margin-left: 5px; +} + +#linkNext { + margin-right: 5px; + margin-left: 10px; +} + +TABLE.infoTable .value { + text-align: left; +} + +TABLE.infoTable .label { + font-weight: bold; + text-align: right; + padding-right: 0.5em; +} + +TABLE.infoTable TD.value UL { + margin: 0; + padding: 0 0 0 1.5em; + list-style-type: square; +} + +.rateButton, .rateButtonSelected, .rateButtonStarFull, .rateButtonStarEmpty { + padding:0; + border:0; +} + +.rateButton, .rateButtonStarFull, .rateButtonStarEmpty { + cursor: pointer; +} + +.rateButtonSelected { + font-weight:bold; + font-size:120%; +} + +.rateButtonStarFull { + background: url('icon/rating-stars.gif') no-repeat scroll; background-position:-16px center; width:16px; +} + +.rateButtonStarEmpty { + background: url('icon/rating-stars.gif') no-repeat scroll; background-position:0 center; width:16px; +} + +#comments { + text-align: left; +} + +#comments .comment { + margin: 1em 0; +} + +#comments P { + margin: 0 0.5em 0 1em; +} + +#comments .author { + font-weight: bold; +} + +#thePicturePage #comments BLOCKQUOTE { + margin: 0.5em 1em 1em 4em; +} + +#comments P.userCommentDelete { + float: right; + margin: 0 0.5em 0 0; +} diff --git a/BSF/template/yoga/picture.tpl b/BSF/template/yoga/picture.tpl new file mode 100644 index 000000000..fc5fce450 --- /dev/null +++ b/BSF/template/yoga/picture.tpl @@ -0,0 +1,230 @@ +{* $Id$ *} +{if isset($errors)} +<div class="errors"> + <ul> + {foreach from=$errors item=error} + <li>{$error}</li> + {/foreach} + </ul> +</div> +{/if} + +{if isset($infos)} +<div class="infos"> + <ul> + {foreach from=$infos item=info} + <li>{$info}</li> + {/foreach} + </ul> +</div> +{/if} + +<div id="imageHeaderBar"> + <div class="browsePath"> + <a href="{$U_HOME}" rel="home">{'home'|@translate}</a> + {$LEVEL_SEPARATOR}{$SECTION_TITLE} + {$LEVEL_SEPARATOR}{$current.TITLE} + </div> + <div class="imageNumber">{$PHOTO}</div> + {if $SHOW_PICTURE_NAME_ON_TITLE } + <h2>{$current.TITLE}</h2> + {/if} +</div> + +{if !empty($PLUGIN_PICTURE_BEFORE)}{$PLUGIN_PICTURE_BEFORE}{/if} +<div id="imageToolBar"> + <div class="randomButtons"> + {if isset($U_SLIDESHOW_START) } + <a href="{$U_SLIDESHOW_START}" title="{'slideshow'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/start_slideshow.png" class="button" alt="{'slideshow'|@translate}"></a> + {/if} + {if isset($U_SLIDESHOW_STOP) } + <a href="{$U_SLIDESHOW_STOP}" title="{'slideshow_stop'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/stop_slideshow.png" class="button" alt="{'slideshow_stop'|@translate}"></a> + {/if} + <a href="{$U_METADATA}" title="{'picture_show_metadata'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/metadata.png" class="button" alt="metadata" /></a> + {if isset($current.U_DOWNLOAD) } + <a href="{$current.U_DOWNLOAD}" title="{'download_hint'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/save.png" class="button" alt="{'download'|@translate}"></a> + {/if} + {if isset($PLUGIN_PICTURE_ACTIONS)}{$PLUGIN_PICTURE_ACTIONS}{/if} + {if isset($favorite) } + <a href="{$favorite.U_FAVORITE}" title="{$favorite.FAVORITE_HINT}"><img src="{$favorite.FAVORITE_IMG}" class="button" alt="favorite" title="{$favorite.FAVORITE_HINT}"></a> + {/if} + {if !empty($U_SET_AS_REPRESENTATIVE) } + <a href="{$U_SET_AS_REPRESENTATIVE}" title="{'set as category representative'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/representative.png" class="button" alt="{'representative'|@translate}"></a> + {/if} + {if isset($U_ADMIN) } + <a href="{$U_ADMIN}" title="{'link_info_image'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/preferences.png" class="button" alt="{'edit'|@translate}"></a> + {/if} + {if isset($U_CADDIE) } + <a href="{$U_CADDIE}" title="{'add to caddie'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/caddie_add.png" class="button" alt="{'caddie'|@translate}"></a> + {/if} + </div> + {include file=$FILE_PICTURE_NAV_BUTTONS} +</div> <!-- imageToolBar --> + +<div id="theImage"> +{$ELEMENT_CONTENT} + +{if isset($COMMENT_IMG)} +<p>{$COMMENT_IMG}</p> +{/if} + +{if isset($U_SLIDESHOW_STOP) } +<p> + [ <a href="{$U_SLIDESHOW_STOP}">{'slideshow_stop'|@translate}</a> ] +</p> +{/if} + +</div> + +{if isset($previous) } +<a class="navThumb" id="thumbPrev" href="{$previous.U_IMG}" title="{'previous_page'|@translate} : {$previous.TITLE}" rel="prev"> + <img src="{$previous.THUMB_SRC}" class="thumbLink" id="linkPrev" alt="{$previous.TITLE}"> +</a> +{/if} +{if isset($next) } +<a class="navThumb" id="thumbNext" href="{$next.U_IMG}" title="{'next_page'|@translate} : {$next.TITLE}" rel="next"> + <img src="{$next.THUMB_SRC}" class="thumbLink" id="linkNext" alt="{$next.TITLE}"> +</a> +{/if} + +<table class="infoTable" summary="Some info about this picture"> + <tr> + <td class="label">{'Author'|@translate}</td> + <td class="value">{if isset($INFO_AUTHOR)}{$INFO_AUTHOR}{else}{'N/A'|@translate}{/if}</td> + </tr> + <tr> + <td class="label">{'Created on'|@translate}</td> + <td class="value">{if isset($INFO_CREATION_DATE)}{$INFO_CREATION_DATE}{else}{'N/A'|@translate}{/if}</td> + </tr> + <tr> + <td class="label">{'Posted on'|@translate}</td> + <td class="value">{$INFO_POSTED_DATE}</td> + </tr> + <tr> + <td class="label">{'Dimensions'|@translate}</td> + <td class="value">{if isset($INFO_DIMENSIONS)}{$INFO_DIMENSIONS}{else}{'N/A'|@translate}{/if}</td> + </tr> + <tr> + <td class="label">{'File'|@translate}</td> + <td class="value">{$INFO_FILE}</td> + </tr> + <tr> + <td class="label">{'Filesize'|@translate}</td> + <td class="value">{if isset($INFO_FILESIZE)}{$INFO_FILESIZE}{else}{'N/A'|@translate}{/if}</td> + </tr> + <tr> + <td class="label">{'Tags'|@translate}</td> + <td class="value"> + {if isset($related_tags)} + {foreach from=$related_tags item=tag name=tag_loop}{if !$smarty.foreach.tag_loop.first}, {/if} + <a href="{$tag.U_TAG}">{$tag.NAME}</a>{/foreach} + {/if} + </td> + </tr> + <tr> + <td class="label">{'Categories'|@translate}</td> + <td class="value"> + {if isset($related_categories)} + <ul> + {foreach from=$related_categories item=cat} + <li>{$cat}</li> + {/foreach} + </ul> + {/if} + </td> + </tr> + <tr> + <td class="label">{'Visits'|@translate}</td> + <td class="value">{$INFO_VISITS}</td> + </tr> + {if isset($rate_summary) } + <tr> + <td class="label">{'Average rate'|@translate}</td> + <td class="value"> + {if $rate_summary.count} + {assign var='rate_text' value='%.2f (rated %d times, standard deviation = %.2f)'|@translate } + {$pwg->sprintf($rate_text, $rate_summary.average, $rate_summary.count, $rate_summary.std) } + {else} + {'no_rate'|@translate} + {/if} + </td> + </tr> + {/if} +</table> + +{if isset($metadata)} +<table class="infoTable" summary="Some more (technical) info about this picture"> +{foreach from=$metadata item=meta} + <tr> + <th colspan="2">{$meta.TITLE}</th> + </tr> + {foreach from=$meta.lines item=value key=label} + <tr> + <td class="label">{$label}</td> + <td class="value">{$value}</td> + </tr> + {/foreach} +{/foreach} +</table> +{/if} + +{if isset($rating)} +<form action="{$rating.F_ACTION}" method="post" id="rateForm"> +<div> +{if isset($rating.USER_RATE)}{'update_rate'|@translate}{else}{'new_rate'|@translate}{/if} +: +{foreach from=$rating.marks item=mark name=rate_loop} +{if !$smarty.foreach.rate_loop.first} | {/if} +{if isset($rating.USER_RATE) && $mark==$rating.USER_RATE} + <input type="button" name="rate" value="{$mark}" class="rateButtonSelected" /> +{else} + <input type="submit" name="rate" value="{$mark}" class="rateButton" /> +{/if} +{/foreach} +<script type="text/javascript" src="{$ROOT_URL}{$themeconf.template_dir}/rating.js"></script> +</div> +</form> +{/if} + +<hr class="separation"> + +{if isset($COMMENT_COUNT)} +<div id="comments"> + <h2>[{$COMMENT_COUNT}] {'comments_title'|@translate}</h2> + + <div class="navigationBar">{$COMMENT_NAV_BAR}</div> + + {if isset($comments)} + {foreach from=$comments item=comment} + <div class="comment"> + {if isset($comment.U_DELETE)} + <p class="userCommentDelete"> + <a href="{$comment.U_DELETE}" title="{'comments_del'|@translate}"> + <img src="{$ROOT_URL}{$themeconf.icon_dir}/delete.png" class="button" style="border:none;vertical-align:middle; margin-left:5px;" alt="[{'delete'|@translate}]"/> + </a> + </p> + {/if} + <p class="commentInfo"><span class="author">{$comment.AUTHOR}</span> - {$comment.DATE}</p> + <blockquote>{$comment.CONTENT}</blockquote> + </div> + {/foreach} + {/if} + + {if isset($comment_add)} + <form method="post" action="{$comment_add.F_ACTION}" class="filter" id="addComment"> + <fieldset> + <legend>{'comments_add'|@translate}</legend> + {if $comment_add.SHOW_AUTHOR} + <label>{'upload_author'|@translate}<input type="text" name="author"></label> + {/if} + <label>{'comment'|@translate}<textarea name="content" rows="5" cols="80">{$comment_add.CONTENT}</textarea></label> + <input type="hidden" name="key" value="{$comment_add.KEY}" /> + <input class="submit" type="submit" value="{'Submit'|@translate}"> + </fieldset> + </form> + {/if} + +</div> +{/if} {*comments*} + +{if !empty($PLUGIN_PICTURE_AFTER)}{$PLUGIN_PICTURE_AFTER}{/if} diff --git a/BSF/template/yoga/picture_content.tpl b/BSF/template/yoga/picture_content.tpl new file mode 100644 index 000000000..7e15a1bb3 --- /dev/null +++ b/BSF/template/yoga/picture_content.tpl @@ -0,0 +1,9 @@ +{* $Id$ *} +{if isset($high) } +<a href="javascript:phpWGOpenWindow('{$high.U_HIGH}','{$high.UUID}','scrollbars=yes,toolbar=no,status=no,resizable=yes')"> +{/if} + <img src="{$SRC_IMG}" style="width:{$WIDTH_IMG}px;height:{$HEIGHT_IMG}px;" alt="{$ALT_IMG}"> +{if isset($high) } +</a> + <p>{'picture_high'|@translate}</p> +{/if} diff --git a/BSF/template/yoga/picture_nav_buttons.tpl b/BSF/template/yoga/picture_nav_buttons.tpl new file mode 100644 index 000000000..081696ee2 --- /dev/null +++ b/BSF/template/yoga/picture_nav_buttons.tpl @@ -0,0 +1,103 @@ +{* $Id$ *} + <div class="navButtons"> + +{if isset($last)} + <a class="navButton prev" href="{$last.U_IMG}" title="{'last_page'|@translate} : {$last.TITLE}" rel="last"><img src="{$ROOT_URL}{$themeconf.icon_dir}/last.png" class="button" alt="{'last_page'|@translate}"></a> +{else} + <a class="navButton prev"><img src="{$ROOT_URL}{$themeconf.icon_dir}/last_unactive.png" class="button" alt=""></a> +{/if} + +{if isset($next)} + <a class="navButton next" href="{$next.U_IMG}" title="{'next_page'|@translate} : {$next.TITLE}" rel="next"><img src="{$ROOT_URL}{$themeconf.icon_dir}/right.png" class="button" alt="{'next_page'|@translate}"></a> +{else} + <a class="navButton next"><img src="{$ROOT_URL}{$themeconf.icon_dir}/right_unactive.png" class="button" alt=""></a> +{/if} + +{if isset($slideshow.U_START_PLAY)} + <a class="navButton play" href="{$slideshow.U_START_PLAY}" title="{'start_play'|@translate}" rel="play"><img src="{$ROOT_URL}{$themeconf.icon_dir}/play.png" class="button" alt="{'start_play'|@translate}"></a> +{/if} + +{if isset($slideshow.U_STOP_PLAY)} + <a class="navButton play" href="{$slideshow.U_STOP_PLAY}" title="{'stop_play'|@translate}" rel="play"><img src="{$ROOT_URL}{$themeconf.icon_dir}/pause.png" class="button" alt="{'stop_play'|@translate}"></a> +{/if} + +{if isset($U_UP) and !isset($slideshow)} + <a class="navButton up" href="{$U_UP}" title="{'thumbnails'|@translate}" rel="up"><img src="{$ROOT_URL}{$themeconf.icon_dir}/up.png" class="button" alt="{'thumbnails'|@translate}"></a> +{/if} + +{if isset($previous)} + <a class="navButton prev" href="{$previous.U_IMG}" title="{'previous_page'|@translate} : {$previous.TITLE}" rel="prev"><img src="{$ROOT_URL}{$themeconf.icon_dir}/left.png" class="button" alt="{'previous_page'|@translate}"></a> +{else} + <a class="navButton prev"><img src="{$ROOT_URL}{$themeconf.icon_dir}/left_unactive.png" class="button" alt=""></a> +{/if} + +{if isset($first)} + <a class="navButton prev" href="{$first.U_IMG}" title="{'first_page'|@translate} : {$first.TITLE}" rel="first"><img src="{$ROOT_URL}{$themeconf.icon_dir}/first.png" class="button" alt="{'first_page'|@translate}"></a> +{else} + <a class="navButton prev"><img src="{$ROOT_URL}{$themeconf.icon_dir}/first_unactive.png" class="button" alt=""></a> +{/if} + + +{if isset($slideshow.U_START_REPEAT)} + <a class="navButton repeat" href="{$slideshow.U_START_REPEAT}" title="{'start_repeat'|@translate}" rel="repeat"><img src="{$ROOT_URL}{$themeconf.icon_dir}/start_repeat.png" class="button" alt="{'start_repeat'|@translate}"></a> +{/if} + +{if isset($slideshow.U_STOP_REPEAT)} + <a class="navButton repeat" href="{$slideshow.U_STOP_REPEAT}" title="{'stop_repeat'|@translate}" rel="repeat"><img src="{$ROOT_URL}{$themeconf.icon_dir}/stop_repeat.png" class="button" alt="{'stop_repeat'|@translate}"></a> +{/if} + +{if isset($slideshow)} + {if isset($slideshow.U_DEC_PERIOD)} + <a class="navButton dec_period" href="{$slideshow.U_DEC_PERIOD}" title="{'dec_period'|@translate}" rel="repeat"><img src="{$ROOT_URL}{$themeconf.icon_dir}/dec_period.png" class="button" alt="{'dec_period'|@translate}"></a> + {else} + <a class="navButton dec_period"> <img src="{$ROOT_URL}{$themeconf.icon_dir}/dec_period_unactive.png" class="button" alt=""></a> + {/if} + + {if isset($slideshow.U_INC_PERIOD)} + <a class="navButton inc_period" href="{$slideshow.U_INC_PERIOD}" title="{'inc_period'|@translate}" rel="repeat"><img src="{$ROOT_URL}{$themeconf.icon_dir}/inc_period.png" class="button" alt="{'inc_period'|@translate}"></a> + {else} + <a class="navButton inc_period"> <img src="{$ROOT_URL}{$themeconf.icon_dir}/inc_period_unactive.png" class="button" alt=""></a> + {/if} +{/if} + + </div> + +<script type="text/javascript"> +{literal} +function keyboardNavigation(e) +{ + if(!e) var e=window.event; + if (e.altKey) return true; + var target = e.target || e.srcElement; + if (target && target.type) return true; //an input editable element + var keyCode=e.keyCode || e.which; + var docElem = document.documentElement; + switch(keyCode) { +{/literal} +{if isset($next)} + case 63235: case 39: if (e.ctrlKey || docElem.scrollLeft==docElem.scrollWidth-docElem.clientWidth ){ldelim}window.location="{$next.U_IMG}".replace( "&", "&" ); return false; } break; +{/if} +{if isset($previous)} + case 63234: case 37: if (e.ctrlKey || docElem.scrollLeft==0){ldelim}window.location="{$previous.U_IMG|@escape:jasvascript}".replace("&","&"); return false; } break; +{/if} +{if isset($first)} + /*Home*/case 36: if (e.ctrlKey){ldelim}window.location="{$first.U_IMG|@escape:jasvascript}".replace("&","&"); return false; } break; +{/if} +{if isset($last)} + /*End*/case 35: if (e.ctrlKey){ldelim}window.location="{$last.U_IMG|@escape:jasvascript}".replace("&","&"); return false; } break; +{/if} +{if isset($U_UP) and !isset($slideshow)} + /*Up*/case 38: if (e.ctrlKey){ldelim}window.location="{$U_UP|@escape:jasvascript}".replace("&","&"); return false; } break; +{/if} + +{if isset($slideshow.U_START_PLAY)} + /*Pause*/case 32: {ldelim}window.location="{$slideshow.U_START_PLAY|@escape:jasvascript}".replace("&","&"); return false; } break; +{/if} +{if isset($slideshow.U_STOP_PLAY)} + /*Play*/case 32: {ldelim}window.location="{$slideshow.U_STOP_PLAY|@escape:jasvascript}".replace("&","&"); return false; } break; +{/if} + } + return true; +} +document.onkeydown=keyboardNavigation; +</script> diff --git a/BSF/template/yoga/popuphelp.tpl b/BSF/template/yoga/popuphelp.tpl new file mode 100644 index 000000000..af732c554 --- /dev/null +++ b/BSF/template/yoga/popuphelp.tpl @@ -0,0 +1,6 @@ +{* $Id$ *} +<div id="content" class="content"> +{$HELP_CONTENT} +</div> <!-- content --> + +<p id="pageBottomActions"><a href="#" onclick="window.close();" title="{'Close this window'|@translate}"><img src="{$themeconf.icon_dir}/exit.png" class="button" alt="close"></a></p> diff --git a/BSF/template/yoga/print.css b/BSF/template/yoga/print.css new file mode 100644 index 000000000..8252f7e44 --- /dev/null +++ b/BSF/template/yoga/print.css @@ -0,0 +1,14 @@ +#menubar, .content .navigationBar, UL.categoryActions, .content DIV.calendarViews, .calendarBar, +#imageToolBar, .navThumb, #addComment { + display: none; +} + +BODY { + margin: 0; + color: #000000; + background: #ffffff; +} + +.content { + margin: 0; +} diff --git a/BSF/template/yoga/profile.tpl b/BSF/template/yoga/profile.tpl new file mode 100644 index 000000000..75ea61d48 --- /dev/null +++ b/BSF/template/yoga/profile.tpl @@ -0,0 +1,22 @@ +{* $Id$ *} +<div id="content" class="content"> + +{if isset($errors)} +<div class="errors"> + <ul> + {foreach from=$errors item=error} + <li>{$error}</li> + {/foreach} + </ul> +</div> +{/if} + + <div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HOME}" title="{'return to homepage'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/home.png" class="button" alt="{'home'|@translate}"/></a></li> + </ul> + <h2>{'Profile'|@translate}</h2> + </div> + +{$PROFILE_CONTENT} +</div> <!-- content --> diff --git a/BSF/template/yoga/profile_content.tpl b/BSF/template/yoga/profile_content.tpl new file mode 100644 index 000000000..9cabf0a51 --- /dev/null +++ b/BSF/template/yoga/profile_content.tpl @@ -0,0 +1,109 @@ +{* $Id$ *} +<form method="post" name="profile" action="{$F_ACTION}" id="profile" class="properties"> + + <fieldset> + <legend>{'Registration'|@translate}</legend> + <input type="hidden" name="redirect" value="{$REDIRECT}" /> + <ul> + <li> + <span class="property">{'Username'|@translate}</span> + {$USERNAME} + </li> +{if not $SPECIAL_USER} {* can modify password + email*} + <li> + <span class="property"> + <label for="mail_address">{'Email address'|@translate}</label> + </span> + <input type="text" name="mail_address" id="mail_address" value="{$EMAIL}"> + </li> +{if not $IN_ADMIN} {* admins do not need old password*} + <li> + <span class="property"> + <label for="password">{'Password'|@translate}</label> + </span> + <input type="password" name="password" id="password" value=""> + </li> +{/if} + <li> + <span class="property"> + <label for="use_new_pwd">{'new_password'|@translate}</label> + </span> + <input type="password" name="use_new_pwd" id="use_new_pwd" value=""> + </li> + <li> + <span class="property"> + <label for="passwordConf">{'Confirm Password'|@translate}</label> + </span> + <input type="password" name="passwordConf" id="passwordConf" value=""> + </li> + </ul> +{/if} + </fieldset> + + <fieldset> + <legend>{'preferences'|@translate}</legend> + + <ul> + <li> + <span class="property"> + <label for="nb_image_line">{'nb_image_per_row'|@translate}</label> + </span> + <input type="text" size="3" maxlength="2" name="nb_image_line" id="nb_image_line" value="{$NB_IMAGE_LINE}"> + </li> + <li> + <span class="property"> + <label for="nb_line_page">{'nb_row_per_page'|@translate}</label> + </span> + <input type="text" size="3" maxlength="2" name="nb_line_page" id="nb_line_page" value="{$NB_ROW_PAGE}" > + </li> + <li> + <span class="property"> + <label for="template">{'theme'|@translate}</label> + </span> + {html_options name=template options=$template_options selected=$template_selection} + </li> + <li> + <span class="property"> + <label for="language">{'language'|@translate}</label> + </span> + {html_options name=language options=$language_options selected=$language_selection} + </li> + <li> + <span class="property"> + <label for="recent_period">{'recent_period'|@translate}</label> + </span> + <input type="text" size="3" maxlength="2" name="recent_period" id="recent_period" value="{$RECENT_PERIOD}"> + </li> + <li> + <span class="property">{'auto_expand'|@translate}</span> + {html_radios name='expand' options=$radio_options selected=$EXPAND} + </li> + <li> + <span class="property">{'show_nb_comments'|@translate}</span> + {html_radios name='show_nb_comments' options=$radio_options selected=$NB_COMMENTS} + </li> + <li> + <span class="property">{'show_nb_hits'|@translate}</span> + {html_radios name='show_nb_hits' options=$radio_options selected=$NB_HITS} + </li> + <li> + <span class="property"> + <label for="maxwidth">{'maxwidth'|@translate}</label> + </span> + <input type="text" size="4" maxlength="4" name="maxwidth" id="maxwidth" value="{$MAXWIDTH}"> + </li> + <li> + <span class="property"> + <label for="maxheight">{'maxheight'|@translate}</label> + </span> + <input type="text" size="4" maxlength="4" name="maxheight" id="maxheight" value="{$MAXHEIGHT}"> + </li> + </ul> + </fieldset> + + <p class="bottomButtons"> + <input class="submit" type="submit" name="validate" value="{'Submit'|@translate}"> + <input class="submit" type="reset" name="reset" value="{'Reset'|@translate}"> + </p> + +</form> diff --git a/BSF/template/yoga/rating.js b/BSF/template/yoga/rating.js new file mode 100644 index 000000000..a4f8f86b8 --- /dev/null +++ b/BSF/template/yoga/rating.js @@ -0,0 +1,90 @@ +makeNiceRatingForm(); + +function makeNiceRatingForm() +{ + var form = document.getElementById('rateForm'); + if (!form) return; //? template changed + gRatingButtons = form.getElementsByTagName('input'); + + gUserRating = ""; + for (var i=0; i<gRatingButtons.length; i++) + { + if ( gRatingButtons[i].type=="button" ) + { + gUserRating = gRatingButtons[i].value; + break; + } + } + + for (var i=0; i<gRatingButtons.length; i++) + { + var rateButton = gRatingButtons[i]; + rateButton.initialRateValue = rateButton.value; // save it as a property + + rateButton.value = ""; //hide the text IE/Opera + with (rateButton.style) + { + textIndent = "-50px"; //hide the text FF + marginLeft = marginRight = 0; + } + + if (i!=gRatingButtons.length-1 && rateButton.nextSibling.nodeType == 3 /*TEXT_NODE*/) + rateButton.parentNode.removeChild(rateButton.nextSibling); + if (i>0 && rateButton.previousSibling.nodeType == 3 /*TEXT_NODE*/) + rateButton.parentNode.removeChild(rateButton.previousSibling); + + if(window.addEventListener){ // Mozilla, Netscape, Firefox + rateButton.addEventListener("click", updateRating, false ); + rateButton.addEventListener("mouseout", resetRatingStarDisplay, false ); + rateButton.addEventListener("mouseover", updateRatingStarDisplayEvt, false ); + } + else if(window.attachEvent) { // IE + rateButton.attachEvent("onclick", updateRating); + rateButton.attachEvent("onmouseout", resetRatingStarDisplay); + rateButton.attachEvent("onmouseover", updateRatingStarDisplayEvt); + } + } + resetRatingStarDisplay(); +} + +function resetRatingStarDisplay() +{ + updateRatingStarDisplay( gUserRating ); +} + +function updateRatingStarDisplay(userRating) +{ + for (i=0; i<gRatingButtons.length; i++) + { + var rateButton = gRatingButtons[i]; + if (userRating!=="" && userRating>=rateButton.initialRateValue ) + { + rateButton.className = "rateButtonStarFull"; + } + else + { + rateButton.className = "rateButtonStarEmpty"; + } + } +} + +function updateRatingStarDisplayEvt(e) +{ + if (e.target) + updateRatingStarDisplay(e.target.initialRateValue); + else //IE + updateRatingStarDisplay(e.srcElement.initialRateValue); +} + +function updateRating(e) +{ + if (e.target) + var rateButton = e.target; + else //IE + var rateButton = e.srcElement; + if (rateButton.initialRateValue == gUserRating) + return false; //nothing to do + // some ajax here one day would be nice + rateButton.value = rateButton.initialRateValue; // put back real value + return true; +}
\ No newline at end of file diff --git a/BSF/template/yoga/redirect.tpl b/BSF/template/yoga/redirect.tpl new file mode 100644 index 000000000..aa007426f --- /dev/null +++ b/BSF/template/yoga/redirect.tpl @@ -0,0 +1,3 @@ +{* $Id$ *} +<p>{$REDIRECT_MSG}</p> +<p><a href="{$page_refresh.U_REFRESH}">{'click_to_redirect'|@translate}</a></p> diff --git a/BSF/template/yoga/register.tpl b/BSF/template/yoga/register.tpl new file mode 100644 index 000000000..83bfd8c27 --- /dev/null +++ b/BSF/template/yoga/register.tpl @@ -0,0 +1,69 @@ +{* $Id$ *} +<div id="registerPage"> + +<div id="content" class="content"> + + <div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HOME}" title="{'return to homepage'|@translate}"><img src="{$ROOT_URL}{$themeconf.icon_dir}/home.png" class="button" alt="{'home'|@translate}"/></a></li> + </ul> + <h2>{'Registration'|@translate}</h2> + </div> + +{if isset($errors)} + <div class="errors"> + <ul> + {foreach from=$errors item=error} + <li>{$error}</li> + {/foreach} + </ul> + </div> +{/if} + +<form method="post" action="{$F_ACTION}" class="properties" name="register_form"> + <fieldset> + <legend>{'Enter your personnal informations'|@translate}</legend> + + <ul> + <li> + <span class="property"> + <label for="login">* {'Username'|@translate}</label> + </span> + <input type="text" name="login" id="login" value="{$F_LOGIN}" > + </li> + <li> + <span class="property"> + <label for="password">* {'Password'|@translate}</label> + </span> + <input type="password" name="password" id="password" > + </li> + <li> + <span class="property"> + <label for="password_conf">* {'Confirm Password'|@translate}</label> + </span> + <input type="password" name="password_conf" id="password_conf" > + </li> + <li> + <span class="property"> + <label for="mail_address">{'Mail address'|@translate}</label> + </span> + <input type="text" name="mail_address" id="mail_address" value="{$F_EMAIL}" > + ({'useful when password forgotten'|@translate}) + </li> + </ul> + + </fieldset> + + <p class="bottomButtons"> + <input class="submit" type="submit" name="submit" value="{'Register'|@translate}"> + <input class="submit" type="reset" value="{'Reset'|@translate}"> + </p> + +</form> + +<script type="text/javascript"><!-- +document.register_form.login.focus(); +//--></script> + +</div> <!-- content --> +</div> <!-- registerPage --> diff --git a/BSF/template/yoga/search.tpl b/BSF/template/yoga/search.tpl new file mode 100644 index 000000000..f5b72d138 --- /dev/null +++ b/BSF/template/yoga/search.tpl @@ -0,0 +1,126 @@ +{* $Id$ *} +<div id="content" class="content"> + + <div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}" rel="nofollow"><img src="{$ROOT_URL}{$themeconf.icon_dir}/help.png" class="button" alt="(?)"></a></li> + <li><a href="{$U_HOME}" title="{'return to homepage'|@translate}" rel="home"><img src="{$ROOT_URL}{$themeconf.icon_dir}/home.png" class="button" alt="{'home'|@translate}"/></a></li> + </ul> + <h2>{'Search'|@translate}</h2> + </div> + +{if isset($errors) } +<div class="errors"> + <ul> + {foreach from=$errors item=error} + <li>{$error}</li> + {/foreach} + </ul> +</div> +{/if} + +<form class="filter" method="post" name="search" action="{$F_SEARCH_ACTION}"> +<fieldset> + <legend>{'Filter'|@translate}</legend> + <label>{'search_keywords'|@translate} + <input type="text" style="width: 300px" name="search_allwords" size="30" /> + </label> + <ul> + <li><label> + <input type="radio" name="mode" value="AND" checked="checked" />{'search_mode_and'|@translate} + </label></li> + <li><label> + <input type="radio" name="mode" value="OR" />{'search_mode_or'|@translate} + </label></li> + </ul> + <label>{'search_author'|@translate} + <input type="text" style="width: 300px" name="search_author" size="30" /> + </label> +</fieldset> + +{if isset($TAG_SELECTION)} +<fieldset> + <legend>{'Search tags'|@translate}</legend> + {$TAG_SELECTION} + <label><span><input type="radio" name="tag_mode" value="AND" checked="checked" /> {'All tags'|@translate}</span></label> + <label><span><input type="radio" name="tag_mode" value="OR" /> {'Any tag'|@translate}</span></label> +</fieldset> +{/if} + +<fieldset> + <legend>{'search_date'|@translate}</legend> + <ul> + <li><label>{'search_date_type'|@translate}</label></li> + <li><label> + <input type="radio" name="date_type" value="date_creation" checked="checked" />{'Creation date'|@translate} + </label></li> + <li><label> + <input type="radio" name="date_type" value="date_available" />{'Post date'|@translate} + </label></li> + </ul> + <ul> + <li><label>{'search_date_from'|@translate}</label></li> + <li> + <select name="start_day"> + <option value="0">--</option> + {section name=day start=1 loop=32} + <option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$START_DAY_SELECTED}selected="selected"{/if}>{$smarty.section.day.index}</option> + {/section} + </select> + <select name="start_month"> + {html_options options=$month_list selected=$START_MONTH_SELECTED} + </select> + <input name="start_year" type="text" size="4" maxlength="4" > + </li> + <li> + <a href="#" onClick="document.search.start_day.value={$smarty.now|date_format:"%d"};document.search.start_month.value={$smarty.now|date_format:"%m"};document.search.start_year.value={$smarty.now|date_format:"%Y"};return false;">{'today'|@translate}</a> + </li> + </ul> + <ul> + <li><label>{'search_date_to'|@translate}</label></li> + <li> + <select name="end_day"> + <option value="0">--</option> + {section name=day start=1 loop=32} + <option value="{$smarty.section.day.index}" {if $smarty.section.day.index==$END_DAY_SELECTED}selected="selected"{/if}>{$smarty.section.day.index}</option> + {/section} + </select> + <select name="end_month"> + {html_options options=$month_list selected=$END_MONTH_SELECTED} + </select> + <input name="end_year" type="text" size="4" maxlength="4" > + </li> + <li> + <a href="#" onClick="document.search.end_day.value={$smarty.now|date_format:"%d"};document.search.end_month.value={$smarty.now|date_format:"%m"};document.search.end_year.value={$smarty.now|date_format:"%Y"};return false;">{'today'|@translate}</a> + </li> + </ul> +</fieldset> + +<fieldset> + <legend>{'search_options'|@translate}</legend> + <label>{'search_categories'|@translate} + <select class="categoryList" name="cat[]" multiple="multiple" > + {html_options options=$category_options selected=$category_options_selected} + </select> + </label> + <ul> + <li><label>{'search_subcats_included'|@translate}</label></li> + <li><label> + <input type="radio" name="subcats-included" value="1" checked="checked" />{'Yes'|@translate} + </label></li> + <li><label> + <input type="radio" name="subcats-included" value="0" />{'No'|@translate} + </label></li> + </ul> +</fieldset> +<p> + <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}" /> + <input class="submit" type="reset" value="{'Reset'|@translate}" /> +</p> +</form> + +<script type="text/javascript"><!-- +document.search.search_allwords.focus(); +//--></script> + +</div> <!-- content --> diff --git a/BSF/template/yoga/search_rules.tpl b/BSF/template/yoga/search_rules.tpl new file mode 100644 index 000000000..c7b4a8b88 --- /dev/null +++ b/BSF/template/yoga/search_rules.tpl @@ -0,0 +1,56 @@ +{* $Id$ *} +<div id="content" class="content"> +<h2>{'Search rules'|@translate}</h2> + +{if isset($INTRODUCTION) } +<p>{$INTRODUCTION}</p> +{/if} + +<ul> + + {if isset($search_words) } + {foreach from=$search_words item=v} + <li>{$v}</li> + {/foreach} + {/if} + + {if isset($SEARCH_TAGS_MODE) } + <li> + <p>{if 'AND'==$SEARCH_TAGS_MODE}{'All tags must match'|@translate}{else}{'At least one tag must match'|@translate}{/if}</p> + <ul> + {foreach from=$search_tags item=v} + <li>{$v}</li> + {/foreach} + </ul> + </li> + {/if} + + {if isset($DATE_CREATION) } + <li>{$DATE_CREATION}</li> + {/if} + + {if isset($DATE_AVAILABLE) } + <li>{$DATE_AVAILABLE}</li> + {/if} + + {if isset($search_categories) } + <li> + <p>{'Categories'|@translate}</p> + + <ul> + {foreach from=$search_categories item=v} + <li>{$v}</li> + {/foreach} + </ul> + </li> + {/if} + +</ul> + +</div> <!-- content --> + +<p id="pageBottomActions"> + <a href="#" onclick="window.close();" title="{'Close this window'|@translate}"> + <img src="{$themeconf.icon_dir}/exit.png" class="button" alt="close"> + </a> +</p> diff --git a/BSF/template/yoga/slideshow.tpl b/BSF/template/yoga/slideshow.tpl new file mode 100644 index 000000000..1bbc0029f --- /dev/null +++ b/BSF/template/yoga/slideshow.tpl @@ -0,0 +1,23 @@ +{* $Id$ *} +<div id="imageHeaderBar"> + <div class="browsePath"> + {if isset($U_SLIDESHOW_STOP) } + [ <a href="{$U_SLIDESHOW_STOP}">{'slideshow_stop'|@translate}</a> ] + {/if} + </div> + <div class="imageNumber">{$PHOTO}</div> + {if $SHOW_PICTURE_NAME_ON_TITLE } + <h2 class="showtitle">{$current.TITLE}</h2> + {/if} +</div> + +<div id="imageToolBar"> + {include file=$FILE_PICTURE_NAV_BUTTONS} +</div> + +<div id="theImage"> + {$ELEMENT_CONTENT} + {if isset($COMMENT_IMG)} + <p class="showlegend">{$COMMENT_IMG}</p> + {/if} +</div> diff --git a/BSF/template/yoga/tags.tpl b/BSF/template/yoga/tags.tpl new file mode 100644 index 000000000..98a49cd06 --- /dev/null +++ b/BSF/template/yoga/tags.tpl @@ -0,0 +1,19 @@ +{* $Id$ *} +<div id="content" class="content"> + + <div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HOME}" title="{'return to homepage'|@translate}"><img src="{$themeconf.icon_dir}/home.png" class="button" alt="{'home'|@translate}"/></a></li> + </ul> + <h2>{'Tags'|@translate}</h2> + </div> + + {if isset($tags)} + <ul id="fullTagCloud"> + {foreach from=$tags item=tag} + <li><a href="{$tag.URL}" class="{$tag.CLASS}" title="{$tag.TITLE}">{$tag.NAME}</a></li> + {/foreach} + </ul> + {/if} + +</div> <!-- content --> diff --git a/BSF/template/yoga/theme/admin/images/bottom-left-bg.png b/BSF/template/yoga/theme/admin/images/bottom-left-bg.png Binary files differnew file mode 100644 index 000000000..ce611dfed --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/bottom-left-bg.png diff --git a/BSF/template/yoga/theme/admin/images/content-bg.png b/BSF/template/yoga/theme/admin/images/content-bg.png Binary files differnew file mode 100644 index 000000000..74ccf81bc --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/content-bg.png diff --git a/BSF/template/yoga/theme/admin/images/header_bottom.png b/BSF/template/yoga/theme/admin/images/header_bottom.png Binary files differnew file mode 100644 index 000000000..e4d049881 --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/header_bottom.png diff --git a/BSF/template/yoga/theme/admin/images/index.php b/BSF/template/yoga/theme/admin/images/index.php new file mode 100644 index 000000000..547a117bf --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/index.php @@ -0,0 +1,54 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ +// +-----------------------------------------------------------------------+ +// | PhpWebGallery - a PHP based picture gallery | +// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | +// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// +-----------------------------------------------------------------------+ +// | file : $Id$ +// | last update : $Date$ +// | last modifier : $Author$ +// | revision : $Revision$ +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/theme/admin/images/internal_onglet.png b/BSF/template/yoga/theme/admin/images/internal_onglet.png Binary files differnew file mode 100644 index 000000000..dd7b1e218 --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/internal_onglet.png diff --git a/BSF/template/yoga/theme/admin/images/list-hover.png b/BSF/template/yoga/theme/admin/images/list-hover.png Binary files differnew file mode 100644 index 000000000..73b600269 --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/list-hover.png diff --git a/BSF/template/yoga/theme/admin/images/list-image.png b/BSF/template/yoga/theme/admin/images/list-image.png Binary files differnew file mode 100644 index 000000000..1acdf67e4 --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/list-image.png diff --git a/BSF/template/yoga/theme/admin/images/menubar-bg.jpg b/BSF/template/yoga/theme/admin/images/menubar-bg.jpg Binary files differnew file mode 100644 index 000000000..f99114277 --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/menubar-bg.jpg diff --git a/BSF/template/yoga/theme/admin/images/menubar-bg.png b/BSF/template/yoga/theme/admin/images/menubar-bg.png Binary files differnew file mode 100644 index 000000000..eb998d35c --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/menubar-bg.png diff --git a/BSF/template/yoga/theme/admin/images/menubar-bottom.png b/BSF/template/yoga/theme/admin/images/menubar-bottom.png Binary files differnew file mode 100644 index 000000000..be74ddca1 --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/menubar-bottom.png diff --git a/BSF/template/yoga/theme/admin/images/menubar-detail.png b/BSF/template/yoga/theme/admin/images/menubar-detail.png Binary files differnew file mode 100644 index 000000000..e2d411e95 --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/menubar-detail.png diff --git a/BSF/template/yoga/theme/admin/images/menubar-top.png b/BSF/template/yoga/theme/admin/images/menubar-top.png Binary files differnew file mode 100644 index 000000000..7a1195c5f --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/menubar-top.png diff --git a/BSF/template/yoga/theme/admin/images/onglet_actif.png b/BSF/template/yoga/theme/admin/images/onglet_actif.png Binary files differnew file mode 100644 index 000000000..476edb31b --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/onglet_actif.png diff --git a/BSF/template/yoga/theme/admin/images/onglet_actif_transp.png b/BSF/template/yoga/theme/admin/images/onglet_actif_transp.png Binary files differnew file mode 100644 index 000000000..fe4b18275 --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/onglet_actif_transp.png diff --git a/BSF/template/yoga/theme/admin/images/onglet_inactif.png b/BSF/template/yoga/theme/admin/images/onglet_inactif.png Binary files differnew file mode 100644 index 000000000..8411ed119 --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/onglet_inactif.png diff --git a/BSF/template/yoga/theme/admin/images/onglet_inactif_transp.png b/BSF/template/yoga/theme/admin/images/onglet_inactif_transp.png Binary files differnew file mode 100644 index 000000000..9ad96c14e --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/onglet_inactif_transp.png diff --git a/BSF/template/yoga/theme/admin/images/piwigo_logo_sombre_214x100.png b/BSF/template/yoga/theme/admin/images/piwigo_logo_sombre_214x100.png Binary files differnew file mode 100644 index 000000000..106f20add --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/piwigo_logo_sombre_214x100.png diff --git a/BSF/template/yoga/theme/admin/images/pre-menubar-bg.png b/BSF/template/yoga/theme/admin/images/pre-menubar-bg.png Binary files differnew file mode 100644 index 000000000..f691a288b --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/pre-menubar-bg.png diff --git a/BSF/template/yoga/theme/admin/images/tableh1_bg.png b/BSF/template/yoga/theme/admin/images/tableh1_bg.png Binary files differnew file mode 100644 index 000000000..38f356b83 --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/tableh1_bg.png diff --git a/BSF/template/yoga/theme/admin/images/tableh2_bg.png b/BSF/template/yoga/theme/admin/images/tableh2_bg.png Binary files differnew file mode 100644 index 000000000..be06ee428 --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/tableh2_bg.png diff --git a/BSF/template/yoga/theme/admin/images/top-left-bg.png b/BSF/template/yoga/theme/admin/images/top-left-bg.png Binary files differnew file mode 100644 index 000000000..2650367b0 --- /dev/null +++ b/BSF/template/yoga/theme/admin/images/top-left-bg.png diff --git a/BSF/template/yoga/theme/admin/index.php b/BSF/template/yoga/theme/admin/index.php new file mode 100644 index 000000000..547a117bf --- /dev/null +++ b/BSF/template/yoga/theme/admin/index.php @@ -0,0 +1,54 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ +// +-----------------------------------------------------------------------+ +// | PhpWebGallery - a PHP based picture gallery | +// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | +// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// +-----------------------------------------------------------------------+ +// | file : $Id$ +// | last update : $Date$ +// | last modifier : $Author$ +// | revision : $Revision$ +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/theme/admin/mail-css.tpl b/BSF/template/yoga/theme/admin/mail-css.tpl new file mode 100644 index 000000000..5b3e53c3d --- /dev/null +++ b/BSF/template/yoga/theme/admin/mail-css.tpl @@ -0,0 +1,19 @@ +{* $Id$ *} +/* Theme wipi mail css */ + +body {ldelim} background-color:#111; color:#69c;} +#the_page {ldelim} background: #111 url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/mailbody-bg.png) repeat-y scroll left top;} +#content {ldelim} background: transparent url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/header-bg.png) no-repeat scroll left top;} +#copyright {ldelim} background: transparent url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/footer-bg.png) no-repeat scroll left bottom; +color: #69c;} +h2 {ldelim} background-color: #222;color:#eee;background-image: url({$ROOT_URL}template/{$themeconf.template}/theme/{$themeconf.theme}/images/tableh1_bg.png);} +img {ldelim} margin: 16px; padding:15px;border:1px solid #eee; -moz-border-radius: 4px; border-radius: 4px 4px; } +img:hover {ldelim} border:1px solid #69c; -moz-border-radius: 4px; border-radius: 4px 4px; } +a {ldelim} color: #69c; background: transparent; } +a:hover {ldelim} color: #f92; } +a.PWG {ldelim} border: 0px; } +a.PWG .P {ldelim} color : #f92; } +a.PWG .W {ldelim} color : #aaa; } +a.PWG .G {ldelim} color : #69c; } +a.PWG:hover .P {ldelim} color : #69c; } +a.PWG:hover .G {ldelim} color : #f92; } diff --git a/BSF/template/yoga/theme/admin/theme.css b/BSF/template/yoga/theme/admin/theme.css new file mode 100644 index 000000000..7b8e63e9a --- /dev/null +++ b/BSF/template/yoga/theme/admin/theme.css @@ -0,0 +1,468 @@ +/* $Id$ */ + +/* text color */ +BODY, H1, H3, DT, +INPUT.rateButtonSelected /* <= why IE doesn't inherit this ? */ { + color:#e0e0e0; +} +#menubar { + margin : 0px; + background-color: transparent; + border: 0px; +} +H2, .throw { + color: #eee; +} +#menubar DT, #menubar DT A { + color: #eee; + font-weight: lighter; +} +#menubar DT A:hover { + color: #69c; + font-weight: lighter; +} +#menubar .selected A { + color: #eee; +} +#menubar .selected A:hover { + color: #f92; +} +#menubar DT:before { + content: "__\\_ "; + color: #f92; +} +#menubar DT:after { + content: " _/__"; + color: #69c; +} +#menubar .button { + margin: 0 2px 0px 8px; + width: auto; + padding: 0; + text-indent: 0; + list-style: none; + text-align: center; + float: left; +} +#theAdminPage #menubar DT:before, +#theAdminPage #menubar DT:after { + content: ''; +} +.content .pageNumberSelected { + color: #f92; +} +.content .infos { + background-color: #69c; + color: #036; +} +.content .errors { + background-color: #fc5; + border-color: #f92; + color: #900; +} +/* backgrounds */ +BODY { + background: #111; + margin: 0px; + padding: 0px; +} +H3, #imageToolBar A:hover, .row1, .tabsheet li { + background-color: #222; +} +#theAdminPage h2, #theAdminPage h3 { border-bottom: 1px solid #69c; } +#imageHeaderBar, #theAdminPage #the_page { + background-color: transparent; +} +#imageToolBar, .header_notes { + background-color: #333; +} +.selected_tab { background-color: eee !important; } +A { + border-color: #69c; +} +A:hover { + border-color: #f92; +} +.content { + background-color: #181818; + border: 1px solid #eee; + padding: 5px; +} +#theAdminPage #the_page .content { + background-color: transparent; + border-width: 0px; + padding: 5px; +} +H2, #menubar DT, .throw, TD H3, #theAdminPage H3 { + background-image: url(images/tableh1_bg.png); + background-repeat: repeat-x; +} +.content H2 { + background: none; + border: 0px; + letter-spacing: -0.05em; + text-indent: 1em; + text-transform: uppercase; + font-weight: lighter; + margin-bottom: 20px; +} +.content ul.thumbnailCategories li div.thumbnailCategory .description h3, +.content h3 { text-align: center; } +.content ul.thumbnailCategories li div.thumbnailCategory .description p { + color: #f92; text-indent: 0em; +} +.content ul.thumbnailCategories li div.thumbnailCategory .description p + p { + color: #fff; +} +.browsePath A { + color: #eee; +} +.content H2:before, .browsePath:before, .imageNumber:before, +#imageHeaderBar H2:before { + content: "____\\_ "; + color: #69c; + font-family: Times, Zapf-Chancery, Cottonwood, Helvetica; + letter-spacing: 0em; +} +.content H2:after, .browsePath:after, .imageNumber:after, +#imageHeaderBar H2:after { + content: " _/____"; + color: #f92; + font-family: Times, Zapf-Chancery, Cottonwood, Helvetica; + letter-spacing: 0em; +} +#imageHeaderBar H2 { + background-image: none; + background-color: transparent; + border: none; +} +#thePicturePage #the_page { + background-color: transparent; +} +#thePicturePage #imageHeaderBar { + background-image: url(images/tableh2_bg.png); + background-repeat: repeat-x; +} +#thePicturePage #imageToolBar { + background-color: transparent; + border-bottom: 2px solid #69c; +} +#thePicturePage #theImage { + background-color: transparent; + margin: 0px; + padding: 3px 0px 15px 0px; +} + +#thePicturePage #comments H2 { + background-image: none; + background-color: #222; + border-top: 2px solid #69c; + border-bottom: 2px solid #69c; + color: #69c; + font-weight: lighter; +} + +/* borders */ +#comments DIV.comment BLOCKQUOTE { + border: 1px solid #000; +} +#imageHeaderBar { + border-top: 1px solid #000; + padding: 8px 0px 3px 0px; +} +H2, #imageToolBar { + border-bottom: 1px solid #000; +} + +#theImage IMG { + border-color: #fff; +} + +.content UL.thumbnail IMG { + border: 1px solid #a0a0a0; +} +.illustration A { + border: 0px; +} +FIELDSET, INPUT, SELECT, TEXTAREA, +.content DIV.comment A.illustration IMG, +.content DIV.thumbnailCategory { + border: 1px solid gray; +} +.content DIV.thumbnailCategory { + border: 1px solid #69c; + margin: 8px 4px; +} +#comments DIV.comment BLOCKQUOTE { + border-left: 2px solid #696969; +} + +.content UL.thumbnails SPAN.wrap2 { + border: 1px solid #aaaaaa; /* thumbnails border color and style */ + border-radius: 4px 4px; /* round corners with CSS3 compliant browsers */ +} + +.content UL.thumbnails SPAN.wrap2:hover, +.content UL.thumbnailCategories DIV.thumbnailCategory:hover { + background-color: #333; + border-color: #69c; /* thumbnails border color when mouse cursor is over it */ +} + +#menubar .buttonmenu { + margin: 0 2px; + width: auto; + padding: 0; + text-indent: 0; + list-style: none; + text-align: center; + float: left; +} + + + + + +A:hover { + color: #f92; +} + +#imageToolBar A, #imageToolBar A:hover { + border-bottom: none; +} +A.navThumb, A.navThumb:hover { + border-bottom: none; +} +#the_page { + border: 1px dotted #f92; + padding-top: 5px; + padding-bottom:30px; + text-align:center; + display:block; + margin: 2px; +} +#copyright { + color: #69c; +} + +label { + cursor:pointer +} +input#qsearchInput { + color: #58c; + background-color: #222; + border: 1px solid #333; + padding: 1px 3px; +} +.zero { display: none } +.nb-hits { color: #69c; } +.nb-comments { color: #f92; } + +FORM#quickconnect, +FORM#quickconnect FIELDSET, +FORM#quickconnect P, +FORM#quickconnect UL.actions, +FORM#quickconnect FIELDSET>UL.actions, +FORM#quickconnect UL.actions, +FORM#quickconnect P, +FORM#quickconnect LABEL { + color: #69c; +} +FORM#quickconnect P INPUT, +FORM#quickconnect INPUT[type=text], +FORM#quickconnect INPUT[type=password] { + width: 85%; + color: #58c; + background-color: #222; + border: 1px solid #333; + padding: 1px 3px; +} + + +.virtual_cat { background: #222 !important; } + +.PWG { + font-family: verdana, arial, helvetica, sans-serif !important; + font-size: 0.9em; + font-weight: normal; + letter-spacing: 0px; +} +a.PWG { border: 0px; } +a.PWG .P { color : #f92; } +a.PWG .W { color : #aaa; } +a.PWG .G { color : #69c; } +a.PWG:hover .P { color : #69c; } +a.PWG:hover .G { color : #f92; } + + + + + + + + +.statBar { background-color: #e60; } +#imageToolBar .randomButtons a:hover, +#imageToolBar .navButtons a:hover { background-color: transparent; } +#menubar .menuInfoCat, +#menubar .menuInfoCatByChild, +h2.showtitle, #theImage p.showlegend { display: none } +* { outline-width: 0px; } +ul.tabsheet, ul.tabsheet li { + border-color: #69c; +} +ul.tabsheet li.normal_tab { + background-image: url(images/tableh1_bg.png); + background-repeat: repeat-x; +} +ul.tabsheet li.normal_tab:hover { border-color: #f92 } +ul.tabsheet li { + -moz-border-radius: 0px 0px 3px 3px; + border-radius: 0px 0px 12px 12px; + -webkit-border-radius: 0px 0px 3px 3px; +} +/* New in 1.8 : Special Admin */ +body#theAdminPage #menubar { + background: transparent url(images/menubar-bg.png) + repeat-y scroll right top; + border-bottom: #ccc ridge 2px; width:13.5em; padding: 0; margin: 0; +} +body#theAdminPage .content { /*default-layout.cs... (line 1)*/ +list-style-type:none; padding: 0px; + /*default-layout.cs... (line 23) */ +margin: 0px 0px 0px 200px; background-color: transparent;} + +#theAdminPage #menubar ul { list-style-image:url(images/list-image.png); } +#theAdminPage #menubar ul:hover { list-style-image:url(images/list-hover.png); } +a, input.rateButton, legend { color:#777; } +#menubar a { border-bottom:0; text-decoration:none; font-style: italic;} +body#theAdminPage #theHeader { + background:transparent url(images/piwigo_logo_sombre_214x100.png) no-repeat 230px top; height:105px; +} +body#theAdminPage #post-header { + background-color: transparent; + width: 60%; height: 4px; margin-left:40%; +} +#theHeader h1 { /*default-layout.cs... (line 204) */ + font-size:220%; line-height:4em; margin:auto 2em auto auto; text-align:right; +} +#the_page { /*theme.css (line 235) */ +border:0; display:block; margin:0px; padding-bottom:0px; +padding-top:0px; text-align:center; min-height: 100%; position:relative; +} +.pwgmenu { /* default-layout.cs... (line 136) */ +background:transparent none repeat scroll 0%; +display:table; font-family:verdana,arial,helvetica,sans-serif; +font-size: 8px; line-height:1.1em; list-style-image:none; +list-style-type:none; margin:1px 8px 1px auto; +padding:3px; position:relative; +text-decoration:none; top:-100px; +white-space:nowrap; width:66em; +} +.pwgmenu a { /* default-layout.cs... (line 159) */ +background:#f36 none repeat scroll 0%; +border:1px solid #FFFFFF; +color:white; +display:block; +font-weight:bold; +padding:4px 8px; +text-align:center; +text-decoration:none; +width:9em !important; +} + + + + + + + +#theAdminPage #menubar dt.pre-menubar { +background:transparent none no-repeat scroll left top; +height: 22px; overflow: hidden; margin: 0px; +} +.pwgmenu { /*theme.css (line 335)*/ +background:transparent url(images/header_bottom.png) repeat-x scroll left 25px; +float:right; +font-family:verdana,arial,helvetica,sans-serif; +font-size:8px; +line-height:1.1em; +list-style-image:none; +list-style-type:none; +margin:1px 8px 1px 0px; +padding:3px 3px 3px 101px; +text-decoration:none; top:-35px; +width:587px; +} +.pwgmenu li { /*default-layout.cs... (line 151)*/ +float:left; +margin:0px; +padding:0px; +text-align:center; +width:126px !important; +} +.pwgmenu a { /*theme.css (line 344)*/ +background:transparent url(images/onglet_inactif_transp.png) no-repeat scroll left 3px; +border:0px none; +color:#FF3333; +display:block; +font-size:8px; height:33px; +padding:3px 0px 5px 13px; text-align:left; +text-decoration:none; width:126px !important; +} +.pwgmenu a:hover { /*theme.css (line 344)*/ +background:transparent url(images/onglet_actif_transp.png) no-repeat scroll left 2px; +color: #ff7700; } +.content h2:before, .content h2:after, +#menubar DT:before, #menubar DT:after { content: ""; } +#theHeader h1 { /*theme.css (line 345) */ color:#441100; } +.content h2 { /*theme.css (line 100)*/ +letter-spacing:0.1em; margin-right:45px; text-align:right; color: #777777; +text-transform:none; } +.content dl, dd { /*content.css (line 52) */ margin:5px; } +.content h2 { /* default-layout.cs... (line 6) */ +font-weight:bold; margin-right:30px; padding-left:2em; } +#theAdminPage h3 { /* theme.css (line 96) */ +background: transparent none; margin-right:30px; font-weight: lighter;} +#theAdminPage h2 { /* theme.css (line 72) */ border-bottom:0px; } +body#theAdminPage { /*theme.css (line 324) */ +background:#111111 url(images/top-left-bg.png) no-repeat scroll left top;} +#theAdminPage #the_page { /*theme.css (line 73)*/ +background:transparent url(images/bottom-left-bg.png) no-repeat fixed left bottom; } +#the_page { /*theme.css (line 348)*/ padding-bottom:0px;} +.content {background-color:transparent;} +body#theAdminPage #menubar { /* theme.css (line 324) */ +background:transparent none repeat-y scroll right top; border-bottom:0px; margin-top:110px; +float: none; position: absolute; left: 0px; top: 160px;} +#theAdminPage #the_page .content { /*theme.css (line 91)*/ +background-color:transparent; border-width:0px; padding:5px 35px 5px 5px; } +body#theAdminPage #menubar dl.selected dd { padding-bottom: 145px; } +.header_notes {/*default-colors.cs... (line 91)*/ +background-image:url(icon/note.png); background-position:left top; +background-repeat:no-repeat; border:1px solid #AAAAAA; font-weight:bold; +margin:14px; padding:5px 0px 0px; position:absolute; right:31px; +text-align:center; top:96px; width:502px; } +#theAdminPage #menubar dl {/*theme.css (line 372)*/ +background:transparent url(images/menubar-top.png) no-repeat scroll left top; width: 198px; +border:0; box-shadow: none; +} +#theAdminPage #menubar dl.selected {/*theme.css (line 372)*/ +background:transparent url(images/menubar-top.png) no-repeat scroll left top; +} +#theAdminPage #menubar dt { background: none; left:10px; position:relative; text-align:left; top:-10px;} +#theAdminPage #menubar dd { background: transparent url(images/menubar-detail.png) repeat-y top left; +margin: 0px 0px 0px 4px; padding: 0px;} +span.bg { background-color: #111111; padding-right: 3px; } +html, body { +height:100%; +} +ul.tabsheet li.normal_tab, ul.tabsheet li.selected_tab { +background: transparent none repeat-x top left; +border:0; } +ul.tabsheet { border:0; +background: transparent url(images/internal_onglet.png) repeat-x bottom left; } +ul.tabsheet a { border:0; font-size: 12px; +font-family: verdana,arial,helvetica,sans-serif; line-height: 14px; } +ul.tabsheet li.selected_tab > a { color: #ff3333; } +ul.tabsheet, ul.tabsheet li { border-bottom: #eee solid 1px; } +ul.tabsheet li.selected_tab { +font-weight:bold; padding-top:0px; position:relative; top:0px; }
\ No newline at end of file diff --git a/BSF/template/yoga/theme/admin/themeconf.inc.php b/BSF/template/yoga/theme/admin/themeconf.inc.php new file mode 100644 index 000000000..5a6450e82 --- /dev/null +++ b/BSF/template/yoga/theme/admin/themeconf.inc.php @@ -0,0 +1,72 @@ +<?php +/** + * Accordion menus need to be stable + */ +function selected_admin_menu() +{ + if (isset($_GET['page'])) + { + switch ($_GET['page']) { + case 'configuration': + return 1; + case 'site_manager': + case 'site_update': + case 'cat_list': + case 'cat_modify': + case 'cat_move': + case 'cat_options': + case 'element_set': + case 'cat_perm': + case 'permalinks': + case 'picture_modify': + if (isset($_GET['cat']) and $_GET['cat']=='caddie') { + return 3; + } + return 2; + case 'comments': + case 'thumbnail': + case 'rating': + case 'tags': + return 3; + case 'user_list': + case 'group_list': + case 'notification_by_mail': + return 4; + case 'stats': + case 'history': + case 'maintenance': + case 'advanced_feature': + case 'ws_checker': + case 'plugins_list': + case 'plugin': + return 5; + } + } + return 0; +} + +$themeconf = array( + 'template' => 'yoga', + 'theme' => 'admin', + 'template_dir' => 'template/yoga', + 'icon_dir' => 'template/yoga/icon', + 'admin_icon_dir' => 'template/yoga/icon/admin', + 'mime_icon_dir' => 'template/yoga/icon/mimetypes/', + 'local_head' => ' +<!-- Admin Accordion Menus --> + <script type="text/javascript" src="template-common/lib/jquery.js"></script> + <script type="text/javascript" src="template-common/lib/chili-1.7.pack.js"></script> + <script type="text/javascript" src="template-common/lib/jquery.easing.js"></script> + <script type="text/javascript" src="template-common/lib/jquery.dimensions.js"></script> + <script type="text/javascript" src="template-common/jquery.accordion.js"></script> + <script type="text/javascript"> + jQuery().ready(function(){ + jQuery(\'#menubar\').accordion({ + header: "dt.rdion", + event: "mouseover", + active: '. selected_admin_menu() . ' + }); + }); + </script>' +); +?> diff --git a/BSF/template/yoga/theme/clear/index.php b/BSF/template/yoga/theme/clear/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/theme/clear/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/theme/clear/mail-css.tpl b/BSF/template/yoga/theme/clear/mail-css.tpl new file mode 100644 index 000000000..0bda3d715 --- /dev/null +++ b/BSF/template/yoga/theme/clear/mail-css.tpl @@ -0,0 +1,13 @@ +{* $Id$ *} +/* Theme clear mail css */ + +body {ldelim} background-color:#fff; color:#696969;} +#the_page {ldelim} background: #fff url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/mailbody-bg.png) repeat-y scroll left top;} +#content {ldelim} background: transparent url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/header-bg.png) no-repeat scroll left top;} +#copyright {ldelim} background: transparent url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/footer-bg.png) no-repeat scroll left bottom; +color: #333;} +h2 {ldelim} background-color: #ddd;} +img {ldelim} margin: 16px; border: 16px solid #aaa; -moz-border-radius: 4px; border-radius: 4px 4px; } +img:hover {ldelim} padding: 15px; border: 1px solid yellow;background-color:#faebd7; -moz-border-radius: 4px; border-radius: 4px 4px; } +a {ldelim} color: #369; background: transparent; } +a:hover {ldelim} color: #ddd; } diff --git a/BSF/template/yoga/theme/clear/theme.css b/BSF/template/yoga/theme/clear/theme.css new file mode 100644 index 000000000..cff996521 --- /dev/null +++ b/BSF/template/yoga/theme/clear/theme.css @@ -0,0 +1,94 @@ +/* $Id$ */ + +/* text color */ +BODY, H1, H2, H3, DT, +INPUT.rateButtonSelected /* <= why IE doesn't inherit this ? */ { + color:#696969; /* dimgray */ +} + +/* backgrounds */ +BODY, H3, .throw { + background-color: #ffffff; /* white */ +} + +H2, #menubar DT, #imageHeaderBar, #imageToolBar A:hover, .row1 { + background-color: #d3d3d3; +} + +#menubar DL, .content, #imageToolBar, .header_notes { + background-color: #eeeeee; +} + +/* borders */ +#menubar DL, .content, #imageToolBar, +#comments DIV.comment BLOCKQUOTE { + border: 1px solid #d3d3d3; +} + +#theImage IMG { + border-color: #d3d3d3; +} + +.content UL.thumbnail IMG { + border: 1px solid #a0a0a0; +} + +FIELDSET, INPUT, SELECT, TEXTAREA, +.content DIV.comment A.illustration IMG, +.content DIV.thumbnailCategory { + border: 1px solid gray; +} + +#comments DIV.comment BLOCKQUOTE { + border-left: 2px solid #696969; + background-color: #eee; +} + +.content UL.thumbnails SPAN.wrap2 { + border: 1px solid #aaaaaa; /* thumbnails border color and style */ + border-radius: 4px 4px; /* round corners with CSS3 compliant browsers */ +} + +.content UL.thumbnails SPAN.wrap2:hover, +.content UL.thumbnailCategories DIV.thumbnailCategory:hover, +.content UL.thumbnailCategories DIV.thumbnailCategory:hover A { + background-color: #faebd7; + border-color: yellow; /* thumbnails border color when mouse cursor is over it */ + color: black; +} + +/* links */ +A, INPUT.rateButton { + color: #005e89; + background: transparent; +} + +A:hover, INPUT.rateButton:hover { + color: #858460; +} + +#imageToolBar A, #imageToolBar A:hover { + border-bottom: none; +} + +A.navThumb, A.navThumb:hover { + border-bottom: none; +} + +/*calendar elements*/ +SPAN.calItem, SPAN.calItemEmpty +{ + border: 1px solid silver; +} + +.virtual_cat { background: #fff !important; } +#mbMenu #quicksearch > p { text-align: left; } +#qsearchInput { color: #d3d3d3; } +#qsearchInput:focus { color: #005e89; } + + +UL.tabsheet LI.normal_tab { background-color: #d3d3d3; } +UL.tabsheet LI.selected_tab { background-color: #eeeeee; } + +UL.tabsheet, UL.tabsheet LI {border-color: gray;} +UL.tabsheet LI.normal_tab:hover { border-color: black; } diff --git a/BSF/template/yoga/theme/clear/themeconf.inc.php b/BSF/template/yoga/theme/clear/themeconf.inc.php new file mode 100644 index 000000000..5e3aef9a0 --- /dev/null +++ b/BSF/template/yoga/theme/clear/themeconf.inc.php @@ -0,0 +1,11 @@ +<?php +$themeconf = array( + 'template' => 'yoga', + 'theme' => 'clear', + 'template_dir' => 'template/yoga', + 'icon_dir' => 'template/yoga/icon', + 'admin_icon_dir' => 'template/yoga/icon/admin', + 'mime_icon_dir' => 'template/yoga/icon/mimetypes/', + 'local_head' => '<!-- no theme specific head content -->', +); +?> diff --git a/BSF/template/yoga/theme/dark/images/index.php b/BSF/template/yoga/theme/dark/images/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/theme/dark/images/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/theme/dark/images/tableh1_bg.png b/BSF/template/yoga/theme/dark/images/tableh1_bg.png Binary files differnew file mode 100644 index 000000000..c7785d0f6 --- /dev/null +++ b/BSF/template/yoga/theme/dark/images/tableh1_bg.png diff --git a/BSF/template/yoga/theme/dark/images/tableh2_bg.png b/BSF/template/yoga/theme/dark/images/tableh2_bg.png Binary files differnew file mode 100644 index 000000000..d8c29f93d --- /dev/null +++ b/BSF/template/yoga/theme/dark/images/tableh2_bg.png diff --git a/BSF/template/yoga/theme/dark/index.php b/BSF/template/yoga/theme/dark/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/theme/dark/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/theme/dark/mail-css.tpl b/BSF/template/yoga/theme/dark/mail-css.tpl new file mode 100644 index 000000000..b17d6c964 --- /dev/null +++ b/BSF/template/yoga/theme/dark/mail-css.tpl @@ -0,0 +1,13 @@ +{* $Id$ *} +/* Theme dark mail css */ + +body {ldelim} background-color:#444; color:#fff;} +#the_page {ldelim} background: #444 url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/mailbody-bg.png) repeat-y scroll left top;} +#content {ldelim} background: transparent url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/header-bg.png) no-repeat scroll left top;} +#copyright {ldelim} background: transparent url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/footer-bg.png) no-repeat scroll left bottom; +color: #69c;} +h2 {ldelim} background-color: #333;color:#fff48e;background-image: url({$ROOT_URL}template/{$themeconf.template}/theme/{$themeconf.theme}/images/tableh1_bg.png);} +img {ldelim} margin: 16px; border: 16px solid #111; -moz-border-radius: 4px; border-radius: 4px 4px; } +img:hover {ldelim} padding: 15px; border: 1px solid yellow;background-color:#444;-moz-border-radius: 4px; border-radius: 4px 4px; } +a {ldelim} color: #fff48e; background: transparent;border-bottom:1px dotted #005e89; } +a:hover {ldelim} color: #fff48e;} diff --git a/BSF/template/yoga/theme/dark/theme.css b/BSF/template/yoga/theme/dark/theme.css new file mode 100644 index 000000000..690bdda1d --- /dev/null +++ b/BSF/template/yoga/theme/dark/theme.css @@ -0,0 +1,92 @@ +/* $Id$ */ + +/* text color */ +BODY, H1, H3, DT, +INPUT.rateButtonSelected /* <= why IE doesn't inherit this ? */ { + color:#d0d0d0; +} + +H2, #menubar DT, .throw { + color: #fff48e; +} + + +/* backgrounds */ + +BODY, H3, #imageHeaderBar, #imageToolBar A:hover, .row1, UL.tabsheet LI.normal_tab { + background-color: #2f2f2f; +} + +#menubar DL, .content, #imageToolBar, .header_notes, UL.tabsheet LI.selected_tab { + background-color: #505050; +} + +H2, #menubar DT, .throw { + background-image: url(images/tableh1_bg.png); +} + +#imageHeaderBar H2 { + background-image: none; + background-color: transparent; + border: none; +} + +#imageHeaderBar { + background-image: url(images/tableh2_bg.png); + background-repeat: repeat-x; + background-position: center; +} + +/* borders */ +#menubar DL, .content, +#comments DIV.comment BLOCKQUOTE { + border: 1px solid #000000; +} + +#imageHeaderBar { + border-top: 1px solid #000000; +} +H2, #menubar DT, #imageToolBar { + border-bottom: 1px solid #000000; +} + +#theImage IMG { + border-color: #000000; +} + +FIELDSET, INPUT, SELECT, TEXTAREA, +.content DIV.comment A.illustration IMG, +.content DIV.thumbnailCategory { + border: 1px solid gray; +} + +#comments DIV.comment BLOCKQUOTE { + border-left: 2px solid #696969; +} + +.content UL.thumbnails SPAN.wrap2 { + border: 1px solid #aaaaaa; /* thumbnails border color and style */ + border-radius: 4px 4px; /* round corners with CSS3 compliant browsers */ +} + +.content UL.thumbnails SPAN.wrap2:hover, +.content UL.thumbnailCategories DIV.thumbnailCategory:hover, +.content UL.thumbnailCategories DIV.thumbnailCategory:hover A { + background-color: #faebd7; + border-color: yellow; /* thumbnails border color when mouse cursor is over it */ + color: black; +} + +UL.tabsheet LI.normal_tab:hover { border-color: #fff48e; } + +/* links */ +A, INPUT.rateButton { + color: #FFFFFF; + border: none; +} + +A:hover { + color: #FFF48E; +} + +.virtual_cat { background: #3f3f3f; } diff --git a/BSF/template/yoga/theme/dark/themeconf.inc.php b/BSF/template/yoga/theme/dark/themeconf.inc.php new file mode 100644 index 000000000..bdee2e443 --- /dev/null +++ b/BSF/template/yoga/theme/dark/themeconf.inc.php @@ -0,0 +1,11 @@ +<?php +$themeconf = array( + 'template' => 'yoga', + 'theme' => 'dark', + 'template_dir' => 'template/yoga', + 'icon_dir' => 'template/yoga/icon', + 'admin_icon_dir' => 'template/yoga/icon/admin', + 'mime_icon_dir' => 'template/yoga/icon/mimetypes/', + 'local_head' => '<!-- no theme specific head content -->', +); +?> diff --git a/BSF/template/yoga/theme/index.php b/BSF/template/yoga/theme/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/theme/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/theme/p0w0/images/button-bg.png b/BSF/template/yoga/theme/p0w0/images/button-bg.png Binary files differnew file mode 100644 index 000000000..1ea3b3bd0 --- /dev/null +++ b/BSF/template/yoga/theme/p0w0/images/button-bg.png diff --git a/BSF/template/yoga/theme/p0w0/images/index.php b/BSF/template/yoga/theme/p0w0/images/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/theme/p0w0/images/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/theme/p0w0/index.php b/BSF/template/yoga/theme/p0w0/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/theme/p0w0/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/theme/p0w0/mail-css.tpl b/BSF/template/yoga/theme/p0w0/mail-css.tpl new file mode 100644 index 000000000..ffff7c9d8 --- /dev/null +++ b/BSF/template/yoga/theme/p0w0/mail-css.tpl @@ -0,0 +1,12 @@ +{* $Id$ *} +/* Theme p0w0 mail css */ + +body {ldelim} background-color:#cde; color:#369;} +#the_page {ldelim} background: #cde url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/mailbody-bg.png) repeat-y scroll left top;} +#content {ldelim} background: transparent url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/header-bg.png) no-repeat scroll left top;} +#copyright {ldelim} background: transparent url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/footer-bg.png) no-repeat scroll left bottom; +color: #69c;} +h2 {ldelim} color:#fff;background: #369 url({$ROOT_URL}template/{$themeconf.template}/theme/{$themeconf.theme}/images/button-bg.png);} +img {ldelim} margin:16px;padding:15px;border:1px solid #69c;background-color:#eef;-moz-border-radius:4px; border-radius:4px 4px; } +img:hover {ldelim} border: 1px solid #c60; -moz-border-radius:4px; border-radius:4px 4px; } +a {ldelim} color: #f92; background: transparent; } diff --git a/BSF/template/yoga/theme/p0w0/theme.css b/BSF/template/yoga/theme/p0w0/theme.css new file mode 100644 index 000000000..4a04cf44c --- /dev/null +++ b/BSF/template/yoga/theme/p0w0/theme.css @@ -0,0 +1,269 @@ +/* $Id$ */ + +/** + * Color scheme (Remember #6699cc = #69c) + * #000000 #336699 #4477aa #6699cc (Black -> Blues) + * #cc6600 #ff9933 (Oranges) + * #cccccc + * #ccddee #dfe8ff #eeeeff #ffffff (Light colors -> White) + * */ +/** + * Logic + * - Texts + * - Backgrounds + * - Borders, Margins, Padding + * - Visibility / Display + */ + +/******************************************************************************/ +/* Texts Only */ +BODY, H1, H3, DT, H2, .throw { color: #369; } +H2, #menubar DT, .throw, TD H3, #theAdminPage H3 { + color: #fff; +} +#menubar DT, #menubar DT A { + color: #fff; + font-weight: bold; +} +.content .titrePage .categoryActions li { color: #cde;} +#menubar DT A:hover { + color: #f92; + font-weight: bold; +} +h1 { font-weight: bold; letter-spacing: 0.2em; } +#mbIdentification dd p, +#menubar .selected A { color: #c60; font-weight: bold; } +#copyright { color: #c60; } +.content .pageNumberSelected, +A, INPUT.rateButton, legend { color: #369; } +A:hover { color: #f92; } +INPUT.rateButtonSelected /* <= why IE doesn't inherit this ? */ { + color:#69c; +} +.infoTable, +#theAdminPage .content, +input#qsearchInput { color: #369; } +.content .infos { color: #036; } +.content .errors { color: #900; } +.content .titrePage H2 A { color: #dfe8ff; } +input.rateButtonSelected, +.content .titrePage H2 A:hover { color: #f92; } +.content H2 { + letter-spacing: 0.01em; + text-indent: 1em; + font-weight: normal; +} +.content ul.thumbnailCategories li div.thumbnailCategory .description h3, +.content h3 { text-align: center; } +.browsePath, .imageNumber, +#imageHeaderBar H2, +.browsePath A { + color: #eef; + font-weight: bold; +} +.browsePath A:hover { color: #fff; } +.content H2:before, .browsePath:before, .imageNumber:before, +#imageHeaderBar H2:before, +.content H2:after, .browsePath:after, .imageNumber:after, +#imageHeaderBar H2:after { + content: " "; + color: #fff; + font-family: sans-serif; + font-weight: normal; + letter-spacing: 0em; +} +#thePicturePage #comments H2 { + color: #69c; +} +.content ul.thumbnailCategories li div.thumbnailCategory .description p { + color: #c60; +} +.content ul.thumbnailCategories li div.thumbnailCategory .description p + p { + color: #369; +} +.tabsheet li, .tabsheet li a, #theAdminPage h3 a, +.content div.thumbnailCategory .description h3 a { + color: #fff; +} +.tabsheet li a:hover, .content div.thumbnailCategory .description h3 a:hover { + color: #f92; +} + + +/******************************************************************************/ +/* Backgrounds Only */ +BODY { background: #cde; } +.header_notes, +#thePicturePage #the_page, +#thePicturePage #theImage, +#theAdminPage #the_page, +.content { background-color: #dfe8ff; } +#the_page { background-color: #dfe8ff; } +#menubar, H3, #imageHeaderBar, +.row1 { background-color: #eef; } +H2, #menubar DT, .throw, TD H3, +#imageToolBar, +#imageHeaderBar, #imageHeaderBar H2, .tabsheet li, +#theAdminPage H3 { background-color: #369; } +.content H2 { background-color: #369; } +.content .infos { background-color: #47a; ;} +.content .errors { background-color: #fc5; ;} +#thePicturePage #comments H2 { background-color: #eef; ;} +.content ul.thumbnailCategories li div.thumbnailCategory .description h3 { + background-color: #69c; +} +.content ul.thumbnailCategories li div.thumbnailCategory, +.content UL.thumbnails SPAN.wrap2 { background-color: #eef; } +.content ul.thumbnailCategories li div.thumbnailCategory:hover, +#theImage IMG, .navThumb IMG, +.content UL.thumbnails SPAN.wrap2:hover { background-color: #fff; } +.content UL.thumbnails SPAN.wrap2:active img { + outline: 3px ridge #f92; +} +input#qsearchInput { background-color: #cde; } +.virtual_cat { background: #fff !important; } +.selected_tab { background-color: #69c !important; } +/******************************************************************************/ +/* Borders, Margins, Padding Only */ +BODY { margin: 0px; padding: 0px; } +#menubar { + margin : 0px 0px 0px 8px; + border: 0px; + text-decoration: none; + border: 1px solid #369; +} +A { border: 0px; text-decoration: none; } +A:hover { text-decoration: none; border: 0px; } +.content { + border: 1px solid #369; + padding: 0px; +} +#menubar DT, .content H2 { + background-image: url(images/button-bg.png); + border: 0px; + margin-bottom: 3px; +} +.content ul.thumbnailCategories li div.thumbnailCategory .description h3 { + background-image: url(images/button-bg.png); + border-width: 1px; + border-style: outset; + border-color: #369; +} +.content ul.thumbnailCategories li div.thumbnailCategory .description h3:active +{ + background: #69c; + border: 1px inset #369; +} +.content .errors { border-color: #f92; } +#imageHeaderBar H2 { border: 0px; } +#thePicturePage #imageToolBar { padding: 0px 25px 5px 25px; } +#thePicturePage #theImage { + margin: 0px; + padding: 3px 0px 15px 0px; +} +#thePicturePage #comments H2 { + border-top: 2px solid #69c; + border-bottom: 1px solid #369; +} +#comments DIV.comment BLOCKQUOTE { + border: 1px solid #fff; +} +H2, #imageToolBar { + border-bottom: 1px solid #fff; +} +.navThumb IMG { border: 1px solid #c60; padding: 1px; opacity: 0.8; } +.navThumb:hover IMG { border: 1px solid #f92; padding: 1px; opacity: 1; } +#theImage IMG { + border: 3px solid #369; + margin: 2px auto; + padding: 1px; + box-shadow: 0.2em 0.2em #ccc; +} +.content UL.thumbnail IMG { + border: 1px solid #666; +} +.illustration A { + border: 0px; +} +FIELDSET, INPUT, SELECT, TEXTAREA, +.content DIV.comment A.illustration IMG, +.content DIV.thumbnailCategory { + border: 1px solid #69c; + background-color: #dfe8ff; + margin: 3px; +} +.content DIV.thumbnailCategory:hover { + border: 1px solid #f92; +} +.content UL.thumbnails SPAN.wrap2 { + border: 1px solid #69c; /* thumbnails border color and style */ + border-radius: 4px 4px; /* round corners with CSS3 compliant browsers */ +} +.content UL.thumbnails SPAN.wrap2:hover { + border-color: #f92; /* thumbnails border color when mouse cursor is over it */ +} +A.navThumb, A.navThumb:hover, +#imageToolBar A, #imageToolBar A:hover { + border-bottom: none; +} +#the_page { + border: 0px; + padding: 5px 0px 30px 0px; + margin: 0px; +} +#theAdminPage .content table td { padding: 2px 8px; } +ul.tabsheet, ul.tabsheet li { border-color: #369 !important; } +.tabsheet li:hover { border-color: #f92 !important; } + +/******************************************************************************/ +/* Display, Visibility, buttons and others */ +label { cursor:pointer } +.zero { display: none } + +#the_page { + text-align:center; + display:block; +} + +input[type="text"], input[type="password"], input.button, +input.submit, input.reset, input.file, +select, textarea { + color: #369; + border: 1px solid #369; + background-color: #eeeeff; +} +input.submit[type="reset"]:focus, +input.submit:focus { + background-color: #369; +} +input.submit[type="reset"], +input.submit { + background-image: url(images/button-bg.png); + height:22px; + font-weight: bold; + color: #fff; + border-width: 1px; + border-style: outset; + border-color: #369; + padding-left: 2em; + padding-right: 2em; +} +input.submit[type="reset"]:active, +input.submit:active { + background: #69c; + height:22px; + border: 1px inset #369; +} +#addComment fieldset input.submit[type="submit"] { + height: 38px; + padding-left: 4em; + padding-right: 4em; +} +#menubar .menuInfoCat, #menubar .menuInfoCatByChild { + font-size: 80%; + font-style: normal; +} +* { outline: none; } + +tr.throw td a { color: #fff; } +tr.throw td a:focus { color: #f92; }
\ No newline at end of file diff --git a/BSF/template/yoga/theme/p0w0/themeconf.inc.php b/BSF/template/yoga/theme/p0w0/themeconf.inc.php new file mode 100644 index 000000000..d24b701ca --- /dev/null +++ b/BSF/template/yoga/theme/p0w0/themeconf.inc.php @@ -0,0 +1,11 @@ +<?php +$themeconf = array( + 'template' => 'yoga', + 'theme' => 'p0w0', + 'template_dir' => 'template/yoga', + 'icon_dir' => 'template/yoga/icon', + 'admin_icon_dir' => 'template/yoga/icon/admin', + 'mime_icon_dir' => 'template/yoga/icon/mimetypes/', + 'local_head' => '<!-- no theme specific head content -->', +); +?> diff --git a/BSF/template/yoga/theme/wipi/images/index.php b/BSF/template/yoga/theme/wipi/images/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/theme/wipi/images/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/theme/wipi/images/tableh1_bg.png b/BSF/template/yoga/theme/wipi/images/tableh1_bg.png Binary files differnew file mode 100644 index 000000000..8163e23bf --- /dev/null +++ b/BSF/template/yoga/theme/wipi/images/tableh1_bg.png diff --git a/BSF/template/yoga/theme/wipi/images/tableh2_bg.png b/BSF/template/yoga/theme/wipi/images/tableh2_bg.png Binary files differnew file mode 100644 index 000000000..be06ee428 --- /dev/null +++ b/BSF/template/yoga/theme/wipi/images/tableh2_bg.png diff --git a/BSF/template/yoga/theme/wipi/index.php b/BSF/template/yoga/theme/wipi/index.php new file mode 100644 index 000000000..c15b15795 --- /dev/null +++ b/BSF/template/yoga/theme/wipi/index.php @@ -0,0 +1,30 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based picture gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +// Recursive call +$url = '../'; +header( 'Request-URI: '.$url ); +header( 'Content-Location: '.$url ); +header( 'Location: '.$url ); +exit(); +?> diff --git a/BSF/template/yoga/theme/wipi/mail-css.tpl b/BSF/template/yoga/theme/wipi/mail-css.tpl new file mode 100644 index 000000000..5b3e53c3d --- /dev/null +++ b/BSF/template/yoga/theme/wipi/mail-css.tpl @@ -0,0 +1,19 @@ +{* $Id$ *} +/* Theme wipi mail css */ + +body {ldelim} background-color:#111; color:#69c;} +#the_page {ldelim} background: #111 url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/mailbody-bg.png) repeat-y scroll left top;} +#content {ldelim} background: transparent url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/header-bg.png) no-repeat scroll left top;} +#copyright {ldelim} background: transparent url({$ROOT_URL}template/{$themeconf.template}/mail/text/html/images/footer-bg.png) no-repeat scroll left bottom; +color: #69c;} +h2 {ldelim} background-color: #222;color:#eee;background-image: url({$ROOT_URL}template/{$themeconf.template}/theme/{$themeconf.theme}/images/tableh1_bg.png);} +img {ldelim} margin: 16px; padding:15px;border:1px solid #eee; -moz-border-radius: 4px; border-radius: 4px 4px; } +img:hover {ldelim} border:1px solid #69c; -moz-border-radius: 4px; border-radius: 4px 4px; } +a {ldelim} color: #69c; background: transparent; } +a:hover {ldelim} color: #f92; } +a.PWG {ldelim} border: 0px; } +a.PWG .P {ldelim} color : #f92; } +a.PWG .W {ldelim} color : #aaa; } +a.PWG .G {ldelim} color : #69c; } +a.PWG:hover .P {ldelim} color : #69c; } +a.PWG:hover .G {ldelim} color : #f92; } diff --git a/BSF/template/yoga/theme/wipi/theme.css b/BSF/template/yoga/theme/wipi/theme.css new file mode 100644 index 000000000..9c0deea14 --- /dev/null +++ b/BSF/template/yoga/theme/wipi/theme.css @@ -0,0 +1,322 @@ +/* $Id$ */ + +/* text color */ +BODY, H1, H3, DT, +INPUT.rateButtonSelected /* <= why IE doesn't inherit this ? */ { + color:#e0e0e0; +} +#menubar { + margin : 0px; + background-color: transparent; + border: 0px; +} +H2, .throw { + color: #eee; +} +#menubar DT, #menubar DT A { + color: #eee; + font-weight: lighter; +} +#menubar DT A:hover { + color: #69c; + font-weight: lighter; +} +#menubar .selected A { + color: #eee; +} +#menubar .selected A:hover { + color: #f92; +} +#menubar DT:before { + content: "__\\_ "; + color: #f92; +} +#menubar DT:after { + content: " _/__"; + color: #69c; +} +#menubar .button { + margin: 0 2px 0px 8px; + width: auto; + padding: 0; + text-indent: 0; + list-style: none; + text-align: center; + float: left; +} +#theAdminPage #menubar DT:before, +#theAdminPage #menubar DT:after { + content: ''; +} +.content .pageNumberSelected { + color: #f92; +} +.content .infos { + background-color: #69c; + color: #036; +} +.content .errors { + background-color: #fc5; + border-color: #f92; + color: #900; +} +/* backgrounds */ +BODY { + background: #111; + margin: 0px; + padding: 0px; +} +H3, #imageToolBar A:hover, .row1, .tabsheet li { + background-color: #222; +} +#theAdminPage h2, #theAdminPage h3 { border-bottom: 1px solid #69c; } +#imageHeaderBar, #theAdminPage #the_page { + background-color: #111; +} +#imageToolBar, .header_notes { + background-color: #333; +} +.selected_tab { background-color: eee !important; } +A { + border-color: #69c; +} +A:hover { + border-color: #f92; +} +.content { + background-color: #181818; + border: 1px solid #eee; + padding: 5px; +} +#theAdminPage #the_page .content { + background-color: #111; + border-width: 0px; + padding: 5px; +} +H2, #menubar DT, .throw, TD H3, #theAdminPage H3 { + background-image: url(images/tableh1_bg.png); + background-repeat: repeat-x; +} +.content H2 { + background: none; + border: 0px; + letter-spacing: -0.05em; + text-indent: 1em; + text-transform: uppercase; + font-weight: lighter; + margin-bottom: 20px; +} +.content ul.thumbnailCategories li div.thumbnailCategory .description h3, +.content h3 { text-align: center; } +.content ul.thumbnailCategories li div.thumbnailCategory .description p { + color: #f92; text-indent: 0em; +} +.content ul.thumbnailCategories li div.thumbnailCategory .description p + p { + color: #fff; +} +.browsePath A { + color: #eee; +} +.content H2:before, .browsePath:before, .imageNumber:before, +#imageHeaderBar H2:before { + content: "____\\_ "; + color: #69c; + font-family: Times, Zapf-Chancery, Cottonwood, Helvetica; + letter-spacing: 0em; +} +.content H2:after, .browsePath:after, .imageNumber:after, +#imageHeaderBar H2:after { + content: " _/____"; + color: #f92; + font-family: Times, Zapf-Chancery, Cottonwood, Helvetica; + letter-spacing: 0em; +} +#imageHeaderBar H2 { + background-image: none; + background-color: transparent; + border: none; +} +#thePicturePage #the_page { + background-color: #111; +} +#thePicturePage #imageHeaderBar { + background-image: url(images/tableh2_bg.png); + background-repeat: repeat-x; +} +#thePicturePage #imageToolBar { + background-color: #111; + border-bottom: 2px solid #69c; +} +#thePicturePage #theImage { + background-color: #111; + margin: 0px; + padding: 3px 0px 15px 0px; +} + +#thePicturePage #comments H2 { + background-image: none; + background-color: #222; + border-top: 2px solid #69c; + border-bottom: 2px solid #69c; + color: #69c; + font-weight: lighter; +} + +/* borders */ +#comments DIV.comment BLOCKQUOTE { + border: 1px solid #000; +} +#imageHeaderBar { + border-top: 1px solid #000; + padding: 8px 0px 3px 0px; +} +H2, #imageToolBar { + border-bottom: 1px solid #000; +} + +#theImage IMG { + border-color: #fff; +} + +.content UL.thumbnail IMG { + border: 1px solid #a0a0a0; +} +.illustration A { + border: 0px; +} +FIELDSET, INPUT, SELECT, TEXTAREA, +.content DIV.comment A.illustration IMG, +.content DIV.thumbnailCategory { + border: 1px solid gray; +} +.content DIV.thumbnailCategory { + border: 1px solid #69c; + margin: 8px 4px; +} +#comments DIV.comment BLOCKQUOTE { + border-left: 2px solid #696969; +} + +.content UL.thumbnails SPAN.wrap2 { + border: 1px solid #aaaaaa; /* thumbnails border color and style */ + border-radius: 4px 4px; /* round corners with CSS3 compliant browsers */ +} + +.content UL.thumbnails SPAN.wrap2:hover, +.content UL.thumbnailCategories DIV.thumbnailCategory:hover { + background-color: #333; + border-color: #69c; /* thumbnails border color when mouse cursor is over it */ +} + +#menubar .buttonmenu { + margin: 0 2px; + width: auto; + padding: 0; + text-indent: 0; + list-style: none; + text-align: center; + float: left; +} +/* links */ +A, INPUT.rateButton, legend { + color: #69c; +} + +A:hover { + color: #f92; +} + +#imageToolBar A, #imageToolBar A:hover { + border-bottom: none; +} +A.navThumb, A.navThumb:hover { + border-bottom: none; +} +#the_page { + border: 1px dotted #f92; + padding-top: 5px; + padding-bottom:30px; + text-align:center; + display:block; + margin: 2px; +} +#copyright { + color: #69c; +} + +label { + cursor:pointer +} +input#qsearchInput { + color: #58c; + background-color: #222; + border: 1px solid #333; + padding: 1px 3px; +} +.zero { display: none } +.nb-hits { color: #69c; } +.nb-comments { color: #f92; } + +FORM#quickconnect, +FORM#quickconnect FIELDSET, +FORM#quickconnect P, +FORM#quickconnect UL.actions, +FORM#quickconnect FIELDSET>UL.actions, +FORM#quickconnect UL.actions, +FORM#quickconnect P, +FORM#quickconnect LABEL { + color: #69c; +} +FORM#quickconnect P INPUT, +FORM#quickconnect INPUT[type=text], +FORM#quickconnect INPUT[type=password] { + width: 85%; + color: #58c; + background-color: #222; + border: 1px solid #333; + padding: 1px 3px; +} + + +.virtual_cat { background: #222 !important; } + +.PWG { + font-family: verdana, arial, helvetica, sans-serif !important; + font-size: 0.9em; + font-weight: normal; + letter-spacing: 0px; +} +a.PWG { border: 0px; } +a.PWG .P { color : #f92; } +a.PWG .W { color : #aaa; } +a.PWG .G { color : #69c; } +a.PWG:hover .P { color : #69c; } +a.PWG:hover .G { color : #f92; } +#menubar DT { + border-top: 1px solid #eef; + border-right: 1px solid #69c; + border-bottom: 1px solid #69c; + border-bottom-right-radius: 12px; + -moz-border-radius-bottomright: 12px; + box-shadow: 5px 5px #69c; +} +.statBar { background-color: #e60; } +#imageToolBar .randomButtons a:hover, +#imageToolBar .navButtons a:hover { background-color: #111; } +#menubar .menuInfoCat, +#menubar .menuInfoCatByChild, +h2.showtitle, #theImage p.showlegend { display: none } +* { outline-width: 0px; } +ul.tabsheet, ul.tabsheet li { + border-color: #69c; +} +ul.tabsheet li.normal_tab { + background-image: url(images/tableh1_bg.png); + background-repeat: repeat-x; +} +ul.tabsheet li.normal_tab:hover { border-color: #f92 } +ul.tabsheet li { + -moz-border-radius: 0px 0px 3px 3px; + border-radius: 0px 0px 12px 12px; + -webkit-border-radius: 0px 0px 3px 3px; +} diff --git a/BSF/template/yoga/theme/wipi/themeconf.inc.php b/BSF/template/yoga/theme/wipi/themeconf.inc.php new file mode 100644 index 000000000..4ac750e46 --- /dev/null +++ b/BSF/template/yoga/theme/wipi/themeconf.inc.php @@ -0,0 +1,16 @@ +<?php +$themeconf = array( + 'template' => 'yoga', + 'theme' => 'wipi', + 'template_dir' => 'template/yoga', + 'icon_dir' => 'template/yoga/icon', + 'admin_icon_dir' => 'template/yoga/icon/admin', + 'mime_icon_dir' => 'template/yoga/icon/mimetypes/', + 'local_head' => '<!-- no theme specific head content -->', +); +if ( !isset($lang['Theme: wipi']) ) +{ + $lang['Theme: wipi'] = 'The site is displayed with wipi theme based ' . + ' on yoga template, a standard template/theme of PhpWebgallery.'; +} +?> diff --git a/BSF/template/yoga/thumbnails-fix-ie5-ie6.css b/BSF/template/yoga/thumbnails-fix-ie5-ie6.css new file mode 100644 index 000000000..dbffaefc9 --- /dev/null +++ b/BSF/template/yoga/thumbnails-fix-ie5-ie6.css @@ -0,0 +1,27 @@ +/* $Id$ */ +/* fix IE with another layout for thumbnails */ +.content UL.thumbnails SPAN.wrap2 { + display: block; + position: relative; + text-align: left; +} +.content UL.thumbnails SPAN.wrap2 A, +.content UL.thumbnails SPAN.wrap2 SPAN { + overflow: visible; + position: absolute; + top: 50%; + text-align: center; +} + +.content UL.thumbnails IMG.thumbnail { + position: relative; + top: -50%; + /*\*//*/ + margin-top: -40%; + /**/ +} +.content UL.thumbnails INPUT { + position: absolute; + left: 2px; + top: 2px; /* same as other browsers but not so pretty */ +} diff --git a/BSF/template/yoga/thumbnails.css b/BSF/template/yoga/thumbnails.css new file mode 100644 index 000000000..8d02e7742 --- /dev/null +++ b/BSF/template/yoga/thumbnails.css @@ -0,0 +1,60 @@ +/* $Id$ */ + +/* Thumbnails customization */ +.content UL.thumbnails SPAN.thumbLegend { + font-size: 80%; /* font size */ + overflow: hidden; /* oversized legend is clipped */ +} + +/* Thumbnail "elastic" layout */ +.content UL.thumbnails { + margin: 0; + padding: 0; + list-style: none; + text-align: center; /* to center the whole collection in .content */ +} +.content UL.thumbnails LI { display: inline } + +.content UL.thumbnails SPAN.wrap1 { + margin: 0 5px 5px 5px; + display: table-cell; display: inline-table; + display: inline-block; /* Why 3 display option ??? */ + vertical-align: top; /* OK with Opera and IE6 not Geko */ + text-align: center; /* to center the thumbnail and legend in Geko/Opera */ +} +.content UL.thumbnails SPAN.wrap2 { + margin: 0; /* important reset the margins */ + display: table-cell; /* block prevents vertical-align here */ + vertical-align: middle; /* Ok with Opera and Geko not IE6 */ +} +.content UL.thumbnails SPAN.wrap2 A, +.content UL.thumbnails LABEL { + display: block; + border-bottom: none; +} +.content UL.thumbnails IMG { + margin-bottom: -4px; /* why ??? something wrong with Geko and Opera ignored by IE6*/ +} + +/* label and input used for caddie in admin section */ +.content UL.thumbnails LABEL { + position: relative; +} + +.content UL.thumbnails INPUT { + position: relative; /* <= Opera can handle relative here */ + top: -20px; +} +:root .content UL.thumbnails INPUT { /* hide from Opera */ + position: absolute; /* <= Opera hide 1 checkbox over 2 !!! */ + left: 2px; + top: 2px; +} + +UL.thumbnails .levelIndicatorB { +display:block; position:absolute; z-index:100;padding:0px 0 0 14px; color:black; font-weight:bold; fontsize:120%; +} + +UL.thumbnails .levelIndicatorF { +display:block; position:absolute; z-index:101;padding:1px 0 0 15px; color:white; font-weight:bold; fontsize:120%; +}
\ No newline at end of file diff --git a/BSF/template/yoga/thumbnails.tpl b/BSF/template/yoga/thumbnails.tpl new file mode 100644 index 000000000..2fd37f649 --- /dev/null +++ b/BSF/template/yoga/thumbnails.tpl @@ -0,0 +1,38 @@ +{* $Id$ *} + +{if !empty($thumbnails)} +<ul class="thumbnails"> +{foreach from=$thumbnails item=thumbnail} + <li> + <span class="wrap1"> + <span class="wrap2"> + <a href="{$thumbnail.U_IMG_LINK}"> + <img class="thumbnail" src="{$thumbnail.IMAGE}" alt="{$thumbnail.IMAGE_ALT}" title="{$thumbnail.IMAGE_TITLE}" /> + </a> + </span> + <span class="thumbLegend"> + + {if !empty($thumbnail.ELEMENT_NAME)}{$thumbnail.ELEMENT_NAME}{/if} + {if !empty($thumbnail.IMAGE_TS)}{$thumbnail.IMAGE_TS}{/if} + + {if isset($thumbnail.NB_COMMENTS)} + <span class="{if 0==$thumbnail.NB_COMMENTS}zero {/if}nb-comments"> + <br /> + {$pwg->l10n_dec('%d comment', '%d comments',$thumbnail.NB_COMMENTS)} + </span> + {/if} + + {if isset($thumbnail.NB_HITS)} + <span class="{if 0==$thumbnail.NB_HITS}zero {/if}nb-hits"> + <br /> + {$pwg->l10n_dec('%d hit', '%d hits',$thumbnail.NB_HITS)} + </span> + {/if} + </span> + </span> + </li> +{/foreach} +</ul> +{/if} + + diff --git a/BSF/template/yoga/upgrade.tpl b/BSF/template/yoga/upgrade.tpl new file mode 100644 index 000000000..2af91c70e --- /dev/null +++ b/BSF/template/yoga/upgrade.tpl @@ -0,0 +1,44 @@ +{* $Id$ *} +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + + <head> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> + <title>Piwigo : Upgrade to {$RELEASE}</title> + </head> + + <body> + {if isset($introduction)} + <h1>Welcome to Piwigo upgrade page.</h1> + + <p>This page proposes to upgrade your database corresponding to your old +version of Piwigo to the current version. The upgrade assistant +thinks you are currently running a +<strong>release {$introduction.CURRENT_RELEASE}</strong> (or equivalent).</p> + + <p><a href="{$introduction.RUN_UPGRADE_URL}">Upgrade from release +{$introduction.CURRENT_RELEASE} to {$RELEASE}</a></p> + {/if} + + {if isset($upgrade)} + <h1>Upgrade from version {$upgrade.VERSION} to {$RELEASE}</h1> + + <p>Statistics</p> + <ul> + <li>total upgrade time : {$upgrade.TOTAL_TIME}</li> + <li>total SQL time : {$upgrade.SQL_TIME}</li> + <li>SQL queries : {$upgrade.NB_QUERIES}</li> + </ul> + + <p>Upgrade informations</p> + + <ul> + {foreach from=$infos item=info} + <li>{$info}</li> + {/foreach} + </ul> + + {/if} + </body> + +</html> diff --git a/BSF/template/yoga/upload.tpl b/BSF/template/yoga/upload.tpl new file mode 100644 index 000000000..b92c918fd --- /dev/null +++ b/BSF/template/yoga/upload.tpl @@ -0,0 +1,110 @@ +{* $Id$ *} + +<div id="content" class="content"> + + <div class="titrePage"> + <ul class="categoryActions"> + <li><a href="{$U_HOME}" title="{'return to homepage'|@translate}"><img src="{$themeconf.icon_dir}/home.png" class="button" alt="{'home'|@translate}"/></a></li> + </ul> + <h2>{'upload_title'|@translate}</h2> + </div> + + {if !empty($errors)} + <div class="errors"> + <ul> + {foreach from=$errors item=error} + <li>{$error}</li> + {/foreach} + </ul> + </div> + {/if} + + {if not $UPLOAD_SUCCESSFUL } + <form enctype="multipart/form-data" method="post" action="{$F_ACTION}"> + <table style="width:80%;margin-left:auto;margin-right:auto;"> + <tr> + <td colspan="2" class="menu"> + <div style="text-align:center;">{$ADVISE_TITLE}</div> + {if not empty($advises)} + <ul> + {foreach from=$advises item=advise} + <li>{$advise}</li> + {/foreach} + </ul> + {/if} + </td> + </tr> + <tr> + <td colspan="2" align="center"> + <input name="picture" type="file" value="" /> + </td> + </tr> + {if isset($SHOW_FORM_FIELDS) and $SHOW_FORM_FIELDS} + <!-- category --> + <tr> + <td>{'Category'|@translate}</td> + <td> + {html_options name="category" options=$categories selected=$categories_selected} + </td> + </tr> + <!-- username --> + <tr> + <td>{'Username'|@translate} <span style="color:red;">*</span></td> + <td> + <input name="username" type="text" value="{$NAME}" /> + </td> + </tr> + <!-- mail address --> + <tr> + <td>{'mail_address'|@translate} <span style="color:red;">*</span></td> + <td> + <input name="mail_address" type="text" value="{$EMAIL}" /> + </td> + </tr> + <!-- name of the picture --> + <tr> + <td>{'upload_name'|@translate}</td> + <td> + <input name="name" type="text" value="{$NAME_IMG}" /> + </td> + </tr> + <!-- author --> + <tr> + <td>{'upload_author'|@translate}</td> + <td> + <input name="author" type="text" value="{$AUTHOR_IMG}" /> + </td> + </tr> + <!-- date of creation --> + <tr> + <td>{'Creation date'|@translate} (DD/MM/YYYY)</td> + <td> + <input name="date_creation" type="text" value="{$DATE_IMG}" /> + </td> + </tr> + <!-- comment --> + <tr> + <td>{'comment'|@translate}</td> + <td> + <textarea name="comment" rows="3" cols="40" style="overflow:auto">{$COMMENT_IMG}</textarea> + </td> + </tr> + {/if} + <tr> + <td colspan="2" align="center"> + <input class="submit" name="submit" type="submit" value="{'Submit'|@translate}" /> + </td> + </tr> + </table> + </form> + {else} + {'upload_successful'|@translate}<br /> + <div style="text-align:center;"> + <a href="{$U_RETURN}">[ {'home'|@translate} ]</a> + </div> + {/if} + + {if isset($SHOW_FORM_FIELDS) and $SHOW_FORM_FIELDS} + <div style="text-align:left;"><span style="color:red;">*</span> : {'mandatory'|@translate}</div> + {/if} +</div> <!-- content --> |