SlideShare une entreprise Scribd logo
1  sur  43
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?
Glue Code
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
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!’);
}
function mymodule_form_alter(&$form, &$form_state, $form_id) {
  dpm($form_id);
}
function mymodule_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'article_node_form') {
    dpm($form);
  }
}
function mymodule_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'article_node_form') {
    $form['actions']['submit']['#value'] = t('Publish this article');
  }
}
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 housecarmensimon
 
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 processusGoulven Champenois
 
Irene cimas 6 c
Irene cimas 6 cIrene cimas 6 c
Irene cimas 6 cpacitina
 
(Ocio Instructivo) Joyas del Franquismo
(Ocio Instructivo) Joyas del Franquismo(Ocio Instructivo) Joyas del Franquismo
(Ocio Instructivo) Joyas del FranquismoCeleste 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 EuropaOeko-Institut
 
Pasos Para Pegado Especial
Pasos Para Pegado EspecialPasos Para Pegado Especial
Pasos Para Pegado Especialprocororamirez
 
Pastiche[1]
Pastiche[1]Pastiche[1]
Pastiche[1]katem21
 
Dresdner Impressionen Kalender 2010
Dresdner Impressionen Kalender 2010Dresdner Impressionen Kalender 2010
Dresdner Impressionen Kalender 2010Volker Mölle
 
T E S F
T E S FT E S F
T E S FCHRIS
 
Pml. La EducacióN Libre
Pml. La EducacióN LibrePml. La EducacióN Libre
Pml. La EducacióN LibreUseranav
 

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 - ThemingRomain Jarraud
 
Drupal meetup paris nov 2012
Drupal meetup paris nov 2012Drupal meetup paris nov 2012
Drupal meetup paris nov 2012Romain 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_FormMickael Perraud
 
Introduction à Sinatra
Introduction à SinatraIntroduction à Sinatra
Introduction à SinatraRé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-2015Romain Jarraud
 
Cours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partieCours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partiekadzaki
 
Migration PHP4-PHP5
Migration PHP4-PHP5Migration PHP4-PHP5
Migration PHP4-PHP5julien 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 web5pidou
 
Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHPjulien 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 PerformantHugo 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.docxVincentBweka
 
Cours yeoman backbone box2d
Cours yeoman backbone box2dCours yeoman backbone box2d
Cours yeoman backbone box2dhugomallet
 
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 - afupJulien Vinber
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJSAbdoulaye 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 2017Artusamak
 
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 2014Artusamak
 
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'entendreArtusamak
 
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 2013Artusamak
 
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 2013Artusamak
 
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 2013Artusamak
 
Openlayers - Drupalcamp Paris 2013
Openlayers - Drupalcamp Paris 2013Openlayers - Drupalcamp Paris 2013
Openlayers - Drupalcamp Paris 2013Artusamak
 
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 2013Artusamak
 
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 2013Artusamak
 
Comment contribuer à Drupal
Comment contribuer à DrupalComment contribuer à Drupal
Comment contribuer à DrupalArtusamak
 
Contribuer à drupal
Contribuer à drupalContribuer à drupal
Contribuer à drupalArtusamak
 
Drupal comment contribuer
Drupal comment contribuerDrupal comment contribuer
Drupal comment contribuerArtusamak
 
Drupal commerce - Drupalcamp Toulouse
Drupal commerce - Drupalcamp ToulouseDrupal commerce - Drupalcamp Toulouse
Drupal commerce - Drupalcamp ToulouseArtusamak
 
Drupal commerce nuts and bolts seville
Drupal commerce nuts and bolts   sevilleDrupal commerce nuts and bolts   seville
Drupal commerce nuts and bolts sevilleArtusamak
 
Drupalcamp Nantes - Présentation entités
Drupalcamp Nantes - Présentation entitésDrupalcamp Nantes - Présentation entités
Drupalcamp Nantes - Présentation entitésArtusamak
 
Drupalcamp Nantes - Présentation Drush
Drupalcamp Nantes - Présentation DrushDrupalcamp Nantes - Présentation Drush
Drupalcamp Nantes - Présentation DrushArtusamak
 
Drupalcamp Nantes - Présentation GIT
Drupalcamp Nantes - Présentation GITDrupalcamp Nantes - Présentation GIT
Drupalcamp Nantes - Présentation GITArtusamak
 
Drupalcamp Nantes - Optimisations drupal
Drupalcamp Nantes - Optimisations drupalDrupalcamp Nantes - Optimisations drupal
Drupalcamp Nantes - Optimisations drupalArtusamak
 
Drupalcamp Nantes - Open layers
Drupalcamp Nantes - Open layersDrupalcamp Nantes - Open layers
Drupalcamp Nantes - Open layersArtusamak
 
Drupalcamp Nantes - Lost in translation
Drupalcamp Nantes - Lost in translationDrupalcamp Nantes - Lost in translation
Drupalcamp Nantes - Lost in translationArtusamak
 

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