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

Last change on this file since 28236 was 28236, checked in by ddtddt, 11 years ago

[extensions] - meta

  • 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_event('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_event('AP_render_content', $metacontact[0]);
145$metadesED=trigger_event('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_event('AP_render_content', $metaKeyapap);
173        $metadesapED=trigger_event('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_event('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_event('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_event('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_event('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.