source: extensions/ConcoursPhoto/publish.php @ 32457

Last change on this file since 32457 was 32457, checked in by tiico, 3 years ago

Version 11.0.1 ConcoursPhoto (piwigo 11 compatible + some corrections/news)

File size: 5.3 KB
Line 
1<?php
2if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
3
4global $template;
5
6// Publish the result on a global page.
7// Mode global ==> simply display global result
8// Mode full ==> display global result and user notations
9
10$ap_id = explode('concours/' , $_SERVER['REQUEST_URI']);
11$id_concours = $ap_id[1];
12
13$user['ipguest'] = null;
14if (is_a_guest())
15{
16    if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
17        $IP = $_SERVER['HTTP_X_FORWARDED_FOR']; 
18    elseif(isset($_SERVER['HTTP_CLIENT_IP']))   
19        $IP = $_SERVER['HTTP_CLIENT_IP'];   
20    else
21        $IP = $_SERVER['REMOTE_ADDR']; 
22         
23    // store ip
24    $user['ipguest'] = $IP;
25}
26       
27
28
29$concours = new Concours($id_concours);
30
31                $template->assign( 'CONCOURS', array(
32                                'ID'    => $concours->concours_infos['id'],
33                                'NAME'  => $concours->concours_infos['name'],
34                                'DESCR' => $concours->concours_infos['descr'],
35                                'BEGIN_DATE'    => $concours->concours_infos['begin_date'],
36                                'END_DATE'      => $concours->concours_infos['end_date'],
37                                'METHOD'        => l10n("concours_method".$concours->concours_infos['method']),
38                                'METHODNB'      => $concours->concours_infos['method']
39                                ));
40
41
42$category = $concours->concours_infos['category'];
43
44if (!(isset($concours->concours_infos['method'])))
45        $concours->concours_infos['method'] = 1;
46
47$query = 'SELECT DISTINCT(img.id), img.name, img.file, img.path, img.author,
48                  ic.category_id, cat.name AS catname, conc.note, conc.moyenne, conc.moderation1, conc.moderation2, conc.nbvotant'
49                .' FROM ' . IMAGES_TABLE.' AS img'
50                .' INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON img.id = ic.image_id'
51                .' INNER JOIN '.CATEGORIES_TABLE.' AS cat ON ic.category_id = cat.id'
52                .' INNER JOIN '.CONCOURS_RESULT_TABLE.' AS conc ON conc.img_id = img.id'
53                .' WHERE ic.category_id = '.$concours->concours_infos['category']
54                .' AND conc.id_concours = '.$concours->concours_infos['id'];
55
56               
57switch ($concours->concours_infos['method'])
58{
59        case 1 :// total
60                $query .= ' ORDER BY note DESC';
61                break;
62        case 2 :// moyenne
63                $query .= ' ORDER BY moyenne  DESC';
64                break;
65        case 3 :// moderation1
66                $query .= ' ORDER BY moderation1 DESC';
67                break;
68        case 4 :// moderation2
69                $query .= ' ORDER BY moderation2 DESC';
70                break;
71}
72
73
74$query .=';';
75//              .' ORDER by note DESC;';
76$result = pwg_query($query);
77$rang = 1;
78$previousNote = $previousMoy = 0;
79while ($row = pwg_db_fetch_array($result))
80{
81        // link on picture.php page
82        set_make_full_url();
83        if ( isset($row['category_id']) & isset($row['catname']) ) 
84        {
85                $url = duplicate_picture_url(
86                array(
87                'image_id' => $row['id'],
88                'image_file' => $row['file'],
89                'category' => array(
90                                                'id' => $row['category_id'],
91                                                'name' => $row['catname'],
92                                                'permalink' => ''
93                                          )
94                ),
95                array('start')
96                );
97        }
98        else
99        {
100                $url = duplicate_picture_url(
101                  array(
102                        'image_id' => $row['id'],
103                        'image_file' => $row['file']
104                  ),
105                  array('start')
106                );
107        }       
108        unset_make_full_url();
109
110    // Check the exaequos
111    if ($concours->my_config['check_exaequo'])
112    {
113        if ( ($concours->concours_infos['method'] == 1  // total
114               AND ($row['note'] == $previousNote))
115             OR  ($concours->concours_infos['method'] == 2      // moyenne
116                  AND ($row['moyenne'] == $previousMoy))
117             OR  ($concours->concours_infos['method'] == 3      // moderation1
118                  AND ($row['moderation1'] == $previousMoy))
119             OR  ($concours->concours_infos['method'] == 4      // moderation2
120                  AND ($row['moderation2'] == $previousMoy)))
121                                 
122        {
123//            echo "Rang=".$rang."\n";
124            $rang --;
125           
126        }
127    }
128        $usernote = $concours->get_img_globalnote_user($row['id'], null, null, $user['ipguest']);
129        $template->append( 'concours_note', array(
130                        'img_id' => $row['id'],
131                        'name'  => $row['name'],
132                        'file'  => $row['file'],
133                        'author'        => $row['author'],
134                        'rang'  => $rang,
135//                      'thumb' => DerivativeImage::thumb_url($row),
136                        'thumb' => DerivativeImage::url(IMG_XXSMALL, $row),
137                        'url'   => $url,
138                        'note'  => ($row['note'] == 0 ? 'N/A' :$row['note']),
139                        'moyenne'       => ($row['moyenne'] == 0 ? 'N/A' : round($row['moyenne'] , 2)),
140                        'moderation1'   => ($row['moderation1'] == 0 ? 'N/A' : round($row['moderation1'], 2) ),
141                        'moderation2'   => ($row['moderation2'] == 0 ? 'N/A' : round($row['moderation2'], 2)),                 
142                        'nbvotant'      => $row['nbvotant'],
143                        'usernote'      => ($usernote < 0 ? "N/A" : $usernote)
144                       
145                ));
146    $rang ++;
147   
148//    echo "Rang=".$rang."\n";
149    $previousNote = $row['note'];
150    $previousMoy = $row['moyenne'];
151
152}
153// Envoi de la page
154$template->assign(array(
155  'TITLE' => "Concours : ".$concours->concours_infos['name']));
156
157$template->assign('IMG_URL', CONCOURS_IMG_PATH);
158
159$template->set_filenames(array('concours_result' =>  CONCOURS_ROOT.'/template/result.tpl'));
160$template->concat('PLUGIN_INDEX_CONTENT_BEGIN', $template->parse('concours_result', true));
161 
162 
163  $template->assign('PLUGIN_INDEX_ACTIONS' , '
164    <li><a href="' . make_index_url() . '" title="' . l10n('return to homepage') . '">
165      <img src="' . $template->get_themeconf('icon_dir') . '/home.png" class="button" alt="' . l10n('home') . '"/></a>
166    </li>');
167
168if (is_admin())
169{
170  $template->assign('U_EDIT', PHPWG_ROOT_PATH . 'admin.php?page=plugin&amp;section=' . CONCOURS_DIR . '%2Fadmin%2Fadd_concours.php&amp;concours=' . $id_concours.'&amp;action=edit');
171}
172
173$template->clear_assign(array('U_MODE_POSTED', 'U_MODE_CREATED'));
174
175?>
Note: See TracBrowser for help on using the repository browser.