Articles de l'utilisateur

Par Kgaut
Adhérent
Kevin Gautreau

À la découverte de Drupal 8 - #2 : Création d'une entité avec fields

Suite de l'episode 1 : À la découverte de drupal 8 - #1 : Ma première entité

Aujourd'hui, nous continuons notre découverte de Drupal 8. Le but du jeu aujourd'hui est de créer une entité avec un champ personnalisé qui sera créé automatiquement lors de l'installation, via une grande nouveauté de Drupal 8, la gestion de la configuration.

Je continue mon site de pronostics pour l'occasion, c'est que l'euro 2016 arrive à grands pas ! Après l'entité League de l'épisode 1, nous allons cette fois gérer les équipes.Pourquoi je définie une équipe comme une entité et non pas un type de contenu ? Bonne question, pas vraiment de bonne réponse, c'est surtout car j'ai envie de jouer avec les entités !

Alors, comment est structurée une équipe ?

  • Id => La clé primaire
  • name => Le nom de l'équipe
  • logo => Le logo du club

Rien de bien compliqué pour les deux premiers attributs, ce seront des propriétés de base de mon entité. Le logo sera quand à lui un field, semblable à celui que l'on peut créer via l'interface d'administration, dans un type de contenu.

Création de l'entité

Comme dans l'épisode précédent, on va utiliser Console pour générer le module et l'entité.

On commence d'abord par vérifier s'il n'y a pas de mise à jours pour Console, on utilise pour ça composer. Via un terminal, à la racine de l'installation de Drupal :

composer update drupal/console
Mise à jour de console via composer

Mise à jour de console via composer

On génère maintenant le module mespronos_teams qui contiendra l'entité

bin/console generate:module
  • Nom du module : Mespronos Teams
  • Nom machine : mespronos_teams
  • Description : Gestion des équipes
  • Pas de contrôleur (on verra ça plus tard)

On génère maintenant l'entité

bin/console generate:entity:content
  • Nom de l'entité : Team
  • Nom machine : team

On active le module via l'administration.

Activation du module

Activation du module

Création du Champs

On peut maintenant ajouter des champs à notre entité via la field API (anciennement CCK dans Drupal 6, et dans le core depuis Drupal 7)

Via Gérer > Structure > Team Settings > Gérér les champs on créer un champ de type « image » dont le nom machine sera field_logo.

Field logo dans l'administration

Field logo dans l'administration

La configuration (CMI en action)

C'est super, on peut maintenant créer des équipes et leur affecter un logo. Par contre le soucis ici, c'est que si jamais je désactive mon module, je perds le champs que je viens de créer. Aussi, je ne peux pas en versionner la configuration, si jamais je viens la modifier plus tard. Mais heureusement pour nous l'initiative CMI « Configuration Management Initiative » a pensé à nous dans Drupal 8.

L'objectif de cette initiative est donc de pouvoir exporter toute la partie « configuration » de Drupal dans des fichiers YAML.

Via le fichier settings.php, on peut définir là où l'on veut stocker l'ensemble des fichiers YAML qui contiendront la configuration de drupal. Par défaut c'est dans un dossier dont le nom est généré aléatoirement dans le dossier /sites/monsites. Personnellement je préfère que ces éléments ne soient pas accessible sur internet, même si normalement le risque est minime. Pour cela à la fin du fichier settings.php je dé-commente et modifie les lignes suivantes :

$config_directories['active'] = '../config/active';
$config_directories['staging'] = '../config/staging';

On peut exporter d'un coup l'ensemble de la configuration de notre site via drush avec la commande config-export :

drush @monsite config-export

Fichiers de configuration

Fichiers de configuration

Revenons à nos moutons, nous allons donc chercher la configuration de notre field et l'intégré à notre module. Afin que lors de l'installation du module, le field soit automatiquement créé. La configuration du champs est répartie dans deux champs :

field.field.team.team.field_logo.yml
field.storage.team.field_logo.yml

Pour que ces fichiers soient pris en compte lors de l'installation il faut les placer dans un dossier config/install dans notre module :

Structure du module

Structure du module

On test en désinstallant notre module et le réinstallant, c'est ok, notre champs existe !

Field logo dans l'administration
Youpi Youhou !

C'est fini pour aujourd'hui, comme la dernière fois vous pouvez trouver l'ensemble de mes modules sur github à l'adresse suivante : https://github.com/kgaut/mespronos

N'hésitez-pas si vous avez des remarques ou des questions !

Tags: 

Par Kgaut
Adhérent
Kevin Gautreau

Installer drush sous linux via composer

Drush est un outil indispensable pour développer sous drupal, il permet de contrôler son instance de site via le terminal pour les taches quotidiennes sur un site : téléchargement, activation de modules, vidage de cache, mise à jours de modules ou du core... Une fois que l'on y a goûté, on ne peut plus s'en passer.

Il existe un tas de méthode pour installer drush et il est parfois difficile de s'y retrouver : via les dépôts, PEAR, installation manuelle... Mais maintenant le moyen de plus simple est d'utiliser composer.

Si vous n'avez pas composer d'installé :

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Ensuite on peut installer Drush :

