Changeset 103203 in spip-zone


Ignore:
Timestamp:
Mar 8, 2017, 9:40:33 PM (3 years ago)
Author:
teddy.spip@…
Message:

Ajout d'une fonctionnalité permettant d'enlever les caractères accentués, transformer les ponctuations et les espaces en un underscore. Ce séparateur est configurable.
Up de z.

Location:
_plugins_/spip-bonux-3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip-bonux-3/paquet.xml

    r102584 r103203  
    22        prefix="spip_bonux"
    33        categorie="outil"
    4         version="3.4.0"
     4        version="3.4.1"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
     
    1616        <auteur>romy.tetue.net</auteur>
    1717
    18         <copyright>2008-2015</copyright>
     18        <copyright>2008-2017</copyright>
    1919
    2020        <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL</licence>
  • _plugins_/spip-bonux-3/spip_bonux_fonctions.php

    r102944 r103203  
    134134}
    135135}
     136
     137if (!function_exists('nom_machine')) {
     138        /**
     139         * Cette fonction permet de transformer en nom machine, soit en enlevant tous les accents, toutes les ponctuations. Les espaces sont remplacés par le séparateur `_`.
     140         *
     141         * @param string $subject    Texte à transformer en nom machine
     142         * @param string $separateur Par défaut, un underscore `_`.
     143         *
     144         * @return string
     145         */
     146        function nom_machine($subject, $separateur = '_') {
     147                include_spip('inc/charsets');
     148                $nom_tmp = trim($subject); // On enlève les espaces indésirables
     149                $nom_tmp = translitteration($nom_tmp); // On enlève les accents et cie
     150                $nom_tmp = preg_replace(",(/|[[:punct:][:space:]]+),u", $separateur,
     151                        $nom_tmp); // On enlève les espaces et les slashs
     152                $nom_tmp = preg_replace("/(" . $separateur . "+)/", $separateur, $nom_tmp); // pas de double underscores
     153                if (preg_match("/" . $separateur . "$/", $nom_tmp)) {
     154                        $nom_tmp = trim($nom_tmp, $separateur); // On ne doit pas terminer par le séparateur
     155                }
     156                $nom_tmp = preg_replace("/'/", $separateur, $nom_tmp); // pas d'apostrophes
     157                $nom_tmp = strtolower($nom_tmp); // On met en minuscules
     158
     159                return $nom_tmp;
     160        }
     161}
Note: See TracChangeset for help on using the changeset viewer.