drupal: méthode standard pour créer un slug à partir d'une chaîne
Une limace sur ce contexte est une chaîne de caractères qu'il est sécuritaire d'utiliser comme identificateur, sur des adresses url ou des css. Par exemple, si vous avez cette chaîne:
I'd like to eat at McRunchies!
Son slug serait:
i-d-like-to-eat-at-mcrunchies
Je veux savoir si il y a un moyen standard de la construction de ces chaînes sur Drupal (ou php les fonctions disponibles à partir de drupal). Plus précisément, à l'intérieur d'un thème Drupal.
Contexte: je suis la modification d'un thème drupal donc le code html de l'noeuds, il génère comprennent leur taxonomie conditions que les classes css sur leur div contenant. La difficulté est, certains de ces termes " les noms ne sont pas valables les noms de classe css. J'ai besoin de "slugify".
J'ai lu que certaines personnes simplement faire ceci:
str_replace(" ", "-", $term->name)
Ce n'est pas vraiment suffisant pour moi. Il ne remplace pas les lettres majuscules avec downcase, mais plus important encore, ne pas remplacer les caractères non-ascii (comme à ou é) par leurs équivalents ascii. Il également ne pas supprimer "séparateur de chaînes" de début et de fin.
Est-il une fonction dans drupal 6 (ou le php libs) qui fournit un moyen de slugify une chaîne de caractères, et peut être utilisé sur un template.php fichier de un thème drupal?
source d'informationauteur kikito
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser construite en Drupal fonctions pour ce faire.
fonctions fera l'affaire pour vous.
je suis un heureux Zen thème de l'utilisateur, ainsi que je l'ai rencontré cette merveilleuse fonction qui vient avec elle: zen_id_safe http://api.lullabot.com/zen_id_safe
il ne dépend pas de n'importe quel autre thème de fonction, de sorte que vous pouvez le copier sur votre module ou un thème, et l'utiliser. c'est une jolie petite et simple de la fonction, donc je vais juste coller ici pour plus de commodité.
Il y a aussi cette de d7 que vous pouvez copier dans votre projet:
http://api.drupal.org/api/function/drupal_clean_css_identifier/7
Cela peut aider, je trouve que je fais des coups de tous les temps, maintenant, plutôt que d'utiliser des numéros d'identification uniques des touches dans mes tables.
À l'aide de ce et .les règles htaccess signifie que vous allez directement à partir d'une url comme:
/articles/mon-pop-noix-mai-2010
Directement par le biais de l'apparence de la table sans avoir à annuler le mappage d'Id (application d'un filtre adapté naturellement).
Ou d'ajouter une sorte de date en option pour l'application du degré d'unicité que vous le souhaitez.
HTH
Vous pouvez utiliser un preg_replace et strtolower :
Je recommanderais le translittération module qui path_auto utilise. Avec elle, vous pouvez utiliser le
transliteration_get()
fonction. Il ne unicode transformation.