Voici donc un petit tutorial pour générer un joli listing de participants sur son site. Plus développé que les modèles d’origine:
La première chose à faire, lorsqu’on développe ou autre est de se poser la question, que faire ? Ce qui permet de se poser une autre question essentielle.. par où commencer
Donc le début pour notre cas, est de réutiliser des classes et templates déjà créés (ce n’est pas la peine de ré-inventer la roue) pour rajouter nom et prénom sur notre nouveau (joli) listing.
Nous allons créer un nouveau modèle (appelé Gabarit dans la version française) à notre listing de participant. Pour cela il nous suffit d’aller dans la partie d’administration de CIVICRM pour choisir « gabarit de liste de participants » dans l’administration de CIVIevent ou à l’aide du lien suivant:
[url]/civicrm/admin/options/participant_listing &group=participant_listing&reset=1
Nous allons insérer un nouveau modèle qui portera la description suivante:
CRM_Event_Page_ParticipantListing_MONMODELE
Attention le label n’est absolument pas importante (c’est pour vous) ; Par contre la DESCRIPTION est plus qu’importante, c’est elle le lien avec vos classes et modèles
Nous allons ajouter un fichier de classe dans le dossier suivant :
« [URL]/sites/all/modules/civicrm/CRM/Event/Page/ParticipantListing ».
Pour ce faire nous allons utiliser le fichier existant pour le modifier sous notre nouveau nom.
La modification est toute simple, nous allons réutiliser le fichier le plus proche de ce que nous voulons faire: ajouter la date d’inscription dans le fichier Name and Email
Dupliquer le fichier NameAndEmail.php et renommez le sous le nom NameAndEmailDate.php
Remarques: vous avez vu, nous avons rajouté juste Date
Maintenant modifions le code d’entête de la classe de ce nouveau fichier pour ajouter le bon nom de classe.
class CRM_Event_Page_ParticipantListing_NameAndEmailDate extends CRM_Core_Page {
Modifier maintenant la requête SQL, avec ce que vous avez besoin pour envoyer dans le futur tableau qui sera utilisé par le template (prochaine grosse étape).
La modification de la requête se fait à divers endroits:
$query = "SELECT civicrm_contact.id as contact_id , civicrm_contact.display_name as name , civicrm_contact.sort_name as sort_name , civicrm_participant.id as participant_id, civicrm_participant.status_id as status_id , civicrm_participant.register_date as register_date $fromClause $whereClause ORDER BY $orderBy LIMIT $offset, $rowCount";
while ( $object->fetch( ) ) {
$row = array( 'id' => $object->contact_id,
'participantID' => $object->participant_id,
'name' => $object->name ,
'email' => $object->email,
'status' => CRM_Utils_Array::value( $object->status_id,$statusLookup ),
'date' => $object->register_date );
$rows[] = $row;
}
if ( ! $headers ) {
$headers = array( );
$headers[1] = array( 'name' => ts( 'Name' ),
'sort' => 'civicrm_contact.sort_name',
'direction' => CRM_Utils_Sort::ASCENDING );
$headers[2] = array( 'name' => ts( 'Status' ),
'sort' => 'civicrm_participant.status_id',
'direction' => CRM_Utils_Sort::DONTCARE );
$headers[3] = array( 'name' => ts( 'Register Date' ),
'sort' => 'civicrm_participant.register_date',
'direction' => CRM_Utils_Sort::DONTCARE );
}
Maintenant que notre classe est créée, afin de pouvoir voir quelque chose, il nous avoir un template qui sera utilisé pour afficher notre résultat.
Où se situe notre fichier pour modifier le Template: partie importante de ce tuto, sinon on voit rien
)
[url]/sites/all/modules/civicrm/templates/ CRM/Event/Page/ParticipantListing
Ici même démarche que la première fois avec le fichier de classe, duplication du fichier NameAndEmail.tpl
Il suffit de rajouter dans ce fichier un champ qui fait référence à la données de la date.
<td class="crm-participant-date">{$row.date}</td>
Pas d'articles en relation
Drupal, Tuto •Tags: civicrm, civievent, event, joomla, listing
© 2012 Rémi THOMAS | Powered by WordPress