CCK - renommer un champ

http://arnumeral.fr/ (tutoriels/drupal/drupal-renommer-un-champ-cck lien mort)

 

taille des noms de champ, 32 caractères

Un champ est défini, entre autre, par son nom, son type et sa cardinalité (en langage CCK,c'est le paramètre "Number of Values").

  • Si la cardinalité est de type 1:1 (Une seule valeur par champ), les données de ce champ seront stockées dans une table commune à tous les champs de cardinalité 1:1 d'un type de contenu donné nommée content_type_{nom du type de contenu}.
  • Si la cardinalité est différente de 1:1 (de 2 à Multiples valeurs en CCK), les valeurs du champ sont stockées dans une table autonome nommée content_field_{nom du champ}.

Dans un cas comme dans l'autre, CCK va créer dans le table content_type_{nom du type de contenu} ou content_field_{nom du champ} les mêmes champs pour stocker les valeurs. La seule différence est que la table content_field_{nom du champ} disposera en plus d'un champ delta qui pour un même node (couple nid, vid) permet de différencier les N valeurs.

Reste les colonnes dédiés à la valeur du champ. Il peut y en avoir une seule, comme pour un type simple (entier ou chaîne sans formatage), jusqu'à un nombre illimité (par exemple 3 pour un champ de type filefield).

 

  1. déterminer sur quelle cardinalité se place le champ à renommer
  2. renommer les colonnes portant les valeurs du champ.
    Le nom de ces colonnes débutent tous par field_{nom du champ} suivi d'un caractère souligné et d'un identifiant (value pour un entier ou une chaîne, fid, list et data pour un champ image field, nid pour un champ nodereference, etc.). Le renommage de ces colonnes se fait sur la table content_type_{nom du type} pour un champ de cadinalité 1:1 ou sur la table que nous venons de renommer dans le cas contraire
  3. prévenir CCK du nouveau nommage
    remplacer l'ancien nom par le nouveau dans les tables content_node_field (la définition CCK d'un champ), content_node_field_instance (la définition CCK d'une instance de champ) et dans content_group_fields (la définition CCK d'un groupe de champs qui peut potentiellement contenir notre champ)