Qui n'a pas déjà, lors d'une conférence, d'une réunion ou d'un événement eu le sentiment que ses supports Powerpoint étaient "has-been" ? Pour ma part, j'ai récemment suivi des conférences au Blend Web Mix et là je me suis dit "il faut faire quelque chose !"

C'est pourquoi, aujourd'hui je vais vous parler de Reveal.js.

Présentation

Reveal.js est un framework permettant de rapidement créer des présentations originales combinant HTML5, CSS3 et Javascript. Il a été développé par le suédois Hakim El Hattab et permet de mettre en place des supports identiques à ceux que vous pourriez créer avec Powerpoint mais en mode web, donc visualisable depuis un navigateur. 

logo reveal.js

 

 

 

 

J'ai souvent voulu tester un outil de ce genre, mais à chaque fois que je me  lançais, je découvrais qu'un certain temps d'apprentissage était nécessaire. Reveal, lui, est simple à prendre en main : si vous maîtrisez le HTML, alors vous maîtrisez Reveal.js :P.
Le processus de mise en place peut se résumer de la manière suivante :

  1. Récupérez le framework sur github.
  2. Editez le fichier index.html pour créer votre présentation

Simple non ?!

Fonctionnement

Chaque slide correspont à une <section> :

<div class="slides">
                <section>
                    <h1>Slide 1</h1>
                    <h3>Mon premier slide</h3>
                    <p>
                        Contenu du premier slide
                    </p>
                </section>

                <section>
                    <h1>Slide 2</h1>
                    <p>
                        Lorem ipsum dolor sit amet, consetetur sadipscing elitr, 
                    </p>
                </section>

                <!– Imbrication de sections pour un scroll vertical–>
                <section>
                    <section>
                        <h2>Autre Slide</h2>
                            <ul>
                                <li>item 1</li>
                                <li>item 2</li>
                                <li>item 3</li>
                            </ul>
                    </section>
                </section>

                <section>
                    <h2>Slides 5</h2>
                    <p>
                        Dernier slide
                    </p>
                </section>
            </div>

Vous remarquerez dans le code ci-dessus, qu'en imbriquant deux sections, on obtient une transition verticale.
Un petit bout de javascript permet d'initialiser la présentation :

<script>
         Reveal.initialize({
            controls : true,
           progress : true,
          theme: Reveal.getQueryHash().theme
       })
</script>

Les différents paramètres de configuration sont disponibles ici.

Conclusion

J'espère que ce petit aperçu va vous donner envie de tester ce framework qui, à mon goût, est puissant et facile à manipuler. Quatre thèmes sont livrés par défault avec les sources mais rien ne vous empêche de créer le votre si vous maîtrisez le CSS.

L'auteur a également développé une interface en ligne permettant de créer une présentation en mode WYSIWYG, je vous conseil d'y jeter un oeil : slides

Je prépare actuellement une présentation (avec Reveal.js bien sûr :)) pour la boîte dans laquelle je travaille, je la mettrai en ligne dès que j'aurai terminé.

 

EDIT (16/12/2013) : La présentation est prête, vous la trouverez à cette adresse :  http://supports.severin-bruhat.com/web-performance

 

Voici comment charger un bloc directement depuis le code PHP (depuis un module ou le fichier page.tpl.php par exemple).

  1. Afficher un bloc Drupal (natif, bloc de contenu par exemple)
$block = module_invoke('block', 'block_view', 'ID_du_bloc'); 
print render($block['content']);

L'ID_du_bloc est disponible  lorsque vous éditez un bloc en backofficeadmin/structure/block/manage/block/D_du_bloc/configure

  1. Afficher un bloc Drupal créé avec Views
$block = module_invoke('views', 'block_view', 'Nom_du_bloc'); 
print render($block['content']);

Le Nom_du_bloc (paramètre Delta) est disponible lorsque vous éditez un bloc en backoffice : admin/structure/block/manage/views/Nom_du_bloc/configure

  1. Afficher un bloc Drupal créé via un module custom
