News

Bonjour à tous,

L'activité que chacun peut donner au monde de l’open source est fortement liée au temps que vous pouvez lui consacrer et ce malgré toute l'envie que vous souhaitez y consacrer.

Le fait de changer de travail, de prendre de nouvelles responsabilités en février dernier a été pour moi le déclencheur de cette grande question.

Pour ma part, l'aventure AllEvents s'arrêtera au 31 Décembre 2018. La dernière version de AllEvents by myself sera la 3.5.7 en ligne depuis hier sur le site.

Il n’y aura plus de nouvelle version de AllEvents (il n’y aura donc pas une version AllEvents pour Joomla4). Le site internet AllEvents3 sera en ligne avec sa documentation, sa richesse documentaire jusqu’à la fin de l’engagement auprès de Siteground.

Les sources du composant en version premium seront rendus publics le 1er Janvier 2019 sur bitbucket ou github.

Si l’un de vous souhaite reprendre le flambeau, contactez moi.

Je ne sors pas de cette expérience millionnaire par l’argent, je sors grandi de toutes ces heures à déboguer, compléter, améliorer le composant ; grandi d’avoir fait partie de la grande famille de Joomla, d’avoir découvert des personnes passionnées et engagées.

Je vous dis à la prochaine peut être plus en tant que développeur...

Emmanuel

Il y a peu, vous receviez un lien par mail pour vous exprimer. Un très grand merci à toutes les personnes ayant répondant. Bien souvent, en tant que développeur je prends des orientations, des directions... et ce sont vos retours qui me permettent de rester dans l'objectif principal : votre satisfaction dans l'utilisation de AllEvents.

Le questionnaire

How did you know us ?  (Comment avez-vous connu AllEvents)

survey2017 1

A 82% par les sites proposant des extensions Joomla, 11% par des sites communautaires, 7% par les moteurs de recherches

Design and presentation? 

survey2017 2

La note moyenne est de 6.76/10.

Moins de 45% d'entre vous trouvaient l'ancien design correct.

Range of products? (notre gamme de produit)

survey2017 3

La note moyenne est de 7.04 / 10.

Les résultats sont très contrastés entre les personnes trouvant la gamme bonne et ceux ne s'y retrouvant pas (20% à moins de 4 étoiles).

Ease of finding what you wanted to buy? (facilité de trouver ce que vous voulez trouver)

survey2017 4

La note moyenne est de 6.62 / 10. 

Les résultats sont très contrastés entre les personnes trouvant facilement ce qu'ils veulent et ceux ne s'y retrouvant pas (20% à moins de 4 étoiles).

Clarity of our product descriptions? (clarté dans la description des produits)

survey2017 5

La note moyenne est de 6.97 / 10

Je m'attendais à une note plus basse, la documentation est toujours le parent pauvre d'un composant. Au final, seuls 16% d'entre vous donnent 4 étoiles au maximum.

How likely are you to recommend us to a friend or colleague?  (recommanderiez-vous AllEvents à un collègue)

survey2017 7

La note moyenne est de 7.14 / 10

13% d'entre vous ne recommanderez pas du tout (note 2 ou 3) AllEvents. C'est l'équivalent des personnes ayant mis uniquement la note 10 (14%). Néanmoins, çà m'ennuie...

What would you love to see in AllEvents in the future? (ce que vous voudriez voir dans le futur)

survey2017 8

C'est là qu'on peut constater (ou pas) le décalage entre les orientations prises et vos attentes. Il va de soi que j'aurai besoin de vous dans les prochains mois pour transformer ces attentes en fonctionnalités pour AllEvents.

  • Constructeur de formulaires : 66%
  • Application Mobile : 45%
  • Nouvelles fonctionnalités : 41%
  • Autopublication sur les réseaux sociaux : 24%
  • Améliorer la base de connaissances : 21%
  • Traduction automatique : 17%
  • Plus de langages supportés : 10%

Idées ajoutées par certaines d'entre vous : 

  • Envoi de mail à tous les participants
  • Mise en place de rappels X jours avant l'événement
  • Lien réel avec google agenda

Certains commentaires

