source: extensions/ThumbnailTooltip/include/class.inc.php @ 30756

Last change on this file since 30756 was 30271, checked in by sarybe, 10 years ago

[Thumbnail_Tooltip] Bug fix for html and double quotes in name (title) et description (comment). Remove slashing for simple quote.

File size: 5.6 KB
Line 
1<?php
2
3class Thumbnail_Tooltip_IMG {
4  var $plugin_name, $plugin_path, $plugin_url;
5  var $my_config;
6
7  function Thumbnail_Tooltip_IMG ($plugin_name, $plugin_path, $plugin_url) {
8    $this->plugin_name = $plugin_name;
9    $this->plugin_path = $plugin_path;
10    $this->plugin_url = $plugin_url;
11    $this->initialize_event_handler($plugin_name, $plugin_path, $plugin_url);
12  }
13
14  function initialize_event_handler() {
15    add_event_handler('loc_end_index_thumbnails', array($this, 'thumbnail_tooltip_affich'), 50, 2);
16    add_event_handler('loc_end_index_category_thumbnails', array($this, 'Author_Description_affich'), 50, 2);
17  }
18
19  function thumbnail_tooltip_affich($tpl_var) {
20    global $user;
21
22        $query = 'SELECT param, value, comment FROM ' . CONFIG_TABLE . ' WHERE param="thumbnail_tooltip"';
23        $row = pwg_db_fetch_assoc( pwg_query($query) );
24
25        $params = unserialize($row['value']);
26        $values = array(
27                  'DISPLAY_NAME'         => $params['display_name'],
28                  'value1'               => $params['value1'],
29                  'value2'               => $params['value2'],
30                  'value3'               => $params['value3'],
31                  'value4'               => $params['value4'],
32                  'value5'               => $params['value5'],
33                  'value6'               => $params['value6'],
34                  'separator'            => $params['separator']
35        );
36       
37
38        if ($params['display_name']==true) {
39      foreach($tpl_var as $cle=>$valeur) {
40        $query = "
41                  SELECT name, hit, comment, author, rating_score, CONCAT(width, 'x', height) AS dimensions, filesize FROM ".IMAGES_TABLE."
42                  WHERE id = ".(int)$tpl_var[$cle]['id']."
43                ;";
44            $row = pwg_db_fetch_assoc( pwg_query($query) );
45
46        $details = array();
47        $details_param = array();
48
49        $details['tn_type1'] = str_replace('"', '\"', strip_tags($row['name']));
50
51        if (!empty($row['hit'])) {
52                  $details['tn_type2'] = $row['hit'].' '.strtolower(l10n('Visits'));
53                  $details['tn_type3'] = '('.$row['hit'].' '.strtolower(l10n('Visits')).')';
54              if (!empty($row['rating_score'])) { $type8 = ', '.strtolower(l10n('Rating score')).' '.$row['rating_score']; } else { $type8 = ''; }
55                  $details['tn_type8'] = '('.$row['hit'].' '.strtolower(l10n('Visits')).$type8.')';
56        }
57
58        if (!empty($row['comment'])) {
59                  $details['tn_type4'] = str_replace('"', '\"', strip_tags($row['comment']));
60        }
61
62        if (!empty($row['author'])) {
63                  $details['tn_type5'] = $row['author'];
64        }
65
66        if (!empty($row['author'])) {
67                  $details['tn_type6'] = (preg_match('#(,|\/)#i', $row['author'])) ? str_replace(array('(',')'), '', ucfirst(l10n('author(s) : %s', $row['author']))) : l10n('Author').' : '.$row['author'];
68        }
69
70        if (!empty($row['rating_score'])) {
71                  $details['tn_type7'] = strtolower(l10n('Rating score')).' '.$row['rating_score'];
72        }
73
74        if (!empty($row['dimensions'])) {
75                  $details['tn_type9'] = l10n('Dimensions').' : '.$row['dimensions'];
76        }
77
78                if (!empty($row['filesize'])) {
79                  if (($params['separator']=='1') && (!empty($details['tn_type9']))) { $details['tn_type9'].= ' - '; } elseif (($params['separator']!='1') && (!empty($details['tn_type9']))) { $details['tn_type9'].= ' '; } else { $details['tn_type9'] = ' '; } 
80                  $details['tn_type9'].= l10n('Filesize').' : '.l10n('%d Kb', $row['filesize']); 
81                }
82
83        if ((!empty($details[$values['value1']])) && ($details[$values['value1']]!='none')) { $details_param[] = $details[$values['value1']]; }
84        if ((!empty($details[$values['value2']])) && ($details[$values['value2']]!='none')) { $details_param[] = $details[$values['value2']]; }
85        if ((!empty($details[$values['value3']])) && ($details[$values['value3']]!='none')) { $details_param[] = $details[$values['value3']]; }
86        if ((!empty($details[$values['value4']])) && ($details[$values['value4']]!='none')) { $details_param[] = $details[$values['value4']]; }
87        if ((!empty($details[$values['value5']])) && ($details[$values['value5']]!='none')) { $details_param[] = $details[$values['value5']]; }
88        if ((!empty($details[$values['value6']])) && ($details[$values['value6']]!='none')) { $details_param[] = $details[$values['value6']]; } 
89
90        if ($params['separator']=='1') { $title = implode(' - ', $details_param); } else { $title = implode(' ', $details_param); }
91
92        $tpl_var[$cle]['TN_TITLE'] = $title;
93      }
94    }
95    return $tpl_var;
96  }
97
98
99  function Author_Description_affich($tpl_var) {
100    global $user, $lang;
101
102        $query = 'SELECT param, value, comment FROM ' . CONFIG_TABLE . ' WHERE param="thumbnail_tooltip";';
103        $row = pwg_db_fetch_assoc( pwg_query($query) );
104
105    $params = unserialize($row['value']);
106        $values = array('DISPLAY_AUTHOR_CAT' => $params['display_author_cat']);
107
108        if ($params['display_author_cat']==true) {
109      foreach($tpl_var as $cle=>$valeur) {
110        $query = "SELECT author FROM ".IMAGE_CATEGORY_TABLE." INNER JOIN ".IMAGES_TABLE." ON image_id = id WHERE category_id = ".(int)$tpl_var[$cle]['id']." AND author<>'' GROUP BY author";
111            $result = pwg_query($query);
112            $row = pwg_db_fetch_assoc($result); 
113
114                $auteur = '';
115
116            if (!empty($row['author'])) {
117                  do {
118                    $auteur .= $row['author'].', ';
119                  } while ($row = pwg_db_fetch_assoc($result));
120
121                  $auteur = substr($auteur, 0, -2);
122              if (preg_match('#(,|\/)#i', $auteur )) { $auteur = str_replace(array('(',')'), '', ucfirst(sprintf($lang['author(s) : %s'], $auteur))); } else { $auteur = $lang['Author'].' : '.$auteur ; }
123              if (!empty($tpl_var[$cle]['DESCRIPTION'])) { $tpl_var[$cle]['DESCRIPTION'] = $tpl_var[$cle]['DESCRIPTION'].'<br/>'.$auteur; } else { $tpl_var[$cle]['DESCRIPTION'] = $auteur; }
124            }
125      }
126    }
127    return $tpl_var;
128  }
129}
130
131?>
Note: See TracBrowser for help on using the repository browser.