$block = module_invoke('module_name', 'block_view', 'block_delta'); 
print render($block['content']);

Module_name correspond au nom du module, block_delta est disponible lorsque vous éditez un bloc en backoffice : admin/structure/block/manage/views/block_delta/configure

Vous trouverez plus d'information ici.

 

Aujourd'hui je vais vous présenter un framework PHP permetant de créer une API REST, il s'agit de Slim Framework. Je l'ai utilisé dans le cadre d'un projet perso, peut-être un jour disponible sur mon site… Il s'agit un outil très simple à mettre en place et à prendre en main, notamment grâce à sa documentation claire et complète.

Commençons par le début : que signifie REST ? "Representational State Transfer" est un type d’architecture permettant de mettre en place des webservices, il repose sur le protocole HTTP. Le principe est simple, le programmeur manipule directement les méthodes POST, PUT, GET et DELETE pour effectuer les actions de CRUD (Create, Read, Update, Delete):

  • création : POST
  • modification : PUT
  • lecture : GET
  • suppresssion : DELETE

Revenons à notre mouton "Slim", le snippet présent sur la page d'accueil du site donne le ton, ces quelques lignes de code suffisent pour créer un web service :

<?php
$app = new \Slim\Slim(); //initialisation de l'application
$app->get('/hello/:name', function ($name) { //route accessible via l'URL "http://nom_de_domaine_api/hello/toto"
    echo "Hello, $name"; // renvoie "Hello toto"
});
$app->run(); //lance l'application

Vous trouverez ci-dessous la liste des principales fonctionnalités :

  • encryption AES-256
  • authentification HTTP
  • gestion d'erreurs
  • mode debbug
  • cache
  • PDO
  • templating (Twig, Smarty)
  • sessions (cookies)
  • middleware

Si vous avez à mettre en place une API REST, je vous conseil de jeter un oeil à Slim. De mon point de vue, voici les principaux avantages de ce framework :

  • facile à prendre en main
  • léger
  • performant 

J'espère que cet article vous aura permis de découvrir un nouvel outil. N'hésitez pas à laisser un commentaire si vous avez eu l'occasion de travailler avec, donnez-moi votre avis.

Chose promise, chose due ! Voici un nouvel article consacré aux conférences du BLEND Web Mix 2013.

Concevoir son API web

Speaker : Eric Dapset
Support de présentation : http://fr.slideshare.net/edaspet/blend-web-mix-2013-concevoir-son-api

Une présentation très "imagée" (cf support), basée sur des retours d'expériences. Eric nous a présenté une liste de bonnes pratiques à appliquer  :

  • Mettre en place un bac à sable
  • Développer des exemples d'utilisation : cas pratiques, pas à pas (plus utilie et interactif qu'une docuentation)
  • Commencer par une API simple, l'enrichir dans un second temps
  • Utiliser du SSL
  • Encoder en utf-8
  • Utiliser le format date/heure avec fuseau horaire (timestamp)
  • Limiter les versions (créer uniquement des versions majeurs)
  • Préciser le numéro de version dans l'URL (ex: http://monapi.fr/v1/methode)
  • Utiliser une authentification HTTP basic (+HTTPS)
  • Utiliser les codes d'erreur HTTP
  • Préférer le format XML au JSON (plus simple à faire évoluer)
  • Utiliser la compression gzip et le cache (côté Apache par exemple)

Tour d'horizon de Node.js

Speaker : Christophe Porteneuve
Support de présentation : http://delicious-insights.com/node-blend/#/

Une conférence très "vivante", pleine de trolls ani-java :). Personnelement, c'était ma première approche de Node.js, cette techno à l'air vraiment performante et intéressante. Je pense que je ne vais pas tarder à mettre les mains dans le bouzin !

Cette conférence m'a tellement intéressé que je n'ai malheureusement pas eu le temps de prendre de note… Heureusement, le support est là 😉

