Bug module date illimitée - pas de bouton supprimé & champs date vide - CCK et DATE module

Catégories:

Bonjour à tous,

Après avoir perdu tous mes cheveux, je préfère faire part de la solution pour ceux qui ne veulent pas être dans mon cas.

Drupal fonctionnant sous wamp 2.0 / PHP 5.2.11 / module date-6.x-2.4
Si on veut créer des champs date illimité avec CCK, on se retrouve avec un dilemne :
- si on choisit cck-6.x-2.6, on à la liste fonctionnelle des dates, que l’on peut organiser mais pas supprimer, et on n’a pas de dates vides qui se rajoutent dans la liste.
- si on choisit cck-6.x-3.x-dev, on à la liste fonctionnelle, et avec le bouton supprimer, mais un problème de dates vides qui se rajoutent dans la liste.

Donc, pour éviter d’avoir à gérer une page avec une liste de champs date vide, il fallait conjuguer les 2 dev. (je suis parti d’un drupal sans aucun module, donc si il y a d’autres erreurs, cela viendrait sûrement d’une incompatibilité avec les modules installés).

Pour résumer ça donne :
1. Installer module cck-6.x-2.6 / module date-6.x-2.4
Vider les caches

2. Copier les répertoires et fichiers de l’archive cck-6.x-3.x-dev vers le serveur
Copier le répertoire js dans [monsite]/modules/cck/
Copier le répertoire images dans [monsite]/modules/cck/
Copier le fichier /theme/content-module.css dans [monsite]/modules/cck/theme/ (remplacer l’ancien)

3. Modifier les fichiers du serveur avec les fonctions de l’archive cck-6.x-3.x-dev
Ouvrir le fichier /content.module de l’archive cck-6.x-3.x-dev
Ouvrir le fichier [monsite]/modules/cck/content.module
Ajouter la fonction content_multiple_value_after_build_proxy dans [monsite]/modules/cck/content.module
Remplacer la fonction theme_content_multiple_values de [monsite]/modules/cck/content.module avec celle du fichier de l’archive cck-6.x-3.x-dev

Ouvrir le fichier /includes/content.node_form.inc de l’archive cck-6.x-3.x-dev
Ouvrir le fichier [monsite]/modules/cck/includes/content.node_form.inc
Remplacer la fonction content_multiple_value_form de [monsite]/modules/cck/includes/content.node_form.inc avec celle du fichier de l’archive cck-6.x-3.x-dev
Ajouter la fonction content_multiple_value_after_build dans [monsite]/modules/cck/includes/content.node_form.inc
Ajouter la fonction content_multiple_value_after_recursive dans [monsite]/modules/cck/includes/content.node_form.inc

4. Modifier le fichier [monsite]/modules/date/date_api_elements.inc
Modifier dans la fonction date_select_validate : rajouter une condition pour le 1er foreach : if(isset($element[‘#value’])) foreach ($element[‘#value’] …

5. Vider le cache

Fini !
Il y a maintenant une belle liste de date, et seulement un champ de date vide quand on clique sur «Ajouter un autre élément» ! La MAJ de la page ne vient pas ajouter automatiquement une date vide … ouf !

En espèrant que ça profite à certain …

#

A faire aussi :

A modifier dans les fichiers suivants [monsite]/modules/date/date.module & [monsite]/modules/date_timezone/date_timezone.module.

Modifier respectivement les fonctions date_form_alter & date_timezone_form_alter, retirer le & de $form_state.

(Si on ne le supprime pas, on a toujours l’affichage d’une erreur, qui n’agit pas sur les fonctionnalités, mais qui est là !)

Je n’ai pas encore testé l’incidence de ces modifications sur les autres éléments de date et CCK. Je vais en tester quelques uns.

Syndiquer le contenu