source: extensions/gally/gally-default/template/picture.tpl @ 12604

Last change on this file since 12604 was 12604, checked in by grum, 12 years ago

feature:2499 - compatibility with Piwigo 2.3

  • Property svn:executable set to *
File size: 18.5 KB
Line 
1<!-- **GBL** >PICTURE> -->
2
3{include file='dialogs.tpl'}
4
5<div id="content" {if isset($MENUBAR)}class="pictureContent"{/if}>
6
7  <div id="theImageHigh" style="display:none;">
8    <div id="theImgHighBg"></div>
9    <div id="theImgHighContainer">
10      <div id="theImgHighCloseButton" onclick="gallyPP.closeDisplayHigh();"></div>
11      <div id="theImgHighZoomButton" class="fit" onclick="gallyPP.switchZoomHigh();"></div>
12      <div id="theImgHighContainer2">
13        <img id="theImgHigh" src="" style="display:none;" alt="{$ALT_IMG}"
14          {if isset($COMMENT_IMG)}
15            title="{$COMMENT_IMG|@strip_tags:false|@replace:'"':' '}" {else} title="{$current.TITLE|@replace:'"':' '} - {$ALT_IMG}"
16          {/if}>
17      </div>
18    </div>
19  </div>
20
21
22{if isset($MENUBAR)}
23  <div id="imageHeaderBar" class="menu">
24    <div class="titrePage" id='titrePageID'>
25      {if #menuAnimated# == "noswitch"}
26          {$MENUBAR}
27      {else}
28        <div id="menuswitcher">
29          <a id="icon_menu" class="button" onclick="gallyCP.switchmenu('', '{$ROOT_URL}{$themeconf.icon_dir}/');">&nbsp;
30          </a>
31        </div>
32        {$MENUBAR}
33      {/if}
34    </div>
35{else}
36  <div id="imageHeaderBar">
37{/if}
38
39    <div class="browsePath">
40      <h2>
41      [ {$SECTION_TITLE}{$LEVEL_SEPARATOR}{$current.TITLE} ]
42      </h2>
43    </div>
44    <div class="imageNumber">{$PHOTO}</div>
45    <h2>&nbsp;</h2>
46  </div> <!-- imageHeaderBar -->
47
48  {if !empty($PLUGIN_PICTURE_BEFORE)}{$PLUGIN_PICTURE_BEFORE}{/if}
49
50  <div id="imageToolBar">
51    <div id="imageToolBarContainer" class="uiImg">
52        <div class="imageToolBarBg">&nbsp;</div>
53
54        <div class="randomButtons">
55          {if isset($U_SLIDESHOW_START) }
56            <a id="icon_start_slideshow" class="button" href="{$U_SLIDESHOW_START}" title="{'Play of slideshow'|@translate}" rel="nofollow"></a>
57          {/if}
58          {if isset($U_SLIDESHOW_STOP) }
59            <a id="icon_stop_slideshow" class="button" href="{$U_SLIDESHOW_STOP}" title="{'Pause of slideshow'|@translate}" rel="nofollow"></a>
60          {/if}
61          {if isset($U_METADATA)}
62            <a id="icon_metadata" class="button" href="{$U_METADATA}" title="{'Show file metadata'|@translate}" rel="nofollow"></a>
63          {/if}
64
65          {if #displayHighResIcon#=="yes" and isset($high) }
66            <a id="icon_high_res" class="button pointer" onclick="gallyPP.openDisplayHigh('{$high.U_HIGH}');" title="" rel="nofollow" ></a>
67          {/if}
68
69          {if isset($current.U_DOWNLOAD) }
70            <a id="icon_save" class="button" href="{$current.U_DOWNLOAD}" title="{'download this file'|@translate}"></a>
71          {/if}
72
73          {if isset($PLUGIN_PICTURE_ACTIONS)}{$PLUGIN_PICTURE_ACTIONS}{/if}
74
75
76          {if isset($favorite) }
77            <a id="icon_{if $favorite.IS_FAVORITE}del_{/if}favorite" class="button" href="{$favorite.U_FAVORITE}" title="{if $favorite.IS_FAVORITE}{'delete this photo from your favorites'|@translate}{else}{'add this photo to your favorites'|@translate}{/if}"></a>
78          {/if}
79          {if !empty($U_SET_AS_REPRESENTATIVE) }
80            <a id="icon_representative" class="button" href="{$U_SET_AS_REPRESENTATIVE}" title="{'set as album representative'|@translate}"></a>
81          {/if}
82          {if isset($U_ADMIN) }
83            <a id="icon_preferences" class="button" href="{$U_ADMIN}" title="{'Modify information'|@translate}"></a>
84          {/if}
85          {if isset($U_CADDIE) }{*caddie management BEGIN*}
86          <script type="text/javascript">
87          {literal}
88          function addToCadie(aElement, rootUrl, id)
89          {
90            if (aElement.disabled) return;
91            aElement.disabled=true;
92            var y = new PwgWS(rootUrl);
93
94            y.callService(
95              "pwg.caddie.add", {image_id: id} ,
96              {
97                onFailure: function(num, text) { alert(num + " " + text); document.location=aElement.href; },
98                onSuccess: function(result) { aElement.disabled = false; }
99              }
100            );
101          }{/literal}
102          </script>
103          <a id="icon_caddie" class="button" onclick="addToCadie(this, '{$ROOT_URL|@escape:'javascript'}', {$current.id}); return false;" title="{'add to caddie'|@translate}"></a>
104          {/if}
105          <script type="text/javascript">
106            $('div.randomButtons a.button').addClass('sTipOnRight');
107          </script>
108        </div>
109
110        {include file='picture_nav_buttons.tpl'|@get_extent:'picture_nav_buttons'}
111
112        {if $SHOW_PICTURE_NAME_ON_TITLE }
113        <div><h2>{$current.TITLE}</h2></div>
114        {/if}
115
116    </div>
117  </div> <!-- imageToolBar -->
118
119  {if $DISPLAY_NAV_THUMB}
120    {if isset($previous) }
121    <div id="navThumbPrev">
122      <table id="navThumbPrevContainer" class="uiImg"><tr><td>
123        <div class="navThumbPrevBg">&nbsp;</div>
124        <div class="navThumbPrevContent">
125          <a class="navThumb" id="thumbPrev" href="{$previous.U_IMG}" title="{'Previous'|@translate} : {$previous.TITLE}" rel="prev">
126            <img src="{$previous.THUMB_SRC}" class="thumbLink" id="linkPrev" alt="{$previous.TITLE}">
127          </a>
128        </div>
129      </td></tr></table>
130    </div> <!-- navThumbPrev -->
131    {/if}
132
133    {if isset($next) }
134    <div id="navThumbNext">
135      <table id="navThumbNextContainer" class="uiImg"><tr><td>
136        <div class="navThumbNextBg">&nbsp;</div>
137        <div class="navThumbNextContent">
138          <a class="navThumb" id="thumbNext" href="{$next.U_IMG}" title="{'Next'|@translate} : {$next.TITLE}" rel="next">
139            <img src="{$next.THUMB_SRC}" class="thumbLink" id="linkNext" alt="{$next.TITLE}">
140          </a>
141        </div>
142      </td></tr></table>
143    </div> <!-- navThumbNext -->
144    {/if}
145  {/if}
146
147  <div id="theImage">
148    {$ELEMENT_CONTENT}
149
150    {if isset($COMMENT_IMG)}
151    <p class="imageComment">{$COMMENT_IMG}</p>
152    {else}
153    <p>&nbsp;</p>
154    {/if}
155
156    {if isset($U_SLIDESHOW_STOP) }
157    <p>
158      [ <a href="{$U_SLIDESHOW_STOP}">{'stop the slideshow'|@translate}</a> ]
159    </p>
160    {/if}
161  </div> <!-- theImage -->
162
163  <div id="theTabsContainer">
164  <div id="theTabs" class="uiImg">
165    {assign var='display_info_panel' value=false}
166    {foreach from=$display_info item=displayitem}
167      {if $displayitem}
168        {assign var='display_info_panel' value=true}
169      {/if}
170    {/foreach}
171
172    <ul id="theTabsheets">
173      {if $display_info_panel}
174        <li class="tab" id="tabImageInfos"><a href="#imageInfos">{'Informations'|@translate}</a></li>
175      {/if}
176
177      {if isset($metadata)}
178        {foreach from=$metadata item=meta key=id}
179          <li class="tab" id="tabImageMeta{$id}"><a href="#imageMeta{$id}">{$meta.TITLE|@translate}</a></li>
180        {/foreach}
181      {/if}
182
183      {if (isset($COMMENT_COUNT) and ($COMMENT_COUNT>0)) or isset($comment_add) }
184        <li class="tab" id="tabTheComment">
185          <a href="#theComments">{$pwg->l10n_dec('%d comment', '%d comments',$COMMENT_COUNT)}</a>
186        </li>
187      {/if}
188
189    </ul>
190
191    <div id="theTabsBg"></div>
192
193
194
195    {if $display_info_panel}
196      <div id="imageInfos" class="tabPanel">
197        <div id="imageInfosContainer">
198        <div class="imageInfosBg">&nbsp;</div>
199
200          <table class="infoTable">
201            <tr  class="emptyrow" style="line-height:0px;">
202              <td colspan="2">&nbsp;</td>
203              <td width="10px">&nbsp;</td>
204              <td width="12%">&nbsp;</td>
205              <td width="18%">&nbsp;</td>
206              <td width="10px">&nbsp;</td>
207              <td width="12%">&nbsp;</td>
208              <td width="18%">&nbsp;</td>
209            </tr>
210
211            {if $display_info.author or $display_info.created_on or $display_info.posted_on}
212            <tr>
213              {assign var='colspan' value=8}
214              {if $display_info.author}
215                {assign var='colspan' value=`$colspan-3`}
216                <td class="label">{'Author'|@translate}</td>
217                <td class="value" style="min-width:214px;">{if isset($INFO_AUTHOR)}{$INFO_AUTHOR}{else}{'N/A'|@translate}{/if}</td>
218                <td>&nbsp;</td>
219              {/if}
220
221              {if $display_info.created_on}
222                {assign var='colspan' value=`$colspan-3`}
223                <td class="label">{'Created on'|@translate}</td>
224                <td class="value">{if isset($INFO_CREATION_DATE)}{$INFO_CREATION_DATE}{else}{'N/A'|@translate}{/if}</td>
225                <td>&nbsp;</td>
226              {/if}
227
228              {if $display_info.posted_on}
229                {assign var='colspan' value=`$colspan-2`}
230                <td class="label">{'Posted on'|@translate}</td>
231                <td class="value">{$INFO_POSTED_DATE}</td>
232              {/if}
233
234              {if $colspan!=0}
235                <td colspan="{$colspan}">&nbsp;</td>
236              {/if}
237
238            </tr>
239            {/if}
240
241            {if $display_info.dimensions or $display_info.file or $display_info.filesize}
242            <tr>
243              {assign var='colspan' value=8}
244
245              {if $display_info.dimensions}
246                {assign var='colspan' value=`$colspan-3`}
247                <td class="label">{'Dimensions'|@translate}</td>
248                <td class="value">{if isset($INFO_DIMENSIONS)}{$INFO_DIMENSIONS|@replace:"*":"x"}{else}{'N/A'|@translate}{/if}</td>
249                <td>&nbsp;</td>
250              {/if}
251
252              {if $display_info.file}
253                {assign var='colspan' value=`$colspan-3`}
254                <td class="label">{'File'|@translate}</td>
255                <td class="value">{$INFO_FILE}</td>
256                <td>&nbsp;</td>
257              {/if}
258
259              {if $display_info.filesize}
260                {assign var='colspan' value=`$colspan-2`}
261                <td class="label">{'Filesize'|@translate}</td>
262                <td class="value">{if isset($INFO_FILESIZE)}{$INFO_FILESIZE}{else}{'N/A'|@translate}{/if}</td>
263              {/if}
264
265              {if $colspan!=0}
266                <td colspan="{$colspan}">&nbsp;</td>
267              {/if}
268            </tr>
269            {/if}
270
271            {if isset($related_tags) and $display_info.tags}
272              <tr class="emptyrow"><td colspan="8">&nbsp;</td></tr>
273              <tr id="infoTags">
274                <td class="label">{'Tags'|@translate}</td>
275                <td colspan="7" class="value">
276                    {foreach from=$related_tags item=tag name=tag_loop}{if !$smarty.foreach.tag_loop.first}, {/if}
277                    <a href="{$tag.URL}">{$tag.name}</a>{/foreach}
278                </td>
279              </tr>
280            {/if}
281
282            {if isset($related_categories) and $display_info.categories}
283              <tr class="emptyrow"><td colspan="8">&nbsp;</td></tr>
284              <tr id="infoCats">
285                <td class="label">{'Albums'|@translate}</td>
286                <td colspan="7" class="value">
287                  {foreach from=$related_categories item=cat name=tag_loop}{if !$smarty.foreach.tag_loop.first},&nbsp;{/if}
288                  {$cat}
289                  {/foreach}
290                </td>
291              </tr>
292            {/if}
293
294            {if $display_info.visits}
295              <tr class="emptyrow"><td colspan="8">&nbsp;</td><tr>
296              <tr>
297                <td class="label">{'Visits'|@translate}</td>
298                <td colspan="7" class="value">{$INFO_VISITS}</td>
299              </tr>
300            {/if}
301
302            {if (isset($rate_summary) or isset($rating)) and  $display_info.rating_score}
303              <tr id="rating">
304                {if isset($rate_summary)}
305                  <td class="label">{'Rating score'|@translate}</td>
306                  <td class="value">
307                  {if $rate_summary.count}
308                    <span id="ratingScore">{$rate_summary.score}</span>
309                    <span id="ratingCount">({assign var='rate_text' value='%d rates'|@translate}{$pwg->sprintf($rate_text, $rate_summary.count)})</span>
310                  {else}
311                    <span id="ratingScore">{'no rate'|@translate}</span> <span id="ratingCount"></span>
312                  {/if}
313                  </td>
314                {else}
315                  <td colspan="2">&nbsp;</td>
316                {/if}
317                <td>&nbsp;</td>
318
319                {if isset($rating)}
320                  <td class="label" colspan="5">
321                    <span id="updateRate">{if isset($rating.USER_RATE)}{'Update your rating'|@translate}{else}{'Rate this photo'|@translate}{/if}</span>
322
323                    <form action="{$rating.F_ACTION}" method="post" id="rateForm" style="margin:0;">
324                      <div>&nbsp;
325                      {foreach from=$rating.marks item=mark name=rate_loop}
326                        {if !$smarty.foreach.rate_loop.first} | {/if}
327
328                        {if isset($rating.USER_RATE) && $mark==$rating.USER_RATE}
329                          <input type="button" name="rate" value="{$mark}" class="rateButtonSelected" title="{$mark}" />
330                        {else}
331                          <input type="submit" name="rate" value="{$mark}" class="rateButton" title="{$mark}" />
332                        {/if}
333
334                      {/foreach}
335
336                      {combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
337                      {combine_script id='rating' load='async' require='core.scripts' path='themes/default/js/rating.js'}
338
339
340                      {footer_script}
341                        var _pwgRatingAutoQueue = _pwgRatingAutoQueue||[];
342                        _pwgRatingAutoQueue.push( {ldelim}rootUrl: '{$ROOT_URL}', image_id: {$current.id},
343                          onSuccess : function(rating) {ldelim}
344                            var e = document.getElementById("updateRate");
345                            if (e) e.innerHTML = "{'Update your rating'|@translate|@escape:'javascript'}";
346                            e = document.getElementById("ratingScore");
347                            if (e) e.innerHTML = rating.score;
348                            e = document.getElementById("ratingCount");
349                            if (e) e.innerHTML = "({'%d rates'|@translate|@escape:'javascript'})".replace( "%d", rating.count);
350                          {rdelim}{rdelim} );
351                      {/footer_script}
352
353                      </div>
354                    </form>
355                  </td>
356                {else}
357                  <td colspan="5">&nbsp;</td>
358                {/if}
359              </tr>
360            {/if}
361
362          {if isset($available_permission_levels) and $display_info.privacy_level}
363            <tr>
364              <td class="label">{'Who can see this photo?'|@translate}:</td>
365              <td colspan="4" class="value">
366                <script type="text/javascript">
367                {literal}function setPrivacyLevel(selectElement, rootUrl, id, level)
368                {
369                selectElement.disabled = true;
370                var y = new PwgWS(rootUrl);
371                y.callService(
372                  "pwg.images.setPrivacyLevel", {image_id: id, level:level} ,
373                  {
374                    method: "POST",
375                    onFailure: function(num, text) { selectElement.disabled = false; alert(num + " " + text); },
376                    onSuccess: function(result) { selectElement.disabled = false; }
377                  }
378                  );
379                }{/literal}
380                </script>
381                <select onchange="setPrivacyLevel(this, '{$ROOT_URL|@escape:'javascript'}', {$current.id}, this.options[selectedIndex].value)">
382                  {foreach from=$available_permission_levels item=label key=level}
383                  <option label="{$label}" value="{$level}"{if $level == $current.level} selected="selected"{/if}>{$label}</option>
384                  {/foreach}
385                </select>
386              </td>
387            </tr>
388          {/if}
389
390          </table>
391
392        </div>
393      </div> <!-- imageInfos -->
394    {/if}
395
396    {if isset($metadata)}
397    {foreach from=$metadata item=meta key=id}
398    <div id="imageMeta{$id}" class="imageMeta tabPanel">
399      <div id="imageMetaContainer{$id}">
400        <div class="imageMetaBg">&nbsp;</div>
401
402        {if count($meta.lines)>0 and !array_key_exists('<!--rawContent-->', $meta.lines)}
403          <table id="displaymeta{$id}" class="displaymeta infoTable">
404            {foreach from=$meta.lines item=value key=label name=metaloop}
405              {if ($smarty.foreach.metaloop.iteration-1) % #metaNumCols# == 0}
406                {if !$smarty.foreach.metaloop.first}</tr>{/if}
407                {if !$smarty.foreach.metaloop.last}<tr>{/if}
408              {/if}
409              <td class="label">{$label|@translate}</td>
410              <td class="value">{$value}</td>
411            {/foreach}
412          </table>
413        {else}
414          {assign var='empty' value='<!--rawContent-->'}
415          {$meta.lines.$empty}
416        {/if}
417      </div>
418    </div> <!-- imageMeta -->
419    {/foreach}
420    {/if}
421
422
423    {if (isset($COMMENT_COUNT) and ($COMMENT_COUNT>0)) or isset($comment_add) }
424    <div id="theComments" class="tabPanel">
425      <div id='theCommentBG'>&nbsp;</div>
426
427      {if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
428
429      {if isset($comment_add) or isset($comments)}
430      <table id="theCommentContainer">
431        <tr style="vertical-align:top;">
432          {if isset($comment_add)}
433          {if isset($comments)}
434          <td width="50%">
435          {else}
436          <td>
437          {/if}
438            <h4>{'Add a comment'|@translate}</h4>
439            <form  method="post" action="{$comment_add.F_ACTION}" class="filter" id="addComment">
440              <table>
441                {if $comment_add.SHOW_AUTHOR}
442                <tr>
443                  <td>{'Author'|@translate}</td>
444                  <td><input type="text" name="author"></td>
445                </tr>
446                {/if}
447                <tr>
448                  <td {if $comment_add.SHOW_AUTHOR}colspan="2"{/if}><textarea name="content" id="contentid" rows="7" cols="80">{$comment_add.CONTENT}</textarea></td>
449                </tr>
450                <tr>
451                  <td {if $comment_add.SHOW_AUTHOR}colspan="2"{/if}>
452                    <input type="hidden" name="key" value="{$comment_add.KEY}" />
453                    <input class="submit" type="submit" value="{'Submit'|@translate}"/>
454                  </td>
455                </tr>
456              </table>
457            </form>
458          </td>
459          {/if}
460
461          {if isset($comments)}
462          {if isset($comment_add)}
463          <td width="50%">
464          {else}
465          <td>
466          {/if}
467            <div id="theCommentList">
468              {include file='comment_list.tpl' comment_separator=true}
469            </div>
470          </td>
471          {/if}
472
473        </tr>
474      </table>
475      {/if}
476    </div>
477    {/if} {*comments*}
478
479  </div><!-- theTabs -->
480  </div>
481
482  {if !empty($PLUGIN_PICTURE_AFTER)}{$PLUGIN_PICTURE_AFTER}{/if}
483
484</div>
485
486<!-- **GBL** <PICTURE< -->
487
Note: See TracBrowser for help on using the repository browser.