La technique au service de l'entreprenariat

Speaker : Maxime Valette

Maxime Valette nous a ici présenté sa vision du business en s'appuyant sur son parcours. Voici les points ayant retenu mon attention :

  • Bien choisir son/ses associé(s)
  • Etre passionné
  • Avoir de l'ambition et ne pas craindre l'échec
  • "sortez boire des bières", le phases de repos sont obligatoires pour être productif, de plus certaines bonnes idées arrivent en discutant autour d'un verre
  • Etre sceptique mais jamais cynique (le pessimiste se plaint du vent l'optimiste espère qu'il va changer le réaliste ajuste ses voiles)

Pourquoi les workers queues sont-elles importantes pour dynamiser votre application web ? 

Speaker : Clément Jobeili
Support de présentation : http://dator.fr/slides/blend13/#/13

"Avez-vous déjà essayer d'importer un csv de 1 000 000 de lignes dans mysql ?" -> fail !!!
Ce type de traitement est très gourmand en temps et en ressources, il peut rapidement devenir bloquant. Heureusement les workers queues sont là ! 

Le fonctionnement est plutôt simple : un message est stocké dans une file d'attente puis traité par un "worker". Le traitement est asynchrone donc non bloquant, ce qui permet de traiter plusieurs tâches en parallèle. 

Voici les différentes solutions présentées : RabbitMQ, Resque, Beanstalk.

Dart, one language to rule them all

Speaker : Sébastien Deleuze
Support de présentation : http://fr.slideshare.net/sdeleuze/dart-mixit2013en
 

Dart est un nouveau langage mis au point par Google. Et qui dit nouveau dit "plus ou moins stable". Les applicatins actuelles codées en Dart sont principalement des prototypes, une version stable de Dart devrait dependant voir le jour très prochainement.

Sébastien Deleuze nous a ici venter les mérites de ce language :

  • simple à prendre en main 
  • nombreuses API
  • fonctionnel sous tous les environements/navigateurs (support natif ou utilisation de dart2js)
  • performant

Je pense que ça vaut le coup de s'intéresser au sujer…

