AllEvents - AllEvents - A Joomla Component by Christophe Avonture

Lorsque le contrôleur de AllEvents reçoit une demande pour exécuter une tâche ; le nom de la tâche doit être en deux parties : « controlleur.tâche ».

La première partie est le nom du contrôleur qui va gérer la tâche ; deux exemples :

  • « main.display » : le contrôleur est « main.php » et la tâche « display »
  • « settings.apply » : le contrôleur est « settings.php » et la tâche est « apply »

Le contrôleur de AllEvents va d’abord vérifier si le contrôleur se trouve dans le dossier controllers du composant (dans administrator/components/com_allevents/controllers si la tâche est lancée depuis l’administration).

Lorsque le contrôleur n’est pas trouvé, il va faire appel au plugin de AllEvents et lancer une requête « Est-ce qu’un plugin gère la tâche controlleur.php ? »   A chaque plugin de déterminer si c’est le cas.   La fonction « onExecuteTask » sert à cette fin (voir le fichier /plugins/allevents/agenda/agenda.php p.ex.).    

Si la tâche est « agendas.display », le plugin Agenda devrait réagir de cette façon :

  1. Il va isoler le nom du contrôleur (agendas) puis le nom de la tâche (display)
  2. Il va regarder si le fichier /controllers/agendas.php existe dans son dossier /plugins/allevents/agenda/controllers.
  3. Si c’est le cas, il va regarder s’il y a une méthode nommée display() qui est déclarée dans le contrôleur.
  4. Si c’est toujours le cas, il va indiquer au contrôleur principal de AllEvents qu’il gère la tâche « agendas.display » et qu’il est prêt à recevoir la demande d’exécution.  

Une fois que le contrôleur reçoit la demande d’exécution de la tâche, il va d’abord déterminer le nom du manifest où la tâche est déclarée : le manifest est le fichier nommé metadata.xml qui se trouve dans le dossier d’une vue.   Parce que toutes les tâches sont toujours liées à une vue ; cette méthode permet de déterminer l’ensemble des tâches d’une vue.

Si la tache est « agendas.display » ; le nom de la vue va être « agendas ».   Le contrôleur du plugin va donc lire le fichier /plugins/allevents/agenda/views/agendas/metadata.xml.    

Attention : parce que le plugin doit gérer autant les tâches émises depuis l’administration que depuis le site, les vues d’administrations sont préfixées par « be_ ».  Ainsi, ce sera « /plugins/allevents/agenda/view/be_agendas/metadata.xml » pour la vue d’administration.

Le manifest contient la déclaration de la vue, comment elle doit s’afficher, quels sont les boutons qui doivent se retrouver dans la barre d’outils et quelles sont les tâches qui sont attachées au boutons ; entre autre.

Le manifest déclare aussi un  nœud <tasks> qui va reprendre toutes les tâches gérées par la vue :

<tasks>
        <!-- Définition des tâches déclenchées par la vue "main".  Définit quelle est la vue et le layout qui suivra l'exécution de la tâche -->
        <task name="agendas.csv" view="agendas" layout="list" msg="" />
        <task name="agendas.delete" view="agendas" layout="list" />
        <task name="agendas.display" view="agendas" layout="list" />
        <task name="agendas.publish" view="agendas" layout="list" msg="" />
        <task name="agendas.unpublish" view="agendas" layout="list" msg=""/>
        
        <!-- L'attribut msg n'est pas supporté pour les fonctionnalités ajax -->
        <task name="agendas.ajax_publish" view="agendas" layout="list" tablename="allevents_agenda" />
        <task name="agendas.ajax_unpublish" view="agendas" layout="list" tablename="allevents_agenda" />        
        <task name="agendas.ajax_accessregistered" view="agendas" layout="list" tablename="allevents_agenda" />
        <task name="agendas.ajax_accessspecial" view="agendas" layout="list" tablename="allevents_agenda" />
        <task name="agendas.ajax_accesspublic" view="agendas" layout="list" tablename="allevents_agenda" />        
     </tasks>     