Pour la version 6 (compatible avec drupal 6 et 7) :

composer global require drush/drush:6.*

Pour la version 7-dev (compatible avec drupal 6, 7 et 8, mais en cours de développement) :

composer global require drush/drush:dev-master

Personnellement j'utilise la version 7 de drush (vu que je commence à faire mumuse avec la version 8 de drupal)

Quelques liens sur drush que je vous conseille :

Tags: 

Par Kgaut
Adhérent
Kevin Gautreau

Installer drush sous linux via composer

Drush est un outil indispensable pour développer sous drupal, il permet de contrôler son instance de site via le terminal pour les taches quotidiennes sur un site : téléchargement, activation de modules, vidage de cache, mise à jours de modules ou du core... Une fois que l'on y a goûté, on ne peut plus s'en passer.

Il existe un tas de méthode pour installer drush et il est parfois difficile de s'y retrouver : via les dépôts, PEAR, installation manuelle... Mais maintenant le moyen de plus simple est d'utiliser composer.

Si vous n'avez pas composer d'installé :

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Ensuite on peut installer Drush :

Pour la version 6 (compatible avec drupal 6 et 7) :

composer global require drush/drush:6.*

Pour la version 7-dev (compatible avec drupal 6, 7 et 8, mais en cours de développement) :

composer global require drush/drush:dev-master

Personnellement j'utilise la version 7 de drush (vu que je commence à faire mumuse avec la version 8 de drupal)

Quelques liens sur drush que je vous conseille :

Tags: 

Par Kgaut
Adhérent
Kevin Gautreau

À la découverte de drupal 8 - #1 : Ma première entité

Ayant l'envie de tester Drupal 8, sans prendre trop de risques, je me suis décidé à prendre comme prétexte la création d'un site de pronostics pour l'euro 2016 (oui je m'y prends tôt).

Un petit coup de modélisation de mon schéma de données, et hop c'est parti.

Pour info, je vais tenter de faire plusieurs notes comme celle là, et autant en faire profiter tout le monde, mon code sera sur Github, au fur et à mesure, car cela évitera d'avoir des posts de 4km de long, l'adresse du projet sur Github : https://github.com/kgaut/mespronos

Le contexte

Installation du Drupal, je suis parti sur la beta 2.

Petites modifications dans le fichier settings.php pour sortir les dossiers de configurations de Drupal en dehors du docroot (donc non accessible via le web) :

$config_directories['active'] = '../config/active';
$config_directories['staging'] = '../config/staging';

Ensuite on rentre dans le vif du sujet avec la création de ma première entité drupal 8.

Je vous présente l'entité "League" qui contiendra les différentes compétitions de sport sur lesquelles des concours de pronostics seront organisés.

  • lid : Clé primaire
  • name : le nom de la compétition. Ex : "Ligue 1 2014-2015"
  • classement : doit-on calculer le classement pour ce concours ? (oui pour un championnat, non pour un mondial ou un euro)
  • status : archivé, en cours, terminé...

Mon entité sera contenue dans un module qui s’appellera "mespronos_leagues", car j'aime bien avoir un module par fonctionnalité.

Let's generate !

Pour la génération du module ainsi que de l'entité j'ai utilisé le super projet "console", que j'ai installé via composer. Je vous invite à découvrir l'installation et l'utilisation de ce module via ce tutoriel à l'adresse suivante : Créer un module Drupal 8 en 30 secondes | Flocon de toile.

J'ai donc crée mon module à l'aide de la commande suivantes

bin/console generate:module

une fois le module généré, il est temps de créer l'entité, toujours avec console, via la commande suivante : 

bin/console generate:entity:content

et là c'est magique, le contrôleur, les routes, l'entité, l'arborescence des dossiers... tout est généré automatiquement :

Encore une fois, sur la génération d'entités, tout est encore superbement expliqué sur ce site : Créer une entité Drupal 8 en 10 secondes top chrono | Flocon de toile

arborescence-entite-drupal8.png
 

il ne reste plus qu'à personnaliser selon nos besoins.

Ajout de propriétés

Une entité est "fieldable" c'est à dire que l'on peut très bien lui ajouter des champs via l'interface d'administration, comme l'on ferai avec un type de contenu. Mais comme vous le savez sûrement l'ajout d'un champ entraîne la création de deux tables (une pour la valeur, et une pour les révisions) ainsi une baisse de performance lors de l'affichage de notre contenu car cela génère forcement des jointures.

Une autre possibilité offerte par les entités est de définir des propriétés, c'est à dire des attributs qui seront présents directement dans la même table que notre entité.

Il faut pour cela modifier la méthode baseFieldDefinitions de notre entité (dans le fichier src/Entity/League.php)

Voici un exemple de code pour ajouter mon attribut "classement", qui est un booléen non affiché en front, mais présent sur le formulaire d'administration.