Le module jcarousel permet facilement d’intégrer un carousel dans une page Drupal.
Il existe deux manières pour ajouter un carousel :

  • via views : méthode la plus simple, permettant de sélectionner les données et la mise en forme en back-office
  • via l’API (jcarousel_add($class_name, $settings), méthode plus complexe nécsessitant de mettre les mains dans le code mais offrant un contrôle total du code

Nous allons dans ce tutoriel travailler avec la première solution afin de créer un block grâce à views. Cette méthode permet de configurer un certain nombre de paramètres directement en backoffice : type de défilement, temps de pause etc. En revanche ce mode de fontionnement n’offre pas la possibilité d’ajouter les boutons « play » et « stop » permettant d’arrêter et de reprendre le défilement.

Alors comment faire si vous souhaitez garder la souplesse de views tout en bénéficiant de la customisation offerte par jcarousel_add ? Et bien il va falloir mettre les mains dans le cambouis et modifier le template d’affichage du carousel.

  1. Pré-requis 
  1. Création du carousel et affichage en page d’accueil

Une fois le module activé, rendez-vous sur la page de gestion des vues (admin/structure/views) et créez-en une nouvelle (de type block) en choisissant le format d‘affichage (display format) « jCarousel » :

createBlock

Pour les besoins de ce tutoriel, nous n’allons pas customiser la vue. Enregistrer-là et ajouter ce block nouvellement créé dans une région de votre site (admin/structure/block). Normalement vous obtiendrez quelque chose comme ceci :

carousel

Il est possible de modifier le nombre d’items affichés, de rajouter les numéros pour naviguer d’un slide à un autre via les settings du jCarouel disponible dans la gestion de la vue ; je ne vais pas m’attarder sur ce point dans ce tutoriel :

blocStyleOptions

  1. Ajout des boutons play / stop

Le principe va être le suivant : 

  • Positionner les contrôles html (liens, boutons) dans le template
  • Récupérer l’instance javascript du carousel créé par drupal
  • Attacher les actions aux boutons

Il faut tout d’abord copier le fichier « jcarousel-view.tpl.php » (modules\jcarousel\includes) dans votre thème afin de le surcharger, c’est maintenant ce fichier qui sera utilisé pour afficher votre carousel.

Pour récupérer l’instance de carousel, il faut connaitre sont identifiant, pour cela voici une méthode simple : afficher le code source de votre page et rechercher la clé « "carousels": » qui doit être dans une chaîne javascript commençant par « jQuery.extend(Drupal.settings». Cette clé contient un tableau de carousel (un seul item dans notre cas) dont l’identifiant et du style « jcarousel-dom-1 » :

jquery

Une fois que vous avez cette identifiant, éditez le fichier de template et positionnez vos contrôles HTML où bon vous semble :

<ul class="btn-play-pause">
       <li><a href="javascript:void(0);" class="play" id="btn_play"><span class="hidden"><?php echo t("play"); ?></span></a></li>
       <li><a href="javascript:void(0);" class="pause" id="btn_pause"><span class="hidden"><?php echo t("stop"); ?></span></a></li>
</ul>

Ajoutez ensuite le javascript suivant :

<script type="text/javascript">
            //ajout d’une function de callback sur le carousel
                jQuery.extend(Drupal.settings.jcarousel.carousels[« jcarousel-dom-1 »], {
                               "initCallback": jcarousel_initCallback
                               });

                   //function de callback permettant d’affecter les actions aux liens play / stop
                function jcarousel_initCallback(carousel) {
                               jQuery('#btn_pause').bind('click', function() {
                                               carousel.stopAuto();
                                 });
                               jQuery('#btn_play').bind('click', function() {
                                               carousel.startAuto();
                                 });
                }
</script>

Sauvegardez le fichier, videz les caches, rechargez la page… enjoy 😉

Mardi et mercredi dernier, j'ai eu l'occasion d'assister à certaines conférences du BLEND. Le Blend Web Lix, comme son nom l'indique, est un mélange : un mélange d'ingrédients du web. Les conférences étaient organisées autour des thématiques suivantes : business, design, marketing, recherche et technique.

Pour ma part, voici le programme que j'ai suivi :

jour 1 jour 2
Introduction aux design patterns avec PHP Concevoir son API web
Ciel, mes données ne sont plus relationnelles Tour d'horizon de Node.js
More CSS secrets La technique au service de l'entreprenariat
Le futur des effets graphiques en CSS3 / Automatisez vos tâches répétitives avec Grunt.js Pourquoi les workers queues sont-elles importantes pour dynamiser votre application web ? 
La web performance Dart, one language to rule them all

Je vais vous donner, dans ce post, un petit résumé de ce que j'ai retenu de ces différentes conférences. Cette article n'a pas vocation à vous "instruire" sur un sujet, c'est plus un retour d'expérience , je vous invite donc à vous référer aux supports de présentation pour plus de détails. 

Introduction aux design patterns avec PHP

​Speakers : Julien Pauli & Hugo Hamon
Support de présentation : 
https://speakerdeck.com/hhamon/introduction-to-design-patterns-with-php

Cette conférence étaient consacrée aux différents patrons de conception applicables dans le domaine professionnel. Tout le monde a appris durant ses études ce qu'était un patron de conception, mais qui applique réellement ces concepts au quotidien ? Si vous faites parti des développeurs qui, comme moi, travaillez avec des CMS ou framework au quotidien, vous manipulez probablement ces patterns sans même vous en rendre compte. Mais une petite piqûre de rappel ne fait de mal à personne, voci un petit résumé de ce qui a été dit.

Les design patterns reposent sur le principe SOLID :

  • Single Responsability Principle : « A class should have one reason to change. »
  • Open Closed Principle : « Classes, methods should be open for extension, but closed for modifications. »
  • Liskov Substitution Principle : « Subtypes must be substituable for their base types. »
  • Interface Segregation Principle : « Clients should not be forced to depend on methods that they do not use. »
  • Dependency Inversion Principle : « High level modules should not depend on low level modules. Both should depend on abstractions. », « Abstractions should not depend on details. Details should depend on abstractions. »

​Voici un aperçu des 5 design patterns étudiés :

Design Pattern Intérêt Cas d'utilisation
Composite Présenter un objet comme une collection d'objets Arbre, XML, formulaire (symphony)
Decorator Eviter trop de surcharge d'héritage, ne pas "casser" l'existant Ajout d'un système de log ou d'un système de cache
Strategy Encapsuler des algorithmes de même nature pour qu'ils soient interchangeables  Changer le système de stockage des sessions, comparaison/tri de tableaux
Factory Simplifier la création d'objets : une seule classe permet d'instancier des objets de différentes classes ("keep instanciation process in one single place") Gérer des produits et des "packages" de produits de manière transparente
Observer Permet de coupler les modules de manière à réduire les dépendances Gestion d'évènements, une classe déclenche des actions

Ciel, mes données ne sont plus relationnelles

​Speaker : Xavier Gorse

Dans certains cas, le classique schéma de données "relationnelles" ne permet pas de répondre aux besoins, notamment si la volumétrie est importante ou bien que la complexité d'un algorithme est élevée (domaine de la recherche par exemple). On peu alors mettre en place une architecture NoSQL (Not Only SQL) devant répondre à 4 problématiques :

  • Données non relationnelles
  • Scalabilité
  • Absence de schéma (structure)
  • Architecture distribuée

On distingue 4 grandes catégories d'outils (la dernière étant surtout réservée au domaine de la recherche) :

Key / value

Concept : hashmap permettant de stocker les informations sous forme de paire.
Cas d'utilisation : cache, session
Avantage : simple

Inconvénient : trop simple -> impossible d'effectuer une requête sur une partie de la valeur
Exemple d'outil : redis

Document

Concept : hashmap contenant une clé et une collection de valeurs (JSON)
Avantage: plus souple que le modèle clé / valeur
Inconvénient : performance limitée en cas de forte volumétrie
Exemple d'outil : mongoDB

Graph

Concept : modélisation des connexions entre les données ; manipulation de nodes, propriétés et relations
Avantage : puissant et rapide
Inconvénient : non scalable 
Exemple d'outil : Neo4j

Column-oriented

Concept : les données sont représentées sous la forme de blocs de colonnes stockés de manière triée. Ce système est conçu pour gérer des volumétries importantes de données
Avantage : très scalable
Inconvénient : complexe
Exemple d'outils : cassandra, bigtable

La modélisation a un impact sur l'applicatif, ainsi, le choix de l'outil à mettre en place dépend du projet. Pour faire simple : "il faut stocker les données en fonction de la manière dont vous devez les requêter" dixit Xavier Gorse.

More CSS secrets

​Speaker : Lea Verou
Support de présentation : http://lea.verou.me/more-css-secrets/#intro

Cette conférence était très technique et intéresante. Le speech étant en anglais, je n'ai malheureusement pas eu le temps de prendre de notes. Je vous conseille de jeter un oeil à la présentation qui est d'une excellente qualité (à l'image du speech).

Le futur des effets graphiques en CSS3

Speaker : ​Vincent De Oliveira
Support de présentation : http://www.iamvdo.me/conf/2013/blend/

Suite à un petit problème de timing, j'ai manqué le début de la scéance. Vincent De Oliveira présentait des fonctionnalités CSS encore à l'état expérimental. Une présentation très sympa donnant envie de tester ces différents effets.

Voici les différents points abordés :

  • fonctions d'image
  • masques
  • exclusions et formes
  • filtres

Je vous conseil de jeter un oeil au support. L'ensemble de ces effets sont foncionnels sous webkit.

Automatisez vos tâches répétitives avec Grunt.js

Speaker : Corinne Schillinger 
Support de présentation : http://fr.slideshare.net/inseo/grunt-corinne-schillinger-26743692 

Grunt est un outil permettant d'automatiser les tâches répétitives d'un projet telles que : compacter et minifier les fichiers JS et CSS, compiler les sources sass ou less, exécuter des tests unitaires, et compresser les images. Il repose sur node.js et npm (Node Packaged Modules), il est donc nécessaire de disposer de ces deux éléments pour l'utiliser.

De mon point de vue cet outil est très simple à manipuler et permet de gagner un temps précieux et d'améliorer la qualité de vos projets. 

Je pense rédiger prochainement un article consacré à cet outil.

Web performace

Speakers : Damian Le Nouaille, Goulven Champenois

Cette conférence fût pour moi, plus une piqûre de rappel, qu'un réel apprentissage, mais un petit "bourage de crâne" de temps en temps ne fait pas de mal. Damian et Goulvien ont principalement parlé des éléments suivants:

  • minification / compression js et css
  • minification des images
  • sprite css
  • chargement asynchorne (AJAX)
  • webfonts
  • cache busting
  • CDN

Cette conférence s'orientait autour de deux axes: une présentatrion théorique et une présentation plus concrète basée sur une timeline présentant les différents axes d'amélioration et leurs résultats. 

Conclusion

Ce fut une expérience très enrichissante, tant d'un point de vue professionnel qu'humain. Un tel évènement permet de rencontrer un tas d'acteurs du web intervenant dans des domaines différents et complémentaires à la fois (développement, marketing, référencement, design, veille…).

J'ajouterai les supports manquant lorsque je les aurai récupérés.

Et comme un peu de teasing ne fait de mal à personne, je vous annonce qu'un deuxième billet détaillant les conférences du deuxième jour est à venir 😉

Bonjour à tous et bienvenue sur mon blog.

Beaucoup de personnes ont un blog, surtout dans le domaine des nouvelles technologies, alors je me suis dit "pourquoi pas moi ?".  Alors de quoi allons-nous parler ?

Je passe pas mal de temps à faire de la veille, je scrute mes flux RSS régulièrement et tombe quelques fois sur des sujets intéressants. Je vais donc utiliser ce blog pour partager certaines ressources, donner mon avis sur certaines technologies, parler de sujet concernant la productivité, la gestion de projet ; bref le quotidien d'un "informaticien".

Mon premier article (techniquement le deuxième) traitera du blend web mix auquel j'ai pu assister cette semaine.

A bientôt.

Nous allons voir dans ce tutoriel comment rediriger un utilisateur vers une page spécifique (front-office ou back-office) lors de sa connexion.
Dans l'exemple suivant, nous allons rediriger les administreurs vers le dashboard (backoffice).

  1. Pré-requis
  • Installer le module rules
  • Activer tous les 3 sous-modules
  1. Création de la règle
  • Se rendre sur l'écran de gestion des règles (admin/config/workflow/rules)
  • Ajouter une nouvelle règle  "Redirection dashboard"

rules1 

  • Retourner sur l'écran de gestion des règles (admin/config/workflow/rules) et éditer la règle nouvellement créée
  • Ajouter une condition de type "User has role(s)" 

rules2

  • Sélectionner le profil "administrateur" et sauvagarder

rules3

​Il ne nous reste maintenant plus qu'à configrer l'action à effectuer lorsqu'un utilisateur ayant le rôle "administrateur se connecte".
Pour se faire il est nécessaire de :

  • Retourner sur l'écran de gestion des règles (admin/config/workflow/rules)
  • Cliquer sur "Add action" 
  • Sélectionner une action de type "System >  page redirect" et saisir l'URL vers laquelle rediriger l'utilisateur. Dans notre cas il s'agit de "/#overlay=admin/dashboard" (ici le "#overlay=" est facultatif, il permet l'affichage de la page en overlay si l'option est activée sur votre site)

rules4

  • Sauvegarder

Vous n'avez plus qu'à vous déconnecter et vous reconnecter : vous êtes maintenant redirigé sur le dashboard !

J'espère que ce petit tutoriel vous aura aidé, n'hésitez pas à laisser un commentaire.

 

Drupal propose une gestion de contenu centralisée au niveau du backoffice. Ceci est avantageux dans le sens où, le webmaster peut rapidement et facilement saisir du contenu ; en revanche, pour un contributeur manipulant uniquement 2 ou 3 types de contenu il peut être préférable de disposer d’un écran de gestion par type de contenu. Nous allons voir comment, à l’aide du module admin_views, créer des vues pour simplifier la gestion de contenu.

  1. Pré-requis :
  1. Admin_views :

Une fois ce module installé, la page de gestion de contenu voit apparaître de nouveaux filtres :

En fait, ce module a installé une vue spécifique à la gestion de contenu. Vous pouvez trouver cette vue dans le menu « Structure > Views » :

Vous remarquerez qu’une vue a également été installée pour la gestion des utilisateurs.

Vous allez me dire « jusque-là, rien d’extraordinaire ! ». Effectivement, mais grâce à la souplesse de views, vous allez pouvoir créer vos propres vues et ainsi gérer : les filtres de recherche, mais aussi les colonnes disponibles dans le tableau des résultas de recherche.

  1. Customisation

Nous allons prendre en exemple un type de contenu « Evènement » ayant la structure suivante :

Nous allons maintenant créer une vue spécifique permettant la gestion des évènements (et uniquement de ce type de contenu) en backoffice. Pour ce faire :

  •  Se rendre sur l’écran de gestion des vues : admin/structure/views
  • Modifier la vue « Administration : node » :

  • Créer un nouvel affichage de type « Page » 

  • Modifier le « diplay name » en Events
  • Définir un chemin dans « page setting » : exemple : admin/content/events
  • Enregistrer la vue

A partir de maintenant, vous disposer en backoffice d’une vue accessible via le chemin suivant "http://mondomaine/admin/content/events". Cette vue est, pour le moment, la même que admin/content. Nous allons donc maintenant la modifier afin qu’elle remonte uniquement les contenus de type  « évènement ».

  • Editer la vue nouvellement créée
  • Modifier le filtre (filter criteria) afin de préciser le type de contenu évènement :

  • Ajouter une colonne dans le tableau de résultat afin d’y ajouter la date de l’évènement en ajoutant un champ :

  • Ajouter un filtre sur cette date 

Après toutes ces étapes, vous obtiendrez la vue suivante : 

Cette vue permet donc de gérer (filtrer, lister, modifier et supprimer) les contenus de type « évènement ». Nous allons maintenant rajouter un dernier élément : un lien permettant de créer un évènement directement depuis cette vue :

  • Editer la vue
  • Ajouter un en-tête de type « Global: Unfiltered text »

  • Saisissez le lien vers la page d’ajout « <a href="http://mondomaine/node/add/evenement">Ajouter un Evènement</a> », et voilà le résultat :

  1. Accéder à la gestion des évènements :

Plusieurs solutions sont possibles pour permettre au webmaster d’accéder à cette vue nouvellement créée :

  • Utiliser le module « shortcut » et configurer un lien vers « admin/content/events » :

Vous pouvez ainsi donner un accès direct à toutes vos vues

  • Si vous vous sentez d’humeur à coder, il vous suffit de créer une entrée dans le menu principal de la barre d'administration (tuto à venir)

Et voilà ! Vous êtes maintenant capable de gérer des vues pour administrer vos contenus. N'hésitez pas à laisser un commentaire si vous avez des questions, ou bien tout simplement si cet article vous a plu.