SlideShare une entreprise Scribd logo
Adapter Drupal
    Florian Lorétan
Adapter Drupal
Adapter Drupal

• Pourquoi?
Adapter Drupal

• Pourquoi?
• La méthode
Adapter Drupal

• Pourquoi?
• La méthode
• Exemples
Adapter Drupal

• Pourquoi?
• La méthode
• Exemples
• Conseils
Adapter Drupal
     Pourquoi?
Drupalcamp Nantes - Adapter Drupal
Drupalcamp Nantes - Adapter Drupal
Drupalcamp Nantes - Adapter Drupal
Glue Code
Drupalcamp Nantes - Adapter Drupal
mymodule.info

name = "My Module"
description = "Example custom module"
core = 7.x



mymodule.module

<?php
La méthode
La méthode

• Quoi et pourquoi?
La méthode

• Quoi et pourquoi?
• Quel composant?
La méthode

• Quoi et pourquoi?
• Quel composant?
• Quelles données
La méthode

• Quoi et pourquoi?
• Quel composant?
• Quelles données
• Comment?
Un exemple
Drupalcamp Nantes - Adapter Drupal
Drupalcamp Nantes - Adapter Drupal
form
api.drupal.org
hook_form_alter(&$form, &$form_state, $form_id)
function mymodule_form_alter(&$form, &$form_state, $form_id) {
  dpm(‘youpiiiii!’);
}
Module “Devel” : http://drupal.org/project/devel


function mymodule_form_alter(&$form, &$form_state, $form_id) {
  dpm(‘youpiiiii!’);
}
Drupalcamp Nantes - Adapter Drupal
Drupalcamp Nantes - Adapter Drupal
function mymodule_form_alter(&$form, &$form_state, $form_id) {
  dpm($form_id);
}
Drupalcamp Nantes - Adapter Drupal
function mymodule_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'article_node_form') {
    dpm($form);
  }
}
Drupalcamp Nantes - Adapter Drupal
Drupalcamp Nantes - Adapter Drupal
Drupalcamp Nantes - Adapter Drupal
function mymodule_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'article_node_form') {
    $form['actions']['submit']['#value'] = t('Publish this article');
  }
}
Drupalcamp Nantes - Adapter Drupal
quelques exemples
function mymodule_menu_alter(&$items) {
  $items['user/register']['type'] = MENU_CALLBACK;
  $items['user/password']['type'] = MENU_CALLBACK;
}
function mymodule_views_post_execute($view) {
  if ($view->name == 'some_view') {
    drupal_set_message(t('There are @count results matching your criteria.',
                                           array('@count' => $view->total_rows)));
  }
}
Attention!

• Sécurité
• Commentaires
• Dépendances
• Références
• Contribuez!
Drupalcamp Nantes - Adapter Drupal
Drupalcamp Nantes - Adapter Drupal
Drupalcamp Nantes - Adapter Drupal

Contenu connexe

En vedette

Jerry, el fantasma de kinston house
Jerry, el fantasma de kinston houseJerry, el fantasma de kinston house
Jerry, el fantasma de kinston house
carmensimon
 
la amistad
la amistadla amistad
la amistad
CLLBARBECHO
 
Navidad
NavidadNavidad
Historia de las tic
Historia de las ticHistoria de las tic
Historia de las tic
Julio César Pinguil Collaguazo
 
Parets de Brussel·les (2)
Parets de Brussel·les (2)Parets de Brussel·les (2)
Parets de Brussel·les (2)
enricllorens
 
Responsive l'indispensable révolution des outils et processus
Responsive l'indispensable révolution des outils et processusResponsive l'indispensable révolution des outils et processus
Responsive l'indispensable révolution des outils et processus
Goulven Champenois
 
Irene cimas 6 c
Irene cimas 6 cIrene cimas 6 c
Irene cimas 6 c
pacitina
 
Proyecto matricula
Proyecto matriculaProyecto matricula
Proyecto matricula
Adriana Córdova Ramos
 
La isla
La islaLa isla
(Ocio Instructivo) Joyas del Franquismo
(Ocio Instructivo) Joyas del Franquismo(Ocio Instructivo) Joyas del Franquismo
(Ocio Instructivo) Joyas del Franquismo
Celeste Box
 
Import und Export von Gebrauchtfahrzeugen in Europa
Import und Export von Gebrauchtfahrzeugen in EuropaImport und Export von Gebrauchtfahrzeugen in Europa
Import und Export von Gebrauchtfahrzeugen in Europa
Oeko-Institut
 