Trop cher  AllEvents dispose d'une version starter gratuite, j'ai du mal à comprendre.

Retour de l'ancienne présentation euh, là c'est pas possible, l'ancienne présentation était pour Joomla 1.6, Joomla 2.5...

Les modules sont plus customisables merci

Les conséquences

Faire un questionnaire à pour but de tracer la route pour les prochains mois. 

Ce qui est immédiat

  1. Travail sur la page d'accueil : plus aérée, plus simple, plus complète la page anglaise se refait une jeunesse en comparaison à la page française (qui ne va pas tarder à changer aussi). Oui ce n'est pas une landingpage (je me bats assez avec des designer qui voudraient faire de AllEvents la même chose coté pub qu'une gélule miracle.
  2. Travail sur la page des produits (tous les produits). Que ce soit le composant, le module, le plugin, l'objectif est d'avoir une page par produit. Cela prend forme sur la page des extensions-joomla.
  3. Travail sur la documentation : activation de la documentation de AllEvents autogénérée. Elle est disponible sur l'espace dédié de documentation AllEvents

Vous avez des idées pour améliorer le menu, le contenu de la page, n'hésitez pas à me contacter.

Ce qui est dans les tuyaux

Avec AllEventsMagnet, vos événements Facebook, Eventbrite, Meetup seront automatiquement récupérés sous forme d'événements dans AllEvents.

Un créateur de template pour les événements : en fait c'est très lourd, c'est bien pour cela que peu d'extension propose ce type de fonctionnalités...

Les envois de mails, l'amélioration de la communication entre l'organisateur et les inscrits, les envois de rappels sont fortement demandés. C'est très certainement là que nous aurons l'évolution majeure pour AllEvents en 2018. 

 

Un grand merci à vous, c'est avec vous que AllEvents passe ses années Joomla.

 

 

 

2018 vient d'arriver, revenons un peu sur cette année 2017 riche pour AllEvents

Bien qu'AllEvents a gardé son ADN (gestionnaire d’événements et de calendriers pour Joomla), AllEvents s'est renforcé en 2017.

Lire la suite : Retour sur une année 2017 riche

Mars 2017... Bientot la version de Joomla 3.7 et son lot de nouveautés. Idem pour AllEvents et l'arrivée de la 3.4.5.

Une nouveauté Joomla m'a particulièrement interpelée : les champs personnalisés (custom fields). Quand je repense aux nombres d'heures qu'il m'a fallu pour les développer dans AllEvents il y a un an et la seule heure (oui vosu avez bien lu : moins de 60 minutes) pour intégrer cette nouveauté dans AllEvents hier. Amis développeurs je vais vous dire comment j'ai fait juste après. 

Coté nouveautés de AllEvents 3.4.5, c'est principalement la découverte de plugins pour que tout le monde puisse développer ses propres affichages événement, formulaire événement, liste d'événements. Fini les surcharges tout se passe par plugin : vous dévelopez votre plugin pour AllEvents, vous l'installez et c'est vous qui maintenez l'affichage. On peut y ajouter aussi des corrections de bugs, le nouveau champ de saisie des vignettes et affiche en frontend, la correction de l'editeur de description en front, un nouvel affichage d'événements à la "webinar like"...

Revenons à cette grande nouveaut Joomla 3.7

Les champs personnalisés

Les champs personnalisés sont un des nouveautés de Joomla 3.7. Nativement, vous pourrez ajouter des champs personnalisés à des articles, des profils utilisateurs et des formulaires de contact. Avec son intégration dans AllEvents vous pourrez faire la même chose pour vos événements.

Si vous êtes utilisateur de AllEvents, c'est fini pour votre lecture. Si par contre vous êtes développeur la suite devrait vous interesser.

Rappels

Comme tout composant, AllEvents est basé sur un modèle MVC donc je prends comme base que votre composant suit ce modèle. 

En théorie, vous devriez avoir une colonne attribs ou params dans votre table. C'est ce qui permet de stocker par exemple les metadata... Je pars du principe que vous avez cela.

 

Acte 1 : Il faut déjà définir l'affichage dans votre menu à gauche. Votre composant va devenir un contexte (dans notre cas com_allevents.event) du composant com_fields de Joomla.

Cà se passe dans /administrator/helpers/allevents.php

On ajoute ces quelques lignes

if (JComponentHelper::isEnabled('com_fields'))
{
    JHtmlSidebar::addEntry(
        JText::_('JGLOBAL_FIELDS'),
        'index.php?option=com_fields&context=com_allevents.event',
        $vName == 'fields.fields'
    );
    JHtmlSidebar::addEntry(
        JText::_('JGLOBAL_FIELD_GROUPS'),
        'index.php?option=com_fields&view=groups&context=com_allevents.event',
        $vName == 'fields.groups'
);
}

fields

J'ai donc défini deux entrées : une pour les champs, une pour les groupes. Vous pouvez tout de suite constater le résultat en déposant ce fichier au bon endroit.

 

Acte 2 : modifier le fichier manifest event.xml pour afficher les champs personnalisé dans l'écran de saisie d'un événement

Cà se passe dans /administrator/models/forms/event.xml

<fieldset name="display" label="JGLOBAL_FIELDSET_DISPLAY_OPTIONS" addfieldpath="/administrator/components/com_fields/models/fields">
    <field name="show_user_custom_fields" type="fieldgroups" multiple="true" context="com_allevents.event" label="COM_ALLEVENTS_FIELD_USER_CUSTOM_FIELDS_SHOW_LABEL" description="COM_ALLEVENTS_FIELD_USER_CUSTOM_FIELDS_SHOW_DESC">
        <option value="-1">JALL</option>
    </field>
</fieldset>

 

Acte 3 : en front récupérer les valeurs saisies pour votre élément

Cà se passe dans /models/event.php. les champs seront repris dans fields. Dans le cas de AllEvents la colonne utilisée est params.

if (!isset($this->_item->fields)){ $this->_item->fields = [] ; }
if (class_exists('FieldsHelper'))
{
    // Convert parameter fields to objects.
    $this->_item->params = new Registry($this->_item->params);
    $this->_item->params = $this->_item->params->toArray();
    $this->_item->fields = FieldsHelper::getFields('com_allevents.event', $this->_item, true, $this->_item->params) ;
}

 

Acte 4 : en front récupérer les valeurs saisies pour votre élément

Cà se passe dans /views/event/tmpl/event.php. Petit bout de code récupéré dans l'affichage contact :)

<?php
$eventFieldGroups = array();

foreach ($item->fields as $field) :
    if ((!$field->group_id )) :
        continue;
    endif;
    if (!key_exists($field->group_title, $eventFieldGroups)) :
        $eventFieldGroups[$field->group_title] = array();
    endif;
    $eventFieldGroups[$field->group_title][] = $field;
endforeach;
?>
<?php foreach ($eventFieldGroups as $groupTitle => $fields) : ?>
<?php $id = JApplicationHelper::stringURLSafe($groupTitle); ?>
<?php echo '<h3>' . ($groupTitle ?: JText::_('COM_ALLEVENTS_EVENT_FIELDS')) . '</h3>'; ?>

<div class="contact-profile" id="user-custom-fields-<?php echo $id; ?>">
<dl class="dl-horizontal">
<?php foreach ($fields as $field) : ?>

<?php if (!$field->value) : ?>
<?php continue; ?>
<?php endif; ?>

<?php echo '<dt>' . $field->label . '</dt>'; ?>
<?php echo '<dd>' . $field->value . '</dd>'; ?>
<?php endforeach; ?>
</dl>
</div>
<?php endforeach; ?>

Acte 5 : ben, il n'y en a pas... c'est fini Pour AllEvents

Vous l'avez vu, en modifiant 4 fichiers de AllEvents, nous sommes capable de proposer les champs personnalisés à nos utilisateurs.

Il me reste des choses bien sur comme :

  • La distinction des groupes de champs : distinguer les champs pour les événements et les champs pour les inscriptions
  • Les traductions éventuelles de l'onglet en backend

Si vous avez des questions ou des retour sur cet article, je suis joignable facilement.

Emmanuel