PHP 5.4 Développez un site web dynamique et interactif



Documents pareils
DRUPAL Réalisez des développements professionnels avec PHP (2ième édition)

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Joomla! Création et administration d'un site web - Version numérique

Introduction : présentation de la Business Intelligence

Silfid : Agence de création de site internet, formations et Conseils Retour sommaire

CMS Made Simple Version 1.4 Jamaica. Tutoriel utilisateur Récapitulatif Administration

Drupal Développeur. Theming et développement pour Drupal. Une formation Formateur : Fabien Crépin. Drupal Développeur.

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

GLPI (Gestion Libre. 2 ième édition. Nouvelle édition. de Parc Informatique)

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Formation Webmaster : Création de site Web Initiation + Approfondissement

Drupal (V7) : principes et petite expérience

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens

Business Intelligence avec SQL Server 2012

Devenez un véritable développeur web en 3 mois!

Construction d un Site Internet Dynamique avec Joomla René-Yves Hervé, Ph.D.

Formation : WEbMaster

Drupal Contributeur. Maitrisez la publication sous Drupal. Une formation Formateur : Fabien Crépin. Drupal Contributeur.

Drupal : quelques fonctionnalités (ce qu il permet, ce qu il ne permet pas)

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Manuel d'utilisation d'apimail V3

SAP BusinessObjects Web Intelligence (WebI) BI 4

SQL Server Administration d'une base de données transactionnelle avec SQL Server Management Studio (édition enrichie de vidéos)

Diffuser un contenu sur Internet : notions de base... 13

Espace de travail collaboratif

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

Sage CRM. 7.2 Guide de Portail Client

Programmation Web. Madalina Croitoru IUT Montpellier

Utiliser un CMS: Wordpress

Réussir. son site e-commerce. avecoscommerce

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Table des matières. 1 À propos de ce manuel Icônes utilisées dans ce manuel Public visé Commentaires...

Chapitre 1 Introduction

PLATEFORME DE GESTION DE CONGRÈS SCIENTIFIQUES

Drupal, pour quel usage? Comment se positionne Drupal? Les fonctionnalités de Drupal et de son écosystème. L'architecture technique et logicielle Le

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Bureautique Initiation Excel-Powerpoint

les techniques d'extraction, les formulaires et intégration dans un site WEB

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Espace numérique de travail collaboratif

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

ECLIPSE ET PDT (Php development tools)

PLATEFORME DE GESTION DE CONGRÈS SCIENTIFIQUES. h tt p : / / w w w. s c i e n c e s c o n f. o rg

Ubuntu Linux Création, configuration et gestion d'un réseau local d'entreprise (3ième édition)

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

Manuel du composant CKForms Version 1.3.2

MEDIAplus elearning. version 6.6

GLPI (Gestion Libre de Parc Informatique) Installation et configuration d'une solution de gestion de parc et de helpdesk (2ième édition)

Sommaire. Préface 1 : Pourquoi choisir Magento? Chapitre 1 : Magento, quésaco? Chapitre 2 : Quoi sous le capot?

Support Google Analytics - 1 / 22 -

BES WEBDEVELOPER ACTIVITÉ RÔLE

LISTE DES FONCTIONNALITES - TINY v1.5 -

Alfresco et TYPO3 Présenté par Yannick Pavard dans le cadre des rencontres WebEducation Février 2008

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Un site web collaboratif avec Drupal. Judith Hannoun - Journées INSHS 16 Octobre 2012

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

Drupal, le couteau suisse de la publication d informations

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

Introduction à. Oracle Application Express

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Sage 100 CRM - Guide de démarrage rapide Version 8. Mise à jour : 2015 version 8

et Groupe Eyrolles, 2006, ISBN :

SharePoint Foundation 2013 Construire un intranet collaboratif en PME (édition enrichie de vidéos)

1. Installation du Module

Nouveautés de Drupal 8. Léon

Hébergement de site web Damien Nouvel

PLATEFORME DE GESTION DE CONGRÈS SCIENTIFIQUES. 12 mars 2015

Comment développer et intégrer un module à PhpMyLab?

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

LANDPARK HELPDESK HISTORIQUES DES AMÉLIORATIONS PAR VERSIONS

LIMESURVEY. LimeSurvey est une application permettant de créer des questionnaires d enquête en ligne et d en suivre le dépouillement.

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Sage CRM. Sage CRM 7.3 Guide du portable

