Planète

Trouver un prestataire Drupal







Vous avez un projet de site web et vous avez déjà identifié Drupal comme solution idéale ? Mais vous avez des difficultés pour trouver un prestataire Drupal ? Comment vous assurer que le prestataire sera en mesure de vous développer un site internet dans le respect de l'état de l’art ? Bref comment trouver un prestataire Drupal, ou comment s’assurer que le prestataire dispose effectivement des compétences nécessaires à la bonne maîtrise de Drupal ? Ce billet va essayer de vous donner quelques pistes pour vous permettre d'éviter quelques mauvaises surprises.

Thème 
Drupal
Spécialiste
Prestataire

Par Artusamak
Julien Dubois

Drupal 8 pour de vrai

Drupal 8 pour de vrai

Alors que Drupal 8 se profile doucement et promet des améliorations majeurs par rapport à Drupal 7, intéressons nous à ce temps avant l'apparation des premiers sites majeurs en Drupal 8.

Quel est la situation de la contrib ? Comment devons nous changer nos habitudes et que faire pour se tenir prêt à l'arrivée de Drupal 8 ?

Ensemble essayons de répondre à cette question "Quand est ce que je pourrais utiliser Drupal 8 en production ?"

 

Cette session est largement inspiré par celle de @Florian Lorétan : Drupal 8 for real

crédit image : http://www.greenhouseloft.com/

Illustration: 
Catégorie: 
Par Artusamak
Julien Dubois

La fin du .info

La fin du .info

L'arrivée prochaine de Drupal 8 marquera la mort d'un (des nombreux) aliens de Drupal : le fichier ".info".

Ce fameux ".info", indispensable à tout module, thème ou encore profil d'installation sera remplacé dans un fichier YAML.

Évidemment, la principale motivation de ce changement est de pouvoir assurer une certaine consistance avec le reste de drupal (le nouveau système de routage utilisera aussi des fichiers YAML). Et bien sûr, l'adoption de la norme YAML consiste également en un switch vers un format bien connu et surtout standard.

Ce changement se traduit donc par la conversion de tous les anciens fichiers ".info" en ".info.yml".