$fields['classement'] = BaseFieldDefinition::create('boolean')
  ->setLabel(t('Classement activé'))
  ->setDescription(t('Doit-on calculer le classement entre les équipes pour cette competitions'))
  ->setDisplayConfigurable('form', TRUE)
  ->setDisplayConfigurable('view', TRUE)
  ->setDefaultValue(TRUE)
  ->setDisplayOptions('form', array(
    'type' => 'boolean_checkbox',
    'settings' => array(
      'display_label' => TRUE,
    )
  ))
  ->setDisplayOptions('view', array(
    'type' => 'hidden',
  ));

Pour voir l'intégralité de mes modifications, vous pouvez consulter le fichier sur github : https://github.com/kgaut/mespronos/blob/master/modules/custom/mespronos_...

Personnalisation des routes et du menu

Dernier point que je souhaiter modifier, les routes et le menu. Dans drupal 8 le HOOK_menu n'existe plus, tout à été remplacé par de la configuration dans des fichiers YAML (welcome Symfony)

Les routes sont les chemins d'accès, et sont défini dans le fichier mespronos_leagues.routing.yml.

Les éléments de menu sont eux dispatchés dans plusieurs fichiers suivant leur type :

drupal7menutodrupal8.png

drupal7menutodrupal8.png, par https://www.drupal.org/node/2118147

Dans l'admin dans la partie contenu, je voulais un onglet menant à la liste de tous mes compétitions, comme cela :

Onglet dans drupal 8
 

J'ai donc pour cela modifié le fichier mespronos_leagues.routing.yml et ajouté les lignes suivantes :

league.list:
  title: 'Compétitions'
  route_name: league.list
  description: 'Liste de toutes les compétitions'
  base_route: system.admin_content

C'est tout pour aujourd'hui, n'hésitez pas à consulter mon code sur github, j'ai mis l'intégralité de ce module, et j'ajouterai au fur et à mesure la suite. Si vous voyez des erreurs, des améliorations, n'hésitez-pas à me faire des push-request.

Le projet sur github : https://github.com/kgaut/mespronos

Quelques liens qui m'ont beaucoup servis :

Tags: 

Par Kgaut
Adhérent
Kevin Gautreau

À la découverte de drupal 8 - #1 : Ma première entité

Ayant l'envie de tester Drupal 8, sans prendre trop de risques, je me suis décidé à prendre comme prétexte la création d'un site de pronostics pour l'euro 2016 (oui je m'y prends tôt).

Un petit coup de modélisation de mon schéma de données, et hop c'est parti.

Pour info, je vais tenter de faire plusieurs notes comme celle là, et autant en faire profiter tout le monde, mon code sera sur Github, au fur et à mesure, car cela évitera d'avoir des posts de 4km de long, l'adresse du projet sur Github : https://github.com/kgaut/mespronos

Le contexte

Installation du Drupal, je suis parti sur la beta 2.

Petites modifications dans le fichier settings.php pour sortir les dossiers de configurations de Drupal en dehors du docroot (donc non accessible via le web) :

$config_directories['active'] = '../config/active';
$config_directories['staging'] = '../config/staging';

Ensuite on rentre dans le vif du sujet avec la création de ma première entité drupal 8.

Je vous présente l'entité "League" qui contiendra les différentes compétitions de sport sur lesquelles des concours de pronostics seront organisés.

  • lid : Clé primaire
  • name : le nom de la compétition. Ex : "Ligue 1 2014-2015"
  • classement : doit-on calculer le classement pour ce concours ? (oui pour un championnat, non pour un mondial ou un euro)
  • status : archivé, en cours, terminé...

Mon entité sera contenue dans un module qui s’appellera "mespronos_leagues", car j'aime bien avoir un module par fonctionnalité.

Let's generate !

Pour la génération du module ainsi que de l'entité j'ai utilisé le super projet "console", que j'ai installé via composer. Je vous invite à découvrir l'installation et l'utilisation de ce module via ce tutoriel à l'adresse suivante : Créer un module Drupal 8 en 30 secondes | Flocon de toile.

J'ai donc crée mon module à l'aide de la commande suivantes

bin/console generate:module

une fois le module généré, il est temps de créer l'entité, toujours avec console, via la commande suivante : 

bin/console generate:entity:content

et là c'est magique, le contrôleur, les routes, l'entité, l'arborescence des dossiers... tout est généré automatiquement :

Encore une fois, sur la génération d'entités, tout est encore superbement expliqué sur ce site : Créer une entité Drupal 8 en 10 secondes top chrono | Flocon de toile

[scald=9:sdl_editor_representation]
 

il ne reste plus qu'à personnaliser selon nos besoins.

Ajout de propriétés

Une entité est "fieldable" c'est à dire que l'on peut très bien lui ajouter des champs via l'interface d'administration, comme l'on ferai avec un type de contenu. Mais comme vous le savez sûrement l'ajout d'un champ entraîne la création de deux tables (une pour la valeur, et une pour les révisions) ainsi une baisse de performance lors de l'affichage de notre contenu car cela génère forcement des jointures.

Une autre possibilité offerte par les entités est de définir des propriétés, c'est à dire des attributs qui seront présents directement dans la même table que notre entité.

Il faut pour cela modifier la méthode baseFieldDefinitions de notre entité (dans le fichier src/Entity/League.php)

Voici un exemple de code pour ajouter mon attribut "classement", qui est un booléen non affiché en front, mais présent sur le formulaire d'administration.