Catalogue des formations : Utilisation d outils Open Source

SQL Server 2014 Administration d'une base de données transactionnelle avec SQL Server Management Studio

GUIDE (NON OFFICIEL) DE L UTILISATEUR

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

Concevoir et déployer. Drupal. ses sites web avec. 2 e édition. Préface de Edwy Plenel. Groupe Eyrolles, 2009, 2010, ISBN :

//////////////////////////////////////////////////////////////////// Administration bases de données

Extension WebEx pour la téléphonie IP Cisco Unified

Logiciel : GLPI Version : SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

La gestion des boîtes aux lettres partagées

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Livre Blanc WebSphere Transcoding Publisher

4. Personnalisation du site web de la conférence

Stockage du fichier dans une table mysql:

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Alfresco Guide Utilisateur

CMS Open Source : état de l'art et méthodologie de choix

Projet en nouvelles technologies de l information et de la communication

GUIDE D INSTALLATION. Portaneo Enterprise Portal version 4.0

Présentation, mise en place, et administration d'ocs Inventory et de GLPI

Transcription:

Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières

Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage............................................. 9 2. Bref historique de PHP.......................................... 10 3. Où se procurer PHP?........................................... 10 4. Conventions d'écriture.......................................... 12 Chapitre 2 Vue d'ensemble de PHP 1. Qu'est-ce que PHP?............................................. 13 2. Structure de base d'une page PHP................................. 15 2.1 Les balises PHP............................................ 15 2.2 La fonction echo........................................... 15 2.3 Le séparateur d'instructions.................................. 17 2.4 Le commentaire........................................... 17 2.5 Mixer du PHP et de l'html................................. 18 2.6 Règles de nommage........................................ 21 3. Configuration de PHP........................................... 21 3.1 Le fichier de configuration php.ini............................ 21 3.2 Informations sur la configuration............................. 22 4. Utiliser PHP en ligne de commande................................ 25 Chapitre 3 Variables, constantes, types et tableaux 1. Constantes.................................................... 27 1.1 Définition................................................ 27 1.2 Portée.................................................... 28 1.3 Fonctions utiles............................................ 29 2. Variables...................................................... 31 2.1 Initialisation et affectation.................................. 31 2.2 Portée et durée de vie....................................... 32 2.3 Fonctions utiles............................................ 33

2 PHP 5.4 Développez un site web dynamique et interactif 2.4 Variable dynamique (ou variable variable)...................... 39 3. Types de données............................................... 39 3.1 Types disponibles.......................................... 39 3.2 Conversions............................................... 46 3.3 Fonctions utiles............................................ 50 4. Tableaux...................................................... 55 4.1 Définition................................................ 55 4.2 Création.................................................. 56 4.3 Manipulation.............................................. 61 4.4 Portée.................................................... 65 4.5 Fonctions utiles............................................ 65 5. Quelques fonctions utiles sur les chaînes de caractères, les dates et les nombres.............................. 75 5.1 Préambule................................................ 75 5.2 Manipulation des chaînes de caractères........................ 75 5.3 Utiliser les expressions rationnelles............................ 90 5.3.1 Introduction......................................... 90 5.3.2 Structure d une expression rationnelle.................... 91 5.3.3 Fonctions.......................................... 100 5.4 Manipulation des dates.................................... 105 5.5 Générer un nombre aléatoire................................ 118 Chapitre 4 Opérateurs 1. L'opérateur d'affectation par valeur............................... 119 2. L'opérateur d'affectation par référence............................. 120 3. Les opérateurs arithmétiques.................................... 122 4. L'opérateur de chaîne........................................... 123 5. Les opérateurs de comparaison................................... 123 6. Les opérateurs logiques......................................... 124 7. L'opérateur ternaire............................................ 125 8. Les opérateurs combinés........................................ 126 9. Précédence des opérateurs....................................... 126

