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

Last change on this file since 18990 was 9406, checked in by ddtddt, 14 years ago

[extensions] - meta - update

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