Changeset 13551


Ignore:
Timestamp:
Mar 14, 2012, 2:37:30 PM (8 years ago)
Author:
plg
Message:

import theme Simple version 2.4

compatibility with piwigo 2.2:

  • update template, language strings + misc things
  • use rating and core.scripts from default theme
  • cleanup useless javascript stuff
  • use new combined_css feature - thanks to P@t
  • replace known_script with combine_script
Location:
extensions/simple_themes/simple
Files:
6 deleted
23 edited

Legend:

Unmodified
Added
Removed
  • extensions/simple_themes/simple/README.md

    r13549 r13551  
    4040  extract it in ``your-gallery/template/``.
    4141
    42 Notes for developpers
    43 ---------------------
    44 
    45 * `js/compress.sh` is a script which allows to compress and minify the
    46   different javascript files, using `yuicompressor`.
    47 
    4842Changelog
    4943---------
     44
     45### version 2.4 (05/04/2011)
     46
     47compatibility with piwigo 2.2:
     48* update template, language strings + misc things
     49* use rating and core.scripts from default theme
     50* cleanup useless javascript stuff
     51* use new combined_css feature - thanks to P@t
     52* replace known_script with combine_script
    5053
    5154### version 2.3 (07/01/2011)
  • extensions/simple_themes/simple/index.php

    r13546 r13551  
    11<?php
    22// +-----------------------------------------------------------------------+
    3 // | Piwigo - a PHP based picture gallery                                  |
     3// | Piwigo - a PHP based photo gallery                                    |
    44// +-----------------------------------------------------------------------+
    5 // | Copyright(C) 2008      Piwigo Team                  http://piwigo.org |
     5// | Copyright(C) 2008-2011 Piwigo Team                  http://piwigo.org |
    66// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net |
    77// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick |
  • extensions/simple_themes/simple/js/scripts.js

    r13549 r13551  
    3030  };
    3131});
    32 function SelectAll( formulaire )
    33 {
    34 var elts = formulaire.elements;
    35 for(var i=0; i <elts.length; i++)
    36 {
    37         if (elts[i].type=='checkbox')
    38                 elts[i].checked = true;
    39 }
    40 }
    41 
    42 function DeselectAll( formulaire )
    43 {
    44 var elts = formulaire.elements;
    45 for(var i=0; i <elts.length; i++)
    46 {
    47         if (elts[i].type=='checkbox')
    48                 elts[i].checked = false;
    49 }
    50 }
    51 
    52 function Inverser( formulaire )
    53 {
    54 var elts = formulaire.elements;
    55 for(var i=0; i <elts.length; i++)
    56 {
    57         if (elts[i].type=='checkbox')
    58                 elts[i].checked = !elts[i].checked;
    59 }
    60 }
    61 
    62 function phpWGOpenWindow(theURL,winName,features)
    63 {
    64         img = new Image();
    65         img.src = theURL;
    66         if (img.complete)
    67         {
    68                 var width=img.width+40, height=img.height+40;
    69         }
    70         else
    71         {
    72                 var width=640, height=480;
    73                 img.onload = function () { newWin.resizeTo( img.width+50, img.height+100); };
    74         }
    75         newWin = window.open(theURL,winName,features+',left=2,top=1,width=' + width + ',height=' + height);
    76 }
    77 
    78 function popuphelp(url)
    79 {
    80         window.open( url, 'dc_popup',
    81                 'alwaysRaised=yes,dependent=yes,toolbar=no,height=420,width=500,menubar=no,resizable=yes,scrollbars=yes,status=no'
    82         );
    83 }
    84 
    85 Function.prototype.pwgBind = function() {
    86                 var __method = this, object = arguments[0], args = Array.prototype.slice.call(arguments,1);
    87                 return function() {
    88                                 return __method.apply(object, args.concat(arguments) );
    89                 }
    90 }
    91 function PwgWS(urlRoot)
    92 {
    93         this.urlRoot = urlRoot;
    94         this.options = {
    95                 method: "GET",
    96                 async:  true,
    97                 onFailure: null,
    98                 onSuccess: null
    99         };
    100 };
    101 
    102 PwgWS.prototype = {
    103 
    104         callService : function(method, parameters, options)
    105         {
    106                 if (options)
    107                 {
    108                         for (var property in options)
    109                                 this.options[property] = options[property];
    110                 }
    111                 try { this.transport = new XMLHttpRequest();}
    112                 catch(e) {
    113                         try { this.transport = new ActiveXObject('Msxml2.XMLHTTP'); }
    114                         catch(e) {
    115                                 try { this.transport = new ActiveXObject('Microsoft.XMLHTTP'); }
    116                                 catch (e){
    117                                         dispatchError(0, "Cannot create request object");
    118                                 }
    119                         }
    120                 }
    121                 this.transport.onreadystatechange = this.onStateChange.pwgBind(this);
    122 
    123                 var url = this.urlRoot+"ws.php?format=json";
    124 
    125                 var body = "method="+method;
    126                 if (parameters)
    127                 {
    128                         for (var property in parameters)
    129                         {
    130                                 if ( typeof parameters[property] == 'object' && parameters[property])
    131                                 {
    132                                         for (var i=0; i<parameters[property].length; i++)
    133                                                 body += "&"+property+"[]="+encodeURIComponent(parameters[property][i]);
    134                                 }
    135                                 else
    136                                         body += "&"+property+"="+encodeURIComponent(parameters[property]);
    137                         }
    138                 }
    139 
    140                 if (this.options.method == "POST" )
    141                 {
    142                         this.transport.open(this.options.method, url, this.options.async);
    143                         this.transport.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    144                         this.transport.send(body);
    145                 }
    146                 else
    147                 {
    148                         url += "&"+body;
    149                         this.transport.open(this.options.method, url, this.options.async);
    150                         this.transport.send(null);
    151                 }
    152         },
    153 
    154         onStateChange: function() {
    155                 var readyState = this.transport.readyState;
    156                 if (readyState==4)
    157                         this.respondToReadyState(readyState);
    158         },
    159 
    160         dispatchError: function( httpCode, text )
    161         {
    162                 !this.options.onFailure || this.options.onFailure( httpCode, text);
    163         },
    164 
    165         respondToReadyState: function(readyState)
    166         {
    167                 var transport = this.transport;
    168                 if (readyState==4 && transport.status == 200)
    169                 {
    170                         var resp;
    171                         try {
    172                                 eval('resp = ' + transport.responseText);
    173                         }
    174                         catch (e) {
    175                                 this.dispatchError( 200, e.message + '\n' + transport.responseText.substr(0,512) );
    176                         }
    177                         if (resp!=null)
    178                         {
    179                                 if (resp.stat==null)
    180                                         this.dispatchError( 200, "Invalid response" );
    181                                 else if (resp.stat=='ok')
    182                                 {
    183                                         if (this.options.onSuccess) this.options.onSuccess( resp.result );
    184                                 }
    185                                 else
    186                                         this.dispatchError( 200, resp.err + " " + resp.message);
    187                         }
    188                 }
    189                 if (readyState==4 && transport.status != 200)
    190                         this.dispatchError( transport.status, transport.statusText );
    191         },
    192 
    193 
    194         transport: null,
    195         urlRoot: null,
    196         options: {}
    197 }
    198 
    199 function pwgAddEventListener(elem, evt, fn)
    200 {
    201         if (window.attachEvent)
    202                 elem.attachEvent('on'+evt, fn);
    203         else
    204                 elem.addEventListener(evt, fn, false);
    205 }var gRatingOptions, gRatingButtons, gUserRating;
    206 
    207 function makeNiceRatingForm(options)
    208 {
    209         gRatingOptions = options || {};
    210         var form = document.getElementById('rateForm');
    211         if (!form) return; //? template changed
    212 
    213         gRatingButtons = form.getElementsByTagName('input');
    214         gUserRating = "";
    215         for (var i=0; i<gRatingButtons.length; i++)
    216         {
    217                 if ( gRatingButtons[i].type=="button" )
    218                 {
    219                         gUserRating = gRatingButtons[i].value;
    220                         break;
    221                 }
    222         }
    223 
    224         for (var i=0; i<gRatingButtons.length; i++)
    225         {
    226                 var rateButton = gRatingButtons[i];
    227                 rateButton.initialRateValue = rateButton.value; // save it as a property
    228                 try { rateButton.type = "button"; } catch (e){}// avoid normal submit (use ajax); not working in IE6
    229 
    230                 if (navigator.userAgent.indexOf('AppleWebKit/')==-1 && navigator.userAgent.indexOf('MSIE 8')==-1) rateButton.value = ""; //hide the text IE<8/Opera - breaks safari
    231                 with (rateButton.style)
    232                 {
    233                         textIndent = "-50px"; //hide the text FF
    234                         marginLeft = marginRight = 0;
    235                 }
    236 
    237                 if (i!=gRatingButtons.length-1 && rateButton.nextSibling.nodeType == 3 /*TEXT_NODE*/)
    238                         rateButton.parentNode.removeChild(rateButton.nextSibling);
    239                 if (i>0 && rateButton.previousSibling.nodeType == 3 /*TEXT_NODE*/)
    240                         rateButton.parentNode.removeChild(rateButton.previousSibling);
    241 
    242                 pwgAddEventListener(rateButton, "click", updateRating);
    243                 pwgAddEventListener(rateButton, "mouseout", resetRatingStarDisplay);
    244                 pwgAddEventListener(rateButton, "mouseover", updateRatingStarDisplayEvt);
    245         }
    246         resetRatingStarDisplay();
    247 }
    248 
    249 function resetRatingStarDisplay()
    250 {
    251         updateRatingStarDisplay( gUserRating );
    252 }
    253 
    254 function updateRatingStarDisplay(userRating)
    255 {
    256         for (var i=0; i<gRatingButtons.length; i++)
    257                 gRatingButtons[i].className = (userRating!=="" && userRating>=gRatingButtons[i].initialRateValue ) ? "rateButtonStarFull" : "rateButtonStarEmpty";
    258 }
    259 
    260 function updateRatingStarDisplayEvt(e)
    261 {
    262         updateRatingStarDisplay(
    263                 e.target ? e.target.initialRateValue : e.srcElement.initialRateValue);
    264 }
    265 
    266 function updateRating(e)
    267 {
    268         var rateButton = e.target || e.srcElement;
    269         if (rateButton.initialRateValue == gUserRating)
    270                 return false; //nothing to do
    271 
    272         for (var i=0; i<gRatingButtons.length; i++) gRatingButtons[i].disabled=true;
    273         var y = new PwgWS(gRatingOptions.rootUrl);
    274         y.callService(
    275                 "pwg.images.rate", {image_id: gRatingOptions.image_id, rate: rateButton.initialRateValue } ,
    276                 {
    277                         onFailure: function(num, text) {
    278                                 alert(num + " " + text);
    279                                 document.location = rateButton.form.action + "&rate="+rateButton.initialRateValue;
    280                         },
    281                         onSuccess: function(result) {
    282                                 gUserRating = rateButton.initialRateValue;
    283                                 for (var i=0; i<gRatingButtons.length; i++) gRatingButtons[i].disabled=false;
    284                                 if (gRatingOptions.updateRateElement) gRatingOptions.updateRateElement.innerHTML = gRatingOptions.updateRateText;
    285                                 if (gRatingOptions.ratingSummaryElement)
    286                                 {
    287                                         var t = gRatingOptions.ratingSummaryText;
    288                                         var args =[result.average, result.count], idx = 0, rexp = new RegExp( /%\.?\d*[sdf]/ );
    289                                         //_xxx = t.match( rexp );
    290                                         while (idx<args.length) t=t.replace(rexp, args[idx++]);
    291                                         gRatingOptions.ratingSummaryElement.innerHTML = t;
    292                                 }
    293                         }
    294                 }
    295         );
    296         return false;
    297 }/**
    298  * Cookie plugin
    299  * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
    300  * Dual licensed under the MIT and GPL licenses:
    301  */
    302 jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options=$.extend({},options);options.expires=-1;}
    303 var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000));}else{date=options.expires;}
    304 expires='; expires='+date.toUTCString();}
    305 var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}}
    306 return cookieValue;}};
  • extensions/simple_themes/simple/template/about.tpl

    r13546 r13551  
    11<div class="titrePage">
    22  <ul class="categoryActions">
    3     <li><a href="{$U_HOME}" title="{'return to homepage'|@translate}">{'Home'|@translate}</a></li>
     3    <li><a href="{$U_HOME}" title="{'Home'|@translate}">{'Home'|@translate}</a></li>
    44  </ul>
    55  <h2>{'About'|@translate}</h2>
     
    1212  </ul>
    1313  {/if}
     14  {if not empty($about_msgs)}
     15    {foreach from=$about_msgs item=elt}
     16    {$elt}
     17    {/foreach}
     18  {/if}
    1419</div>
  • extensions/simple_themes/simple/template/comments.tpl

    r13549 r13551  
    1111      <label>{'Keyword'|@translate} : <input type="text" name="keyword" value="{$F_KEYWORD}"></label>
    1212      <label>{'Author'|@translate} : <input type="text" name="author" value="{$F_AUTHOR}"></label>
    13       <label>{'Category'|@translate} :
     13      <label>{'Album'|@translate} :
    1414      <select name="cat">
    1515        <option value="0">------------</option>
  • extensions/simple_themes/simple/template/header.tpl

    r13550 r13551  
    66{if isset($meta_ref) }
    77  {if isset($INFO_AUTHOR)}
    8   <meta name="author" content="{$INFO_AUTHOR|@replace:'"':' '}">
     8  <meta name="author" content="{$INFO_AUTHOR|@strip_tags:false|@replace:'"':' '}">
    99  {/if}
    1010  {if isset($related_tags)}
     
    5454  <link rel="alternate" type="application/rss+xml" title="{'Complete RSS feed (images, comments)'|@translate}" href="{$U_FEED}">
    5555  {/if}
     56
    5657  {get_combined_scripts load='header'}
    57   {combine_script id="simplescripts" require="jquery" path="themes/simple/js/scripts.min.js"}
     58  {combine_script id='jquery' path='themes/default/js/jquery.min.js'}
     59  {combine_script id='jquery.cookie' path='themes/simple/js/jquery.cookie.min.js'}
     60  {combine_script id='rating' path='themes/default/js/rating.js'}
     61  {combine_script id='core.scripts' path='themes/default/js/scripts.js'}
     62  {combine_script id='simple.scripts' path='themes/simple/js/scripts.js'}
    5863
    5964  {if not empty($head_elements)}
  • extensions/simple_themes/simple/template/identification.tpl

    r13549 r13551  
    11<div class="titrePage">
    22  <ul class="categoryActions">
    3     <li><a href="{$U_HOME}" title="{'Go through the gallery as a visitor'|@translate}">{'Home'|@translate}</a></li>
     3    <li><a href="{$U_HOME}" title="{'Home'|@translate}">{'Home'|@translate}</a></li>
    44  </ul>
    55  <h2>{'Identification'|@translate}</h2>
  • extensions/simple_themes/simple/template/mainpage_categories.tpl

    r13549 r13551  
    44    <div class="illustration">
    55      <a href="{$cat.URL}">
    6         <img src="{$cat.TN_SRC}" alt="{$cat.TN_ALT}" title="{'shows images at the root of this category'|@translate}">
     6        <img src="{$cat.TN_SRC}" alt="{$cat.TN_ALT}" title="{$cat.NAME|@replace:'"':' '} - {'display this album'|@translate}">
    77      </a>
    88    </div>
  • extensions/simple_themes/simple/template/menubar.tpl

    r13546 r13551  
    22<div id="menubar">
    33  {foreach from=$blocks key=id item=block}
    4   {if ( not empty($block->template) or not empty($block->raw_content) )}
    54  <div id="{$id}">
    65    {if not empty($block->template)}
     
    109    {/if}
    1110  </div>
    12   {/if}
    1311  {/foreach}
    1412</div>
  • extensions/simple_themes/simple/template/menubar_categories.tpl

    r13549 r13551  
    1 <h3><a href="{$block->data.U_CATEGORIES}">{'Categories'|@translate}</a></h3>
     1<h3><a href="{$block->data.U_CATEGORIES}">{'Albums'|@translate}</a></h3>
    22
    33{assign var='ref_level' value=0}
     
    2121{'</li></ul>'|@str_repeat:$ref_level}
    2222
    23 {if isset($block->data.U_UPLOAD)}
    24 <ul>
    25   <li>
    26     <a href="{$block->data.U_UPLOAD}">{'Upload a picture'|@translate}</a>
    27   </li>
    28 </ul>
    29 {/if}
    30 <p class="totalImages">{$pwg->l10n_dec('%d image', '%d images', $block->data.NB_PICTURE)}</p>
     23<p class="totalImages">{$pwg->l10n_dec('%d photo', '%d photos', $block->data.NB_PICTURE)}</p>
  • extensions/simple_themes/simple/template/menubar_tags.tpl

    r13549 r13551  
    66       {if isset($tag.U_ADD)}
    77         href="{$tag.U_ADD}"
    8          title="{$pwg->l10n_dec('%d image is also linked to current tags', '%d images are also linked to current tags', $tag.counter)}"
     8         title="{$pwg->l10n_dec('%d photo is also linked to current tags', '%d photo are also linked to current tags', $tag.counter)}"
    99         rel="nofollow">+
    1010       {else}
    1111         href="{$tag.URL}"
    12          title="{'See images linked to this tag only'|@translate}">
     12         title="{'display photos linked to this tag'|@translate}">
    1313       {/if}
    1414       {$tag.name}</a>
  • extensions/simple_themes/simple/template/nbm.tpl

    r13546 r13551  
    11<div class="titrePage">
    22  <ul class="categoryActions">
    3     <li><a href="{$U_HOME}" title="{'Go through the gallery as a visitor'|@translate}">{'Home'|@translate}</a></li>
     3    <li><a href="{$U_HOME}" title="{'Home'|@translate}">{'Home'|@translate}</a></li>
    44  </ul>
    55  <h2>{'Notification'|@translate}</h2>
  • extensions/simple_themes/simple/template/notification.tpl

    r13546 r13551  
    11<div class="titrePage">
    22  <ul class="categoryActions">
    3     <li><a href="{$U_HOME}" title="{'return to homepage'|@translate}">{'Home'|@translate}</a></li>
     3    <li><a href="{$U_HOME}" title="{'Home'|@translate}">{'Home'|@translate}</a></li>
    44  </ul>
    55  <h2>{'Notification'|@translate}</h2>
     
    88  <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>
    99  <ul>
    10     <li><a href="{$U_FEED_IMAGE_ONLY}">{'Image only RSS feed'|@translate}</a></li>
    11     <li><a href="{$U_FEED}">{'Complete RSS feed (images, comments)'|@translate}</a></li>
     10    <li><a href="{$U_FEED_IMAGE_ONLY}">{'Photos only RSS feed'|@translate}</a></li>
     11    <li><a href="{$U_FEED}">{'Complete RSS feed (photos, comments)'|@translate}</a></li>
    1212  </ul>
    1313</div>
  • extensions/simple_themes/simple/template/password.tpl

    r13546 r13551  
    11<div class="titrePage">
    22  <ul class="categoryActions">
    3     <li><a class="button" href="{$U_HOME}" title="{'Go through the gallery as a visitor'|@translate}">{'Home'|@translate}</a></li>
     3    <li><a class="button" href="{$U_HOME}" title="{'Home'|@translate}">{'Home'|@translate}</a></li>
    44  </ul>
    55  <h2>{'Password forgotten'|@translate}</h2>
  • extensions/simple_themes/simple/template/picture.tpl

    r13549 r13551  
    101101        {/if}
    102102        {if $display_info.categories and isset($related_categories)}
    103         <dt>{'Categories'|@translate}</dt>
     103        <dt>{'Albums'|@translate}</dt>
    104104        <dd>
    105105          {foreach from=$related_categories item=cat name=tag_loop}
  • extensions/simple_themes/simple/template/picture_content.tpl

    r13546 r13551  
    1 {if isset($high) }
     1{if isset($high)}
    22<a href="javascript:phpWGOpenWindow('{$high.U_HIGH}','{$high.UUID}','scrollbars=yes,toolbar=no,status=no,resizable=yes')">
    33{/if}
    4   <img src="{$SRC_IMG}" style="width:{$WIDTH_IMG}px;height:{$HEIGHT_IMG}px;" alt="{$ALT_IMG}"
     4        <img src="{$SRC_IMG}" style="width:{$WIDTH_IMG}px;height:{$HEIGHT_IMG}px;" alt="{$ALT_IMG}"
    55        {if isset($COMMENT_IMG)}
    66                title="{$COMMENT_IMG|@strip_tags:false|@replace:'"':' '}" {else} title="{$current.TITLE|@replace:'"':' '} - {$ALT_IMG}"
     
    88{if isset($high) }
    99</a>
    10   <p>{'Click on the picture to see it in high definition'|@translate}</p>
     10        <p>{'Click on the photo to see it in high definition'|@translate}</p>
    1111{/if}
  • extensions/simple_themes/simple/template/profile.tpl

    r13547 r13551  
    11<div class="titrePage">
    22  <ul class="categoryActions">
    3     <li><a href="{$U_HOME}" title="{'return to homepage'|@translate}">{'Home'|@translate}</a></li>
     3    <li><a href="{$U_HOME}" title="{'Home'|@translate}">{'Home'|@translate}</a></li>
    44  </ul>
    55  <h2>{'Profile'|@translate}</h2>
  • extensions/simple_themes/simple/template/register.tpl

    r13546 r13551  
    3939        <li>
    4040        <span class="property">
    41             <label for="mail_address">{'Mail address'|@translate}</label>
     41            <label for="mail_address">{'Email address'|@translate}</label>
    4242        </span>
    4343          <input type="text" name="mail_address" id="mail_address" value="{$F_EMAIL}" >
     
    4747    </fieldset>
    4848    <p class="bottomButtons">
     49      <input type="hidden" name="key" value="{$F_KEY}" >
    4950      <input class="submit" type="submit" name="submit" value="{'Register'|@translate}">
    5051      <input class="submit" type="reset" value="{'Reset'|@translate}">
  • extensions/simple_themes/simple/template/search.tpl

    r13546 r13551  
    9393  <fieldset>
    9494    <legend>{'Search Options'|@translate}</legend>
    95   <label>{'Search in Categories'|@translate}
     95  <label>{'Search in albums'|@translate}
    9696      <select class="categoryList" name="cat[]" multiple="multiple" >
    9797        {html_options options=$category_options selected=$category_options_selected}
     
    9999    </label>
    100100    <ul>
    101       <li><label>{'Search in subcategories'|@translate}</label></li>
     101      <li><label>{'Search in sub-albums'|@translate}</label></li>
    102102      <li><label>
    103103        <input type="radio" name="subcats-included" value="1" checked="checked" />{'Yes'|@translate}
  • extensions/simple_themes/simple/template/search_rules.tpl

    r13546 r13551  
    3333    {if isset($search_categories) }
    3434    <li>
    35       <p>{'Categories'|@translate}</p>
     35      <p>{'Albums'|@translate}</p>
    3636      <ul>
    3737        {foreach from=$search_categories item=v}
  • extensions/simple_themes/simple/template/tags.tpl

    r13546 r13551  
    22  <ul class="categoryActions">
    33  {if $display_mode == 'letters'}
    4     <li><a href="{$U_CLOUD}" title="{'show tag cloud'|@translate}">{'show tag cloud'|@translate}</a></li> « 
     4    <li><a href="{$U_CLOUD}" title="{'show tag cloud'|@translate}">{'show tag cloud'|@translate}</a></li> «
    55  {/if}
    66  {if $display_mode == 'cloud'}
    7     <li><a href="{$U_LETTERS}" title="{'group by letters'|@translate}">{'group by letters'|@translate}</a></li> « 
     7    <li><a href="{$U_LETTERS}" title="{'group by letters'|@translate}">{'group by letters'|@translate}</a></li> «
    88  {/if}
    99    <li><a href="{$U_HOME}" title="{'Home'|@translate}">{'Home'|@translate}</a></li>
     
    1616  <div id="fullTagCloud">
    1717    {foreach from=$tags item=tag}
    18                 <span><a href="{$tag.URL}" class="tagLevel{$tag.level}" title="{$pwg->l10n_dec('%d image', '%d images', $tag.counter)}">{$tag.name}</a></span>
     18                <span><a href="{$tag.URL}" class="tagLevel{$tag.level}" title="{$pwg->l10n_dec('%d photo', '%d photos', $tag.counter)}">{$tag.name}</a></span>
    1919    {/foreach}
    2020  </div>
     
    3131          <tr class="tagLine">
    3232            <td><a href="{$tag.URL}">{$tag.name}</a></td>
    33         <td class="nbEntries">{$pwg->l10n_dec('%d image', '%d images', $tag.counter)}</td>
     33        <td class="nbEntries">{$pwg->l10n_dec('%d photo', '%d photos', $tag.counter)}</td>
    3434          </tr>
    3535          {/foreach}
  • extensions/simple_themes/simple/template/upload.tpl

    r13546 r13551  
    11<div class="titrePage">
    22  <ul class="categoryActions">
    3     <li><a href="{$U_HOME}" title="{'return to homepage'|@translate}">{'Home'|@translate}</a></li>
     3    <li><a href="{$U_HOME}" title="{'Home'|@translate}">{'Home'|@translate}</a></li>
    44  </ul>
    55  <h2>{'Upload a picture'|@translate}</h2>
     
    3333        <!-- category -->
    3434        <li>
    35           <div class="property">{'Category'|@translate}</div>
     35          <div class="property">{'Album'|@translate}</div>
    3636          {html_options name="category" options=$categories selected=$categories_selected}
    3737        </li>
  • extensions/simple_themes/simple/themeconf.inc.php

    r13550 r13551  
    22/*
    33Theme Name: Simple Grey
    4 Version: 2.3.1
     4Version: 2.3
    55Description: Simple Grey
    66Theme URI: http://piwigo.org/ext/extension_view.php?eid=308
Note: See TracChangeset for help on using the changeset viewer.