Lorsque la tâche à exécuter est « agendas.display », le contrôleur du plugin sait donc que :

  • le contrôleur est agendas.php (première partie du nom de la tâche)
  • la tâche se nomme display.  Cette tâche est programmée dans le contrôleur agendas.php
  • la tâche doit afficher une vue nommée « agendas » et le layout doit être « list ».


Le manifest (fichier metadata.xml) ne reprenait pas seulement la liste des tâches.  Vu qu’il s’agit du manifest de la vue « agendas » ; il reprend la description de l’affichage de la vue :

<views>
   <view name="agendas" >
      <layout name="list" isList="true" permissions="isAdmin" tablename="allevents_agenda" img="agenda" title="COM_ALLEVENTS_AGENDAS_MGT" subtitle="" tip="COM_ALLEVENTS_EVENT_AGENDAS_MGT" action="index.php?option=com_allevents" editTask="agenda.edit">
         <toolbar>
            <button name="add" permissions="canAdd" task="agenda.add" />
            <button name="edit" permissions="canEdit" task="agenda.edit" />
            <button name="publish" permissions="canEdit" task="agendas.publish" />
            <button name="unpublish" permissions="canEdit" task="agendas.unpublish" />
            <button name="delete" permissions="canDelete" task="agendas.delete" />
            <button name="csv" permissions="isAdmin" task="agendas.csv" icon="download" iconOver="" alt="EVENT_CSV" />    
            <button name="help" url="http://allevents.avonture.be/agenda" />      
         </toolbar>
         <menu>
            <entry label="COM_ALLEVENTS_CONTROL_PANEL" task="main.display" />
            <entry label="COM_ALLEVENTS_EVENT_EVENTS" task="events.display"  />
            <entry label="COM_ALLEVENTS_PERMISSIONS" task="groups.display" permissions="isAdmin" />
         </menu>    
         <filters>
            <filter name="published" label="JOPTION_SELECT_PUBLISHED" />
            <filter name="access" label="JOPTION_SELECT_ACCESS" />                   
            <filter name="language" label="JOPTION_SELECT_LANGUAGE" />-->               
         </filters>               
      </layout>           
   </view>
</views>

Il s’agit donc de la vue de type « list » (et donc la liste des agendas).   Cette liste peut être affichée aux utilisateurs qui ont un niveau d’accès type administrateur.   La table gérée par la liste est allevents_agenda.   

Si une icône doit s’afficher vers la liste depuis le panneau de contrôle de AllEvents, l’icône sera « agenda » qui correspond à une classe définie dans le css de AllEvents.  

Le titre est « COM_ALLEVENTS_AGENDA_MGT » (soit « Gestion des agendas ») ; il y aura un sous-titre.   

Chaque action exécutée lancera une requête vers le contrôleur de AllEvents et, pour finir, la tâche associée à chaque entrée de la liste (soit à chaque agenda affiché) sera « agenda.edit » ce qui permettra de cliquer sur un enregistrement et de basculer dans la vue d’édition dudit agenda.

La liste devra proposer une barre d’outils avec les boutons :

  • « add » soit Nouveau.   Il faut avoir un niveau de permissions permettant de créer un enregistrement.  La tâche qui sera exécutée sera « agenda.add ».
  • « edit » soit Modifier.   Permission : canEdit et Tâche : agenda.edit
  • « publish » et « unpublish » pour permettre de publier / dépublier les agendas.
  • « delete » pour permettre la suppression d’un agenda.   Ici il fautt avoir un niveau d’autorisation canDelete.   La tâche associé sera agendas.delete.
  • « csv » qui permet d’exporter les données sous forme de fichier texte.   
  • « help » qui va ouvrir une page du site de AllEvents.

