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

Last change on this file since 24196 was 22769, checked in by ddtddt, 12 years ago

[extensions] - meta - add metadata personal on all public page

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Author Date Id Revision
File size: 5.9 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;
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');
21
22  // Plugin for admin
23if (script_basename() == 'admin')   
24{
25  include_once(dirname(__FILE__).'/initadmin.php');
26}
27
28
29//Gestion des meta dans le header
30add_event_handler('loc_begin_page_header', 'Change_Meta',20 );
31add_event_handler('loc_end_page_header', 'add_meta',56 );
32add_event_handler('loc_end_page_header', 'add_metacat',61 );
33add_event_handler('loc_end_page_header', 'add_metaimg',71 );
34add_event_handler('loc_after_page_header', 'set_meta_back');
35
36function Change_Meta()
37 {
38        global $template;
39        $template->set_prefilter('header', 'upmata');
40       
41        $PAED = pwg_db_fetch_assoc(pwg_query("SELECT state FROM " . PLUGINS_TABLE . " WHERE id = 'ExtendedDescription';"));
42        if($PAED['state'] == 'active') add_event_handler('AP_render_content', 'get_user_language_desc');
43 }
44
45function upmata ($content, &$smarty)
46 {
47  $search = '#<meta name="description" content=".*?">#';
48 
49  $replacement = '<meta name="description" content="{$PLUG_META}">';
50
51  return preg_replace($search, $replacement, $content);
52 }
53
54
55
56function add_meta()
57{
58                global $template, $page, $meta_infos;
59        $meta_infos = array();
60        $meta_infos['author'] = $template->get_template_vars('INFO_AUTHOR');
61        $meta_infos['related_tags'] = $template->get_template_vars('related_tags');
62        $meta_infos['info'] = $template->get_template_vars('INFO_FILE');
63        $meta_infos['title'] = $template->get_template_vars('PAGE_TITLE');
64
65        $query = '
66  select id,metaname,metaval
67    FROM ' . meta_TABLE . '
68    WHERE metaname IN (\'author\', \'keywords\', \'Description\', \'robots\')
69    ;';
70        $result = pwg_query($query);
71        $meta = array();
72                while ($row = pwg_db_fetch_assoc($result))
73                        {
74                        $meta[$row['metaname']] = $row['metaval'];
75                        $metaED[$row['metaname']]=trigger_event('AP_render_content', $meta[$row['metaname']]);
76                        }
77
78        // Authors
79        if (!empty($meta_infos['author']) and !empty($metaED['author']))
80        {
81                $template->assign('INFO_AUTHOR', $meta_infos['author'] . ' - ' . $metaED['author']);
82        }
83        elseif (!empty($metaED['author']))
84        {
85    $template->assign('INFO_AUTHOR', $metaED['author']);
86        }
87 
88        // Keywords
89        if (!empty($metaED['keywords']))
90        {
91    $template->append('related_tags', array('name' => $metaED['keywords']));
92        }
93
94        // Description
95        if (!empty($meta_infos['title']) and !empty($meta_infos['info']) and !empty($metaED['Description']))
96        {
97    $template->assign('PLUG_META', $meta_infos['title']. ' - ' .$meta_infos['info'] . ', ' . $metaED['Description']);
98        }
99        elseif (!empty($meta_infos['title']) and !empty($metaED['Description']))
100        {
101    $template->assign('PLUG_META', $meta_infos['title']. ' - ' .$metaED['Description']);
102        }
103        elseif (!empty($metaED['Description']))
104        {
105    $template->assign('PLUG_META', $metaED['Description']);
106        }
107       
108        // Robots
109        if (!empty($meta['robots']))
110        {
111    $template->append('head_elements', '<meta name="robots" content="'.$meta['robots'].'">');
112        }
113       
114        //Metaperso
115        if (script_basename() !== 'admin')   
116{
117$metapersos = pwg_query("SELECT * FROM `". METAPERSO_TABLE .";");
118
119if (pwg_db_num_rows($metapersos)) {     
120 while ($metaperso = pwg_db_fetch_assoc($metapersos))
121        {
122    $items = array(
123      'METANAME' => $metaperso['metaname'],
124      'METAVAL' => $metaperso['metaval'],
125      'METATYPE' => $metaperso['metatype']
126                );
127               
128        $template->append('metapersos', $items);
129        }
130       
131
132}
133       
134        $template->set_filename('PERSO_META', realpath(meta_PATH.'persometa.tpl'));     
135        $template->append('head_elements', $template->parse('PERSO_META', true));
136}       
137       
138 }
139function add_metacat()
140{
141        global $template, $page, $meta_infos;
142
143        //meta categories
144  if ( !empty($page['category']['id']) )   
145  {
146    $query = '
147    select id,metaKeycat
148      FROM ' . meta_cat_TABLE . '
149      WHERE id = \''.$page['category']['id'].'\'
150      ;';
151    $result = pwg_query($query);
152    $row = pwg_db_fetch_assoc($result);
153        $albumKeyED=trigger_event('AP_render_content', $row['metaKeycat']);
154    if (!empty($row['metaKeycat']))
155    {
156      $template->append('related_tags', array('name' => $albumKeyED));
157    }
158       
159        $query = '
160    select id,metadescat
161      FROM ' . meta_cat_TABLE . '
162      WHERE id = \''.$page['category']['id'].'\'
163      ;';
164    $result = pwg_query($query);
165    $row = pwg_db_fetch_assoc($result);
166        $albumDesED=trigger_event('AP_render_content', $row['metadescat']);
167    if (!empty($row['metadescat']))
168    {
169      $template->assign('PLUG_META', $albumDesED);
170    }
171  }
172}
173
174function add_metaimg()
175{
176        global $template, $page, $meta_infos;
177
178  //meta images
179  if ( !empty($page['image_id']) )   
180  {
181    $query = '
182    select id,metaKeyimg
183      FROM ' . meta_img_TABLE . '
184      WHERE id = \''.$page['image_id'].'\'
185      ;';
186    $result = pwg_query($query);
187    $row = pwg_db_fetch_assoc($result);
188        $photoKeyED=trigger_event('AP_render_content', $row['metaKeyimg']);
189    if (!empty($row['metaKeyimg']))
190    {
191      $template->append('related_tags', array('name' => $photoKeyED));
192    }
193
194                $query = '
195    select id,metadesimg
196      FROM ' . meta_img_TABLE . '
197      WHERE id = \''.$page['image_id'].'\'
198      ;';
199    $result = pwg_query($query);
200    $row = pwg_db_fetch_assoc($result);
201        $photoDesED=trigger_event('AP_render_content', $row['metadesimg']);
202    if (!empty($row['metadesimg']))
203    {
204      $template->assign('PLUG_META', $photoDesED);
205    }
206       
207  }
208}
209
210
211function set_meta_back()
212{
213  global $template, $meta_infos;
214 
215  $template->assign
216  (array
217        (
218    'INFO_AUTHOR'  => $meta_infos['author'],
219    'related_tags' => $meta_infos['related_tags'],
220    'INFO_FILE'    => $meta_infos['info'],
221    )
222  );
223}
224?>
Note: See TracBrowser for help on using the repository browser.