source: spip-zone/_plugins_/acs/models/cat/mes_fonctions.php @ 41970

Last change on this file since 41970 was 41970, checked in by webmaster@…, 9 years ago

ACS:

  • couleur de fond des controles égale à la valeur héritée d'un autre composant, le cas échéant.
  • crayons_var_store : traitement des variables de type "bord"
  • suppression des "sequelles" du plugin open publishing


Cat :

  • mise à jour du fichier d'initialisation
  • Articles : petites corrrections CSS, sommaire automatique, ne pas afficher les redirections a la une.
  • Auteurs : ombrage
  • Cadre : prise en compte correcte de la variable Use de l'instance du composant Cadre
  • Fond : traductions
  • Login : ombrage
  • Onglets : correction d'un bug sur la preview
  • Rubrique : affichage du plan de la rubrique si celle-ci ne contient aucun article
  • Syndic : ombrage
File size: 3.7 KB
Line 
1<?php
2/*
3             ACS
4         (Plugin Spip)
5         Squelette Cat
6    http://acs.geomaticien.org
7
8Copyright Daniel FAIVRE, 2007-2010
9Copyleft: licence GPL - Cf. LICENCES.txt in acs plugin dir
10*/
11
12
13$GLOBALS['ouvre_ref'] = '';
14$GLOBALS['ferme_ref'] = '';
15$GLOBALS['ouvre_note'] = '';
16$GLOBALS['ferme_note'] = ': ';
17
18function sans_guillemets($texte) {
19         $texte = str_replace('"', '', $texte);
20         return $texte;
21}
22
23function coupe($texte, $taille=50, $suite) {
24        $texte = couper($texte, $taille);
25        $texte = PtoBR(propre(supprimer_tags($texte)));
26        $texte = str_replace('&nbsp;(...)', $suite, $texte);
27        return $texte;
28}
29
30
31// filtre askeywords: transforme un texte en liste de mots-clés pour meta-tag keywords
32// exemple d'usage: [<meta name="keywords" content="(#TITRE|askeywords)" />]
33function askeywords($texte) {
34        $texte = sans_guillemets($texte);
35         $notkeys = _T('acs:meta_not_keywords');
36
37         $notkeys = explode(',', $notkeys);
38         // Transforme tous les mots inutilisables comme keywords en expression régulière "mot entier", insensible à la casse
39         foreach ($notkeys as $key=>$notkey ) {
40                        $notkeys[$key] = '/\b('.$notkey.')\b/';
41         }
42         $texte = strtolower(textebrut($texte));
43         // Suppression des mots qui ne conviennent pas comme keywords (liste meta_not_keywords du fichier de langue acs_xx.lang)
44         $texte = preg_replace($notkeys, '*', $texte);
45         // Suppression de la ponctuation et des espaces de début et de fin
46         $texte = preg_replace(array('/[;:,.?!\']/', '/(\s+$)/', '/(^\s+)/'), '', $texte);
47         // remplacement des espaces restants par des virgules
48         $texte = preg_replace('/(\s+)/', ',', $texte);
49         return $texte;
50}
51
52/*
53 *       +----------------------------------+
54 *              Nom du Filtre : cm (crypt_mail)
55 *       +----------------------------------+
56 *              Date : dimanche 6 juillet 2003
57 *              Auteur :        Jean-Pierre KUNTZ
58 *                              alias Coyote
59 *       +-------------------------------------+
60 *              Fonctions de ce filtre :
61 *               Crypter une chaînee de texte (email, URL)
62 *               sans en empêcher l'affichage à l'écran
63 *               ni l'utilisation par un logiciel de messagerie
64 *       +-------------------------------------+
65 *
66 *       exemple d'utilisation dans un squelette :
67 *
68 *       <a href="mailto:[(#EMAIL|cm)]">[(#EMAIL|cm)]</a>
69 *
70 * Pour toute suggestion, remarque, proposition d'ajout
71 * reportez-vous au forum de l'article :
72 * http://www.uzine.net/spip_contrib/article.php3?id_article=197
73*/
74
75
76function cm($texte) {
77        $s = "";
78        for ($i=0; $i < strlen($texte); $i++) {
79                $s.="&#".ord($texte{$i}).";";
80        }
81        return $s;
82}
83
84/*
85 * detection automatique de la langue selon le navigateur
86 * necessite [(#CONFIG{langues_utilisees}|detecte_langue{#SELF})]
87 * en DEBUT de squelette, AVANT toute sortie html (cookie)
88 *
89 * cf. http://www.spip-contrib.net/Multilinguisme-Non-structure
90 */
91function detecte_langue($langues, $url_encours) {
92        if (!$_COOKIE['spip_lang']) {
93                // récupérer le tableau des langues utilisées dans le site
94                        $tab_langues = explode(",",$langues);
95                // traiter (dans l'ordre !) les langues acceptées par le navigateur
96                        $Tlangues_brutes = split(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
97                        foreach ($Tlangues_brutes as $l) {
98                                // ne garder que le code de pays à 2 lettres pour les valeurs de langues
99                                // (exemple de code langue renvoyé par le navigateur :
100                                // es,de-de;q=0.9,ca;q=0.7,fr-fr;q=0.6,en;q=0.4,fr;q=0.3,en-us;q=0.1)
101                                        if (strpos($l, '-') !== false) {
102                                        $Tl = split('-', $l);
103                                        $l = $Tl[0];
104                                        }
105                                        if (strpos($l, ';') !== false) {
106                                        $Tl = split(';', $l);
107                                        $l = $Tl[0];
108                                        }
109                                // si la langue en cours est utilisée dans le site, converser() vers cette langue
110                                        if (in_array($l, $tab_langues)) {
111                                        include_spip('inc/headers');
112                                        redirige_par_entete('spip.php?action=converser&redirect='.$url_encours.'&var_lang='.$l);
113                                        break;
114                                        }
115                        }
116        }
117}
118?>
Note: See TracBrowser for help on using the repository browser.