Table des matières 3 Chapitre 5 Structures de contrôle 1. Les contrôles conditionnels...................................... 127 1.1 If....................................................... 127 1.2 Switch.................................................. 130 2. Les contrôles itératifs.......................................... 132 2.1 While................................................... 132 2.2 Do... while.............................................. 134 2.3 For..................................................... 135 2.4 Continue et break......................................... 138 3. Inclure un fichier.............................................. 139 3.1 Fonctionnement.......................................... 139 3.2 Utilisation............................................... 141 4. Interrompre le script........................................... 143 Chapitre 6 Fonctions et classes 1. Fonctions.................................................... 145 1.1 Introduction............................................. 145 1.2 Déclaration et appel....................................... 145 1.3 Paramètres............................................... 149 1.4 Valeur de retour.......................................... 153 1.5 Considérations sur les variables utilisées dans les fonctions....... 154 1.6 Les constantes et les fonctions............................... 157 1.7 Récursivité............................................... 158 1.8 Fonction anonyme........................................ 160 2. Classes...................................................... 161 2.1 Concept................................................. 161 2.2 Définir une classe......................................... 162 2.3 Instancier une classe....................................... 165 2.4 Héritage................................................. 167 2.5 Autres fonctionnalités sur les classes......................... 169 2.5.1 Classe ou méthode abstraite........................... 169 2.5.2 Classe ou méthode finale............................. 170

4 PHP 5.4 Développez un site web dynamique et interactif 2.5.3 Interface........................................... 171 2.5.4 Attribut ou méthode statique - Constante de classe........ 172 2.5.5 Traits.............................................. 174 2.6 Exceptions............................................... 176 3. Les espaces de noms............................................ 178 Chapitre 7 Gérer les formulaires 1. Vue d'ensemble............................................... 183 1.1 Petit rappel sur les formulaires............................... 183 1.2 Interaction entre un formulaire et un script PHP................ 186 2. Récupérer les données saisies dans le formulaire..................... 191 2.1 Principe................................................. 191 2.2 Les différents types de zones................................ 195 2.3 Synthèse................................................. 207 3. Construire un formulaire dynamiquement......................... 209 4. Contrôler les données saisies..................................... 214 4.1 Vue d'ensemble........................................... 214 4.2 Vérifications classiques..................................... 214 5. Les problèmes sur les données saisies.............................. 219 5.1 La fonctionnalité de "magic quotes"........................... 219 5.2 Autres problèmes sur les données saisies....................... 220 6. Utilisation des filtres........................................... 227 6.1 Principes................................................. 227 6.2 Application aux formulaires................................. 236 7. Aller sur une autre page à la fin du traitement...................... 238 Chapitre 8 Accéder aux bases de données 1. Introduction.................................................. 245 1.1 Vue d'ensemble........................................... 245 1.2 La notion de fetch......................................... 247

Table des matières 5 2. Utilisation de MySQL.......................................... 248 2.1 Préambule............................................... 248 2.2 Connexion et déconnexion................................. 249 2.3 Lire des données.......................................... 251 2.4 Mettre à jour des données.................................. 271 2.5 Gérer les erreurs.......................................... 278 2.6 Requêtes préparées........................................ 282 2.6.1 Vue d ensemble..................................... 282 2.6.2 Préparer une requête................................. 284 2.6.3 Lier des variables PHP aux paramètres de la requête........ 285 2.6.4 Exécuter la requête.................................. 286 2.6.5 Obtenir des informations sur le résultat d'une requête de mise à jour........................... 287 2.6.6 Lier des variables PHP aux colonnes du résultat d'une requête de lecture............................... 289 2.6.7 Extraire le résultat d'une requête de lecture............... 291 2.6.8 Utiliser un résultat stocké............................. 292 2.6.9 Gérer les erreurs..................................... 295 2.6.10 Fermer une requête préparée........................... 296 2.7 Utilisation de l extension MySQL............................ 297 3. Utilisation d'oracle............................................ 300 3.1 Préambule............................................... 300 3.2 Environnement NLS....................................... 301 3.3 Connexion et déconnexion................................. 301 3.4 Lire des données.......................................... 304 3.5 Mettre à jour des données.................................. 330 3.6 Appeler une procédure stockée.............................. 339 3.7 Illustration des problèmes liés à l'environnement NLS........... 343 3.8 Gérer les erreurs.......................................... 345 4. Utilisation de SQLite........................................... 349 4.1 Préambule............................................... 349 4.2 Ouvrir et fermer une base.................................. 350 4.3 Lire des données.......................................... 351 4.4 Mettre à jour des données.................................. 364 4.5 Gérer les erreurs.......................................... 371 5. PHP Data Objects (PDO)....................................... 374

