source: extensions/manage_properties_photos/initpicture.php @ 31343

Last change on this file since 31343 was 31343, checked in by pjgust, 8 years ago

Rewritten DL block with class "imageInfoTable" does not conditionalize the standard fields to respect the admin display options (e.g. Show Creation Date) as does the code in the 'picture.tpl' file. Added code to to conditionalize these standard fields.

File size: 8.2 KB
Line 
1<?php
2
3//Ajout du prefiltre
4add_event_handler('loc_begin_picture', 'add_info_photo_pre', 05);
5
6function add_info_photo_pre() {
7    global $template;
8    $template->set_prefilter('picture', 'add_info_photo_preT');
9}
10
11function add_info_photo_preT($content, &$smarty) {
12
13    global $conf;
14 
15   $search = '/(<dl id="standard" class="imageInfoTable">).*({if isset\(\$metadata\)})/is';
16   
17   $repla='<dl id="standard" class="imageInfoTable">{strip}
18{foreach from=$add_info_photos item=addinfophotos}
19    {if $addinfophotos.AIPID == 1 and $display_info.author and isset($INFO_AUTHOR)}
20        <div id="Author" class="imageInfo">
21                <dt>{\'Author\'|@translate}</dt>
22                <dd>{$INFO_AUTHOR}</dd>
23        </div>
24    {else if $addinfophotos.AIPID == 2 and $display_info.created_on and isset($INFO_CREATION_DATE)}
25        <div id="datecreate" class="imageInfo">
26                <dt>{\'Created on\'|@translate}</dt>
27                <dd>{$INFO_CREATION_DATE}</dd>
28        </div>
29    {else if $addinfophotos.AIPID == 3 and $display_info.posted_on and isset($INFO_POSTED_DATE)}
30        <div id="datepost" class="imageInfo">
31                <dt>{\'Posted on\'|@translate}</dt>
32                <dd>{$INFO_POSTED_DATE}</dd>
33        </div>
34    {else if $addinfophotos.AIPID == 4 and $display_info.dimensions and isset($INFO_DIMENSIONS)}
35        <div id="Dimensions" class="imageInfo">
36                <dt>{\'Dimensions\'|@translate}</dt>
37                <dd>{$INFO_DIMENSIONS}</dd>
38        </div>
39    {else if $addinfophotos.AIPID == 5 and $display_info.file}
40        <div id="File" class="imageInfo">
41                <dt>{\'File\'|@translate}</dt>
42                <dd>{$INFO_FILE}</dd>
43        </div>
44    {else if $addinfophotos.AIPID == 6 and $display_info.filesize and isset($INFO_FILESIZE)}
45        <div id="Filesize" class="imageInfo">
46                <dt>{\'Filesize\'|@translate}</dt>
47                <dd>{$INFO_FILESIZE}</dd>
48        </div>
49    {else if $addinfophotos.AIPID == 7 and $display_info.tags and isset($related_tags)}
50        <div id="Tags" class="imageInfo">
51        <dt>{\'Tags\'|@translate}</dt>
52                <dd>
53                {foreach from=$related_tags item=tag name=tag_loop}{if !$smarty.foreach.tag_loop.first}, {/if}<a href="{$tag.URL}">{$tag.name}</a>{/foreach}
54                </dd>
55        </div>
56    {else if $addinfophotos.AIPID == 8 and $display_info.categories and isset($related_categories)}
57        <div id="Categories" class="imageInfo">
58            <dt>{\'Albums\'|@translate}</dt>
59            <dd>
60                <ul>
61                    {foreach from=$related_categories item=cat}
62                        <li>{$cat}</li>
63                    {/foreach}
64                </ul>
65            </dd>
66        </div>
67    {else if $addinfophotos.AIPID == 9 and $display_info.visits}
68        <div id="Visits" class="imageInfo">
69                <dt>{\'Visits\'|@translate}</dt>
70                <dd>{$INFO_VISITS}</dd>
71        </div>
72    {else if $addinfophotos.AIPID == 10 and $display_info.rating_score and isset($rate_summary)}
73        <div id="Average" class="imageInfo">
74                <dt>{\'Rating score\'|@translate}</dt>
75                <dd>
76                {if $rate_summary.count}
77                        <span id="ratingScore">{$rate_summary.score}</span> <span id="ratingCount">({$rate_summary.count|@translate_dec:\'%d rate\':\'%d rates\'})</span>
78                {else}
79                        <span id="ratingScore">{\'no rate\'|@translate}</span> <span id="ratingCount"></span>
80                {/if}
81                </dd>
82        </div>
83        {if isset($rating)}
84        <div id="rating" class="imageInfo">
85                <dt>
86                        <span id="updateRate">{if isset($rating.USER_RATE)}{\'Update your rating\'|@translate}{else}{\'Rate this photo\'|@translate}{/if}</span>
87                </dt>
88                <dd>
89                        <form action="{$rating.F_ACTION}" method="post" id="rateForm" style="margin:0;">
90                        <div>
91                        {foreach from=$rating.marks item=mark name=rate_loop}
92                        {if isset($rating.USER_RATE) && $mark==$rating.USER_RATE}
93                                <input type="button" name="rate" value="{$mark}" class="rateButtonSelected" title="{$mark}">
94                        {else}
95                                <input type="submit" name="rate" value="{$mark}" class="rateButton" title="{$mark}">
96                        {/if}
97                        {/foreach}
98                        {strip}{combine_script id=\'core.scripts\' load=\'async\' path=\'themes/default/js/scripts.js\'}
99                        {combine_script id=\'rating\' load=\'async\' require=\'core.scripts\' path=\'themes/default/js/rating.js\'}
100                        {footer_script}
101                                var _pwgRatingAutoQueue = _pwgRatingAutoQueue||[];
102                                _pwgRatingAutoQueue.push( {ldelim}rootUrl: \'{$ROOT_URL}\', image_id: {$current.id},
103                                        onSuccess : function(rating) {ldelim}
104                                                var e = document.getElementById("updateRate");
105                                                if (e) e.innerHTML = "{\'Update your rating\'|@translate|@escape:\'javascript\'}";
106                                                e = document.getElementById("ratingScore");
107                                                if (e) e.innerHTML = rating.score;
108                                                e = document.getElementById("ratingCount");
109                                                if (e) {ldelim}
110                                                        if (rating.count == 1) {ldelim}
111                                                                e.innerHTML = "({\'%d rate\'|@translate|@escape:\'javascript\'})".replace( "%d", rating.count);
112                                                        } else {ldelim}
113                                                                e.innerHTML = "({\'%d rates\'|@translate|@escape:\'javascript\'})".replace( "%d", rating.count);
114              }
115                                                {rdelim}
116                                        {rdelim}{rdelim} );
117                        {/footer_script}
118                        {/strip}
119                        </div>
120                        </form>
121                </dd>
122        </div>
123        {/if}
124    {else if $addinfophotos.AIPID == 11 and $display_info.privacy_level and isset($available_permission_levels)}
125        <div id="Privacy" class="imageInfo">
126                <dt>{\'Who can see this photo?\'|@translate}</dt>
127                <dd>
128                        <div>
129                                <a id="privacyLevelLink" href>{$available_permission_levels[$current.level]}</a>
130                        </div>
131{combine_script id=\'core.scripts\' load=\'async\' path=\'themes/default/js/scripts.js\'}
132{footer_script require=\'jquery\'}{strip}
133function setPrivacyLevel(id, level){
134(new PwgWS(\'{$ROOT_URL}\')).callService(
135        "pwg.images.setPrivacyLevel", { image_id:id, level:level},
136        {
137                method: "POST",
138                onFailure: function(num, text) { alert(num + " " + text); },
139                onSuccess: function(result) {
140                          jQuery(\'#privacyLevelBox .switchCheck\').css(\'visibility\',\'hidden\');
141                                jQuery(\'#switchLevel\'+level).prev(\'.switchCheck\').css(\'visibility\',\'visible\');
142                                jQuery(\'#privacyLevelLink\').text(jQuery(\'#switchLevel\'+level).text());
143                }
144        }
145        );
146}
147(SwitchBox=window.SwitchBox||[]).push("#privacyLevelLink", "#privacyLevelBox");
148{/strip}{/footer_script}
149                        <div id="privacyLevelBox" class="switchBox" style="display:none">
150                                {foreach from=$available_permission_levels item=label key=level}
151                                        <span class="switchCheck"{if $level != $current.level} style="visibility:hidden"{/if}>&#x2714; </span>
152                                        <a id="switchLevel{$level}" href="javascript:setPrivacyLevel({$current.id},{$level})">{$label}</a><br>
153                                {/foreach}
154                        </div>
155                </dd>
156        </div>
157    {else if $addinfophotos.AIPWORDING == \'Description\' and isset($COMMENT_IMG)}
158        <div id="Description" class="imageInfo">
159            <dt>{\'Description\'|@translate}</dt>
160            <dd>
161                {$COMMENT_IMG}
162            </dd>
163        </div>
164        {footer_script}
165            jQuery(document).ready(function(){
166              jQuery(".imageComment").hide();
167            });
168        {/footer_script}
169    {else if $addinfophotos.AIPDATA}
170        <div id="add_info" class="imageInfo">
171          <dt class="label">{$addinfophotos.AIPWORDING}</dt>
172          <dd class="value">{$addinfophotos.AIPDATA}</dd>
173        </div>
174    {/if}
175{/foreach}
176{/strip}
177</dl>
178{if isset($metadata)}
179';
180     
181    return preg_replace($search, $repla , $content);
182
183}
184
185add_event_handler('loc_begin_picture', 'add_InfoT');
186
187function add_InfoT() {
188    global $conf, $page, $template;
189
190    if (!empty($page['image_id'])) {
191        $PAED = pwg_db_fetch_assoc(pwg_query("SELECT state FROM " . PLUGINS_TABLE . " WHERE id = 'ExtendedDescription';"));
192        if ($PAED['state'] == 'active')
193            add_event_handler('AP_render_content', 'get_user_language_desc');
194
195        $tab_add_info_one_photo = tab_add_info_by_photo_show();
196
197        if (pwg_db_num_rows($tab_add_info_one_photo)) {
198            while ($info_photos = pwg_db_fetch_assoc($tab_add_info_one_photo)) {
199
200                $d = data_info_photos($page['image_id'], $info_photos['id_prop_pho']);
201                $row = pwg_db_fetch_assoc($d);
202
203                $items = array(
204                    'AIPID' => $info_photos['id_prop_pho'],
205                    'AIPORDER' => $info_photos['orderprop'],
206                    'AIPWORDING' => trigger_change('AP_render_content', $info_photos['wording']),
207                    'AIPDATA' => trigger_change('AP_render_content', $row['data']),
208                );
209
210                $template->append('add_info_photos', $items);
211            }
212        }
213
214        $template->assign(
215                array(
216                    'A' => 'a'
217        ));
218    }
219}
220
221?>
Note: See TracBrowser for help on using the repository browser.