$fields['classement'] = BaseFieldDefinition::create('boolean')
  ->setLabel(t('Classement activé'))
  ->setDescription(t('Doit-on calculer le classement entre les équipes pour cette competitions'))
  ->setDisplayConfigurable('form', TRUE)
  ->setDisplayConfigurable('view', TRUE)
  ->setDefaultValue(TRUE)
  ->setDisplayOptions('form', array(
    'type' => 'boolean_checkbox',
    'settings' => array(
      'display_label' => TRUE,
    )
  ))
  ->setDisplayOptions('view', array(
    'type' => 'hidden',
  ));

Pour voir l'intégralité de mes modifications, vous pouvez consulter le fichier sur github : https://github.com/kgaut/mespronos/blob/master/modules/custom/mespronos_...

Personnalisation des routes et du menu

Dernier point que je souhaiter modifier, les routes et le menu. Dans drupal 8 le HOOK_menu n'existe plus, tout à été remplacé par de la configuration dans des fichiers YAML (welcome Symfony)

Les routes sont les chemins d'accès, et sont défini dans le fichier mespronos_leagues.routing.yml.

Les éléments de menu sont eux dispatchés dans plusieurs fichiers suivant leur type :

[scald=10:sdl_editor_representation]

drupal7menutodrupal8.png, par https://www.drupal.org/node/2118147

Dans l'admin dans la partie contenu, je voulais un onglet menant à la liste de tous mes compétitions, comme cela :

[scald=11:sdl_editor_representation]
 

J'ai donc pour cela modifié le fichier mespronos_leagues.routing.yml et ajouté les lignes suivantes :

league.list:
  title: 'Compétitions'
  route_name: league.list
  description: 'Liste de toutes les compétitions'
  base_route: system.admin_content

C'est tout pour aujourd'hui, n'hésitez pas à consulter mon code sur github, j'ai mis l'intégralité de ce module, et j'ajouterai au fur et à mesure la suite. Si vous voyez des erreurs, des améliorations, n'hésitez-pas à me faire des push-request.

Le projet sur github : https://github.com/kgaut/mespronos

Quelques liens qui m'ont beaucoup servis :

Tags: 

Par Kgaut
Adhérent
Kevin Gautreau

Drupal 8 > le thème d'administration Adminimal est disponible

Je fais un petit peu joujou avec la version 8 de Drupal (la seconde version beta est sortie il y a quelques jours).

Et pour info la version 8 du superbe thème d'administration "Adminimal" est disponible. J'avais déjà rapidement présenté le thème ici. Alors même si toutes les customisations de la version 7 ne sont pas encore disponible, son utilisation améliore encore l'experience d'administration de Drupal 8.

Plus d'information sur la page du projet : https://www.drupal.org/project/adminimal_theme

 

Tags: 

Par Kgaut
Adhérent
Kevin Gautreau

Drupal 8 > le thème d'administration Adminimal est disponible

Je fais un petit peu joujou avec la version 8 de Drupal (la seconde version beta est sortie il y a quelques jours).

Et pour info la version 8 du superbe thème d'administration "Adminimal" est disponible. J'avais déjà rapidement présenté le thème ici. Alors même si toutes les customisations de la version 7 ne sont pas encore disponible, son utilisation améliore encore l'experience d'administration de Drupal 8.

Plus d'information sur la page du projet : https://www.drupal.org/project/adminimal_theme

 

Tags: 

Par Kgaut
Adhérent
Kevin Gautreau

Site mobile ou site responsive?

Actuellement la question qui revient souvent est doit-on faire un site mobile? Ou alors un site qui s'adapte au support sur lequel il est affiché (en utilisant par exemple le responsive design)

Les deux solutions ont leurs spécificités. Un site mobile sera plus pertinent dans le cas où l'ont offre une expérience ou un service sur mobile bien différent de celui qui est offert sur la version "normale" du site.

On peut citer par exemple le site d'un transporteur en commun, alors que le site normal affichera pleins d'informations rédactionnel, différents services... Le site mobile lui ce cloisonnera à fournir à l'utilisateur l'information dont il a besoin le plus rapidement possible et avec le moins de "fioritures".

 

Le site mobile de la sibra

Pour le cas d'un site plus redactionnel, tout le contenu, ou presque, est intéressant pour le mobinaute (qu'est-ce que je trouve ce terme con...) donc on ne va pas réduire l'offre de services entre la version normale et la version mobile.

Par contre on va tendre à améliorer l'expérience sur mobile. C'est à dire, pas d'images lourdes, pas trop d'animations, une interface alègée et simplifiée.

 

Un exemple de site "responsive"

C'est là que le responsive design prend tout son sens. Suivant la résolution d'écran de l'utilisateur, on utilisera une feuille de style x ou y par exemple. Vous pouvez essayer ici même, en réduisant la fenêtre de votre navigateur, vous devriez voir au fur et à mesure de légères adaptation : la taille de police qui diminue, les images qui feront au maximum la largeur de l'écran...

Les avantages de cette technique sont nombreux : un même site, un même contenu pour une multitude de support : tablettes, smartphones...