6 PHP 5.4 Développez un site web dynamique et interactif 6. "Magic quotes" : le retour....................................... 377 6.1 Préambule............................................... 377 6.2 Chargement des données en provenance d'une base............. 379 6.3 Mise à jour des données dans la base.......................... 380 Chapitre 9 Gérer les sessions 1. Description du problème........................................ 385 2. Authentification.............................................. 389 2.1 Vue d'ensemble........................................... 389 2.2 Saisie de l'identification.................................... 389 2.3 Vérifier l'identification saisie................................ 395 3. Créer un identifiant unique...................................... 396 4. Passer des informations par l'url................................ 398 4.1 Principe................................................. 398 4.2 "magic quotes" : le retour................................... 403 4.3 Application à la gestion des sessions.......................... 403 4.4 Remarques et conclusion................................... 409 5. Passer des informations par une zone de formulaire cachée............ 410 5.1 Principe................................................. 410 5.2 Application à la gestion des sessions.......................... 412 5.3 Remarques et conclusion................................... 415 6. Utiliser des cookies............................................ 416 6.1 Principe................................................. 416 6.2 "magic quotes" : le retour................................... 422 6.3 Application à la gestion des sessions.......................... 422 6.4 Remarques et conclusion................................... 428 7. Utiliser la gestion des sessions de PHP............................. 429 7.1 Principes................................................. 429 7.2 Mise en œuvre............................................ 430 7.3 Gérer soi-même la transmission de l'identifiant de session........ 440 7.4 Quelques directives de configuration supplémentaires........... 446 7.5 Application à la gestion des sessions.......................... 447 7.6 Remarques et conclusion................................... 453

Table des matières 7 8. Conserver des informations d'une visite à une autre................. 456 9. Petite synthèse sur les variables Get/Post/Cookie/Session............. 462 Chapitre 10 Envoyer un courrier électronique 1. Vue d'ensemble............................................... 465 2. Envoyer un message texte sans pièce jointe........................ 465 3. Envoyer un message au format MIME............................ 468 3.1 Préambule............................................... 468 3.2 Message au format HTML.................................. 468 3.3 Message avec pièce jointe................................... 472 Chapitre 11 Gérer les fichiers 1. Manipuler les fichiers sur le serveur............................... 475 2. magic quotes................................................. 484 3. Télécharger un fichier à partir du client : "file upload"................ 485 4. Télécharger un fichier à partir du serveur : "download"............... 490 Chapitre 12 Gérer les erreurs dans un script PHP 1. Vue d'ensemble............................................... 497 2. Les messages d'erreur PHP....................................... 498 3. Les fonctions de gestion des erreurs............................... 500

8 PHP 5.4 Développez un site web dynamique et interactif Annexe 1. Variables PHP prédéfinies....................................... 513 2. Constantes PHP prédéfinies..................................... 515 3. Exemples complémentaires...................................... 516 3.1 Introduction............................................. 516 3.2 Lire un document XML.................................... 516 3.3 Générer un document PDF.................................. 521 3.4 Générer une image........................................ 526 Index........................................................ 533

Editions ENI DRUPAL Réalisez des développements professionnels avec PHP (2 ième édition) Collection Expert IT Table des matières

Table des matières 1 Préface Chapitre 1 Introduction 1. Les systèmes de gestion de contenu.......................... 11 2. Les avantages de Drupal.................................... 15 3. Le fonctionnement de Drupal............................... 17 4. L'environnement de développement.......................... 20 5. L'installation de Drupal.................................... 25 6. Le passage de Drupal 6 à Drupal 7............................ 35 7. Conclusion.............................................. 35 Chapitre 2 Drupal et son architecture 1. L'arborescence des répertoires............................... 37 2. La création dynamique des pages............................ 39 3. Les entités............................................... 40 3.1 Le principe........................................... 40 3.2 Les types d'entité standard.............................. 41 3.3 La gestion des champs................................. 42 4. Les structures de données : les types de contenu................ 43 5. Les contenus : les nœuds................................... 45 5.1 Le principe des nœuds................................. 45 5.2 Les révisions......................................... 48 5.3 Les traductions....................................... 50 6. La classification des données : la taxonomie.................... 51 6.1 Les vocabulaires...................................... 51

