Voilà, voilà... Fin de l'aventure...

 

Fermeture de kolossaldrupal.org dans...


Bonjour tout le monde,

Drupal évolue, les versions changent et Kolossaldrupal.org était essentiellement consacré à la version 6 de Drupal.

Autant dire que les infos présentées ici commencent à dater...

Faute de temps, je ne peux plus garder le site Kolossaldrupal à jour...

Je vous aurais bien proposé de reprendre le flambeau mais... c'est tellement simple de nos jours de se faire son propre site à soi...Pourquoi s'embêter alors ? :-)

Ce site restera donc en l'état, tel qu'il était en 2011...

Ah la la ! Cela ne nous rajeunit pas !

Manuel Vila - Avril 2016

Styliser un formulaire de saisie CCK pour CCK2

Référence en anglais sur drupal.org : 12 octobre 2009
http://drupal.org/node/601646


J'ai passé plusieurs jours à chercher comment styliser un formulaire de saisie avec CCK2 dans Drupal 6, j'espère que ce qui suit vous aidera et vous fera gagner du temps.

(c'est l'auteur de l'article qui parle, pas le traducteur)

Pour styliser un formulaire CCK2, vous avez simplement besoin de :

  1. Modifier le fichier template.php
  2. créer un fichier node-type_de_contenu-edit.tpl.php
  3. Supprimez les données du cache avant d'afficher le résultat : Administrer » Configuration du Site » Performance » Supprimer les données du cache.

Exemple

Supposons que vous ayez un type de contenu nommé account_registration et que votre thème est bluemarine.

  1. Modifiez le fichier template.php. Ajoutez ce qui suit :

    function bluemarine_theme($existing, $type, $theme, $path) {
      return array(
        'account_registration_node_form' => array(
            'arguments' => array('form' => NULL),
            'template' => 'node-account_registration-edit',
        ),
      );
    }
  2. Créez un fichier nommé node-account_registration-edit.tpl.php:

    //Pour supprimer le champ Titre
    <?php unset($form['title']); ?>

    <fieldset class=" collapsible">
        <legend>Company Data</legend>
        <?php
         
    //REMARQUE: si vous n'avez pas de Groupe de champs, indiquez simplement :
          // print drupal_render($form['field_accreg_company_name']['0']['value']);
         
    print drupal_render($form['group_company']['field_company']['0']['value']);
          print
    drupal_render($form['group_company']['field_street']['0']['value']);
       
    ?>

    </fieldset>  
    <?php print drupal_render($form);  ?>
    <?php
    // print_r($form);   //Activez ceci pour afficher toutes les variables Array du formulaire
    ?>

Comment...

  1. Restituer / rendre un seul champ :

    <?php
     
    print drupal_render($form['group_company']['field_street']['0']['value']); 
    ?>
  2. Restituer un groupe de champs:

    Vous n'avez pas besoin de restituer les champs un par un, mais simplement de saisir ce code pour restituer tous les champs dans un groupe :

    print drupal_render($form['group_company']);
  3. Restituer une liste de sélection :

    Presque la même opération que pour un TEXTFIELD, mais en omettant ['0']['value'] à la fin

    <?php
     
    print drupal_render($form['group_company']['field_region']); 
    ?>
  4. Supprimer un champ de saisie

    Vous voudrez peut-être désactiver un formulaire, habituellement on a besoin de supprimer le Titre comme ceci :

    <?php
     
    unset($form['title']);
    ?>
  5. Cacher un champ de saisie (différent de supprimer ! ):

    Vous voudrez peut-être activer un formulaire mais aurez besoin de l'en empêcher :

    <?php
     $form
    ['title']['#access'] = FALSE
    ?>
  6. Afficher toutes les variables d'un formulaire :

    Vous voudrez peut-être connaître quelles sont les variables disponibles :

    <?php
    print_r
    ($form);
    ?>
  7. Afficher les boutons:

    <?php
    print drupal_render($form['buttons']);
    ?>
  8. Réorganiser l'affichage

    Utilisez ['#weight'] pour modifier l'ordre d'affichage :

    $form['buttons']['#weight'] = -50; // boutons en début
  9. Renommer les boutons

    Pourquoi "Submit" ? Vous voudrez peut-être indiquer « Sauvegarder maintenant !», non ?

    $form['buttons']['submit']['#value'] = 'Sauvegarder dans la base de données';