Pasos Para Pegado Especial
Pasos Para Pegado EspecialPasos Para Pegado Especial
Pasos Para Pegado Especial
procororamirez
 
Pastiche[1]
Pastiche[1]Pastiche[1]
Pastiche[1]
katem21
 
091927 Cr
091927 Cr091927 Cr
091927 Cr
Ecobiz 37
 
Solicitudes de actividades ayto 2013 2014
Solicitudes de actividades ayto 2013 2014Solicitudes de actividades ayto 2013 2014
Solicitudes de actividades ayto 2013 2014
Punto Vuela Guadalinfo Sanlucar la Mayor
 
Dresdner Impressionen Kalender 2010
Dresdner Impressionen Kalender 2010Dresdner Impressionen Kalender 2010
Dresdner Impressionen Kalender 2010
Volker Mölle
 
T E S F
T E S FT E S F
T E S F
CHRIS
 
Aimercest
AimercestAimercest
Aimercest
belenpooja
 
Plantas Medicinales
Plantas MedicinalesPlantas Medicinales
Plantas Medicinales
Alexis Vargas
 
Pml. La EducacióN Libre
Pml. La EducacióN LibrePml. La EducacióN Libre
Pml. La EducacióN Libre
Useranav
 

En vedette (20)

Jerry, el fantasma de kinston house
Jerry, el fantasma de kinston houseJerry, el fantasma de kinston house
Jerry, el fantasma de kinston house
 
la amistad
la amistadla amistad
la amistad
 
Navidad
NavidadNavidad
Navidad
 
Historia de las tic
Historia de las ticHistoria de las tic
Historia de las tic
 
Parets de Brussel·les (2)
Parets de Brussel·les (2)Parets de Brussel·les (2)
Parets de Brussel·les (2)
 
Responsive l'indispensable révolution des outils et processus
Responsive l'indispensable révolution des outils et processusResponsive l'indispensable révolution des outils et processus
Responsive l'indispensable révolution des outils et processus
 
Irene cimas 6 c
Irene cimas 6 cIrene cimas 6 c
Irene cimas 6 c
 
Proyecto matricula
Proyecto matriculaProyecto matricula
Proyecto matricula
 
La isla
La islaLa isla
La isla
 
(Ocio Instructivo) Joyas del Franquismo
(Ocio Instructivo) Joyas del Franquismo(Ocio Instructivo) Joyas del Franquismo
(Ocio Instructivo) Joyas del Franquismo
 
Import und Export von Gebrauchtfahrzeugen in Europa
Import und Export von Gebrauchtfahrzeugen in EuropaImport und Export von Gebrauchtfahrzeugen in Europa
Import und Export von Gebrauchtfahrzeugen in Europa
 
Pasos Para Pegado Especial
Pasos Para Pegado EspecialPasos Para Pegado Especial
Pasos Para Pegado Especial
 
Pastiche[1]
Pastiche[1]Pastiche[1]
Pastiche[1]
 
091927 Cr
091927 Cr091927 Cr
091927 Cr
 
Solicitudes de actividades ayto 2013 2014
Solicitudes de actividades ayto 2013 2014Solicitudes de actividades ayto 2013 2014
Solicitudes de actividades ayto 2013 2014
 
Dresdner Impressionen Kalender 2010
Dresdner Impressionen Kalender 2010Dresdner Impressionen Kalender 2010
Dresdner Impressionen Kalender 2010
 
T E S F
T E S FT E S F
T E S F
 
Aimercest
AimercestAimercest
Aimercest
 
Plantas Medicinales
Plantas MedicinalesPlantas Medicinales
Plantas Medicinales
 
Pml. La EducacióN Libre
Pml. La EducacióN LibrePml. La EducacióN Libre
Pml. La EducacióN Libre
 

Similaire à Drupalcamp Nantes - Adapter Drupal

DrupalCamp Paris 2013 - Theming
DrupalCamp Paris 2013 - ThemingDrupalCamp Paris 2013 - Theming
DrupalCamp Paris 2013 - Theming
Romain Jarraud
 
Drupal meetup paris nov 2012
Drupal meetup paris nov 2012Drupal meetup paris nov 2012
Drupal meetup paris nov 2012
Romain Jarraud
 
Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4
🏁 Pierre-Henry Soria 💡
 
Quoi de neuf dans Zend Framework 1.10 ?
Quoi de neuf dans Zend Framework 1.10 ?Quoi de neuf dans Zend Framework 1.10 ?
Quoi de neuf dans Zend Framework 1.10 ?
Mickael Perraud
 