2 Drupal Réalisez des développements professionnels avec PHP 6.2 Les termes........................................... 54 6.2.1 Les termes...................................... 54 6.2.2 Les termes parents............................... 56 7. La gestion des utilisateurs et leurs droits d'accès................ 57 7.1 Les comptes utilisateurs................................ 57 7.2 Les rôles............................................. 59 7.3 Les droits d'accès...................................... 61 8. L'organisation des pages.................................... 62 8.1 Les thèmes........................................... 62 8.2 Les régions........................................... 63 8.3 Les blocs............................................ 65 9. La gestion multisite....................................... 70 9.1 Le principe........................................... 70 9.2 La pratique.......................................... 71 10. La recherche et l'indexation................................. 72 11. Conclusion.............................................. 76 Chapitre 3 Utiliser Drupal 1. La zone d'administration................................... 77 1.1 La barre d'outils....................................... 77 1.2 La zone de configuration............................... 78 2. Les types de contenu et les nœuds........................... 84 2.1 La création d'un type de contenu........................ 84 2.1.1 Les interfaces.................................... 84 2.1.2 Un cas pratique : le type Document................. 90 2.2 La création d'un nœud................................. 93 2.2.1 Les interfaces.................................... 93 2.2.2 Un cas pratique.................................. 95

Table des matières 3 3. La taxonomie ou classification.............................. 97 3.1 La création d'un vocabulaire............................ 97 3.1.1 Les interfaces.................................... 97 3.1.2 Un cas pratique.................................. 99 3.2 L'ajout de termes..................................... 101 3.2.1 Les interfaces................................... 101 3.2.2 Un cas pratique................................. 103 4. Les blocs................................................ 109 4.1 Les interfaces........................................ 109 4.2 Un cas pratique...................................... 114 5. Les utilisateurs et les droits................................ 117 5.1 La création d'un rôle.................................. 117 5.2 L'attribution des droits d'accès.......................... 119 5.2.1 Les interfaces................................... 119 5.2.2 Un cas pratique................................. 120 5.3 La création d'un utilisateur............................ 120 5.3.1 Les interfaces................................... 120 5.3.2 Un cas pratique................................. 123 6. Les champs............................................. 126 6.1 Le principe.......................................... 126 6.2 Les types de champ................................... 130 6.3 Des cas pratiques.................................... 131 6.3.1 L'ajout d'un champ à un type de contenu............ 131 6.3.2 L'ajout d'un champ à un terme.................... 138 6.3.3 L'ajout d'un champ à un utilisateur................. 141 7. Conclusion............................................. 144

4 Drupal Réalisez des développements professionnels avec PHP Chapitre 4 Étendre Drupal 1. L'importance des modules................................. 145 2. La gestion des modules.................................... 147 2.1 L'installation, la désinstallation et la mise à jour........... 147 2.1.1 L'installation................................... 147 2.1.2 La désinstallation............................... 149 2.1.3 La mise à jour.................................. 151 2.2 L'activation et la désactivation......................... 156 3. Les modules standard..................................... 157 3.1 La liste complète..................................... 157 3.2 Quelques modules en détail............................ 160 3.2.1 Agrégation de flux RSS : Aggregator................ 160 3.2.2 Le blog : Blog................................... 167 3.2.3 Le forum : Forum............................... 169 3.2.4 Le sondage : Poll................................ 178 3.2.5 La réécriture d'url : Path........................ 183 3.2.6 Les styles d'image : Image........................ 185 4. Les modules additionnels.................................. 194 4.1 Introduction........................................ 194 4.2 Un cas pratique...................................... 196 4.3 Le module Token.................................... 198 4.4 Les modules de gestion des champs..................... 199 4.4.1 Le module Entity Reference....................... 199 4.4.2 Le module Field Permissions...................... 202 4.4.3 Le module Field Group........................... 204 4.5 La gestion de l'affichage avec Views..................... 207 4.5.1 Le principe..................................... 207 4.5.2 Les principaux types de vues...................... 210 4.5.3 Les principaux types d'affichage................... 214 4.5.4 La configuration................................ 215 4.5.5 La visualisation................................. 217