Quelques articles traitant du responsive design :

Et pour faire du responsive design avec Drupal, rien ne vaut le thème Omega, mais j'aurai l'occasion d'en reparler.

Par Kgaut
Adhérent
Kevin Gautreau

Site mobile ou site responsive?

Actuellement la question qui revient souvent est doit-on faire un site mobile? Ou alors un site qui s'adapte au support sur lequel il est affiché (en utilisant par exemple le responsive design)

Les deux solutions ont leurs spécificités. Un site mobile sera plus pertinent dans le cas où l'ont offre une expérience ou un service sur mobile bien différent de celui qui est offert sur la version "normale" du site.

On peut citer par exemple le site d'un transporteur en commun, alors que le site normal affichera pleins d'informations rédactionnel, différents services... Le site mobile lui ce cloisonnera à fournir à l'utilisateur l'information dont il a besoin le plus rapidement possible et avec le moins de "fioritures".

 

Le site mobile de la sibra

Pour le cas d'un site plus redactionnel, tout le contenu, ou presque, est intéressant pour le mobinaute (qu'est-ce que je trouve ce terme con...) donc on ne va pas réduire l'offre de services entre la version normale et la version mobile.

Par contre on va tendre à améliorer l'expérience sur mobile. C'est à dire, pas d'images lourdes, pas trop d'animations, une interface alègée et simplifiée.

 

Un exemple de site "responsive"

C'est là que le responsive design prend tout son sens. Suivant la résolution d'écran de l'utilisateur, on utilisera une feuille de style x ou y par exemple. Vous pouvez essayer ici même, en réduisant la fenêtre de votre navigateur, vous devriez voir au fur et à mesure de légères adaptation : la taille de police qui diminue, les images qui feront au maximum la largeur de l'écran...

Les avantages de cette technique sont nombreux : un même site, un même contenu pour une multitude de support : tablettes, smartphones...

Quelques articles traitant du responsive design :

Et pour faire du responsive design avec Drupal, rien ne vaut le thème Omega, mais j'aurai l'occasion d'en reparler.

Par Kgaut
Adhérent
Kevin Gautreau

Spam, drupal et Mollom...

Lors de la mise à jour du site, j'ai désactivé temporairement le système antispam pour les commentaires et le formulaire de contact.

En deux heures voila le résultat dans ma boite mail :

Drupal sans Mollom

Du coup je ne peux que trop vous recommander Mollom pour protéger votre site drupal contre le spam.

Par Kgaut
Adhérent
Kevin Gautreau

Spam, drupal et Mollom...

Lors de la mise à jour du site, j'ai désactivé temporairement le système antispam pour les commentaires et le formulaire de contact.

En deux heures voila le résultat dans ma boite mail :

Drupal sans Mollom

Du coup je ne peux que trop vous recommander Mollom pour protéger votre site drupal contre le spam.

Par Kgaut
Adhérent
Kevin Gautreau

Mise à jour du site

Avec un peu de motivation et un bon weekend de travail, j'ai (enfin) effectué la migration du site depuis drupal 6 vers drupal 7, la dernière version du cms.

J'en ai profité pour revoir rapidement le thème, rester dans le sobre, mais le moderniser un peu et le rendre "responsive" (qu'il s'adapte au support sur lequel il est vu (mobile, tablette, pc...), pour cela j'ai utilisé le "base theme" Omega pour drupal.

Je vais maintenant essayer de poster plus fréquement ici.

 

Tags: 

Par Kgaut
Adhérent
Kevin Gautreau

Mise à jour du site

Avec un peu de motivation et un bon weekend de travail, j'ai (enfin) effectué la migration du site depuis drupal 6 vers drupal 7, la dernière version du cms.

J'en ai profité pour revoir rapidement le thème, rester dans le sobre, mais le moderniser un peu et le rendre "responsive" (qu'il s'adapte au support sur lequel il est vu (mobile, tablette, pc...), pour cela j'ai utilisé le "base theme" Omega pour drupal.

Je vais maintenant essayer de poster plus fréquement ici.

 

Tags: 

Par Kgaut
Adhérent
Kevin Gautreau

Smartbus

Le site de mon projet de Master, j'aurai sûrement l'occasion d'en reparler.

Basé sur un Drupal 7, avec un template bidouillé rapidement.

Merci à Niels pour le logo.

Date de réalisation: 
Décembre 2010
CMS: 
Tags: 

Par Kgaut
Adhérent
Kevin Gautreau

Smartbus

Le site de mon projet de Master, j'aurai sûrement l'occasion d'en reparler.

Basé sur un Drupal 7, avec un template bidouillé rapidement.

Merci à Niels pour le logo.

Date de réalisation: 
Décembre 2010
CMS: 
Tags: 

Par Kgaut
Adhérent
Kevin Gautreau

Mes liens

Un petit site concept développé rapidement histoire de tester deux-trois trucs.

Mes liens ce veux un agrégateur des différents liens que je trouve intéressants sur le net est que je veux garder sous la main et éventuellement partager.