Tirer parti des décorateurs de Zend_Form
Tirer parti des décorateurs de Zend_FormTirer parti des décorateurs de Zend_Form
Tirer parti des décorateurs de Zend_Form
Mickael Perraud
 
Introduction à Sinatra
Introduction à SinatraIntroduction à Sinatra
Introduction à Sinatra
Rémi Prévost
 
Theming drupal8 - Meetup Paris - 26-mars-2015
Theming drupal8 - Meetup Paris - 26-mars-2015Theming drupal8 - Meetup Paris - 26-mars-2015
Theming drupal8 - Meetup Paris - 26-mars-2015
Romain Jarraud
 
Cours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partieCours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partie
kadzaki
 
Migration PHP4-PHP5
Migration PHP4-PHP5Migration PHP4-PHP5
Migration PHP4-PHP5
julien pauli
 
Quelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application webQuelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application web
5pidou
 
Formation php pdo
Formation php pdoFormation php pdo
Formation php pdo
Souhaibou Salla
 
Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHP
julien pauli
 
Model view-view model (mvvm)
Model view-view model (mvvm)Model view-view model (mvvm)
Model view-view model (mvvm)
Ghassen Smida
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
Hugo Hamon
 
Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!
Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!
Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!
Sébastien Levert
 
démonstration code source site web ecole.docx
démonstration code source site web ecole.docxdémonstration code source site web ecole.docx
démonstration code source site web ecole.docx
VincentBweka
 
Cours yeoman backbone box2d
Cours yeoman backbone box2dCours yeoman backbone box2d
Cours yeoman backbone box2d
hugomallet
 
Php 7.4 2020-01-28 - afup
Php 7.4   2020-01-28 - afupPhp 7.4   2020-01-28 - afup
Php 7.4 2020-01-28 - afup
Julien Vinber
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
Abdoulaye Dieng
 

Similaire à Drupalcamp Nantes - Adapter Drupal (20)

DrupalCamp Paris 2013 - Theming
DrupalCamp Paris 2013 - ThemingDrupalCamp Paris 2013 - Theming
DrupalCamp Paris 2013 - Theming
 
Drupal meetup paris nov 2012
Drupal meetup paris nov 2012Drupal meetup paris nov 2012
Drupal meetup paris nov 2012
 
Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4
 
Quoi de neuf dans Zend Framework 1.10 ?
Quoi de neuf dans Zend Framework 1.10 ?Quoi de neuf dans Zend Framework 1.10 ?
Quoi de neuf dans Zend Framework 1.10 ?
 
Tirer parti des décorateurs de Zend_Form
Tirer parti des décorateurs de Zend_FormTirer parti des décorateurs de Zend_Form
Tirer parti des décorateurs de Zend_Form
 
Introduction à Sinatra
Introduction à SinatraIntroduction à Sinatra
Introduction à Sinatra
 
Theming drupal8 - Meetup Paris - 26-mars-2015
Theming drupal8 - Meetup Paris - 26-mars-2015Theming drupal8 - Meetup Paris - 26-mars-2015
Theming drupal8 - Meetup Paris - 26-mars-2015
 
Cours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partieCours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partie
 
Migration PHP4-PHP5
Migration PHP4-PHP5Migration PHP4-PHP5
Migration PHP4-PHP5
 
Quelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application webQuelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application web
 
Backbonejs presentation
Backbonejs presentationBackbonejs presentation
Backbonejs presentation
 
Formation php pdo
Formation php pdoFormation php pdo
Formation php pdo
 
Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHP
 
Model view-view model (mvvm)
Model view-view model (mvvm)Model view-view model (mvvm)
Model view-view model (mvvm)
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
 
Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!
Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!
Collab365 - Office 365 API & PowerShell : Le meilleur des deux mondes!
 
démonstration code source site web ecole.docx
démonstration code source site web ecole.docxdémonstration code source site web ecole.docx
démonstration code source site web ecole.docx
 
Cours yeoman backbone box2d
Cours yeoman backbone box2dCours yeoman backbone box2d
Cours yeoman backbone box2d
 
Php 7.4 2020-01-28 - afup
Php 7.4   2020-01-28 - afupPhp 7.4   2020-01-28 - afup
Php 7.4 2020-01-28 - afup
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
 

Plus de Artusamak

On test quoi - DCLannion 2017
On test quoi - DCLannion 2017On test quoi - DCLannion 2017
On test quoi - DCLannion 2017
Artusamak
 