Table des matières 5 4.5.6 La création d'une page de nœuds................... 218 4.5.7 La création d'un bloc de termes.................... 230 4.6 La création de sections avec Context.................... 233 5. Conclusion............................................. 239 Chapitre 5 Développer un module 1. La structure d'un module.................................. 241 1.1 Le fichier.info....................................... 241 1.2 Le fichier.module.................................... 242 1.3 Le fichier.install..................................... 244 2. Les hooks............................................... 245 2.1 Le principe de surcharge............................... 245 2.2 Le fonctionnement................................... 246 2.3 L'extension du système de hook........................ 247 2.4 Les hooks disponibles................................. 248 2.4.1 Les hooks du système............................ 248 2.4.2 Les hooks de contenu............................ 249 2.4.3 Les hooks de structure........................... 251 2.4.4 Les hooks utilitaires............................. 253 2.4.5 Les hooks de sécurité............................ 253 2.4.6 Les hooks de module............................. 254 2.4.7 Les hooks de tâche.............................. 254 2.4.8 Les hooks de recherche........................... 255 2.4.9 Les hooks utilisateur............................. 255 3. Quelques hooks en détail.................................. 256 3.1 Le hook hook_permission()............................ 257 3.2 Les hooks de gestion des blocs.......................... 257 3.2.1 Le hook hook_info()............................. 258 3.2.2 Le hook hook_block_configure()................... 259 3.2.3 Le hook hook_block_save()....................... 260

6 Drupal Réalisez des développements professionnels avec PHP 3.2.4 Le hook hook_block_view()....................... 261 3.3 Les hooks de menu................................... 262 3.3.1 Le hook hook_menu()........................... 262 3.3.2 Le hook hook_menu_alter()....................... 268 3.4 Les hooks de gestion des nœuds........................ 269 3.4.1 Le hook hook_node_insert()...................... 269 3.4.2 Le hook hook_node_update()..................... 270 3.4.3 Le hook hook_node_delete()...................... 270 3.4.4 Le hook hook_node_validate()..................... 271 3.4.5 Le hook hook_node_presave()..................... 272 3.4.6 Le hook hook_node_view()....................... 272 3.4.7 Le hook hook_node_load()........................ 273 3.5 Le hook hook_user().................................. 274 3.5.1 Le hook hook_user_insert()....................... 274 3.5.2 Le hook hook_user_update()...................... 275 3.5.3 Le hook hook_user_delete()....................... 276 3.5.4 Le hook hook_user_presave()...................... 276 3.5.5 Le hook hook_user_view()........................ 277 3.5.6 Le hook hook_user_load()........................ 278 3.5.7 Le hook hook_user_login()........................ 278 3.5.8 Le hook hook_user_logout()...................... 279 3.6 Le hook hook_theme()................................ 280 4. Les tableaux de rendu..................................... 286 4.1 Le principe.......................................... 286 4.2 L'utilisation dans Drupal.............................. 289 4.2.1 À l'affichage d'un bloc............................ 289 4.2.2 À l'affichage d'une page.......................... 290 4.2.3 À la création d'un formulaire...................... 291 5. Les formulaires.......................................... 291 5.1 L'API de formulaire................................... 291 5.1.1 Le principe de fonctionnement.................... 291 5.1.2 Les types de composant.......................... 294 5.1.3 L'attribut #autocomplete_path.................... 305

Table des matières 7 5.1.4 Les champs dynamiques.......................... 308 5.1.5 L'attribut #ajax................................. 312 5.2 Les hooks de formulaire............................... 319 5.2.1 Le hook hook_forms()........................... 319 5.2.2 Les hooks hook_form_alter() et hook_form_form_id_alter().................... 321 6. Conclusion............................................. 323 Chapitre 6 Interagir avec Drupal 1. L'accès aux données...................................... 325 1.1 Le principe.......................................... 325 1.2 Les types de requêtes................................. 327 1.2.1 Les requêtes statiques............................ 327 1.2.2 Les requêtes dynamiques......................... 331 1.2.3 Les requêtes d'insertion.......................... 336 1.2.4 Les requêtes de mise à jour........................ 339 1.2.5 Les requêtes de suppression....................... 341 1.2.6 Les requêtes de fusion............................ 341 1.3 L'enregistrement avec drupal_write_record().............. 344 2. L'utilisation de l'api...................................... 345 2.1 La gestion des nœuds................................. 346 2.1.1 La création..................................... 346 2.1.2 Le chargement.................................. 348 2.1.3 La mise à jour.................................. 348 2.1.4 Une nouvelle révision............................ 348 2.2 La gestion des utilisateurs............................. 349 2.2.1 La création..................................... 349 2.2.2 Le chargement.................................. 351 2.2.3 La mise à jour.................................. 351 2.2.4 La suppression.................................. 351