Lors de l’affichage de la liste, un menu doit être proposé et qui va reprendre, au minimum, trois entrées :

  • Un lien vers le panneau de contrôle de AllEvents (tâche main.display)
  • Un lien vers la liste des évènements (tâche events.display)
  • Un lien vers la gestion des permissions (tâche groups.display).   Le lien ne peut s’afficher que pour une personne disposant d’une permission Administrateur.

Enfin, la liste des agendas fera apparaître trois listes pour filtrer les enregistrements :

  • Une liste qui permettra de filtrer sur le statut (publié / non publié)
  • Une liste pour filtrer sur le niveau d’accès (public, enregistré, …)
  • Une liste pour filtre sur la langue

Informations supplémentaires

  • Package Free Ce billet concerne le package Free et est donc immédiatement disponible dans la version gratuitement téléchargeable de AllEvents.
dimanche, 10 mars 2013 19:42

Développement AE 3.0 : c'est reparti !

Écrit par

Après près de trois mois d'interruption pour cause d'une charge de travail professionnelle importante; le développement de AE 3.0 a connu un sérieux frein.   J'ai travaillé ces derniers temps essentiellement sur le AddIn qui permet de charger un fichier Excel immédiatement dans les tables de AllEvents.

Afin de mettre les bouchées triples, j'ai pris deux semaines de congés afin de bosser comme un dératé sur AE 3.0.    Et mes journées / soirées des douze prochains jours vont y passer.  

Je croise les doigts non pas pour avoir une version beta d'ici à Toulouse mais au moins une version que je pourrais montrer comme étant le futur proche du composant.

vendredi, 08 mars 2013 21:23

Joomla!Day - Toulouse - 23 et 24 Mars 2013

Écrit par
Évaluer cet élément
(0 Votes)

Joomla!Day - Toulouse - 23 et 24 Mars 2013Dernière ligne droite avant le Joomla!Day de Toulouse.

Cela fait un petit (trop long) moment que je n'ai plus pû travailler comme il le fallait sur AllEvents; l'actuelle version AllEvents 3.0 étant toujours au stade de l'Alpha.

Pour tenter de proposer une version J3.0 d'ici au 23/03 me voilà deux semaines en "congés" : je compte travailler d'arrache-pied sur AE afin d'avoir une version; limitée; mais présentable à Toulouse.

Depuis fin 2012, à contre-coeur, j'ai travaillé sur un autre projet, professionnel, qui a pris tout mon temps et plus.  Toutefois j'ai pû développer AllEvents - Addin qui est une interface sur base de Microsoft Excel et qui me permet de charger un fichier Excel (ou un fichier texte de type csv) immédiatement dans les tables de AE.   Ces dernières semaines, j'ai optimisé AllEvents - Addin afin de pouvoir gérer quasi tous les champs de AllEvents; comme par exemple les vignettes ou les couleurs des agendas.  J'ai aussi développé un modèle de chargement qui pourrait être transmis à vos partenaires; des agences de tourisme p.ex.   A eux de compléter les évènements qu'ils proposent dans la région dans ce fichier Excel qui, une fois consolidé, me sera transmis.   De mon côté, après quelques vérifications et configuration, je traiterai le fichier Excel et j'alimente tous les tables de AllEvents.   Au final, votre site Joomla est à jour et tous les évènements, tous les agendas, activités, ... s'y retrouvent en quelques clics.

D'ici peu, je mettrais le modèle en download sur le site.

Si vous n'avez pas encore arrêté votre choix de conférences à Toulouse, pour info, j'assurerai la conférence AllEvents le samedi 23 à 15h30.   Ci-après le programme des deux jours : http://joomladay.fr/programme-du-weekend.html

Au plaisir de vous y voir !!!

vendredi, 08 mars 2013 20:47

Groupe FB : Joomla en Belgique Francophone

Écrit par
Évaluer cet élément
(0 Votes)

Groupe Facebook : Joomla en Belgique FrancophoneUn nouveau groupe Facebook a été récemment créé afin de fédérer les utilisateurs belges francophones de Joomla! qui, aujourd’hui, se retrouvent déjà disséminés dans des groupes tels que « AFUJ », « Joomla fr », …