Care for your backoffice - Drupal Dev Days Szeged 2014
Care for your backoffice - Drupal Dev Days Szeged 2014Care for your backoffice - Drupal Dev Days Szeged 2014
Care for your backoffice - Drupal Dev Days Szeged 2014
Artusamak
 
Agilité - Drupal et Scrum sont faits pour s'entendre
Agilité - Drupal et Scrum sont faits pour s'entendreAgilité - Drupal et Scrum sont faits pour s'entendre
Agilité - Drupal et Scrum sont faits pour s'entendre
Artusamak
 
Drupal 8: Mobile initiative - Drupalcamp Paris 2013
Drupal 8: Mobile initiative - Drupalcamp Paris 2013Drupal 8: Mobile initiative - Drupalcamp Paris 2013
Drupal 8: Mobile initiative - Drupalcamp Paris 2013
Artusamak
 
Il n'y a pas que Drupal dans la vie - Drupalcamp Paris 2013
Il n'y a pas que Drupal dans la vie - Drupalcamp Paris 2013Il n'y a pas que Drupal dans la vie - Drupalcamp Paris 2013
Il n'y a pas que Drupal dans la vie - Drupalcamp Paris 2013
Artusamak
 
Drupal un projet comme les autres ? Drupalcamp Paris 2013
Drupal un projet comme les autres ? Drupalcamp Paris 2013Drupal un projet comme les autres ? Drupalcamp Paris 2013
Drupal un projet comme les autres ? Drupalcamp Paris 2013
Artusamak
 
Openlayers - Drupalcamp Paris 2013
Openlayers - Drupalcamp Paris 2013Openlayers - Drupalcamp Paris 2013
Openlayers - Drupalcamp Paris 2013
Artusamak
 
Retour d'expérience : France Télévisions - Drupalcamp Paris 2013
Retour d'expérience : France Télévisions - Drupalcamp Paris 2013Retour d'expérience : France Télévisions - Drupalcamp Paris 2013
Retour d'expérience : France Télévisions - Drupalcamp Paris 2013
Artusamak
 
Drupal, scrum et l'agilité - Drupalcamp Paris 2013
Drupal, scrum et l'agilité - Drupalcamp Paris 2013Drupal, scrum et l'agilité - Drupalcamp Paris 2013
Drupal, scrum et l'agilité - Drupalcamp Paris 2013
Artusamak
 
Comment contribuer à Drupal
Comment contribuer à DrupalComment contribuer à Drupal
Comment contribuer à Drupal
Artusamak
 
Contribuer à drupal
Contribuer à drupalContribuer à drupal
Contribuer à drupal
Artusamak
 
Drupal comment contribuer
Drupal comment contribuerDrupal comment contribuer
Drupal comment contribuer
Artusamak
 
Drupal commerce - Drupalcamp Toulouse
Drupal commerce - Drupalcamp ToulouseDrupal commerce - Drupalcamp Toulouse
Drupal commerce - Drupalcamp Toulouse
Artusamak
 
Drupal commerce nuts and bolts seville
Drupal commerce nuts and bolts   sevilleDrupal commerce nuts and bolts   seville
Drupal commerce nuts and bolts seville
Artusamak
 
Drupalcamp Nantes - Présentation entités
Drupalcamp Nantes - Présentation entitésDrupalcamp Nantes - Présentation entités
Drupalcamp Nantes - Présentation entités
Artusamak
 
Drupalcamp Nantes - Présentation Drush
Drupalcamp Nantes - Présentation DrushDrupalcamp Nantes - Présentation Drush
Drupalcamp Nantes - Présentation Drush
Artusamak
 
Drupalcamp Nantes - Présentation GIT
Drupalcamp Nantes - Présentation GITDrupalcamp Nantes - Présentation GIT
Drupalcamp Nantes - Présentation GIT
Artusamak
 
Drupalcamp Nantes - Optimisations drupal
Drupalcamp Nantes - Optimisations drupalDrupalcamp Nantes - Optimisations drupal
Drupalcamp Nantes - Optimisations drupal
Artusamak
 
Drupalcamp Nantes - Open layers
Drupalcamp Nantes - Open layersDrupalcamp Nantes - Open layers
Drupalcamp Nantes - Open layers
Artusamak
 
Drupalcamp Nantes - Lost in translation
Drupalcamp Nantes - Lost in translationDrupalcamp Nantes - Lost in translation
Drupalcamp Nantes - Lost in translation
Artusamak
 