8 Drupal Réalisez des développements professionnels avec PHP 2.3 La gestion des vocabulaires et des termes................. 352 2.3.1 La création..................................... 352 2.3.2 Le chargement.................................. 353 2.3.3 La mise à jour.................................. 353 2.3.4 La suppression.................................. 354 3. La modification des en-têtes............................... 354 3.1 L'ajout de balises..................................... 355 3.2 L'ajout de feuilles de style............................. 355 3.3 L'ajout de scripts JavaScript............................ 357 4. L'API de chaînes de caractères.............................. 360 5. L'API des images......................................... 361 6. Le système de traduction.................................. 365 6.1 La traduction des chaînes avec Drupal................... 366 6.2 L'export et l'import des traductions avec POTX........... 369 7. Conclusion............................................. 372 Chapitre 7 Créer un thème 1. L'intérêt des thèmes...................................... 373 1.1 La composition d'un thème............................ 373 1.2 La séparation des responsabilités........................ 374 2. L'installation et la configuration d'un thème.................. 376 3. La structure d'un thème................................... 381 3.1 Le fichier.info....................................... 382 3.2 Le fichier template.php............................... 390 4. Les différents moteurs de template.......................... 393 5. Les régions et les blocs.................................... 395 5.1 Les régions.......................................... 395 5.2 Les blocs........................................... 397

Table des matières 9 6. Les templates........................................... 398 6.1 Le template de nœud................................. 399 6.2 Le template de bloc................................... 403 6.3 Le template de page.................................. 405 7. Les hooks de thème....................................... 409 7.1 Les fonctions de thème................................ 409 7.2 Les fonctions de preprocessing.......................... 410 7.2.1 Le hook hook_preprocess_node().................. 410 7.2.2 Le hook hook_preprocess_block().................. 412 7.2.3 Le hook hook_preprocess_page()................... 412 7.2.4 Le hook hook_preprocess()....................... 413 8. La configuration avancée.................................. 415 9. Le système de sous-thèmes................................ 417 10. L'intégration d'un framework CSS : Less..................... 419 10.1 L'intégration de Less dans Drupal....................... 420 10.2 Les principales instructions............................ 421 10.2.1Les variables................................... 422 10.2.2Les mixins..................................... 422 10.2.3L'encapsulation................................. 425 10.2.4Les fonctions et opérations....................... 426 11. Conclusion............................................. 427 Chapitre 8 Les plus 1. Configurer un site Drupal en 10 minutes..................... 429 1.1 Les modules à installer................................ 429 1.2 La configuration du site............................... 431 1.2.1 La langue française.............................. 431 1.2.2 Les informations du site.......................... 436 1.2.3 Le format de texte.............................. 438 1.2.4 Le module Menu d'administration................. 439

10 Drupal Réalisez des développements professionnels avec PHP 1.2.5 Le rôle "Webmaster"............................. 441 1.2.6 Les droits d'accès................................ 442 1.2.7 Les alias d'url................................. 442 1.2.8 Le système de fichiers............................ 444 1.2.9 Les paramètres de recherche...................... 445 1.2.10Les paramètres utilisateurs....................... 446 1.2.11Le paramétrage du thème......................... 448 1.2.12Le formulaire de contact......................... 448 1.2.13Le module WYSIWYG........................... 450 1.2.14Le fichier.htaccess.............................. 453 1.2.15Le fichier settings.php........................... 454 1.3 Une alternative : les distributions Acquia................. 455 1.4 La configuration du serveur............................ 456 1.4.1 Le serveur web : Apache.......................... 456 1.4.2 PHP.......................................... 457 1.4.3 Le serveur de bases de données : MySQL............ 459 2. Subversion.............................................. 460 2.1 Le repository........................................ 460 2.2 L'environnement de développement et de production....... 461 3. La gestion du cache sous Drupal............................ 462 4. La fourniture de services : XML-RPC........................ 463 4.1 Le client............................................ 464 4.2 Le serveur.......................................... 464 5. La FAQ des experts....................................... 467 6. Conclusion............................................. 473 Index...................................................... 475