source: extensions/meta/main.inc.php @ 28916

Last change on this file since 28916 was 28916, checked in by plg, 10 years ago

compatibility with Piwigo 2.7 (still compatible with Piwigo 2.6, but no more 2.5), change trigger_event into trigger_change

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Author Date Id Revision
File size: 7.5 KB
Line 
1<?php
2/*
3Plugin Name: meta
4Version: auto
5Description: Allows to add metadata
6Plugin URI: http://piwigo.org/ext/extension_view.php?eid=220
7Author: ddtddt
8Author URI: http://piwigo.org/
9*/
10
11if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
12
13global $prefixeTable, $page;
14
15define('meta_DIR' , basename(dirname(__FILE__)));
16define('meta_PATH' , PHPWG_PLUGINS_PATH . meta_DIR . '/');
17define('meta_TABLE' , $prefixeTable . 'meta');
18define('meta_img_TABLE' , $prefixeTable . 'meta_img');
19define('meta_cat_TABLE' , $prefixeTable . 'meta_cat');
20define('METAPERSO_TABLE', $prefixeTable.'metaperso');
21define('META_AP_TABLE', $prefixeTable.'meta_ap');
22
23  // Plugin for admin
24if (script_basename() == 'admin')   
25{
26  include_once(dirname(__FILE__).'/initadmin.php');
27}
28
29
30//Gestion des meta dans le header
31add_event_handler('loc_begin_page_header', 'Change_Meta',20 );
32add_event_handler('loc_end_page_header', 'add_meta',56 );
33add_event_handler('loc_end_page_header', 'add_metacat',61 );
34add_event_handler('loc_end_page_header', 'add_metaimg',71 );
35add_event_handler('loc_after_page_header', 'set_meta_back');
36
37function Change_Meta()
38 {
39        global $template;
40        $template->set_prefilter('header', 'upmata');
41       
42        $PAED = pwg_db_fetch_assoc(pwg_query("SELECT state FROM " . PLUGINS_TABLE . " WHERE id = 'ExtendedDescription';"));
43        if($PAED['state'] == 'active') add_event_handler('AP_render_content', 'get_user_language_desc');
44 }
45
46function upmata ($content, &$smarty)
47 {
48  $search = '#<meta name="description" content=".*?">#';
49 
50  $replacement = '<meta name="description" content="{$PLUG_META}">';
51
52  return preg_replace($search, $replacement, $content);
53 }
54
55
56
57function add_meta()
58{
59                global $template, $page, $meta_infos;
60        $meta_infos = array();
61        $meta_infos['author'] = $template->get_template_vars('INFO_AUTHOR');
62        $meta_infos['related_tags'] = $template->get_template_vars('related_tags');
63        $meta_infos['info'] = $template->get_template_vars('INFO_FILE');
64        $meta_infos['title'] = $template->get_template_vars('PAGE_TITLE');
65
66        $query = '
67  select id,metaname,metaval
68    FROM ' . meta_TABLE . '
69    WHERE metaname IN (\'author\', \'keywords\', \'Description\', \'robots\')
70    ;';
71        $result = pwg_query($query);
72        $meta = array();
73                while ($row = pwg_db_fetch_assoc($result))
74                        {
75                        $meta[$row['metaname']] = $row['metaval'];
76                        $metaED[$row['metaname']]=trigger_change('AP_render_content', $meta[$row['metaname']]);
77                        }
78
79        // Authors
80        if (!empty($meta_infos['author']) and !empty($metaED['author']))
81        {
82                $template->assign('INFO_AUTHOR', $meta_infos['author'] . ' - ' . $metaED['author']);
83        }
84        elseif (!empty($metaED['author']))
85        {
86    $template->assign('INFO_AUTHOR', $metaED['author']);
87        }
88 
89        // Keywords
90        if (!empty($metaED['keywords']))
91        {
92    $template->append('related_tags', array('name' => $metaED['keywords']));
93        }
94
95        // Description
96        if (!empty($meta_infos['title']) and !empty($meta_infos['info']) and !empty($metaED['Description']))
97        {
98    $template->assign('PLUG_META', $meta_infos['title']. ' - ' .$meta_infos['info'] . ', ' . $metaED['Description']);
99        }
100        elseif (!empty($meta_infos['title']) and !empty($metaED['Description']))
101        {
102    $template->assign('PLUG_META', $meta_infos['title']. ' - ' .$metaED['Description']);
103        }
104        elseif (!empty($metaED['Description']))
105        {
106    $template->assign('PLUG_META', $metaED['Description']);
107        }
108       
109        // Robots
110        if (!empty($meta['robots']))
111        {
112    $template->append('head_elements', '<meta name="robots" content="'.$meta['robots'].'">');
113        }
114       
115        //Metaperso
116        if (script_basename() !== 'admin')   
117{
118$metapersos = pwg_query("SELECT * FROM `". METAPERSO_TABLE .";");
119
120if (pwg_db_num_rows($metapersos)) {     
121 while ($metaperso = pwg_db_fetch_assoc($metapersos))
122        {
123    $items = array(
124      'METANAME' => $metaperso['metaname'],
125      'METAVAL' => $metaperso['metaval'],
126      'METATYPE' => $metaperso['metatype']
127                );
128               
129        $template->append('metapersos', $items);
130        }
131}
132       
133        $template->set_filename('PERSO_META', realpath(meta_PATH.'persometa.tpl'));     
134        $template->append('head_elements', $template->parse('PERSO_META', true));
135}       
136
137 $MPC = pwg_db_fetch_assoc(pwg_query("SELECT state FROM " . PLUGINS_TABLE . " WHERE id = 'ContactForm';"));
138  if($MPC['state'] == 'active')
139        {
140        global $conf;
141        if (isset($page['section']) and $page['section'] == 'contact' and isset($conf['contactmeta']) and strpos($conf['contactmeta'], ',') !== false)
142                {
143$metacontact = explode(',', $conf['contactmeta']);
144$metakeyED=trigger_change('AP_render_content', $metacontact[0]);
145$metadesED=trigger_change('AP_render_content', $metacontact[1]);
146                          if (!empty($metakeyED))
147                        {
148                        $template->append('related_tags', array('name' => $metakeyED));
149                        }
150                          if (!empty($metadesED))
151                        {
152                        $template->assign('PLUG_META', $metadesED);
153                        }
154                }
155        }
156       
157$MAP = pwg_db_fetch_assoc(pwg_query("SELECT state FROM " . PLUGINS_TABLE . " WHERE id = 'AdditionalPages';"));
158  if($MAP['state'] == 'active')
159        {
160                        if ( !empty($page['additional_page']['id']) )   
161                                {
162        $lire=$page['additional_page']['id'];
163        $query = '
164  select id, metaKeyap, metadesap
165  FROM ' . META_AP_TABLE . '
166  WHERE id = \''.$lire.'\'
167  ;';
168        $result = pwg_query($query);
169        $row = pwg_db_fetch_assoc($result);
170        $metaKeyapap=$row['metaKeyap'];
171        $metadesapap=$row['metadesap'];
172        $metaKeyapapED=trigger_change('AP_render_content', $metaKeyapap);
173        $metadesapED=trigger_change('AP_render_content', $metadesapap);
174                                }
175                  if (isset($page['section']) and $page['section'] == 'additional_page')
176                {
177                          if (!empty($metaKeyapapED))
178                        {
179                        $template->append('related_tags', array('name' => $metaKeyapapED));
180                        }
181                          if (!empty($metadesapED))
182                        {
183                        $template->assign('PLUG_META', $metadesapED);
184                        }
185                }
186        }
187
188       
189 }
190function add_metacat()
191{
192        global $template, $page, $meta_infos;
193
194        //meta categories
195  if ( !empty($page['category']['id']) )   
196  {
197    $query = '
198    select id,metaKeycat
199      FROM ' . meta_cat_TABLE . '
200      WHERE id = \''.$page['category']['id'].'\'
201      ;';
202    $result = pwg_query($query);
203    $row = pwg_db_fetch_assoc($result);
204        $albumKeyED=trigger_change('AP_render_content', $row['metaKeycat']);
205    if (!empty($row['metaKeycat']))
206    {
207      $template->append('related_tags', array('name' => $albumKeyED));
208    }
209       
210        $query = '
211    select id,metadescat
212      FROM ' . meta_cat_TABLE . '
213      WHERE id = \''.$page['category']['id'].'\'
214      ;';
215    $result = pwg_query($query);
216    $row = pwg_db_fetch_assoc($result);
217        $albumDesED=trigger_change('AP_render_content', $row['metadescat']);
218    if (!empty($row['metadescat']))
219    {
220      $template->assign('PLUG_META', $albumDesED);
221    }
222  }
223}
224
225function add_metaimg()
226{
227        global $template, $page, $meta_infos;
228
229  //meta images
230  if ( !empty($page['image_id']) )   
231  {
232    $query = '
233    select id,metaKeyimg
234      FROM ' . meta_img_TABLE . '
235      WHERE id = \''.$page['image_id'].'\'
236      ;';
237    $result = pwg_query($query);
238    $row = pwg_db_fetch_assoc($result);
239        $photoKeyED=trigger_change('AP_render_content', $row['metaKeyimg']);
240    if (!empty($row['metaKeyimg']))
241    {
242      $template->append('related_tags', array('name' => $photoKeyED));
243    }
244
245                $query = '
246    select id,metadesimg
247      FROM ' . meta_img_TABLE . '
248      WHERE id = \''.$page['image_id'].'\'
249      ;';
250    $result = pwg_query($query);
251    $row = pwg_db_fetch_assoc($result);
252        $photoDesED=trigger_change('AP_render_content', $row['metadesimg']);
253    if (!empty($row['metadesimg']))
254    {
255      $template->assign('PLUG_META', $photoDesED);
256    }
257       
258  }
259}
260
261function set_meta_back()
262{
263  global $template, $meta_infos;
264 
265  $template->assign
266  (array
267        (
268    'INFO_AUTHOR'  => $meta_infos['author'],
269    'related_tags' => $meta_infos['related_tags'],
270    'INFO_FILE'    => $meta_infos['info'],
271    )
272  );
273}
274?>
Note: See TracBrowser for help on using the repository browser.