Plus de Artusamak (20)

On test quoi - DCLannion 2017
On test quoi - DCLannion 2017On test quoi - DCLannion 2017
On test quoi - DCLannion 2017
 
Care for your backoffice - Drupal Dev Days Szeged 2014
Care for your backoffice - Drupal Dev Days Szeged 2014Care for your backoffice - Drupal Dev Days Szeged 2014
Care for your backoffice - Drupal Dev Days Szeged 2014
 
Agilité - Drupal et Scrum sont faits pour s'entendre
Agilité - Drupal et Scrum sont faits pour s'entendreAgilité - Drupal et Scrum sont faits pour s'entendre
Agilité - Drupal et Scrum sont faits pour s'entendre
 
Drupal 8: Mobile initiative - Drupalcamp Paris 2013
Drupal 8: Mobile initiative - Drupalcamp Paris 2013Drupal 8: Mobile initiative - Drupalcamp Paris 2013
Drupal 8: Mobile initiative - Drupalcamp Paris 2013
 
Il n'y a pas que Drupal dans la vie - Drupalcamp Paris 2013
Il n'y a pas que Drupal dans la vie - Drupalcamp Paris 2013Il n'y a pas que Drupal dans la vie - Drupalcamp Paris 2013
Il n'y a pas que Drupal dans la vie - Drupalcamp Paris 2013
 
Drupal un projet comme les autres ? Drupalcamp Paris 2013
Drupal un projet comme les autres ? Drupalcamp Paris 2013Drupal un projet comme les autres ? Drupalcamp Paris 2013
Drupal un projet comme les autres ? Drupalcamp Paris 2013
 
Openlayers - Drupalcamp Paris 2013
Openlayers - Drupalcamp Paris 2013Openlayers - Drupalcamp Paris 2013
Openlayers - Drupalcamp Paris 2013
 
Retour d'expérience : France Télévisions - Drupalcamp Paris 2013
Retour d'expérience : France Télévisions - Drupalcamp Paris 2013Retour d'expérience : France Télévisions - Drupalcamp Paris 2013
Retour d'expérience : France Télévisions - Drupalcamp Paris 2013
 
Drupal, scrum et l'agilité - Drupalcamp Paris 2013
Drupal, scrum et l'agilité - Drupalcamp Paris 2013Drupal, scrum et l'agilité - Drupalcamp Paris 2013
Drupal, scrum et l'agilité - Drupalcamp Paris 2013
 
Comment contribuer à Drupal
Comment contribuer à DrupalComment contribuer à Drupal
Comment contribuer à Drupal
 
Contribuer à drupal
Contribuer à drupalContribuer à drupal
Contribuer à drupal
 
Drupal comment contribuer
Drupal comment contribuerDrupal comment contribuer
Drupal comment contribuer
 
Drupal commerce - Drupalcamp Toulouse
Drupal commerce - Drupalcamp ToulouseDrupal commerce - Drupalcamp Toulouse
Drupal commerce - Drupalcamp Toulouse
 
Drupal commerce nuts and bolts seville
Drupal commerce nuts and bolts   sevilleDrupal commerce nuts and bolts   seville
Drupal commerce nuts and bolts seville
 
Drupalcamp Nantes - Présentation entités
Drupalcamp Nantes - Présentation entitésDrupalcamp Nantes - Présentation entités
Drupalcamp Nantes - Présentation entités
 
Drupalcamp Nantes - Présentation Drush
Drupalcamp Nantes - Présentation DrushDrupalcamp Nantes - Présentation Drush
Drupalcamp Nantes - Présentation Drush
 
Drupalcamp Nantes - Présentation GIT
Drupalcamp Nantes - Présentation GITDrupalcamp Nantes - Présentation GIT
Drupalcamp Nantes - Présentation GIT
 
Drupalcamp Nantes - Optimisations drupal
Drupalcamp Nantes - Optimisations drupalDrupalcamp Nantes - Optimisations drupal
Drupalcamp Nantes - Optimisations drupal
 
Drupalcamp Nantes - Open layers
Drupalcamp Nantes - Open layersDrupalcamp Nantes - Open layers
Drupalcamp Nantes - Open layers
 
Drupalcamp Nantes - Lost in translation
Drupalcamp Nantes - Lost in translationDrupalcamp Nantes - Lost in translation
Drupalcamp Nantes - Lost in translation
 

Drupalcamp Nantes - Adapter Drupal