Pour la majorité des anciennes instructions, le simple remplacement des "=" en ":" fera le plus gros du boulot.
Pour toutes les déclarations qui avaient la forme de tableaux (c'est à dire, avec un "[]" dedans), la forme sera :

dependencies:
  - node

Autre exemple avec les feuilles de style, anciennement de la forme :

; Stylesheets
stylesheets[all][] = css/layout.css
stylesheets[all][] = css/style.css
stylesheets[print][] = css/print.css

Ceci deviendra :

# Stylesheets
stylesheets:
  all:
    - css/layout.css
    - css/style.css
  print:
    - css/print.css

Comme vous avez pu le voir dans l'exemple précédent, pour insérer un commentaire, il ne faudra plus utiliser un ";" mais un "#" en début de ligne.

Enfin, on note l'arrivée d'une nouvelle clé : "type". Celle-ci, obligatoire, aura pour valeur "module", "theme", ou encore "profile". Je crois que vous avez compris son fonctionnement là, non ?

Un exemple complet avec le thème "Seven".

Drupal 7 :

name = Seven
description = A simple one-column, tableless, fluid width administration theme.
package = Core
version = VERSION
core = 7.x
stylesheets[screen][] = reset.css
stylesheets[screen][] = style.css
settings[shortcut_module_link] = 1
regions[content] = Content
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom
regions[sidebar_first] = First sidebar
regions_hidden[] = sidebar_first

Drupal 8 :

name: Seven
type: theme
description: 'A simple one-column, tableless, fluid width administration theme.'
package: Core
version: VERSION
core: 8.x
stylesheets:
  screen:
    - style.css
stylesheets-override:
  - vertical-tabs.css
  - vertical-tabs-rtl.css
  - jquery.ui.theme.css
settings:
  shortcut_module_link: '1'
regions:
  content: Content
  help: Help
  page_top: 'Page top'
  page_bottom: 'Page bottom'
  sidebar_first: 'First sidebar'
regions_hidden:
  - sidebar_first
Par LaboRouge

Module : Comment Notify

Comment Notify est un module qui permet d'envoyer des notifications par e-mail aux visiteurs ayant laissés un commentaire sur votre site. Fonction bien utile, car elle permet de fidéliser vos visiteurs et de les inciter à revenir sur votre site.

Il y a deux choix de notifications possibles : 


Drupal


Module

Par LaboRouge

Drupal 7: ajouter un lien permanent RSS

Lorsque votre site Drupal possède un flux RSS, il peut s'avérer judicieux d'ajouter à votre HTML un lien permanent vers ce dernier.

L'avantage : certain navigateur, tel Firefox, detecte la présence de ce lien et inclus automatiquement le logo RSS dans la barre de navigation.

Comment faire : il faut insérer une nouvelle balise <link> dans la balise <head> de votre page HTML.

Cela doit ressembler à ça :


Drupal 7


Theme

Par LaboRouge

Drupal 7 : ajouter la signature sur Node

Lors du paramétrage des comptes, il est possible de définir une "signature" pour chaque utilisateur. Par défaut, celle-ci s'affiche avec les commentaires de l'utilisateur.

Mais Drupal ne prévoit pas d'ajouter cette signature sur les "Nodes" lors de la création d'un contenu par l'utilisateur.

Avec quelques lignes de code le problème est résolu :


Drupal 7


Theme

Par LaboRouge

Drupal 7 : modifier le titre d'une page

Le titre d'une page web est gérer par la balise <title> dans la balise <head>. 

Par défaut, Drupal 7 génére ce nom sous la forme "titre de la page | nom du site"

Mais il est possible d'agir sur cette balise en passant par la fonction "theme_preprocess_html" du fichier template.php de votre thème :


Drupal 7


Theme

Par GoZ
Fabien CLEMENT

Trouvez la version de Drupal d'un site

Il y a plusieurs mois, j'ai mis en ligne un service qui vous permettra de savoir si un site fonctionne sous Drupal et sous quelle version.

Il y a 2 fonctionnements possibles:
- Soit les fichiers .TXT ne sont pas protégés ou le fichier CHANGELOG.txt n'a pas été supprimé, et c'est très facile.
- Soit il faut aller plus loin pour connaitre la version, et je me base alors sur le checksum des fichiers disponibles en clair (CSS et JS de drupal)

en lire plus

Par admin

Crash du site

Bonjour à toutes et à tous,

comme vous avez pu le constater le site a été inactif pendant plusieurs jours.
Il se trouve que le serveur hébergeant le site a crashé et que les disques durs ont été endommagés.

Les admins ont pu récupérer les données et remonter l'infra.
Tous les services ne sont pas encore revenus mais l'essentiel est là.

Bonne journée à tous et n'oubliez pas on se retrouve au Drupal Camp Soleil les 24 et 25 mai 2014 à Montpellier.

Par hellosct1

Les stands PHP au salon solutions linux 2014

Le salon « solutions linux » va se dérouler le 20 et 21 mai 2014 au Cnit à Paris. Et de nombreuses sociétés Open source seront présentes, ainsi que de nombreux acteurs du langage PHP.

Linux_2014_150x150.gif

Au niveau du village associatif, le langage PHP sera aussi représenté avec les associations comme Dolibar, AFUP (Association Française des Utilisateurs de PHP), Drupal, GLPI...

Pour ma part, je vais m'occuper des stands AFUP et Drupal, situé sur les stands B41 et B39, mais aussi de nombreuses acteurs de ces communautés seront présents pour répondre à toutes vos questions et bien sur parler de CMS ou encore du langage PHP.

N'hésitez pas à venir nous rencontrer pendant ces 2 jours.

C'est pourquoi sans plus attendre, il faut vous inscrire gratuitement sur le stand du salon linux pour venir nous voir.

Le salon Solutions Linux qui se déroule du 20 et 21 mai 2014

Par Marc Delnatte
Akabia

Drupal 8 : Le Responsive Design

Définition :

Le terme responsive design a été créé par Ethan Marcotte. Il désigne un ensemble de techniques (grille fluide, images flexibles, medias queries CSS3), il est fortement associé aux feuilles de style CSS3.







Par Mantalo Conseil
Benjamin Grapeloux
Agence web, Agence de Communication et Marketing en Dordogne (Aquitaine)

Blue Drop Awards : 2 sites made in Mantalo nominés

Blue Drop Awards, c'est quoi ?

Blue Drop Awards est une initiative communautaire indépendante initiée en 2012 et animée par une collaboration bénévole entre acteurs de la communauté internationale DrupalL'événement est soutenu par Drupal Association, mais ne revêt aucun caractère officiel en lien avec la marque Drupal déposée par Dries Buytaert.

Blue Drop Awards, pourquoi ?

Le concours souhaite permettre aux parties prenantes impliquées dans un projet Drupal de se reconnaître et d'être reconnues pour leur capacité à optimiser ou à enrichir les potentiels qu'offre Drupal en tant que système de gestion de contenu Open Source.

Qui peut concourir ?

Tout le monde peut soumettre un site développé sous Drupal au comité de sélection qui statue sur sa recevabilité.

Quels critères ?

Les finalistes sont sélectionnés par le Comité de remise des prix Blue Drop sur les critères suivants :

  • Innovation,
  • Respect des bonnes pratiques,
  • Structure du contenu,
  • Ergonomie de navigation,
  • Conception visuelle,
  • Fonctionnalités,
  • Expérience utilisateur globale.

2 sites créés par Mantalo parmi les nominés

C'est par twitter que nous avons appris la nomination des C'est sur twitter que nous avons appris que 2 de nos sites avaient été nominés !!! Nous n'avons en effet entrepris aucune démarche particulière, et nous sommes d'autant plus ravis de constater que notre travail ait pu être apprécié comme valorisant pour la communauté Drupal... Thank you guys !

Quand connaitra-t-on les gagnants ?

Le vote sera ouvert au public sur le site BlueDropAwards.org à partir de la liste des finalistes : 
  1. Pré-sélection des candidatures :  du 7 au 21 Avril
  2. Confirmation des candidatures :  du 22 au 28 Avril
  3. Sélection des finalistes par le Comité des prix Blue Drop : du 29 Avril au 4 Mai
  4. Vote du public sur liste des finalistes : du 5 au 19 mai
  5. Le vote se termine le 19 mai minuit CST
  6. Cérémonie DrupalCon Austin, Texas:  4 Juin

Que du positif pour la communauté Drupal !

Les Blue Drop Awards contribueront à la visibilité de la communauté Drupal sur 3 axes :
  • Les Blue Drop Awards font du buzz en dehors de la communauté Drupal... Drupal s'exposant peu aux médias en dépit du très grand nombre de sites prestigieux qui l'utilisent.
  • Les Blue Drop Awards apportent une visibilité aux candidats, aux finalistes, et aux vainqueurs, et une reconnaissance envers la communauté Drupal.
  • Les Blue Drop Awards valorisent une vitrine de projets Drupal primés, ouvrant ainsi la perspective pour tous les porteurs de projets qui se sentent limités dans leurs options créatives !

Tags: 

Pour voir nos 2 sites nominés, rendez vous sur Terroir et vin du Périgord et sur Artisans du foie gras !

Vous aussi avez décidé de professionnaliser vos relations avec votre prestataire Web ? Contactez nous !

Par admin

Présence DrupalFR à Solutions Linux 2014

Le salon "SOLUTIONS LINUX" 2013 se déroule le 20 et 21 mai 2014 au CNIT / La défense.

L'Association Drupal France et Francophonie (DRUPALFR) sera sur le stand B39 dans la partie village associatif et recherche des bonnes volontés pour venir nous aider à tenir le stand pour parler de Drupal et aussi venir nous voir.

  • Si vous souhaitez venir nous rendre visite, vous serez les bienvenus.
  • Si vous voulez tenir le stand avec moi, merci de me contacter en m'indiquant vos disponibilités (par demi journée)

Exemple :

  • Christophe Villeneuve
  • Contact : http://drupalfr.org/profil/hellosct1
  • Stand : matin 20 mai (à partir de 9h)

Il faut en parallèle qu'on parle des matériels!!! Discute-on!

À bientôt!

La page DRUPAL :

http://www.solutionslinux.fr/exposant_154_3498_p.html?eid=875

Planning de présence

Nom 20 mai matin 20 mai AM 21 mai matin 21 mai AM
hellosct1 oui
fgm oui

Horaire du salon

  • Mardi 20 mai 2013 : 9h00-19h00
  • Mercredi 21 mai 2013 : 9h00-18h00

Lieu du salon

  • Le CNIT Paris la Défense
  • Hall Marie Curie

Demander un badge pour entrée

http://www.solutionslinux.fr/preinscription.html

Responsable et contact pour le stand :

Christophe Villeneuve

Plus nous serons nombreux, moins de temps vous serez bloqué.

Pour compléter le planning, merci de poster un message dans les commentaires ou m'envoyer directement un message. Merci

Drupal8 : autopsie d’un module de création de page

image

Téléchargement de Drupal8 et nouvelle arborescence

Après téléchargement de la dernière version de Drupal, vous constaterez déjà de gros changements dans l’arborescence.

image

En effet, un dossier “core” a été ajouté. Cela permet d’éviter aux débutants d’ajouter par mégarde des modules contribués parmi ceux du core. On retrouvera donc dans notre dossier core, les modules et thèmes du coeur de Drupal.

Mais où doit-on ajouter nos modules contribués ? Cela se passe dans le répertoire “modules” à la racine. Comme le recommande Drupal, nous vous conseillons de créer deux sous-répertoires :

  • contrib (contiendra les modules téléchargés depuis Drupal.org)
  • custom (contiendra les modules personnalisés que vous développerez)

Nous gérons nos thèmes personnalisés depuis le répertoire “themes” également à la racine.

Qu’en est-il du fichier de configuration pour relier notre site Drupal à sa base de données ? Et bien nous retrouvons nos habitudes : sites/default/settings.php.

Installation et activation du module salutation

  1. Commencez par récupérer le module “salutation” depuis notre dépôt github
  2. Placez le module “salutation” dans le répertoire modules/custom de votre Drupal. Puis allez activer le module depuis le backoffice de Drupal en cliquant sur ”Extend” (anciennement modules).

Une fois activé, un nouvel item s’ajoute au menu principal : “Salutation - basic page” (http://d8.dev/salutation_page).

image

Nous avons également testé l’ajout de sections à la page de configuration principale (http://d8.dev/admin/config).

image

image

Les fichiers à la loupe

image

Nous allons commencer par parler de la nouvelle extension utilisée dans Drupal8 mais également dans d’autres Framework et CMS : YAML (.yml). Ce format est assez strict en termes d’indentations (La tabulation doit être remplacée par deux espaces). Après un petit temps d’adaptation vous ne pourrez plus vous en passer.

salutation.info.yml

Nous allons regarder plus en détail le fichier salutation.info.yml :

name: Salutation
type: module
description: An example of custum module.
package: Custom modules
core: 8.x

Anciennement nommé avec l’extension .info, ce fichier est toujours obligatoire afin de créer un module sur Drupal8.

On y retrouve comme champs obligatoires :

  • name
  • type (module ou theme)
  • description
  • package
  • core

salutation.routing.yml

Restons dans les fichiers .yml avec salutation.routing.yml :

salutation.admin_config_be:
  path: '/admin/config/be'
  defaults:
    _content: '\Drupal\system\Controller\SystemController::systemAdminMenuBlockPage'
    _title: 'BelleEpoque section title'
  requirements:
    _permission: 'access administration pages'
salutation.admin_config_be_besub:
  path: '/admin/config/be/besub'
  defaults:
    _content: '\Drupal\salutation\Controller\SalutationController::salutationAdminPage'
    _title: 'Salutation admin page title'
  requirements:
    _permission: 'access administration pages'
salutation.salutation_page:
  path: '/salutation_page'
  defaults:
    _content: '\Drupal\salutation\Controller\SalutationController::salutationPage'
    _title: 'Salutation page title'
  requirements:
    _access: 'TRUE'

Ce fichier est nouveau dans Drupal8 et remplace la partie propre au routage qui était gérée auparavant dans le hook_menu.

Vous voyez clairement le rôle de l’indentation dans ce fichier. Pour rappel, vous devez utiliser deux espaces à la place de la tabulation classique.

On y voit trois déclarations de route :

  • salutation.admin_config_be
  • salutation.admin_config_be_besub
  • salutation.admin_page

Ces trois « noms machines » permettent d’identifier une route de manière unique. Par convention, ils commencent par le nom du module suivi d’un point puis un nom qui doivent donner du contexte à cette route. Par exemple, j’ai choisi de reprendre le « path » générique en remplaçant les « / » par des « _ ».

Le path désigne la route pour accéder à la page. Elle commence par un slash (/) et est entre quote (”).

Puis dans defaults, on retrouve :

  • « _content » : C’est le chemin d’accès vers le controller::actionAExecuter
  • « _title » : Titre de la page

Enfin la section “requirements”  permet de définir les règles d’accès à appliquer à la page en question.

Mais que font ces trois routes ?

  1. salutation.admin_config_be permet d’ajouter une section propre à notre module. Cette section apparait seulement si cette dernière compte au moins une page rattachée. Nous la voyons à cette adresse : /admin/config
  2. salutation.admin_config_be_besub est une page d’administration (pour le moment juste une page avec un peu de contenu textuel) qui est rattachée à notre section salutation.admin_config_be.
  3. salutation.admin_page est une page visible par tous les internautes (_access à true pour cette démonstration).

salutation.module

Avant de passer à l’explication du controller, visualisons le fichier salutation.module :

&lt;?php

/**
* Implements hook_menu_link_defaults().
*
* Routing functionality of hook_menu() has been replaced by new routing system:
* <a href="https://drupal.org/node/1800686">https://drupal.org/node/1800686</a>
*/
function salutation_menu_link_defaults() {
  // Basic page on "main" menu.
  $links['salutation.basic_page'] = array(
    'link_title' =&gt; 'Salutation - Basic page',
    'description' =&gt; '',
    'route_name' =&gt; 'salutation.salutation_page',
    'menu_name' =&gt; 'main',
  );

  // Add new section (admin/config path) with an other basic page.
  $links['salutation.admin.be'] = array(
    'link_title' =&gt; 'BelleEpoque section block title',
    'description' =&gt; 'BelleEpoque section block description.',
    'route_name' =&gt; 'salutation.admin_config_be',
    'parent' =&gt; 'system.admin.config',
  );
  $links['salutation.admin.be.besub'] = array(
    'link_title' =&gt; 'BelleEpoque page menu title',
    'description' =&gt; 'BelleEpoque page menu description.',
    'route_name' =&gt; 'salutation.admin_config_be_besub',
    'parent' =&gt; 'salutation.admin.be',
  );

  return $links;
}

Ce dernier est identique à celui sur Drupal7 mais quelques hooks changent comme le hook_menu() qui disparaît pour laisser place au hook_menu_link_defaults().

Ce dernier se concentre sur la déclaration des items de menus car le routage (déclaration des chemins d’accès) est géré dans le fichier salutation.routing.yml.

Entre crochet, on retrouve le nom machine de l’item de menu qu’il ne faut pas confondre avec le nom machine du chemin d’accès déclaré depuis route_name.

Programmation Orientée Objet

Nous arrivons maintenant à la partie Orientée Objet de cet article. Vous allez voir, cela passe tout seul.

Par convention, nos controllers seront dans un dossier controller mais ce dernier n’est pas n’importe où. Encore une fois, il faut respecter les conventions :

Il faut créer cette arborescence : lib/Drupal/[nommodule]/Controller

image

&lt;?php

/**
* @file
* Contains \Drupal\salutation\Controller\SalutationController.
*/

namespace Drupal\salutation\Controller;

use Drupal\Core\Controller\ControllerBase;

/**
* Controller routines for block example routes.
*/
class SalutationController extends ControllerBase {
  /**
   * A simple controller method to explain what the block example is about.
   */
  public function salutationPage() {
    $build = array(
      '#markup' =&gt; t('My first custom page!'),
    );

    return $build;
  }

  /**
   * Admin page.
   *
   * Todo: add form on this page.
   */
  public function salutationAdminPage() {
    $build = array(
      '#markup' =&gt; t('My first custom admin page!'),
    );

    return $build;
  }

}

La classe SalutationController étend ControllerBase (localisée grâce au mot clé use et du chemin Drupal\Core\Controller\ControllerBase).

On y retrouve deux fonctions que vous allez reconnaître. Au niveau de la structure on retrouve Form API référence. Pour rappel, chaque fonction est associée à une route spécifique dans le fichier salutation.routing.yml (voir les lignes “_content”).

Vers l’infini et au delà

image

Nous venons de voir ensemble la nouvelle structure d’un module Drupal8. La standardisation des composants avec l’adoption du YAML et l’utilisation de classes (POO) pour créer des pages, va très certainement améliorer la montée rapide en compétence de nouveaux développeurs Drupal et stimuler l’activité de la communauté.

Nous vous retrouverons très prochainement pour de nouvelles aventures (module de création de blocks, formulaires, etc.).

En attendant, vous pouvez télécharger le module salutation depuis notre dépôt Github.

Par Marc Delnatte
Akabia

Drupal ou Wordpress ? Quel CMS choisir pour son site internet ?

Drupal et Wordpress sont deux CMS Open Source puissants et gratuits qui permettent tous deux de réaliser tout type de site internet : blog, site vitrine, e-commerce, intranet mais aussi des sites multilangues.







Par Marc Delnatte
Akabia

Gérer la configuration dans Drupal 8

Drupal 8 va arriver avec une toute nouvelle façon de gérer la configuration au sens large : les modules, les champs et même des informations comme le nom du site. Toutes ses informations, autrefois stockées en base de données dans drupal 7, seront désormais stockées dans fichier YAML (.yml) qui ne seront rien d’autre que de simples fichiers textes.







Par Marc Delnatte
Akabia

Retrouvez-nous au Nord It Days

L'agence Akabia est heureuse de vous retrouver le jeudi 17 avril prochain, lors de la 6ème édition des Nord IT DAYS, l'événement numérique incontournable de la région Nord-Pas-de-Calais.







Par GoZ
Fabien CLEMENT

Ajouter une propriété à une entitée

Je souhaitais pouvoir ajouter une propriété à une entité. Certainement fatigué au moment où j'ai pensé qu'il était indispensable de faire cela, j'ai bossé dessus une paire d'heures avant de me rendre compte, au moment où tout fonctionnait... que je n'en avais pas besoin finalement...

Histoire que ce ne soit pas perdu, je vais tout de même récapituler ce qu'il faut faire ici.

en lire plus

Par fgm@drupal.org
Frédéric G. Marand

Standardisation PHP : le groupe PHP-FIG et les standards PSR

Avec la montée progressive en niveau d'exigence des projets PHP, notamment dans les projets en entreprise comme les extranets et applications spécifiques, le rôle des frameworks et CMS devient prééminent et, avec leur poids, le besoin de coopérer sans devoir réinventer la roue dans chaque silo technologique: Symfony, Zend Framework, Drupal, et tous les autres.

Depuis 2009, le groupe PHP-FIG s'est fondé pour favoriser l'interopérabilité entre tous ces frameworks, CMS et grandes applications en définissant des standards permettant aux projets d'utiliser des composants à l'interface standardisée pour favoriser le mix and match des meilleurs outils dans chaque environnement. Parmi ces standards:

en lire plus

Pages