source: spip-zone/_plugins_/seo/seo_fonctions.php @ 50170

Last change on this file since 50170 was 50170, checked in by xdjuj@…, 10 years ago
  • Changer le nom de la table qui n'est pas préfixée spip_
  • Utiliser une procédure d'installation standard
  • Adapter le reste du code à ce nouveau nom de table
File size: 5.8 KB
Line 
1<?php
2
3/**
4 * Renvoyer la balise <link> pour URL CANONIQUES
5 * @return string $flux
6 */
7function generer_urls_canoniques(){
8        include_spip('balise/url_');
9       
10        if (count($GLOBALS['contexte']) == 0) {
11                $type_object = 'sommaire';
12        } elseif (isSet($GLOBALS['contexte']['id_article'])) {
13                $id_object   = $GLOBALS['contexte']['id_article'];
14                $type_object = 'article';
15        } elseif (isSet($GLOBALS['contexte']['id_rubrique'])) {
16                $id_object   = $GLOBALS['contexte']['id_rubrique'];
17                $type_object = 'rubrique';
18        }
19
20        switch ($type_object) {
21                case 'sommaire':       
22                        $flux .= '<link rel="canonical" href="'. url_de_base() .'" />';
23                        break;
24                default:
25                        $flux .= '<link rel="canonical" href="'. url_de_base() . generer_url_entite($id_object, $type_object) .'" />';
26                        break;
27        }
28       
29        return $flux;
30}
31
32/**
33 * Renvoyer la balise SCRIPT de Google Analytics
34 * @return string $flux
35 */
36function generer_google_analytics(){
37        /* CONFIG */
38        $config = unserialize($GLOBALS['meta']['seo']);
39
40        /* GOOGLE ANALYTICS */
41        if($config['analytics']['id']){
42                // Nouvelle balise : http://www.google.com/support/analytics/bin/answer.py?hl=fr_FR&answer=174090&utm_id=ad
43                $flux .= "<script type=\"text/javascript\">
44        var _gaq = _gaq || [];
45        _gaq.push(['_setAccount', '".$config['analytics']['id']."']);
46        _gaq.push(['_trackPageview']);
47        (function() {
48                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
49                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
50                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
51        })();
52</script>
53";
54               
55                // Ancien Code Google Analytics
56                // $flux .= '<script type="text/javascript">';
57                // $flux .= 'var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");';
58                // $flux .= 'document.write(unescape("%3Cscript src=\'" + gaJsHost + "google-analytics.com/ga.js\' type=\'text/javascript\'%3E%3C/script%3E"));';
59                // $flux .= '</script>';
60                // $flux .= '<script type="text/javascript">';
61                // $flux .= 'try{';
62                // $flux .= 'var pageTracker = _gat._getTracker("'. $config['analytics']['id'] .'");';
63                // $flux .= 'pageTracker._trackPageview();';
64                // $flux .= '} catch(err) {}';
65                // $flux .= '</script>';
66        }
67
68        return $flux;
69}
70
71/**
72 * Renvoyer les META Classiques
73 * - Meta Titre / Description / etc.
74 * @return string $flux
75 */
76function generer_meta_tags(){
77        include_spip('inc/abstract_sql');
78
79        /* CONFIG */
80        $config = unserialize($GLOBALS['meta']['seo']);
81       
82        if (isSet($GLOBALS['contexte']['id_article'])) {
83                $id_object   = $GLOBALS['contexte']['id_article'];
84                $type_object = 'article';
85        } elseif (isSet($GLOBALS['contexte']['id_rubrique'])) {
86                $id_object   = $GLOBALS['contexte']['id_rubrique'];
87                $type_object = 'rubrique';
88        } else{
89                $type_object = 'sommaire';
90        }
91
92        /* META TAGS */
93       
94        // If the meta tags configuration is activate
95        $meta_tags = array();
96       
97        switch ($type_object) {
98                case 'sommaire':       
99                                $meta_tags = $config['meta_tags']['tag'];
100                        break;
101                default:
102                        $title = couper(sql_getfetsel("titre", "spip_".$type_object."s", "id_$type_object = $id_object"),64);
103                        $requete = sql_allfetsel("descriptif,texte", "spip_".$type_object."s", "id_$type_object = $id_object");
104                        if($requete) $description = couper(implode(" ",$requete[0]),150,'');
105                        // Get the value set by default
106                        foreach ($config['meta_tags']['default'] as $name => $option) {
107                                if ($option == 'sommaire') {
108                                        $meta_tags[$name] = $config['meta_tags']['tag'][$name];
109                                } elseif ($option == 'page') {
110                                        if ($name == 'title') $meta_tags['title'] = $title;
111                                        if ($name == 'description') $meta_tags['description'] = $description;
112                                } elseif ($option == 'page_sommaire') {
113                                        if ($name == 'title') $meta_tags['title'] = $title . (($title!='')?' - ':'') . $config['meta_tags']['tag'][$name];
114                                        if ($name == 'description') $meta_tags['description'] = $description . (($description!='')?' - ':'') . $config['meta_tags']['tag'][$name];
115                                }
116                        }
117                       
118                        // If the meta tags rubrique and articles editing is activate (should overwrite other setting)
119                        if ($config['meta_tags']['activate_editing'] == 'yes' && ($type_object == 'article' || $type_object == 'rubrique')) {
120                                $result = sql_select("*", "spip_seo", "id_object = $id_object AND type_object = '$type_object'");
121                                while($r = sql_fetch($result)){
122                                        if ($r['meta_content'] != '')
123                                                $meta_tags[$r['meta_name']] = $r['meta_content'];
124                                }
125                        }                               
126                        break;
127        }
128       
129        // Print the result on the page
130        foreach ($meta_tags as $name => $content) {
131                if ($content != '')
132                        if ($name=='title')
133                                $flux .= '<title>'. htmlspecialchars(supprimer_numero(textebrut(propre($content)))) .'</title>'."\n";
134                        else
135                                $flux .= '<meta name="'. $name .'" content="'. htmlspecialchars(textebrut(propre($content))) .'" />'."\n";
136        }
137
138        return $flux;
139}
140
141/**
142 * Renvoyer une META toute seule (hors balise)
143 * @return string $retour
144 */
145function generer_meta_brute($nom){     
146        $config = unserialize($GLOBALS['meta']['seo']);
147        $nom = strtolower($nom);
148       
149        if($config['meta_tags']['tag'][$nom]){
150                return $config['meta_tags']['tag'][$nom];
151        }
152       
153        return false;
154}
155
156/**
157 * Renvoyer la META GOOGLE WEBMASTER TOOLS
158 * @return string $flux
159 */
160function generer_webmaster_tools(){
161        /* CONFIG */
162        $config = unserialize($GLOBALS['meta']['seo']);
163
164        if($config['webmaster_tools']['id']){
165                $flux .= '<meta name="google-site-verification" content="'. $config['webmaster_tools']['id'] .'"/>';
166        }
167       
168        return $flux;
169}
170
171/**
172 * Renvoyer la META ALEXA
173 * @return string $flux
174 */
175function generer_alexa(){
176        /* CONFIG */
177        $config = unserialize($GLOBALS['meta']['seo']);
178
179        if($config['alexa']['id']){
180                $flux .= '<meta name="alexaVerifyID" content="'. $config['alexa']['id'] .'"/>';
181        }
182       
183        return $flux;
184}
Note: See TracBrowser for help on using the repository browser.