Ce n'est qu'une première version, ultra simple (et ultra moche) sur laquelle je développerai à l'occasion des nouvelles fonctionnalités, entre autres interfaces avec twitter, google reader...

C'était aussi un gros pretexte pour tester drupal 7!

Date de réalisation: 
Décembre 2010
CMS: 

Par Kgaut
Adhérent
Kevin Gautreau

Mes liens

Un petit site concept développé rapidement histoire de tester deux-trois trucs.

Mes liens ce veux un agrégateur des différents liens que je trouve intéressants sur le net est que je veux garder sous la main et éventuellement partager.

Ce n'est qu'une première version, ultra simple (et ultra moche) sur laquelle je développerai à l'occasion des nouvelles fonctionnalités, entre autres interfaces avec twitter, google reader...

C'était aussi un gros pretexte pour tester drupal 7!

Date de réalisation: 
Décembre 2010
CMS: 

Par Kgaut
Adhérent
Kevin Gautreau

Séminaire CMS open source à Lyon

Smile organise le jeudi 18 Novembre un séminaire gratuit sur les CMS Open Source, j'y serai!

Programme :

  • 9h - 10h : Comprendre les enjeux et principes fondamentaux de la gestion de contenu open source.
  • 10h - 11h30 : Connaître et comparer les meilleures solutions open source : eZ Publish, Typo3, Drupal, Jahia, Liferay, Infoglue…
  • 11h30 - 12h : Poser toutes vos questions à nos experts.

Description issue du site Smile :

De plus en plus de sociétés choisissent un logiciel de gestion de contenu open source comme socle de leur stratégie web, internet ou intranet. Ce choix n'est pas seulement économique : ces produits se distinguent par leur fiabilité et ont été adoptés par une très large communauté d'utilisateurs.

Smile a déployé une variété de solutions de gestion de contenus open source pour les Laboratoires Boiron, le Conseil Général du Rhône, l’Institut Laue Langevin, l’INRIA, l’EM Lyon, Canson… et bien d'autres clients, de toutes tailles et tous secteurs d'activité.

Grâce à ce séminaire, vous découvrirez les plus grandes solutions open source à travers les retours d'expérience de nos experts et vous trouverez des réponses précises à vos questions.

Pour les inscriptions c'est ici!


Par Kgaut
Adhérent
Kevin Gautreau

Séminaire CMS open source à Lyon

Smile organise le jeudi 18 Novembre un séminaire gratuit sur les CMS Open Source, j'y serai!

Programme :

  • 9h - 10h : Comprendre les enjeux et principes fondamentaux de la gestion de contenu open source.
  • 10h - 11h30 : Connaître et comparer les meilleures solutions open source : eZ Publish, Typo3, Drupal, Jahia, Liferay, Infoglue…
  • 11h30 - 12h : Poser toutes vos questions à nos experts.

Description issue du site Smile :

De plus en plus de sociétés choisissent un logiciel de gestion de contenu open source comme socle de leur stratégie web, internet ou intranet. Ce choix n'est pas seulement économique : ces produits se distinguent par leur fiabilité et ont été adoptés par une très large communauté d'utilisateurs.

Smile a déployé une variété de solutions de gestion de contenus open source pour les Laboratoires Boiron, le Conseil Général du Rhône, l’Institut Laue Langevin, l’INRIA, l’EM Lyon, Canson… et bien d'autres clients, de toutes tailles et tous secteurs d'activité.

Grâce à ce séminaire, vous découvrirez les plus grandes solutions open source à travers les retours d'expérience de nos experts et vous trouverez des réponses précises à vos questions.

Pour les inscriptions c'est ici!


Par Kgaut
Adhérent
Kevin Gautreau

Livre : Concevoir et déployer ses sites web avec Drupal

Juste un petit mot pour vous dire que la seconde édition du meilleur livre francophone que j'ai pu lire en Français est sorti:

Couverture du livre