Ce groupe a pour vocation de regrouper la communauté belge francophone autour de Joomla! afin de discuter de son actualité, de l’organisation d’évènements tels que des JoomApéro, rencontres, etc.

Le groupe n’est pas restreint aux utilisateurs du pays où les frites sont les meilleures du monde mais bien à toutes personnes ayant un intérêt à faire vivre et à promouvoir Joomla! en Belgique.

Si cela vous intéresse, rejoignez le groupe : https://www.facebook.com/groups/joomla.belgique/

Grâce au groupe, pourtant tout récent, Olivier, alias Plano, a déjà pris en charge l'organisation d'un JoomApéro à Mons.   Si cela vous tente, l'idée est de se rencontrer courant Avril ou Mai.  Plus d'info : http://forum.joomla.fr/showthread.php?185319.   Indiquez vos disponibilités grâce à Doodle : http://doodle.com/tmhrmrx39zxeh53d

Créez vos sites Web avec Joomla! 3 - 100 % pratiqueLes éditions Dunod ont publié le premier livre francophone sur Joomla ! 3 : « Créez vos sites Web avec Joomla! 3 » 100% pratique. Il s’agit du second livre de Guillaume-Nicolas Meyer et David Pauly et il est paru le 23 Janvier 2013.

L’ouvrage s’adresse à tout le monde, avec ou sans expérience Joomla et dont l’objectif est de créer, maintenir ou faire évoluer un site Joomla en version 3.0.

Les premiers chapitre du livre abordent les fondements ; entre autre, ce qu’est un CMS, comment avoir un nom de domaine, ce qui se cache derrière les termes « responsive design » et bien sûr, comment installer Joomla. Vous apprendrez à bien différencier le contenu de l’habillage du site et à faire le tour du propriétaire en parcourant le site de démo ainsi que la partie d’administration du site et le paramétrage de celui-ci.

Les auteurs consacrent une partie non négligeable du livre à expliquer comment insérer du contenu, le structurer et le publier ; comment insérer des images, des vidéos ainsi qu’une animation (slideshow) et faire connaître votre site sur les réseaux sociaux. Deux autres chapitres vous expliquent tout ce qu’il faut savoir pour créer les différents liens de menus vers votre contenu et de gérer les permissions c’est-à-dire qui peut accéder à quoi.

Votre site ayant maintenant un contenu riche et attrayant, reste à le valoriser : vous apprendrez à le référencer sur les moteurs de recherche ainsi que suivre l’évolution des visites grâce, notamment, à un tutoriel sur Google Analytics.

Les chapitres 10 et 11 sont consacrés aux extensions tierces, comment les installer et les gérer et présente quelques extensions dont AllEvents 3.0. S’ensuivra des chapitres sur la gestion des templates, des modules, des plugins et des langues.

Le dernier chapitre, sous forme de conseils, vous expliquent comment tenir votre site à jour.

Fichier pdfConsulter l'extrait du livre

Ce que j’en ai pensé

Les deux auteurs ont fait un travail remarquable et complet pour expliquer dans les détails chacune des parties composant Joomla : l’installation, le site et l’administration. A chaque fois, à force détails, vous recevez un maximum d’informations concernant l’écran et ses fonctionnalités. J’ai rarement vu un tel niveau de description.

A côté des explications techniques, ils partagent leur expertise et communiquent ici et là des conseils basés sur leur expérience professionnelles. Il ne s’agit donc pas uniquement d’un ouvrage sur Joomla mais sur les bonnes pratiques à mettre en œuvre et les bonnes stratégies qui font qu’un site web est réussi.

Quel que soit votre niveau actuel, si vous êtes webmaster, je vous recommande sans hésiter ce livre que j’ai pris plaisir à lire et pour lequel je suis fier et honoré que les auteurs m’ont fait confiance et ont consacré une petite dizaine de pages à AllEvents 3.0

Page 5 sur 69