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

Last change on this file since 22802 was 22769, checked in by ddtddt, 11 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
RevLine 
[3978]1<?php
2/*
3Plugin Name: meta
[7468]4Version: auto
[3978]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');
[4174]18define('meta_img_TABLE' , $prefixeTable . 'meta_img');
19define('meta_cat_TABLE' , $prefixeTable . 'meta_cat');
[22769]20define('METAPERSO_TABLE', $prefixeTable.'metaperso');
[3978]21
[9406]22  // Plugin for admin
23if (script_basename() == 'admin')   
[3978]24{
[9406]25  include_once(dirname(__FILE__).'/initadmin.php');
[3978]26}
27
[9406]28
[3978]29//Gestion des meta dans le header
[7624]30add_event_handler('loc_begin_page_header', 'Change_Meta',20 );
31add_event_handler('loc_end_page_header', 'add_meta',56 );
[7636]32add_event_handler('loc_end_page_header', 'add_metacat',61 );
33add_event_handler('loc_end_page_header', 'add_metaimg',71 );
[7651]34add_event_handler('loc_after_page_header', 'set_meta_back');
[7518]35
[7624]36function Change_Meta()
37 {
38        global $template;
39        $template->set_prefilter('header', 'upmata');
[9406]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');
[7624]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
[3978]56function add_meta()
57{
[7518]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');
[7624]63        $meta_infos['title'] = $template->get_template_vars('PAGE_TITLE');
[3978]64
[7518]65        $query = '
[3978]66  select id,metaname,metaval
67    FROM ' . meta_TABLE . '
68    WHERE metaname IN (\'author\', \'keywords\', \'Description\', \'robots\')
69    ;';
[7518]70        $result = pwg_query($query);
71        $meta = array();
[21161]72                while ($row = pwg_db_fetch_assoc($result))
[7518]73                        {
74                        $meta[$row['metaname']] = $row['metaval'];
[9406]75                        $metaED[$row['metaname']]=trigger_event('AP_render_content', $meta[$row['metaname']]);
[7518]76                        }
[3978]77
[7518]78        // Authors
[9406]79        if (!empty($meta_infos['author']) and !empty($metaED['author']))
[7518]80        {
[9406]81                $template->assign('INFO_AUTHOR', $meta_infos['author'] . ' - ' . $metaED['author']);
[7518]82        }
[9406]83        elseif (!empty($metaED['author']))
[7518]84        {
[9406]85    $template->assign('INFO_AUTHOR', $metaED['author']);
[7518]86        }
[3978]87 
[7518]88        // Keywords
[9406]89        if (!empty($metaED['keywords']))
[7518]90        {
[9406]91    $template->append('related_tags', array('name' => $metaED['keywords']));
[7518]92        }
[3978]93
[7518]94        // Description
[9406]95        if (!empty($meta_infos['title']) and !empty($meta_infos['info']) and !empty($metaED['Description']))
[7518]96        {
[9406]97    $template->assign('PLUG_META', $meta_infos['title']. ' - ' .$meta_infos['info'] . ', ' . $metaED['Description']);
[7518]98        }
[9406]99        elseif (!empty($meta_infos['title']) and !empty($metaED['Description']))
[7624]100        {
[9406]101    $template->assign('PLUG_META', $meta_infos['title']. ' - ' .$metaED['Description']);
[7624]102        }
[9406]103        elseif (!empty($metaED['Description']))
[7518]104        {
[9406]105    $template->assign('PLUG_META', $metaED['Description']);
[7518]106        }
[7624]107       
[7518]108        // Robots
109        if (!empty($meta['robots']))
110        {
[3978]111    $template->append('head_elements', '<meta name="robots" content="'.$meta['robots'].'">');
[7518]112        }
[22769]113       
114        //Metaperso
115        if (script_basename() !== 'admin')   
116{
117$metapersos = pwg_query("SELECT * FROM `". METAPERSO_TABLE .";");
[3978]118
[22769]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       
[7518]138 }
139function add_metacat()
140{
141        global $template, $page, $meta_infos;
142
143        //meta categories
[4174]144  if ( !empty($page['category']['id']) )   
[3978]145  {
146    $query = '
[4174]147    select id,metaKeycat
148      FROM ' . meta_cat_TABLE . '
[3978]149      WHERE id = \''.$page['category']['id'].'\'
150      ;';
151    $result = pwg_query($query);
[21161]152    $row = pwg_db_fetch_assoc($result);
[9406]153        $albumKeyED=trigger_event('AP_render_content', $row['metaKeycat']);
[4174]154    if (!empty($row['metaKeycat']))
[3978]155    {
[9406]156      $template->append('related_tags', array('name' => $albumKeyED));
[3978]157    }
[7468]158       
159        $query = '
160    select id,metadescat
161      FROM ' . meta_cat_TABLE . '
162      WHERE id = \''.$page['category']['id'].'\'
163      ;';
164    $result = pwg_query($query);
[21161]165    $row = pwg_db_fetch_assoc($result);
[9406]166        $albumDesED=trigger_event('AP_render_content', $row['metadescat']);
[7468]167    if (!empty($row['metadescat']))
168    {
[9406]169      $template->assign('PLUG_META', $albumDesED);
[7468]170    }
[3978]171  }
[7518]172}
[4174]173
[7518]174function add_metaimg()
175{
176        global $template, $page, $meta_infos;
[7624]177
[4174]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);
[21161]187    $row = pwg_db_fetch_assoc($result);
[9406]188        $photoKeyED=trigger_event('AP_render_content', $row['metaKeyimg']);
[4174]189    if (!empty($row['metaKeyimg']))
190    {
[9406]191      $template->append('related_tags', array('name' => $photoKeyED));
[4174]192    }
[7468]193
194                $query = '
195    select id,metadesimg
196      FROM ' . meta_img_TABLE . '
197      WHERE id = \''.$page['image_id'].'\'
198      ;';
199    $result = pwg_query($query);
[21161]200    $row = pwg_db_fetch_assoc($result);
[9406]201        $photoDesED=trigger_event('AP_render_content', $row['metadesimg']);
[7468]202    if (!empty($row['metadesimg']))
203    {
[9406]204      $template->assign('PLUG_META', $photoDesED);
[7468]205    }
206       
[4174]207  }
[3978]208}
209
[7518]210
[3978]211function set_meta_back()
212{
213  global $template, $meta_infos;
214 
[7518]215  $template->assign
216  (array
217        (
[3978]218    'INFO_AUTHOR'  => $meta_infos['author'],
219    'related_tags' => $meta_infos['related_tags'],
[7518]220    'INFO_FILE'    => $meta_infos['info'],
[3978]221    )
222  );
223}
224?>
Note: See TracBrowser for help on using the repository browser.