Réécrire la sortie de champ CCK sans utiliser de modèles

7

Le module Vues a la possibilité de réécrire la sortie d'un champ. Cela permet d'adapter la sortie des champs CCK à l'aide de Tokens sans avoir à créer un modèle pour cette vue.

Existe-t-il un module qui permettrait une fonctionnalité similaire pour l'onglet "Champs d'affichage" d'un type de contenu? J'ai besoin de modifier légèrement la sortie de champ pour le teaser et le corps, mais je ne veux pas créer un modèle complet.

J'utilise actuellement Contemplate pour cela, mais c'est plus compliqué que nécessaire et difficile inutile si vous n'êtes pas familier avec l'API PHP Drupal. Il est également ennuyeux de devoir modifier le modèle chaque fois que j'ajoute un champ supplémentaire au type de contenu, je n'ai vraiment besoin de réécrire que quelques champs, pas le corps entier ou l'accroche.

Donc, ce que j'aimerais avoir, c'est un moyen simple de réécrire chaque sortie de champ CCK en utilisant n'importe quel jeton disponible pour ce type de contenu. Existe-t-il quelque chose comme ça?

Scientifique fou
la source

Réponses:

5

On dirait que vous recherchez le module Formateurs personnalisés , très similaire à Contemplate, mais spécifiquement pour créer des formats de champs à utiliser via la page Paramètres d'affichage ou les vues.

Les formats personnalisés peuvent être créés avec des jetons ou du code PHP pur.

De plus, les formats personnalisés peuvent être exportés en tant que crochets Drupal natifs ou dans un format exportable de fonctionnalités personnalisées.

Déchiffrer
la source
4

Si vous cherchez simplement à modifier le balisage, Semantic CCK vaut la peine d'être essayé.

CCK sémantique a été créé pour donner aux utilisateurs les moyens de personnaliser la sortie HTML des champs CCK. Il a été inspiré en partie par le module fortement recommandé Semantic Views qui fournit la même fonctionnalité pour les vues.

Drupal 7

Une version Drupal 7 de Semantic CCK est actuellement en cours de développement: Semantic Fields .

tim.plunkett
la source
2

L'utilisation du module Contemplate n'est pas recommandée car il place du code PHP dans la base de données qui est généralement considérée comme une vulnérabilité de sécurité et non performante.

Vous pouvez envisager de définir vos propres formateurs de champ à l'aide de hook_field_formatter_info () . Cela vous permet de définir des rappels personnalisés qui peuvent gérer chaque champ. Voici un tutoriel simple sur la façon dont cela fonctionne pour Drupal 6.

Parcourez l'implémentation des autres modules de hook_field_formatter_info () pour voir comment cela fonctionne. Dans Drupal 6, il est directement lié à hook_theme () tandis que Drupal 7 utilise hook_field_formatter_view () .

c4rl
la source
0

Je me bats avec ce même problème depuis un certain temps maintenant aussi.

Je ne peux / ne veux pas utiliser ...

  1. Contemplez pour des raisons d'architecture médiocre.
  2. Display Suite, qui est génial mais exagéré et ne permet pas de simples modifications aux champs.
  3. Formateurs personnalisés, car il se retrouve à nouveau avec PHP dans la base de données pour plusieurs champs de valeur.
  4. Modèle de champ car j'ajoute simplement une ligne de texte avec l'élément.
  5. CCK sémantique car cela ne fait que modifier les éléments et les classes.
  6. hook_preprocess ou une autre solution basée sur le code car j'en ai besoin configurable.

C'est une vraie déception, quand tout ce que je dois faire est d'ajouter une description de champ CCK pour afficher la sortie. Cela devrait en fait être assez simple.

On dirait que vous aviez besoin de formats personnalisés.

doublejosh
la source
n / m cette fonctionnalité a été ajoutée à Semantic CCK 1.4
doublejosh
avez-vous trouvé une solution facile à manipuler qui a de bonnes performances? dans drupal6, la bonne solution était souvent d'utiliser la ['vue'] de l'objet nœud et de le combiner avec une mise en forme de modèle de nœud. sortie très propre et confortable grâce à l'utilisation de ['vue'] dans 90% de tous les cas d'utilisation. dans drupal 7, nous avons à nouveau les divités, car render () produit beaucoup de surcharge ...
Sonne comme Display Suite puis drupal.org/project/ds
doublejosh
Les formateurs personnalisés stockent des informations dans la base de données, mais le module est simplement un utilitaire, donc une fois que vous avez créé le formateur dans la base de données, vous l'exportez et vous n'avez plus le problème de code dans la base de données :)
Decipher
0

Le module Token Field vous permet de combiner des champs à l'aide de leurs jetons.

keva
la source
0

J'utiliserais le module Token Filter pour spécifier des valeurs de jeton dans les champs CCK avec des filtres d'entrée. Voici un extrait à ce sujet de la page projet du module:

... un module très simple pour rendre les valeurs de jetons disponibles en tant que filtre d'entrée.

bkildow
la source