Ecrit par Yoran Brault aux éditions Eyrolles (référence dans l'informatique).

Au sommaire:

  • Comprenez l'architecture de Drupal et réfléchissez... à quoi faire et ne pas faire avec un CMS aussi puissant
  • Configurez votre environnement de développement sous Mac OS, Linux et Windows
  • Administrez Drupal et ses modules, architecturez vos pages et proposez plusieurs langues
  • Gérez vos utilisateurs, les rôles des contributeurs et flux de publication en toute sécurité (OpenID...)
  • Enrichissez vos contenus grâce aux éditeurs visuels : articles, commentaires, images, discussions, FAQ, formulaires et champs, fils RSS, filtres et formats...
  • Modifiez l'apparence avec les thèmes et personnalisez les modèles
  • Optimisez la charge d'administration par l'automatisation des tâches récurrentes
  • Créez votre propre module et évitez les écueils de la mise en production
  • Évaluez les améliorations de Drupal 7

Acheter le livre "Concevoir et déployer ses sites web avec Drupal" sur Amazon.fr

Par Kgaut
Adhérent
Kevin Gautreau

Livre : Concevoir et déployer ses sites web avec Drupal

Juste un petit mot pour vous dire que la seconde édition du meilleur livre francophone que j'ai pu lire en Français est sorti:

Couverture du livre

Ecrit par Yoran Brault aux éditions Eyrolles (référence dans l'informatique).

Au sommaire:

  • Comprenez l'architecture de Drupal et réfléchissez... à quoi faire et ne pas faire avec un CMS aussi puissant
  • Configurez votre environnement de développement sous Mac OS, Linux et Windows
  • Administrez Drupal et ses modules, architecturez vos pages et proposez plusieurs langues
  • Gérez vos utilisateurs, les rôles des contributeurs et flux de publication en toute sécurité (OpenID...)
  • Enrichissez vos contenus grâce aux éditeurs visuels : articles, commentaires, images, discussions, FAQ, formulaires et champs, fils RSS, filtres et formats...
  • Modifiez l'apparence avec les thèmes et personnalisez les modèles
  • Optimisez la charge d'administration par l'automatisation des tâches récurrentes
  • Créez votre propre module et évitez les écueils de la mise en production
  • Évaluez les améliorations de Drupal 7

Acheter le livre "Concevoir et déployer ses sites web avec Drupal" sur Amazon.fr

Par Kgaut
Adhérent
Kevin Gautreau

Créer son site smartphone avec Drupal

 

Mobile Tools pour créer une version smartphone de son site

Drupal permet à l'aide d'un extension de facilement créer une version mobile de son site.
Il suffit pour cela d'installer le module Mobile Tools qui se chargera de :

  • Détecter si l'internaute utilise un smartphone
  • Le rediriger vers la version mobile de votre site
  • Gérer le domaine pour le site mobile (m.monsite.com ou monsite.mobi)
  • utiliser un thème particulier pour le site mobile.

J'ai sur ce site utilisé une redirection automatique vers m.kgaut.net, et depuis cette url j'ai "demandé" à Drupal d'utiliser un thème particulier (un sous-thème plus précisement).

Vous pouvez aussi segmenter suivant le périphérique du de l'internaute (Android, blackberry, iphone ou windows mobile...)

Quelques liens pour aller plus loin:

 

Par Kgaut
Adhérent
Kevin Gautreau

Créer son site smartphone avec Drupal

 

Mobile Tools pour créer une version smartphone de son site

Drupal permet à l'aide d'un extension de facilement créer une version mobile de son site.
Il suffit pour cela d'installer le module Mobile Tools qui se chargera de :

  • Détecter si l'internaute utilise un smartphone
  • Le rediriger vers la version mobile de votre site
  • Gérer le domaine pour le site mobile (m.monsite.com ou monsite.mobi)
  • utiliser un thème particulier pour le site mobile.

J'ai sur ce site utilisé une redirection automatique vers m.kgaut.net, et depuis cette url j'ai "demandé" à Drupal d'utiliser un thème particulier (un sous-thème plus précisement).

Vous pouvez aussi segmenter suivant le périphérique du de l'internaute (Android, blackberry, iphone ou windows mobile...)

Quelques liens pour aller plus loin:

 

Par Kgaut
Adhérent
Kevin Gautreau

Créer un template spécial pour un type de contenu dans Drupal

Drupal permet de créer des types de contenus particuliers (voir par là pour plus d'infos), mais il permet aussi de leurs associer des templates spéciaux.

Pour cela il suffit de créer dans le dossier de votre thème un fichier avec le nom suivant:

node-[node-type].tpl.php (en replacant [node-type] par le nom machine de votre type de contenu, par exemple:

node-realisation.tpl.php

Ci-dessus, c'est pour la version 6 de Drupal. Pour la version 7 il faut doubler le tiret :

node--[node-type].tpl.php

Ensuite le préprocesseur de drupal ira chercher automatiquement le bon fichier de template pour afficher la page.

Par Kgaut
Adhérent
Kevin Gautreau

Créer un template spécial pour un type de contenu dans Drupal

Drupal permet de créer des types de contenus particuliers (voir par là pour plus d'infos), mais il permet aussi de leurs associer des templates spéciaux.

Pour cela il suffit de créer dans le dossier de votre thème un fichier avec le nom suivant:

node-[node-type].tpl.php (en replacant [node-type] par le nom machine de votre type de contenu, par exemple:

node-realisation.tpl.php

Ci-dessus, c'est pour la version 6 de Drupal. Pour la version 7 il faut doubler le tiret :

node--[node-type].tpl.php

Ensuite le préprocesseur de drupal ira chercher automatiquement le bon fichier de template pour afficher la page.

Par Kgaut
Adhérent
Kevin Gautreau

Créer un sous thème dans Drupal

Il est possible dans drupal de créer des sous-thèmes, dans une vision objet, on aurait ainsi un thème qui hérite d'un autre.

subtheme scheme

Pour quel usage ? Et bien par exemple, vous voulez créer une version mobile de votre site (avec des spécificités au niveau de la feuille de style par exemple.) Créez simplement un sous-thème de votre thème principal et vous n'aurez juste qu'a surcharger les fichiers que vous souhaiter modifier.

Par exemple, voici l'arborescence de mon thème principal sur ce site :

path thème principal

je veux créer une version mobile ou je modifie un peu le template d'une page ainsi qu'une feuille de style.

Je commence par créer un nouveau dossier « kgaut-mobile », je crée le fichier kgaut-mobile.info qui contient les informations de mon site. En voici le contenu :


name = kgaut-mobile
#ici je défini le thème « parent » dont mon sous-thème héritera

base theme = kgaut
description = Version mobile du theme du site Kgaut.NET
screenshot = css/images/screenshot.gif
core = "6.x"
project = "kgaut-mobile"
engine = phptemplate
 
#Ici les css que je surcharge.
stylesheets[all][] = css/layout.css
stylesheets[all][] = css/style.css
 
regions[content_top] = Content top
regions[header] = Header
regions[footer_block] = Footer
regions[content_bottom] = Content bottom
 
; Information added by drupal.org packaging script on 2009-10-28
version = "6.x-2.9"
core = "6.x"
datestamp = "1256756703"


Ensuite, je copie colle les templates et les css que je veux modifier depuis mon thème principal vers mon sous-thème. Je les modifie à ma guise.

Drupal ira chercher lui même les fichiers (javascripts, css, templates...) dans le thème principal.

Note : pour les javascripts le comportement et la manip est la même que pour les css.

path sous-thème

Pour ceux qui n'ont rien compris à mes explications foireuses, voici quelques liens pour mieux comprendre:

Par Kgaut
Adhérent
Kevin Gautreau

Créer un sous thème dans Drupal

Il est possible dans drupal de créer des sous-thèmes, dans une vision objet, on aurait ainsi un thème qui hérite d'un autre.

subtheme scheme

Pour quel usage ? Et bien par exemple, vous voulez créer une version mobile de votre site (avec des spécificités au niveau de la feuille de style par exemple.) Créez simplement un sous-thème de votre thème principal et vous n'aurez juste qu'a surcharger les fichiers que vous souhaiter modifier.

Par exemple, voici l'arborescence de mon thème principal sur ce site :

path thème principal

je veux créer une version mobile ou je modifie un peu le template d'une page ainsi qu'une feuille de style.

Je commence par créer un nouveau dossier « kgaut-mobile », je crée le fichier kgaut-mobile.info qui contient les informations de mon site. En voici le contenu :


name = kgaut-mobile
#ici je défini le thème « parent » dont mon sous-thème héritera

base theme = kgaut
description = Version mobile du theme du site Kgaut.NET
screenshot = css/images/screenshot.gif
core = "6.x"
project = "kgaut-mobile"
engine = phptemplate
 
#Ici les css que je surcharge.
stylesheets[all][] = css/layout.css
stylesheets[all][] = css/style.css
 
regions[content_top] = Content top
regions[header] = Header
regions[footer_block] = Footer
regions[content_bottom] = Content bottom
 
; Information added by drupal.org packaging script on 2009-10-28
version = "6.x-2.9"
core = "6.x"
datestamp = "1256756703"


Ensuite, je copie colle les templates et les css que je veux modifier depuis mon thème principal vers mon sous-thème. Je les modifie à ma guise.

Drupal ira chercher lui même les fichiers (javascripts, css, templates...) dans le thème principal.

Note : pour les javascripts le comportement et la manip est la même que pour les css.

path sous-thème

Pour ceux qui n'ont rien compris à mes explications foireuses, voici quelques liens pour mieux comprendre:

Par Kgaut
Adhérent
Kevin Gautreau

Bien débuter avec Drupal

Remise à jour de l'article de mon ancien blog.

Logo Drupal

Drupal est un CMS (Content Management System) beaucoup plus puissant et souple que ses concurrents (joomla, CMS Made Simple, wordpress et compagnie).

Même s'il faut un peu plus de temps pour se mettre dedans, au final vous pouvez vraiment en faire ce que vous voulez.

Un exemple : Sous Joomla, le contenu est formaté : un article est (en gros) composé d'un titre et d'un contenu. Sous Drupal, avec l'extension CCK (Content Construction Kit) vous pouvez créer les contenus de la forme que vous voulez avec les éléments que vous voulez. Ici, si vous allez sur la page réalisations, vous verrez des contenus composés d’un titre, d’un screenshot, d’une date de mise en ligne…

Plus d’informations sur CCK : http://www.lektum.info/2009/05/15/mon-guide-drupal-3-construire-les-contenus-avec-drupal/

CCK est tellement populaire qu’il sera intégré par default dans la prochaine version de Drupal, la 7 devant sortir cet été.

Aussi Drupal est multi-sites, c’est-à-dire que depuis le même dossier sur votre serveur, vous pouvez faire tourner autant de sites que vous le voulez. Les dossiers de modules, de thèmes étant partagés pas besoin d’appliquer une mise à jour sur 36 sites différents.

Plus d’informations sur le multi-sites : http://www.lektum.info/2009/02/24/installer-une-plateforme-multi-sites-avec-drupal/

Un truc, plutôt que vous lancer la tête baissée dans la bestiole, je vous recommande sérieusement la lecture du livre « Concevoir et déployer ses sites web avec Drupal » écrit par Yoran Brault qui est la référence en livre francophone sur Drupal.

D’autres liens en vrac :

Tags: 

Pages