2010-05-03 8 views
5

J'ai un champ CCD datetime et souhaite définir sa valeur par défaut au 31 mai 2011. Lorsque je passe à la configuration du champ, je peux définir la valeur par défaut à Now, Blank ou Relative.Drupal CCK Date: comment définir la valeur par défaut du champ datetime à une date fixe?

Relative doit être définie par l'argument strtotime de PHP. Cependant, il échoue quand je l'ai mis à

  • 31 May 2011 -> Je reçois aujourd'hui dans le nœud ajouter sous forme
  • last day of May 2011 -> Je reçois une erreur sur la page de configuration du champ The Strtotime default value for the To Date is invalid.

(cela devrait normalement fonctionner selon http://php.net/manual/en/function.strtotime.php)

Avez-vous une idée de la façon de le mettre par défaut au 31 mai 2011?

Répondre

6

Je pense que les dates absolues ne sont pas encore supportées dans la partie "Personnaliser la valeur par défaut" de la page de configuration de la CCK Date. Vous devriez être en mesure de le faire via hook_form_alter dans un module personnalisé cependant (remplacer le nom du module, form_id $, et le nom de domaine avec le vôtre):

function mymodule_form_alter(&$form, $form_state, $form_id) { 
    if ($form_id == 'myform') { 
    $mydate = date('Y-m-d', strtotime('31 May 2011')) ; 
    $form['field_my_date'][0]['#default_value']['value'] = $mydate ; 
    } 
} 
+0

Merci dor Votre réponse, Dan. J'espère qu'il y a une solution plus simple. Écrire un crochet pour un but si simple, je ne trouve pas si gentil, surtout quand de nombreuses autres formes comme celle-ci apparaissent et le module deviendra juste une grande instruction de commutation. ;-) –

+0

Ce serait bien s'il y avait un moyen plus facile ... J'ai vérifié quelques-uns des messages sur http://drupal.org/project/issues/date?text=default et il ne semble pas y avoir, encore. Par exemple. voir http://drupal.org/node/326439, http://drupal.org/node/331000, autres. –

+0

Je n'ai pas trouvé ces messages avant. Merci. Quoi qu'il en soit, c'est assez bizarre que la fonctionnalité simple soit absente, alors que vous pouvez utiliser strtotime(). Espérons qu'ils vont compenser cela. :) –

Questions connexes