Manuel pour Contao 3.2 - Contao Documentation

115
1. Introduction 2. Installation i. Installer Contao ii. Utilisation du Safe Mode Hack iii. Mise à jour manuelle iv. Live Update Service v. Déplacer une installation vi. Configuration du serveur en ligne 3. Panneau d'administration i. Liste d'enregistrements ii. Édition des enregistrements iii. Raccourcis clavier 4. Gestion des pages i. Composants ii. Thèmes iii. Feuilles de style iv. Modules v. Présentations de page vi. Types de page 5. Gestion du contenu i. Articles ii. Actualités iii. Événements iv. Flux RSS/Atom v. Bulletins d'information vi. Formulaires vii. Commentaires viii. Modèles ix. Balises d'insertion 6. Administration du système i. Utilisateurs et groupes d'utilisateurs ii. Extensions iii. Maintenance 7. Tableaux conteneurs de données i. Référence ii. Palettes iii. Callbacks 8. Personnaliser Contao i. Contourner le cache interne ii. Configurations personnalisées iii. Ajouter des champs personnalisés iv. Personnaliser l'éditeur de texte riche (TinyMCE) v. Surcharger les méthodes de classes vi. Contao hooks 9. Référentiel d'extensions i. Ajout d'une extension ii. Ajouter une release iii. Ajouter des fichiers iv. Ajout de fichiers à partir d'un référentiel GitHub Table des matières Manuel pour Contao 3.2 1

Transcript of Manuel pour Contao 3.2 - Contao Documentation

Page 1: Manuel pour Contao 3.2 - Contao Documentation

1. Introduction2. Installation

i. InstallerContaoii. UtilisationduSafeModeHackiii. Miseàjourmanuelleiv. LiveUpdateServicev. Déplaceruneinstallationvi. Configurationduserveurenligne

3. Panneaud'administrationi. Listed'enregistrementsii. Éditiondesenregistrementsiii. Raccourcisclavier

4. Gestiondespagesi. Composantsii. Thèmesiii. Feuillesdestyleiv. Modulesv. Présentationsdepagevi. Typesdepage

5. Gestionducontenui. Articlesii. Actualitésiii. Événementsiv. FluxRSS/Atomv. Bulletinsd'informationvi. Formulairesvii. Commentairesviii. Modèlesix. Balisesd'insertion

6. Administrationdusystèmei. Utilisateursetgroupesd'utilisateursii. Extensionsiii. Maintenance

7. Tableauxconteneursdedonnéesi. Référenceii. Palettesiii. Callbacks

8. PersonnaliserContaoi. Contournerlecacheinterneii. Configurationspersonnaliséesiii. Ajouterdeschampspersonnalisésiv. Personnaliserl'éditeurdetexteriche(TinyMCE)v. Surchargerlesméthodesdeclassesvi. Contaohooks

9. Référentield'extensionsi. Ajoutd'uneextensionii. Ajouterunereleaseiii. Ajouterdesfichiersiv. Ajoutdefichiersàpartird'unréférentielGitHub

Tabledesmatières

ManuelpourContao3.2

1

Page 2: Manuel pour Contao 3.2 - Contao Documentation

v. Ajouterdestraductionsvi. Ajouterdesdépendancesvii. Publieruneextension

10. DéveloppementdeContaoi. Créationd'unnouveauticket

ManuelpourContao3.2

2

Page 3: Manuel pour Contao 3.2 - Contao Documentation

Ceciestlemanuelofficielpourlesutilisateursetlesdéveloppeurs.Vouspouveztoujourstrouverladernièreversionsurdocs.contao.org.

IntroductionInstallation

InstallerContaoUtilisationduSafeModeHackMiseàjourmanuelleLiveUpdateServiceDéplaceruneinstallationConfigurationduserveurenligne

Panneaud'administrationListed'enregistrementsÉditiondesenregistrementsRaccourcisclavier

GestiondespagesComposantsThèmesFeuillesdestyleModulesPrésentationsdepageTypesdepage

GestionducontenuArticlesActualitésÉvénementsFluxRSS/AtomBulletinsd'informationFormulairesCommentairesModèlesBalisesd'insertion

AdministrationdusystèmeUtilisateursetgroupesd'utilisateursExtensionsMaintenance

TableauxconteneursdedonnéesRéférencePalettesCallbacks

PersonnaliserContaoContournerlecacheinterneConfigurationspersonnaliséesAjouterdeschampspersonnalisésPersonnaliserl'éditeurdetexteriche(TinyMCE)Surchargerlesméthodesdeclasses

ManuelpourContao3.2

Tabledesmatières

ManuelpourContao3.2

3Introduction

Page 4: Manuel pour Contao 3.2 - Contao Documentation

ContaohooksRéférentield'extensions

Ajoutd'uneextensionAjouterunereleaseAjouterdesfichiersAjoutdefichiersàpartird'unréférentielGitHubAjouterdestraductionsAjouterdesdépendancesPublieruneextension

DéveloppementdeContaoCréationd'unnouveauticket

TheContaodocumentationislicensedunderaCreativeCommonsAttribution3.0Licenselicense(CCBY-NC-SA3.0).Ifyouwanttoredistributeamodifiedorunmodifiedversionofthedocumentation,youcandosounderthelicenseterms.

Ifyoucontributetothedocumentation,e.g.bycreatingpullrequests,yougrantusfullusagerightsofanycontentyoucreateorupload.Youalsoensurethatyourcontentdoesnotviolateanythird-partyrights.

Wearenotclaimingexclusiveusagerights,thereforeyouarefreetouseyourcontributedcontent(e.g.textsorimages)inanyotherprojectaswell.

Licence

ManuelpourContao3.2

4Introduction

Page 5: Manuel pour Contao 3.2 - Contao Documentation

LeschapitressuivantsexpliquentcommentinstalleretmettreàjourContao.Vousapprendrezàutiliserl'outild'installationdeContao,commentsynchroniseruneinstallationexistanteviaFTP,commentconfigurerle"SafeModeHack"ainsiqu'unserveurpourContao.

Installation

ManuelpourContao3.2

5Installation

Page 6: Manuel pour Contao 3.2 - Contao Documentation

Premièrement,veuilleztéléchargerladernièrearchivedeContaoetl'extrairesurvotreordinateur.Déplacezlesfichiersdanslerépertoirehtdocsdevotreinstallationlocale(parexempleXAMPP)oulestéléversersurvotreserveuravecunlogicielFTP(nousvousrecommandonsd'utiliserWinSCP).Selonlaconfigurationdevotreserveur,ledossierpublicestprobablementnomméhtdocs,httpdocs,htmloupublic_html.

SivousavezunaccèsSSH,vouspouveztéléchargeretextrairel'archiveaveclescommandessuivantes:

curl-Lhttp://download.contao.org|tar-xzp

Pourouvrirl'outild'installationdeContao,ilsuffitd'ajouter/contao/install.phpàl'URLdevotreinstallationdeContao.Notezquel'outild'installationestprotégécontrelesattaquesparforcebruteetserabloquésiunmauvaismotdepasseaétéinsérétroisfoisdesuite.Pourenleverleverrou,ouvrezlefichiersystem/config/localconfig.phpdansunéditeurdetexte,trouvezlaligneci-dessousetdéfinissez-làà0.

$GLOBALS['TL_CONFIG']['installCount']=0;//Cecienlèveraleverrouillageautomatique

Connectez-vousaupanneaud'administrationdevotreserveur(parexemple"Plesk"ou"cPanel")etcréezunenouvellebasededonnéespourContao.Ensuite,entrezlesidentifiantsdeconnexiondansl'outild'installationdeContao.NotezquelejeudecaractèrespardéfautdeContaoUTF-8s'écritUTF8dansMySQL!

Lorsquequevousêtesconnectéàlabasededonnées,Contaovérifieautomatiquementsestablesetafficheunelistedechangementsrecommandésdanslecasoùilsneseraientpasàjour.Assurez-vousdelireattentivementcesrecommandations,carContaoneconnaîtquesesproprestablesettenteradesupprimercellesd'autresapplicationsenpartageaveclabasededonnées.Confirmezlesmodificationsetcliquezsurlebouton"Mettreàjourlabasededonnées".

Unmodèleestunsiteinternetpré-configuréquicomprendunexempledestructuredesiteetplusieursfeuillesdestylepourformaterlesmodulesdebasedeContaoainsiquelesélémentsdecontenu.

Apartirdelaversion3.2.11,lesiteinternetdedémonstrationn'estplusinclusdanslepackagedetéléchargement.Selonlaversionutilisée,lanouvelleetofficielledémonstrationdeContaooul'ancienneMusicAcademypeuventêtreinstalléesentantqu'extension.Lesinformationsconcernantlacompatibilitésontdisponiblesdansleréférentield'extensions.

Commentinstallerlemodèlededémonstration:

1. CréerunenouvelleinstallationdeContaoavecuncompteadministrateur2. S'identifierentantqu'administrateurdanslebackoffice3. Installerl'extensioncorrespondanteenutilisantleréférentield'extensions4. Sedéconnecterdubackoffice5. Ouvrirdenouveaul'outild'installation

InstallerContao

L'outild'installationdeContao

Connexionàlabasededonnées

Miseàjourdestablesdelabasededonnées

Importerunmodèle

ManuelpourContao3.2

6InstallerContao

Page 7: Manuel pour Contao 3.2 - Contao Documentation

Pourimporterunmodèle,sélectionnezl'entréedanslemenudéroulantetcliquezsurlebouton"Importerunmodèle".

Lesdonnéesexistantesserontremplacéeslorsdel'importationd'unmodèle!

Sivousn'avezpasimportéunmodèle,vousdevezcréerunutilisateuradministrateurpourseconnecteraubackofficedeContao.Aprèsavoircréélecompte,leprocessusd'installationestterminé.Leliendanslecoininférieurdroitvousamèneraverslepanneaud'administration.Sivousavezimportélesiteinternetd'exemple,vouspouvezvousconnecterentantqu'utilisateur"k.jones"aveclemotdepasse"kevinjones".

VoirCommentinstallerlemodèlededémonstrationdanslasectionImporterunmodèle

SivousutilisezunserveurApacheetêtesautoriséàutilisermod_rewrite,vouspouvezfaireensortequeContaogénèredesURLsconvivialespourlesmoteursderecherchequiressemblentàdesdocumentsHTMLstatiques.Unensemblederèglesderéécriturepardéfauteststockédanslefichier.htaccess.defaultsituédanslerépertoiredeContao.Renommezcefichieren.htaccessafinqueleserveurApachepuisseletraiter,puisconnectez-vousaubackofficeetaccédezàlaconfigurationdusystème.Sélectionnez"Ré-écrirelesURLs"danslasection"Configurationdufrontoffice"etenregistrezvosmodifications.Maintenant,ContaogénèredesURLsstatiquescommehome.htmlaulieudeindex.php?id=12.

Créationd'unutilisateuradministrateur

InstallationdumodèlededémonstrationdeContao

UtiliserdesURLsconvivialespourlesmoteursderecherche

ManuelpourContao3.2

7InstallerContao

Page 8: Manuel pour Contao 3.2 - Contao Documentation

Enessayantd'installerContaoavecl'outild'installation,vouspourriezvoirunavertissementquelefichierdeconfigurationlocaln'estpasaccessibleenécriture.

Leterme"SafeModeHack"peutprêteràconfusion,carilimpliquequeleproblèmeaétécauséparlesafe_modedePHP.Cependant,ilestcausépardespermissionsdefichiersinsuffisantesetpeutseproduiremêmesilesafe_modeestdésactivé,ildevraitdoncêtreappelé"FilePermissionHack"àlaplace.PHPentantquemoduleApacheestgénéralementexécutécommewwwrun,www-dataounobody,alorsquelesfichiersquevoustéléverserviaFTPvousappartiennent(parexempleweb4ouab5678).Leserveurrefusedonc,auscriptPHPdeContao,l'accèsàcesfichiers.

Pourcontournerleproblèmedespermissions,ContaoétablituneconnexionFTPpourmodifierlesfichiersetlesrépertoires.Toutcequevousavezàfaireestd'entrervosidentifiantsdeconnexionFTP.FaitesattentionlorsquevousentrezlecheminrelatifàpartirdevotrerépertoireracineFTPverslerépertoiredeContao(parexemplehtml/,public_html/ouhttpdocs/).

Quelquesrépertoiresnécessitentencoredesautorisationsd'écriture,carPHPvayaccéderdirectement:

assets/images

assets/images/*

system/logs

system/tmp

UtilisationduSafeModeHack

Problèmesd'autorisationdefichiers

UtilisationduFTPpourlesopérationssurlesfichiers

ManuelpourContao3.2

8UtilisationduSafeModeHack

Page 9: Manuel pour Contao 3.2 - Contao Documentation

Lespermissions(CHMOD777)sontfixéesautomatiquementparl'outild'installationetn'ontnormalementpasàêtreajustéesmanuellement.Sicelaestnécessaire,veuillez,s'ilvousplaît,seulementn'ajusterquelestroisrépertoiresmentionnésci-dessus-etcelaendépitdecequevouspourriezavoirludansuntutorieloudanslesforumsdeContao!

ManuelpourContao3.2

9UtilisationduSafeModeHack

Page 10: Manuel pour Contao 3.2 - Contao Documentation

PourmettreàjourmanuellementuneinstallationdeContao,vouspouvezsoittéléverserl'archivecomplètedeContaosurleserveur(remplacementdesfichiers)ouvouspouveztéléverseruniquementlesfichiersquiontétémodifiésdepuisladernièremiseàjour(synchronisationdesfichiers).Detoutefaçon,vousdevrieztoujourssauvegarderlesfichiersetdossiersci-dessousjusteaucasoùilyauraituneerreuroulorsd'unremplacementaccidentel:

files/*

system/config/dcaconfig.php

system/config/initconfig.php

system/config/langconfig.php

system/config/localconfig.php

templates/*

Celapermettradesauvegardervotreconfigurationlocale,vosmodèlespersonnalisésetvosfichiers.

Leremplacementdesfichiersd'uneinstallationdeContaoestassezsimple.Ilsuffitdedécompresserl'archivedeContaosurleserveuroudel'extrairesurvotreordinateuretdetéléverserlesfichiersavecunclientFTP.Puis,restaurerlesfichiersquevousavezsauvegardésetenleverleséventuelsfichiersinutilisésdesversionsantérieuresdeContao.

Attention:Sivousavezinstallédesextensionstierces,assurez-vousdelessauvegarderetdelesrestaurereuxaussi,ouneleseffacerpasdutout.Sinon,vousdevrezréinstallerlesmoduleset,enfonctiondel'extension,vouspourriezfinirparperdredesdonnées!

PoursynchroniseruneinstallationdeContao,vouspouvezsoitutiliserl'utilitaireUnixdiffouunlogicielFTP.LesutilitairesUnixsontgénéralementutilisésparlesadministrateursdeserveursuniquementet,parconséquent,ilsneserontpasexpliquésici.PoursynchroniserdesfichiersviaFTP,ouvrezWinSCPetconnectez-vousauserveur.Sauvegardezlesfichiersmentionnésci-dessus,puisaccédezaurépertoiredeContaoetcliquezsurlebouton"Synchroniserlesfichiers".

Miseàjourmanuelle

Remplacementdefichiers

Synchronisationdefichiers

ManuelpourContao3.2

10Miseàjourmanuelle

Page 11: Manuel pour Contao 3.2 - Contao Documentation

Contrôlezlesoptionsattentivementetassurez-vousdechoisir"Previewchanges"pourquevouspuissiezcontrôlerquelsfichiersserontmisàjour.Ensuiteconfirmezchaquefichierdanslafenêtred'aperçuetcontrôlezspécialementlesfichiersquivontêtreeffacés!CliquezsurOKpourdémarrerleprocessusdesynchronisation.

AprèsavoirmisàjourlesfichiersdeContao,vousdevezégalementmettreàjourlabasededonnées.Heureusement,l'outild'installationdeContaoeffectueralegrosdutravailpourvous.Ilsuffitdel'ouvriretdesaisirvotremotdepasse,puisfaitesdéfilerlapageverslebasjusqu'àlasectionbasededonnéesetconfirmezlesmodifications.

Finalement,vousdevezégalementreconstruirelecacheinterne(pourlesDCAetlesfichiersdelangue).Danslebackoffice,allezà"Maintenancedusystème"etcochez"Purgerlecacheinterne"danslasection"Nettoyerlesdonnées".Confirmezl'actionencliquantsur"Nettoyerlesdonnées".

Vousrecevrezunmessagedansl'en-têtedemandantdereconstruirelecacheinterne.Cliquezsur"Construirelecache"pourmettreencachelesfichiersinternes.

Miseàjourdelabasededonnées

Purgerlecacheinterne

ManuelpourContao3.2

11Miseàjourmanuelle

Page 12: Manuel pour Contao 3.2 - Contao Documentation

Le"ContaoLiveUpdateService"estunservicecommercialproposépariNetRobots,lacompagniedufondateurdeContaoetdéveloppeurprincipal,LeoFeyer.Ilvouspermetdemettreàjourvotreinstallationenquelquesclicsàpartirdupanneaud'administration,sansavoiràtéléchargerunearchivedeContaoouenutilisantunlogicielFTPpourremplacerousynchroniserdesfichiers.

S'inscrirepourobtenirunIDLiveUpdate

LeLiveUpdatecomprendlesfonctionnalitéssuivantes:

Miseàjouretretouràuneversionantérieureversn'importequelleversiondeContaoSauvegardeautomatiquedelabasededonnéesavantlamiseàjourValidationpersonnaliséeetachèvementdel'installationdeContaoComparaisondesmodèlespersonnalisésetdesfichiersoriginaux

LiveUpdateService

Sélectiond'uneversion

Différencesentrelesmodèles

ManuelpourContao3.2

12LiveUpdateService

Page 13: Manuel pour Contao 3.2 - Contao Documentation

99%detouslesproblèmesdemiseàjourduLiveUpdatesontcauséspardespermissionsdefichierserronés.Contaorequiertdesautorisationsd'écriturepourgérerlesfichiersetlesdossiers,enconséquencesileLiveUpdatenefonctionnepascorrectement,vérifiezlaconfigurationdevotreserveuretassurez-vousdemettreenplaceleSafeModeHacktelquedécritdanscemoded'emploi!

SivousrencontrezdesproblèmespouractivervotreIDLiveUpdateoupourrecevoirl'archivedemiseàjour,veuillezs'ilvousplaîtcontacterlesupportdeiNetRobots.Sivousrencontrezdesproblèmespourconfigurerle"SafeModeHack"oupourutiliserContao,choisissezs'ilvousplaîtuneoptiondesupportsurlapagedesupport.

Résolutiondeproblèmes

Commentobtenirdel'aide

ManuelpourContao3.2

13LiveUpdateService

Page 14: Manuel pour Contao 3.2 - Contao Documentation

DéplaceruneinstallationdeContaoàpartird'unserveurlocalversunserveurenlignen'estpastrèsdifférentdel'installationd'unenouvelleversiondeContao,àl'exceptionquevousutilisezlesfichiersdevotreinstallationlocaleaulieud'unearchivedeContaoetunesauvegardeSQLdevotrebasededonnéeslocale.

OuvrezvotrelogicielFTP,connectez-vousauserveurcibleettéléversertouslesfichiersdevotreinstallationlocaledeContao.

LafaçonlaplussimpledecréerunesauvegardeMySQLestd'utiliserl'outild'administrationdebasesdedonnées"phpMyAdmin".Sivousêtesunadministrateurduserveur,vouspouvezégalementutiliserl'utilitairemysqldumpbiensûr.Connectez-vousà"phpMyAdmin",choisissezlabasededonnéesquevoussouhaitezexporteretcliquezsurl'onglet"Exporter"danslemenusupérieur.Ilestimportantd'ajusterlesparamètresd'exportationconformémentàlacaptured'écranci-dessousafinderestreindrelesproblèmesdecompatibilitédeversionsdeMySQL.

Ouvrez"phpMyAdmin"surleserveurcibleetcréezunenouvellebasededonnéespourContao.Enfonctiondela

Déplaceruneinstallation

Téléverserlesfichiers

Exportationdelabasededonnées

Importationdelabasededonnées

ManuelpourContao3.2

14Déplaceruneinstallation

Page 15: Manuel pour Contao 3.2 - Contao Documentation

configurationduserveur,vousdevrezprobablementutiliserlepanneaud'administrationduserveur(parexemple,"Plesk"ou"cPanel")pourcréerdenouvellesbasesdedonnées.Sélectionnezlabasededonnéesvideetcliquezsurl'onglet"Importer"danslemenusupérieur.PuistéléchargerlasauvegardeSQLdevotrebasededonnéeslocaleetlancezl'importation.

Enfin,ouvrezl'outild'installationdeContaodelanouvelleinstallation(lemotdepassedoitêtrelemêmequepourvotreinstallationlocale)etajustezlaconfigurationdelabasededonnéessinécessaire.Ensuite,allezaupanneaud'administrationetconnectez-vousavecvotrenomd'utilisateuretvotremotdepasse.

Ajustementdelaconfigurationdelabasededonnées

ManuelpourContao3.2

15Déplaceruneinstallation

Page 16: Manuel pour Contao 3.2 - Contao Documentation

Cechapitrenetraitepassurlaconfigurationd'unserveurentermesd'installationd'ApacheoudecompilationdePHP,quevousnepouvezpasfairesuruncompted'hébergementmutualisédetoutefaçon.IlexpliquecommentvérifiersilesexigencesdusystèmedeContaosontrempliesetcommentactiverPHP5.

ContaorequiertunserveurwebcommeApacheouIISavecPHPetlesupportdeMySQL.LaversionminimumdePHPest5.3.2etlaversionminimaledeMySQLest5.0.VousavezégalementbesoindesextensionsPHP"GDlib"(redimensionnementd'image),"DOM"(fichiersXML),"SOAP"(référentield'extensions)etéventuellement"mbstring"(gestiondescaractèresmulti-octets)ainsique"mcrypt"(cryptagedesdonnées).ContaoaététestéavecsuccèsavectouslesprincipauxnavigateurscommeFirefox(àpartirdelaversion2)ouInternetExplorer(àpartirdelaversion8).

Télécharger"ContaoCheck"afindesavoirsivotreserveurrépondauxexigencesdusystèmedeContao.Lescriptvavérifiersivouspouvezutiliserleréférentield'extensionsainsiquele"LiveUpdate"etsivousdevezutiliserle"SafeModeHack"ounon.Selonlaconfigurationdevotresystème,vouspouvezmettreenplaceunenouvelleinstallationdeContaoavecl'installateurwebouvalideruneinstallationexistante.

ExtrayezlefichierZip,téléversezledossiercheckdansvotrerépertoired'installationdeContaoetouvrez-ledansunnavigateurWeb.

TéléchargerContaoCheck|OuvrirleprojetsurGitHub

Ilyaquelquesgrandsfournisseursd'accèsàinternetquirequièrentunpeudeconfigurationssupplémentairesafinqueContaopuissefonctionner.Heureusement,ilsnesontquel'exceptionquiconfirmelarègle.LesparamètresFAIspécifiquessontdécritesdansleforumdeContao.SivouscherchezunhébergementsanstracaspourContao,consultezlalistedeshébergementspartenairesdeContao.

Configurationduserveurenligne

ConfigurationsdusystèmerequisesdeContao

ContaoCheck

ParamètresFAIspécifiques

ManuelpourContao3.2

16Configurationduserveurenligne

Page 17: Manuel pour Contao 3.2 - Contao Documentation

Pouraccéderaupanneaud'administrationdeContao(backoffice),ajoutersimplement/contaoàl'URLdevotresiteinternet.Leformulaired'identificationdubackofficeestprotégécontrelesattaquesparforcebrute,doncsivousentrezunmotdepasseerronéplusdetroisfoisdesuite,votrecompteserabloquédurant5minutes.

Panneaud'administration

ManuelpourContao3.2

17Panneaud'administration

Page 18: Manuel pour Contao 3.2 - Contao Documentation

Contaosupportetroisvues:unesimpleliste("vueenliste"),unelistequiestregroupéeparsatableparente("vueparente")etunelistehiérarchique("vuearborescente").Cestroisvuespeuventêtreutiliséespourlisterdesenregistrementsden'importequelletableoudetablesliéesentreelles.

La"vueenliste"répertorielesenregistrementsd'unetableuniquedansunordreparticulier.Lesrésultatssontgénéralementregroupésparleurpremièrelettre.

La"vueparente"répertorielesenregistrementsd'unetableenfantquisontliésàunenregistrementparticulierd'unetableparente.Lesrelationsdetypeparent-enfantsontbeaucouputiliséesdansContao.Parexemple,pourlesarticlesetlesélémentsdecontenu,lesarchivesd'actualitésetlesactualitésoulesfeuillesdestyleetlesdéfinitionsdeformatage.

Listed'enregistrements

Vueenliste

Vueparente

ManuelpourContao3.2

18Listed'enregistrements

Page 19: Manuel pour Contao 3.2 - Contao Documentation

La"vuearborescente"listedesenregistrementsetd'autresressourcestelsquedesfichiersetdesrépertoiresquisontorganisésdansunestructurehiérarchique.Contaoprendenchargelesrelationshiérarchiquesauseind'unetable(parexemple,lastructuredesite)ainsiquedestablesenfantsquiserapportentauxtableshiérarchiquesparentes(parexemple,lesarticlesetlespages).

Vuearborescente

ManuelpourContao3.2

19Listed'enregistrements

Page 20: Manuel pour Contao 3.2 - Contao Documentation

Contaosupportedifférentesfaçonsd'affinerlesrésultatsdesortequevousnelâchiezpaslefilmêmesiunetablepossèdeplusieursmilliersdelignes.Ungrandnombred'entréespeuventêtrefiltréesparunouplusieurschampsdesortequ'ilsnemontrentquelesenregistrementscorrespondantauxcritèresdefiltrage.Laplupartdesentréesoffrentdeplusunerechercheentexteintégralquiprendmêmeenchargelesexpressionsrégulières.Afinderéduireletempsdechargementdelapageauminimum,Contaoafficheseulementtrenteenregistrementsàlafois.

Trietfiltragedesdonnées

ManuelpourContao3.2

20Listed'enregistrements

Page 21: Manuel pour Contao 3.2 - Contao Documentation

L'éditiondesdonnéesestl'unedesfonctionscentralesd'unsystèmedegestiondecontenu.Contaooffrebeaucoupdefonctionnalitésprofessionnellesquirendentleprocessusd'éditionaussifacileetconfortablequepossible.Vouspouvezreveniràdesversionsantérieuresd'unenregistrement,restaurerdesenregistrementssupprimés,déplacerdesenregistrementsvialepresse-papiersetmêmeéditerplusieursenregistrementsàlafois.Laplupartdecesfonctionssontaccessiblesenutilisantlesicônesdenavigation.

La"vueenliste",étantlaplussimple,neproposequequatreactionsdebase:éditer,dupliquer,supprimeretafficherlesdétails.

La"vueparente"proposedeuxicônesdenavigationsupplémentairespourcontrôlerl'ordredesenregistrements.L'ordrepeutêtremodifiéparglisser-déposer.Pourcefaire,cliquezsimplementsurl'icônedenavigation"Glisser-déposer"etfaites-leglisserverssanouvelleposition.

Éditiondesenregistrements

Icônesdelavueenliste

Icônesdelavueparente

ManuelpourContao3.2

21Éditiondesenregistrements

Page 22: Manuel pour Contao 3.2 - Contao Documentation

La"vuearborescente"nécessitedesicônessupplémentairespourgérerlastructurehiérarchique.Outreladuplicationd'unenregistrementunique,ilprendenchargeladuplicationd'unenregistrementavectoussessous-enregistrementsainsiquelafonction"colleraprès"ou"collerdedans"unautreenregistrement,vouspouvezdonccréerunestructureimbriquée.

Icônesdelavuearborescente

ManuelpourContao3.2

22Éditiondesenregistrements

Page 23: Manuel pour Contao 3.2 - Contao Documentation

Contaocréeautomatiquementlesnouvellesversionsd'unenregistrementchaquefoisquevouslesauvegarder.Dèsqu'ilexisteplusd'uneversion,unmenudéroulant,quivouspermetdereveniràuneversionantérieure,apparaîtenhautduformulaire.Choisissezsimplementuneversionetcliquezsurlebouton"Restaurer".

L'icônesituéeàdroitedubouton"Restaurer"vouspermetdevoirlesdifférencesentredeuxversions.

Restaurerlesversionsprécédentes

ManuelpourContao3.2

23Éditiondesenregistrements

Page 24: Manuel pour Contao 3.2 - Contao Documentation

LapossibilitédemodifierplusieursenregistrementsàlafoispermetàContaodeclairementsedémarquerdelavariétédessystèmesdegestiondecontenu.Cliquezsurlebouton"Éditionmultiple"afindechangerlemoded'édition,puissélectionnezunouplusieursenregistrementsetchoisissezleschampsquevoussouhaitezmodifier.

Éditiondeplusieursenregistrements

ManuelpourContao3.2

24Éditiondesenregistrements

Page 25: Manuel pour Contao 3.2 - Contao Documentation

ManuelpourContao3.2

25Éditiondesenregistrements

Page 26: Manuel pour Contao 3.2 - Contao Documentation

ManuelpourContao3.2

26Éditiondesenregistrements

Page 27: Manuel pour Contao 3.2 - Contao Documentation

Afind'accélérerlefluxdetravaillorsquevoustravaillezavecContao,ilexisteplusieursraccourcisassociésaubackofficequivouspermettentd'exécutercertainescommandes.Vouspouvezparexempledéclencherlebouton"Enregistrer"àlafind'unformulaireencliquantavecvotresourisouenutilisantleraccourciclavier[Alt]+[s].

Raccourci Bouton Explication

[Alt]+[h] Accueil Alleràlapaged'accueildubackoffice.

[Alt]+[q] Quitter Quitterlasessionencoursdubackoffice(Déconnexion).

[Alt]+[t] Hautdelapage Allerenhautdelapage.

[Alt]+[b] Retour Retouràlapageprécédente.

[Alt]+[n] Nouvelenregistrement Créerunnouvelenregistrement.

[Alt]+[e] Éditionmultiple Passeenmoded'éditionmultiple.

[Alt]+[f] AperçuduFrontoffice Ouvrirl'aperçudufrontofficedansunenouvellefenêtredunavigateur.

Raccourci Bouton Explication

[Alt]+[s] Sauvegarder Sauvegardeleformulairecourant

[Alt]+[c]Sauvegarderetfermer Sauvegardeleformulairecourantetredirigeverslapageprécédente.

[Alt]+[g]Sauvegarderetretour

Sauvegardeleformulairecourantetredirigeverslapageparente,parexemple,àpartird'unélémentdecontenuverslavuearborescentedesarticles.

[Alt]+[e]Sauvegarderetéditer

Sauvegardeleformulairecourantetredirigeverslavuedesenregistrementsenfants.Parexemple,lorsdelacréationdefeuillesdestyle.

[Alt]+[n]Sauvegarderetnouveau Sauvegardeleformulairecourantetcréeunnouvelenregistrement.

Raccourci Bouton Explication

[Alt]+[d] Suppressionmultiple Supprimetouslesenregistrementssélectionnésenmoded'éditionmultiple.

[Alt]+[x] Coupemultiple Déplacetouslesenregistrementssélectionnésenmoded'éditionmultiple.

[Alt]+[c] Copiemultiple Dupliquetouslesenregistrementssélectionnésenmoded'éditionmultiple.

[Alt]+[v]Remplacementmultiple

Remplacetouslesenregistrementssélectionnésenmoded'éditionmultiple.

Lesraccourcisclavierci-dessusnefonctionnentquesousWindowssouscetteforme.LesutilisateursdeMacdoiventutiliser[Ctrl]+[⌥Opt]aulieudelatouche[Alt]avecleraccourciclavier.Enoutre,FirefoxsurWindowsfaitexceptionàlanorme:vousdevezappuyersurleraccourciclavier[Alt]+[Shift].

Raccourcisclavier

Raccourcisclaviergénéraux

Raccourcisclavierenmoded'édition

Raccourcisclavierenmoded'éditionmultiple

ManuelpourContao3.2

27Raccourcisclavier

Page 28: Manuel pour Contao 3.2 - Contao Documentation

ManuelpourContao3.2

28Raccourcisclavier

Page 29: Manuel pour Contao 3.2 - Contao Documentation

LeschapitressuivantsexpliquentcommentgérerlespagesdansContao.DepuisqueContaoestunsystèmedegestiondecontenubasésurlespages,cesdernièresetlastructuredesitesontlesélémentscentrauxdevotresiteinternetettoutcontenuquin'estpasassociéàunepagenepourrajamaisêtrevu.

Gestiondespages

ManuelpourContao3.2

29Gestiondespages

Page 30: Manuel pour Contao 3.2 - Contao Documentation

Comprendrecommentlespages,lesarticles,lesélémentsdecontenuetlesmodulessontliésentreeuxestlaclédel'apprentissagedeContao.Commementionnéprécédemment,lastructuredesiteestl'élémentcentraldevotresite.LesvisiteursdevotresiteinternetdemandenttoujoursdespagesetnondesarticlescommedansunCMSbasésurdesnœuds.

Lediagrammemontrequelesarticlesetlesprésentationsdepagesontlesdeuxélémentslesplusimportantesd'unepage.Alorsquelesarticlesstockentlecontenud'unepage,laprésentationdepagedéfinitlafaçondontilestaffichésurlesite.LesprésentationsdepagedeContaosontbaséessurlesCSSetbiensûrellesn'utilisentpasdemiseenpageavecdestables.Leschapitressuivantsexpliquentcommentcréerdesfeuillesdestyleetdesmodules,commentlescombinerdansuneprésentationdepageetcommentcréerdespagesquil'utilisent.

Composants

ManuelpourContao3.2

30Composants

Page 31: Manuel pour Contao 3.2 - Contao Documentation

Unedesigndesiteinternetsecomposegénéralementdefeuillesdestyle,demodulesfrontoffice,deprésentationsdepage,defichiersetdemodèlesquevouspouvezgérerdanslebackofficedeContao.Legestionnairedethèmenechangepascetteapprochedutout,ilajoutejusteuneoptionpourexporteretimportercesressources.

Laprincipaledifférenceentrelesthèmesetlesmodèlesdufrontofficeestqu'unmodèledufrontofficecontientunexempledesiteinternetentièrementpréconfiguré,ycomprisunexempledestructuredesite,d'articles,d'élémentsdecontenuetmêmed'utilisateursetdegroupesd'utilisateurs.Unthème,enrevanche,necontientqueledesigndusiteinternetetpeutdoncêtreimportésansrisquedeperdretouteslesdonnéesexistantes.

Unthèmeestungroupedefeuillesdestyle,demodulesfrontofficeetdeprésentationsdepage,quisonttousstockésdanslabasededonnéesetautomatiquementreconnusparl'exportateurdethème.Vousenapprendrezplussurcesélémentsdansleschapitressuivants.Unthèmeincluthabituellementdesimagesetd'autresfichiersàpartirdurépertoiredesfichiersetdesmodèlespersonnalisésenoptionàpartirdurépertoiredesmodèles.Toutefois,cesressourcesnesontpasautomatiquementliéesaveclethèmeetdoiventdoncêtreajoutéesdanslaconfigurationduthèmepouryêtreincluesdansl'exportation.

Thèmes

Thèmesparoppositionauxmodèlesdufrontoffice

Composantsd'unthème

ManuelpourContao3.2

31Thèmes

Page 32: Manuel pour Contao 3.2 - Contao Documentation

Pourexporterunthème,cliquezsimplementsurleboutond'exportationettéléchargerlefichier.ctoenlocalsurvotreordinateur.Bienque.ctoestuneextensiondefichierpropriétairepourlesthèmesdeContao,lefichierestenfaitunearchiveZIPquipeutêtreextraiteavecchaqueprogrammequitraitelesfichiers.zip.Pourréimporterunthème,téléversezlefichier.ctodansvotreinstallationdeContao,ouvrezlegestionnairedethèmesetcliquezsur"Importdethème".Vouspouvezimporterplusieursthèmesàlafois.Unefoisl'importationterminée,vouspouvezassocieruneouplusieursprésentationsdepagedunouveauthèmedanslastructuredesite.

Exportationetimportationd'unthème

ManuelpourContao3.2

32Thèmes

Page 33: Manuel pour Contao 3.2 - Contao Documentation

Lessitesinternetaccessiblesdoiventtoujoursêtreformatésàl'aidedesCSS,c'estpourquoiContaoinclutunmodule"feuillesdestyle"quivouspermetdegérerlesdéfinitionsdeformatagedanslebackoffice.PourréférencerlesdifférentsélémentsdeContao,vousdevezconnaîtreleursnomsdeclasse.Lesclassesdesélémentsdecontenucommencentpar"ce_"(parexemple"ce_text")etlesclassesdesmodulesavec"mod_"(parexemple"mod_search").Sivousn'êtespassûr,ilsuffitderegarderdanslecodesourcedelapage.

Chaquefeuilledestylepeutêtrelimitéeparunouplusieurstypesdemédiaet/ouparuneversionparticulièred'InternetExplorer,danslecasoùvousavezbesoindefixerundesesnombreuxbogues.Faitesattentionàl'ordredesdéfinitionsdeformatage,carcellesquisuivent,remplacentlesprécédentes.

/*Définirlavaleurgénéraled'abord*/

.mod_search{

margin:24px;

}

/*PuislaremplacerpourIE7*/

*:first-child+html.mod_search{

margin:18px;

}

Feuillesdestyle

ManuelpourContao3.2

33Feuillesdestyle

Page 34: Manuel pour Contao 3.2 - Contao Documentation

Sil'ordreestinversé,lavaleurgénéralel'emporteraitsurlamargespécifiqueàInternetExplorer.

ManuelpourContao3.2

34Feuillesdestyle

Page 35: Manuel pour Contao 3.2 - Contao Documentation

Lesmodulesfrontofficevouspermettentd'ajouterpresquen'importequeltypedefonctionnalitésàvotresiteinternet.LecœurdeContaocomprenddesmodulespourgénérerdifférentsmenusdenavigation,gérerl'enregistrementetl'authentificationd'unmembre,recherchersurlesite,l'importationdefluxRSSetbienplusencore.Pourcréerunmodule,connectez-vousaubackofficeetchoisissez"Thèmes"->"modulesfrontoffice"danslemenudenavigation.

Module ClasseCSS Description

Menudenavigation mod_navigation Génèreunmenudenavigationàpartirdelastructuredesite.

Navigationpersonnalisée mod_customnav Génèreunmenupersonnalisé.

Navigation"fild'Ariane" mod_breadcrumb Génèreunmenudetype"fild'Ariane".

Navigationrapide mod_quicknav Génèreunmenudetypelistedéroulanteàpartirdelastructuredesite.

Lienrapide mod_quicklink Génèreunmenudetypelistedéroulante.

Navigation"Livre" mod_booknav Génèreunmenudetype"Livre".

Paginationd'articles mod_article_nav Génèreunepaginationpournaviguerdanslesarticles.

Plandusite mod_sitemap Génèreunelistedetouteslespagesdelastructuredesite.

Formulairedeconnexion mod_login Génèreunformulairedeconnexion.

Déconnexionautomatique - Déconnecteautomatiquementunmembre.

Donnéespersonnelles mod_personalData Génèreunformulairepermettantdemodifierlesdonnéespersonnellesd'unmembre.

Formulaired'inscription mod_registration Créeunformulaired'inscription.

Motdepasseperdu mod_password Créeunformulairededemandedenouveaumotdepasse.

Fermerlecompte mod_closeAccount Créeunformulairepoursupprimerlecompted'unmembre.

Listed'actualités mod_newslist Ajouteunelisted'actualitésàlapage.

Lecteurd'actualités mod_newsreader Affichelesdétailsd'uneactualité.

Archived'actualités mod_newsarchive Ajouteunearchived'actualitésàlapage.

Menuarchived'actualités mod_newsmenu Génèreunmenudenavigationpourunearchived'actualités.

Calendrier mod_calendar Ajouteuncalendrierdansunepage.

Lecteurd'événement mod_eventreader Affichelesdétailsd'unévénement.

Listed'événements mod_eventlist Ajouteunelisted'événementsdansunepage.

Menulisted'événements mod_eventmenu Génèreunmenudenavigationpourparcourirlalisted'événements.

S'abonner mod_subscribe Génèreunformulairepours'abonneràuneouplusieurslistesdediffusion.

Sedésabonner mod_unsubscribe Génèreunformulairepoursedésabonneràuneouplusieurslistesdediffusion.

Listedebulletinsd'information mod_nl_list Ajouteunelistedebulletinsd'informationàunepage.

Modules

ManuelpourContao3.2

35Modules

Page 36: Manuel pour Contao 3.2 - Contao Documentation

d'information mod_nl_reader Affichelesdétailsd'unbulletind'information.

ListedeFAQ mod_faqlist Ajouteunelistedequestionsfréquemmentposéesdanslapage.

LecteurdeFAQ mod_faqreader Affichelaréponseàunequestionfréquemmentposée.

PagedeFAQ mod_faqpage AfficherlalistedeFAQetlelecteurdeFAQsurlamêmepage.

Formulaire mod_form Ajouteunformulairedanslapage.

Moteurderecherche mod_search Ajouteunformulairederecherchedanslapage.

Commentaires mod_comments Gérerlescommentairesoulesentréesd'unlivred'or.

Listed'enregistrements mod_listing Listerlesenregistrementsd'unetabledelabasededonnées.

AnimationFlash mod_flash Permetd'inclureuneanimationFlashdansunepage.

Listed'articles mod_article_list Génèreunelisted'articlescontenudansunezoneparticulière.

Imagealéatoire mod_random_image Ajouteuneimagealéatoiredansunepage.

CodeHTMLpersonnalisé - Permetd'inclureducodeHTMLpersonnalisé.

LecteurdefluxRSS mod_rss_reader AjouteunfluxRSSàlapage.

Chaquemodulefrontofficepeutêtreprotégédesortequeseulslesinvitésoulesmembresd'ungroupeenparticulierpuissentlevoirsurlesiteinternet.

Contrôled'accès

ManuelpourContao3.2

36Modules

Page 37: Manuel pour Contao 3.2 - Contao Documentation

Lesprésentationsdepagedéterminentl'agencementbasiqued'unepage,parex.lenombredecolonnesoulalargeurgénérale,etelledéfinissentquelsmodulesdefrontofficevontêtreaffichésdansquellescolonnes.Ellespermettentaussid'incluredesfeuillesdestyle,delierlapageàunfluxRSSouAtom,d'associerunIDGoogleAnalyticsetd'ajouterducodeJavaScriptquipourraitêtrerequispourcontrôlerdesélémentsinteractifsoudesplugins.LeframeworkCSSdeContaodiviseautomatiquementlafenêtredunavigateurenplusieurssectionsetaffichelesmodulesquiontétéassignésàcessectionslesunsàlasuitedesautres.

Celaimpliquequelorsquevousallezcréeruneprésentationdepage,vousdevriezdéjàavoircréétouteslesfeuillesdestyleetlesmodulesfrontofficequevousvoulezinclure.C'estpourquoi,ilestrecommandédecréerlesressourcesdansl'ordresuivant:

CréerlesmodulesfrontofficenécessairesCréerlesfeuillesdestylenécessaires

Présentationsdepage

ManuelpourContao3.2

37Présentationsdepage

Page 38: Manuel pour Contao 3.2 - Contao Documentation

Optionnellement,créerdesarchivesd'actualitésoudescalendriersCréeruneprésentationdepageetcombinertouslescomposants

ManuelpourContao3.2

38Présentationsdepage

Page 39: Manuel pour Contao 3.2 - Contao Documentation

Letypedepagedéterminesilapagevaafficherducontenu,redirigerversuneautrepageoudéfinirlepointdedépartd'unnouveausiteinternetdanslastructuredepage.Contaosupportesixtypesdepagesdifférentsquisontexpliquésci-dessous.

Typedepage Description

Pagesimple Unepagesimplecontientdesarticlesetdesélémentsdecontenu.C'estletypedepagepardéfaut.

RedirigerversuneURLexterne

CetypedepageréorienteautomatiquementlesvisiteursversuneURLexterne.Celafonctionnecommeunlienhypertexte.

Redirigerversuneautrepagedusite

Cetypedepageréorienteautomatiquementlesvisiteursversuneautrepagedelastructuredesite.

Racined'unnouveausite Cetypedepageestlepointdedépartpourcréerunsiteinternetdanslastructuredesite.

Erreur403(accèsinterdit)

Siunutilisateursanspermissionessayed'accéderàunepageprotégée,unepaged'erreur403seraretournée.Cettepagedoitêtreajoutéeaupremierniveaudansvotrepageracined'unnouveausite.

Erreur404(pagenontrouvée)

Siunutilisateuressayed'accéderàunepagequin'existepas,unepaged'erreur404seraretournée.Cettepagedoitêtreajoutéeaupremierniveaudansvotrepageracined'unnouveausite.

Contaosupporteplusieurssitesinternetàl'intérieurdelastructuredesiteetredirigeautomatiquementlesvisiteursversuneracinedesiteparticulièreenfonctiondunomdedomaineoudesréglagesdelangues.Imaginonsparexemplequevousdeviezcréerunsited'entreprisebilinguequiutiliselenomdedomaine"www.example.com"etunpetitsitepersonnelquiutiliselenomdedomaine"www.personal.example.org".Vousaurezbesoindetroispagesracinesd'unnouveausitepourcela:

Type DNS Codedelangue Languedesecours

Siteinternetd'entrepriseenAllemand aucun de non

Siteinternetd'entrepriseenAnglais aucun en oui

Siteinternetpersonnel www.personal.example.org de oui

Letableausuivantmontreversquellepageunvisiteurvaêtreredirigéenfonctiondunomdedomaineetdelalanguedesonnavigateur.

Domaine Languedunavigateur Ciblederedirection

www.example.com Anglais Siteinternetd'entrepriseenAnglais

www.example.com Allemand Siteinternetd'entrepriseenAllemand

www.example.com Espagnol Siteinternetd'entrepriseenAnglais

www.personal.example.org Nonpertinent Siteinternetpersonnel

Notezquesinousn'utilisionspasl'option"languedesecours",lesiteinternetpersonnelneseraitdisponiblequepourlesutilisateursdontlalanguedunavigateurestl'Allemand!

Typesdepage

Modemulti-domaines

ManuelpourContao3.2

39Typesdepage

Page 40: Manuel pour Contao 3.2 - Contao Documentation

Lesdroitsd'accèsdéterminentcequelesutilisateursdubackofficesontautorisésàfaireavecunepageetsesarticles.Ilsn'ontrienàvoiraveclespagesprotégéesquinesontaccessiblesqueparcertainsutilisateursfrontoffice!SimilaireausystèmedepermissionsdesfichiersUnix,ilexistetroisniveauxd'autorisation:

Accèsentantquepropriétaired'unepageAccèsentantquemembred'ungroupepropriétairedelapageAccèsentantqu'utilisateursansprivilège

Chaqueniveaupeutavoirdifférentespermissions.Pardéfaut,lepropriétairedelapageestautoriséàéditerlapageelle-mêmeainsiquelesarticlesdelapage,tandisqu'unutilisateurd'ungroupequipossèdeunepageestautoriséàéditerlesarticlesseulement.Lesutilisateurssansprivilègen'ontaucundroitsenécriture.

Droitsd'accès

ManuelpourContao3.2

40Typesdepage

Page 41: Manuel pour Contao 3.2 - Contao Documentation

LeschapitressuivantsexpliquentcommentgérerlecontenudansContao.LecœurdeContaosupportedenombreuxtypesdecontenucommedesarticles,desactualités,desévénements,desbulletinsd'information,desformulairesoudesdéfinitions.D'autrestypesdecontenucommedesbannières,desbillets,desproduitsoudesrecommandationssontdisponiblesdansleréférentield'extensions.Pourcréerducontenu,seconnecteraubackofficeetchoisirundesmodulesdanslasection"Contenu"dumenudenavigation.

Gestionducontenu

ManuelpourContao3.2

41Gestionducontenu

Page 42: Manuel pour Contao 3.2 - Contao Documentation

Lesarticlessontdesconteneurspourlesélémentsdecontenu.Regrouperlesélémentsdecontenupararticlerendletravailplusfacilepourdéplacer,publier,copier,éditerouexportercesélémentsensembleaulieud'unparun.Chaquearticleestassociéàunepageparticulièreetàunesectionparticulièredecettepage,ilaainsiunepositionfixedanslastructuredesiteetsurlesiteinternet.Contaopeutoptionnellementn'afficherqu'uneaccroched'articleavecunlien"Ensavoirplus...".

Lesélémentsdecontenusontunmoyensimpleetintuitifpourcréerducontenu.Aulieud'utiliserunéditeurdetexteriche,Contaofournitunélémentdistinctpourchaquetypedecontenucommelestextes,leslistes,lestableaux,leslienshypertextes,lesimagesoulestéléchargements.VoiciunaperçudesélémentsdecontenudebasedeContao:

Nom ClasseCSS Description

Titre ce_headline Génèreuntitre(h1-h6).

Texte ce_text Génèreuntexteenrichiquipeutêtreformatéàl'aidedeTinyMCE.

HTML - Vouspermetd'ajouterducodeHTMLpersonnalisé.

Liste ce_list Génèreunelisteordonnéounonordonnée.

Tableau ce_table Génèreuntableauquipeut-êtretrié.

Code ce_code Ajoutelacolorationsyntaxiquesurdesextraitsdecodeetlesimprimesurl'écran.

Accordéon(élémentseul) ce_accordion Génèreunseulélémentaccordéon(avecMooTools).

Accordéon(débutdel'enveloppe) ce_accordionStart Génèrel'ouvertureduconteneurdel'accordéon.

Accordéon(findel'enveloppe) - Génèrelafermetureduconteneurdel'accordéon.

Sliderdecontenu(débutdel'enveloppe) ce_sliderStart Génèrel'ouvertureduconteneurduslider.

Sliderdecontenu(findel'enveloppe) - Génèrelafermetureduconteneurduslider.

Lienhypertexte ce_hyperlink Génèreunlienhypertexteversunautresiteinternet.

Lienverslehautdepage ce_toplink Génèreunlienpourretournerenhautdepage.

Image ce_image Génèreuneimage.

Galeried'images ce_gallery Génèreunegaleried'imagesaveceffetlightbox.

Vidéo/audio ce_player Génèreunlecteurvidéoouaudio.

YouTube ce_youtube AjouteunevidéoYouTube.

Téléchargement ce_download Génèreunlienhypertexteversunfichieràtélécharger.

Téléchargements ce_downloads Génèredeslienshypertextesmultiplesversdesfichiersàtélécharger.

Contenud'unarticle - Insèreunautrearticle.

Élémentdecontenu (classeparente) Insèreunautreélémentdecontenu.

Formulaire ce_form Insèreunformulaire.

Articles

Élémentsdecontenu

ManuelpourContao3.2

42Articles

Page 43: Manuel pour Contao 3.2 - Contao Documentation

Module (classeparente) Insèreunmodulefrontoffice.

Accroched'unarticle ce_teaser Affichel'accroched'unarticle.

Commentaires ce_comments Ajouterunformulairedesaisiedecommentairesàlapage.

Chaqueélémentdecontenupeutêtreprotégédesortequeseulslesinvitésoulesmembresd'ungroupeenparticulierpuissentlevoirsurlesiteinternet.

LecontenuFlashestuntypeparticulierdecontenuquin'estpasaffichédansunarticlesurlesiteinternetmaischargédansunfilmFlashdynamiqueenutilisant"loadVars()".PourpermettrelacommunicationentreContaoetFlash,vousdevezajouterlafonctionsuivanteauframeprincipaldevotrefilm:

TextField.prototype._loadArticle=function(flashID){

tf=this;

//AutoriserlemodeHTMLetsupprimerlecontenu

tf.html=true;

tf.htmlText="";

//InstancierunnouvelobjetLoadVars

lv=newLoadVars();

lv["flashID"]=flashID;

lv.sendAndLoad(URL+"flash.php",lv,"POST");

lv.onLoad=function(success){

if(success){

tf.htmlText=lv["content"];

}

}

}

//ChargerlecontenuFlash"myArticle"danslechamptexte"myTextBox"

myTextBox._loadArticle("myArticle");

Contrôled'accès

ContenuFlash

Importerunefeuilledestyle

ManuelpourContao3.2

43Articles

Page 44: Manuel pour Contao 3.2 - Contao Documentation

LecodeActionScriptsuivantvouspermetd'importerunefeuilledestylepourformaterunchampdetextedynamique:

TextField.prototype._addCSS=function(style_sheet){

tf=this;

tf.styleSheet=null;

//InstancierunnouvelobjetStyleSheet

st=newTextField.StyleSheet();

st.load(URL+style_sheet);

st.onLoad=function(success){

if(success){

tf.styleSheet=st;

}

}

}

//Ajouterlafeuilledestyle"basic.css"auchamptexte"myTextBox"

myTextBox._addCSS("basic.css");

NotezqueFlashneprendenchargequ'unpetitsous-ensembledebalisesHTML,desortequecertainsdevosstylespuissentnepass'affichercorrectement.

ManuelpourContao3.2

44Articles

Page 45: Manuel pour Contao 3.2 - Contao Documentation

L'extensionactualités/blogvouspermetdegérerdesactualitésoudesbilletsd'unblogetdelesafficherdanslefrontoffice.Contrairementauxarticlesquisontassociésàunepageenparticulier,lesactualitéssontorganiséesdansdesarchivesd'actualités,quivouspermetdefacilementlesregrouper,delescatégoriseroudelesexporter.

Lesarchivesd'actualitésontutiliséespourregrouperet/oucatégoriserlesactualités.Chaquearchivepeutserapporteràunecertainelangueouunsujetparticulier.

Lesmodulesfrontofficesontutiliséspourafficherlesactualitéssurlesiteinternet.Ilspeuventêtreconfigurésaveclemodule"Modules"danslebackofficeetdoiventêtreajoutésàunarticleouàuneprésentationdepagepourpouvoirapparaîtresurlesiteinternet.L'extensionactualités/blogcomprendquatremodulesfrontoffice:

Module ClasseCSS Description

Listed'actualités mod_newslist Ajouteunelisted'actualitésàlapage.

Lecteurd'actualités mod_newsreader Affichelesdétailsd'uneactualité.

Archived'actualités mod_newsarchive Ajouteunearchived'actualitésàlapage.

Menuarchived'actualités mod_newsarchiveMenu Génèreunmenudenavigationpourunearchive

d'actualités.

ChaqueactualitéauneURLunique(permalien)quipeutêtreutiliséepourlaréférencer:

http://www.example.com/news/items/james-wilson-returns.html

L'URLci-dessussollicitel'actualité"james-Wilson-retours"vialapage"actualités".Rappelez-vousqueContaoestunCMSbasésurlespages,doncsilapage"actualités"n'existaitpasousiellenecomprenaitpaslemodulelecteurd'actualités,alorsl'actualiténeseraitpasaffichée.

Actualités

Archivesd'actualités

Modulesfrontoffice

Permaliens

ManuelpourContao3.2

45Actualités

Page 46: Manuel pour Contao 3.2 - Contao Documentation

L'extensioncalendriervouspermetdegérerdesévénementsetdelesafficherdansuncalendrierouunelisted'événementssurlesiteinternet.Contrairementauxarticlesquisontassociésàunepageenparticulier,lesévénementssontorganisésdansdescalendriers,quivouspermetdelesregrouper,delesclasseroudelesexporter.

Lescalendrierssontutiliséspourregrouperet/oucatégoriserdesévénements.Chaquecalendrierpeutserapporteràunecertainelangueouunsujetparticulier.

Lesmodulesfrontofficesontutiliséspourafficherdesévénementssurlesiteinternet.Ilspeuventêtreconfigurésaveclemodule"Modules"danslebackofficeetdoiventêtreajoutésàunarticleouàuneprésentationdepagepourpouvoirapparaîtresurlesiteinternet.L'extensioncalendriercomprendquatremodulesfrontoffice:

Module ClasseCSS Description

Calendrier mod_calendar Ajouteuncalendrierdansunepage.

Lecteurd'événements mod_eventreader Affichelesdétailsd'unévénement.

Listed'événements mod_eventlist Ajouteunelisted'événementsdansunepage.

Menulisted'événements mod_eventmenu Génèreunmenudenavigationpourparcourirlaliste

d'événements.

ChaqueévénementauneURLunique(permalien)quipeutêtreutiliséepourleréférencer:

http://www.example.com/event-reader/events/final-exams.html

L'URLci-dessussollicitel'événement"final-exams"vialapage"events".Rappelez-vousqueContaoestunCMSbasésurlespages,doncsilapage"events"n'existaitpasousiellen'incluaitpaslemodulelecteurd'événements,alorsl'événementneseraitpasaffiché.

Événements

Calendriers

Modulesfrontoffice

Permaliens

ManuelpourContao3.2

46Événements

Page 47: Manuel pour Contao 3.2 - Contao Documentation

Cettefonctionnalitépeutêtreutiliséepourlesarchivesd'actualitésetlescalendriers.Voiciunexempleaveclalistedescalendriers.

UnouplusieurscalendrierspeuventêtreregroupésetexportésentantquefluxRSSouAtom.Ilenvademêmepourlesarchivesd'actualités.Dansunmêmetemps,vouspouvezchoisird'exporteruniquementlesaccrochesoulesarticlescompletsdechaqueévénementouactualité.

FluxRSS/Atom

Paramètres

ManuelpourContao3.2

47FluxRSS/Atom

Page 48: Manuel pour Contao 3.2 - Contao Documentation

LesfichiersXMLsontgénérésautomatiquementdanslerépertoiresharedevotreinstallationdeContao.Danscetexemple:share/evenements.xml.

FichiersXML

ManuelpourContao3.2

48FluxRSS/Atom

Page 49: Manuel pour Contao 3.2 - Contao Documentation

L'extensionbulletinsd'informationvouspermetdegéreretd'envoyerdesbulletinsd'informationetoptionnellementdelesaffichersurlesiteinternet.Contrairementauxarticlesquisontassociésàunepageparticulière,lesbulletinsd'informationsontorganisésenlistesdediffusion,cequivouspermetdefacilementlesregrouperoudelescatégoriser.

Lesinscriptionsàunbulletind'informationsonttraitéesparlesmodulesfrontofficecréésàceteffet,doncvousn'avezpasàgérerlesdestinatairesmanuellement.Pourdesraisonsdeprotectiondesdonnéesprivées,Contaoutilisel'inscriptionparDoubleOptInetnestockequel'adressee-maildel'abonné.

Aucasoùvousauriezdéjàunelistededestinataires,vouspouvezl'importerdansContaoàpartird'unfichierCSV.

Danslamesureoùvousenvoyezdesbulletinsd'informationàdesmembresinscrits,vouspouvezpersonnalisercesbulletinsavecdes"SimpleTokens".Les"SimpleTokens"fonctionnentd'unemanièresimilaireàcelledesbalisesd'insertionetpeuventêtreutilisésaussibiendanslaversionHTMLquedanslaversiontextedevotrebulletind'information.

Cher##firstname####lastname##,

Veuillezmettreàjourvosdonnéespersonnelles:

Rue:##street##

Codepostal:##postal##

Ville:##city##

Téléphone:##phone##

E-mail:##email##

L'administrateur

Cependant,contrairementauxbalisesd'insertion,les"SimpleTokens"nepermettentpasseulementd'ajouterdesdonnéesdelatabletl_member,maisaussidefairedesdéclarationsif-elsesimples,parex.despécifierunesalutation:

{ifgender=="male"}

Bulletinsd'information

Destinataires

Bulletinsd'informationpersonnalisés

ManuelpourContao3.2

49Bulletinsd'information

Page 50: Manuel pour Contao 3.2 - Contao Documentation

Monsieur##lastname##,

{elseifgender=="female"}

Madame##lastname##,

{else}

Madame,Monsieur,

{endif}

[contenudubulletin]

{ifphone==""}

Veuillezs'ilvousplaîtmettreàjourvosinformationsdecontactetentrer

votrenumérodetéléphone.

{endif}

L'administrateur

Enparticuliersurleshébergementsmutualisés,ilyadeslimitesconcernantletempsd'exécutiond'unscriptet/oulenombred'e-mailsquipeuventêtreenvoyésparminute.Contaoessaiedecontournercesdeuxproblèmesendivisantleprocessusd'envoienplusieurscyclespouréviterledépassementdutempsd'exécutionduscriptetenajoutantunepauseentrechaquecyclepourcontrôlerlenombred'e-mailsparminute.

Lesmodulesfrontofficesontutiliséspourgérerlesinscriptionsauxbulletinsd'informationetoptionnellementlesaffichersurlesiteinternet.Ilspeuventêtreconfigurésaveclemodule"Modules"danslebackofficeetdoiventêtreajoutésàunarticleouàuneprésentationdepagepourêtreaffichéssurlesiteinternet.

Envoyerdesbulletinsd'information

Modulesfrontoffice

ManuelpourContao3.2

50Bulletinsd'information

Page 51: Manuel pour Contao 3.2 - Contao Documentation

Module ClasseCSS Description

S'abonner mod_subscribe Génèreunformulairepours'abonneràuneouplusieurslistesdediffusion.

Sedésabonner mod_unsubscribe Génèreunformulairepoursedésabonneràuneouplusieurslistesdediffusion.

Listedebulletinsd'information mod_nl_list Ajouteunelistedebulletinsd'informationàunepage.

Lecteurdebulletinsd'information mod_nl_reader Affichelesdétailsd'unbulletind'information.

Chaquebulletind'informationauneURLunique(permalien)quipeutêtreutiliséepourleréférencer:

http://www.example.com/newsletters/items/james-wilson-returns.html

L'URLci-dessussollicitelebulletind'information"james-wilson-returns"vialapage"newsletters".Rappelez-vousqueContaoestunCMSbasésurlespages,doncsilapage"newsletters"n'existaitpasousiellen'incluaitpaslemodulelecteurdebulletinsd'information,alorslebulletind'informationneseraitpasaffiché.

Permaliens

ManuelpourContao3.2

51Bulletinsd'information

Page 52: Manuel pour Contao 3.2 - Contao Documentation

Legénérateurdeformulaireintégrépeutêtreutilisépourcréerdesformulairesinteractifsquisontenvoyéesviae-mailoustockésdanslabasededonnéesdeContao.Lesfichierstéléverséspeuventêtreenvoyésentantquepiècesjointespare-mailoustockésdanslerépertoiredesfichiersdeContao.Legénérateurdeformulaireprendenchargequatreformatsdedonnéesdifférents:

Format Description

Rawdata

Lesdonnéesduformulairesontenvoyéescommedusimpletexteavecunenouvellelignepourchaquechamp.

XMLfile Lesdonnéesduformulairesontenvoyéesenpiècejointesouslaformed'unfichierXML.

CSVfile Lesdonnéesduformulairesontenvoyéesenpiècejointesouslaformed'unfichierCSV.

E-mailTousleschampssontignorésàpartemail,subject,messageetcc(copiecarbone)etlesdonnéessontenvoyéescommesil'e-mailavaitétéenvoyédepuisunclientdemessagerie.Lesenvoisdefichierssontautorisés.

Semblableauxélémentsdecontenu,Contaoproposeunélémentséparépourchaquetypedechampdeformulairetelsqueleschampsdetextes,leschampsdemotsdepasse,lesmenusdéroulants,lestéléchargementsdefichiers,leschampscachésouboutonsdesoumission.VoiciunaperçudeschampsdisponiblesdeContao:

Champ ClasseCSS Description

Titre headline Champpersonnalisépourinséreruntitredesection.

Explication explanation Champpersonnalisépourinséreruntexted'explication.

CodeHTML - ChamppersonnalisépourinsérerducodeHTML.

Fieldset - Unconteneurpourleschampsavecunelégendeenoption(uniquementdisponiblepourlesformulairessanstableau).

Champtexte text Champd'unelignepourlasaisied'untextecourtoumoyen.

Champmotdepasse password Champd'unelignepourlasaisied'unmotdepasse.Contaoajoute

automatiquementunchampdeconfirmation.

Zonedetexte textarea Champcomportantplusieurslignespourlasaisied'untextemoyenoulong.

Listedéroulante select/multiselect Listedéroulantepourlasélectiond'unouplusieurschoix.

Boutonradio radio Listedeplusieursoptionsdontuneseulepeutêtresélectionnée.

Caseàcocher checkbox Listedeplusieursoptionsdontchacunepeutêtresélectionnée.

Envoidefichier upload Champd'unelignepourl'envoid'unfichierlocalversleserveur.

Champcaché - Champd'unelignenonvisibledansleformulaire.

Questiondesécurité captcha Questionsimpled'arithmétiquepourvérifierqueleformulaireestbien

soumisparunindividu(CAPTCHA).

Bouton submit Boutond'envoiduformulaire.

Formulaires

Leschampsduformulaire

ManuelpourContao3.2

52Formulaires

Page 53: Manuel pour Contao 3.2 - Contao Documentation

d'envoi submit Boutond'envoiduformulaire.

Lemodulefrontofficeestutilisépourafficherdesformulairessurlesiteinternet.Ilpeutêtreconfiguréaveclemodule"Modules"danslebackofficeetdoitêtreajoutéàunarticleouàuneprésentationdepagepourpouvoirapparaîtresurlesiteinternet.L'extensiongénérateurdeformulairecomprendunmodulefrontoffice:

Module ClasseCSS Description

Formulaire mod_form Ajouteunformulairedanslapage.

L'élémentdecontenuestutilisépourafficherdesformulairessurlesiteinternet.Ilpeutêtreconfiguréavecl'élémentdecontenu"Formulaire"danslebackofficeetdoitêtreajoutéàunarticlepourpouvoirapparaîtresurlesiteinternet.L'extensiongénérateurdeformulairecomprendunélémentdecontenu:

Élémentdecontenu ClasseCSS Description

Formulaire ce_form Insèreunformulaire.

Modulefrontoffice

Élémentdecontenu

ManuelpourContao3.2

53Formulaires

Page 54: Manuel pour Contao 3.2 - Contao Documentation

Lescommentairessontuneautreformedecontenuquevouspouvezgéreràpartirdubackoffice.Lescommentairesdoiventêtreactivésdanslespréférencesdescalendriersetdesarchivesd'actualités.

Lemodulefrontofficeestutilisépourafficherdescommentairessurlesiteinternet.Ilpeutêtreconfiguréaveclemodule"Modules"danslebackofficeetdoitêtreajoutéàunarticleouàuneprésentationdepagepourpouvoirapparaîtresurlesiteinternet.L'extensioncommentairescomprendunmodulefrontoffice:

Module ClasseCSS Description

Commentaires mod_comments Gérerlescommentairesoulesentréesd'unlivred'or.

L'élémentdecontenuestutilisépourafficherdescommentairessurlesiteinternet.Ilpeutêtreconfiguréavecl'élémentdecontenu"Commentaires"danslebackofficeetdoitêtreajoutéàunarticlepourpouvoirapparaîtresurlesiteinternet.L'extensioncommentairescomprendunélémentdecontenu:

Élémentdecontenu ClasseCSS Description

Commentaires ce_comments Ajouterunformulairedesaisiedecommentairesàlapage.

Vouspouvezpermettreauxutilisateursdufrontofficed'utiliserlelangagedebalisageBBCode.

Contaoprendenchargelesbalisessuivantes:

BBCode Définition

[b][/b] Remplacelabaliseavecuntexteengras.

[i][/i] Remplacelabaliseavecuntexteenitalique.

[u][/u] Remplacelabaliseavecuntextesouligné.

[img][/img] Remplacelabaliseavecuneimage(AjouteruneURLentrelesbalises).

[code][/code] Remplacelabaliseavecuntexteàespacementfixe.

[color=#ff0000][/color] Remplacelabaliseavecuntexteencouleur.

[quote][/quote] Remplacelabaliseavecuntextecité.

[quote=John]Bonjour[/quote] Remplacelabaliseavecuntextecitéetlenomdel'auteur(parexemple,Johnaécrit:Bonjour).

[url][/url] Remplacelabaliseavecunlien.

[url=http://][/url] Remplacelabaliseavecunlien(insérerl'URLentantqueparamètre)

[email][/email] Remplacelabaliseavecunlienmailto.

[[email protected]][/email]

Remplacelabaliseavecunlienmailto(insérerl'adressee-mailentantqueparamètre).

Commentaires

Modulefrontoffice

Élémentdecontenu

BBCode

ManuelpourContao3.2

54Commentaires

Page 55: Manuel pour Contao 3.2 - Contao Documentation

UnmodèleestprincipalementcomposédecodesHTMLetPHP.Ilestutilisépourstructurerunepartieducontenud'unmoduleoud'unélémentdecontenu,etc.Parexemple,lemodèlenews_full.html5affichelecontenucompletd'uneactualitéalorsquelemodèlenews_short.html5afficheseulementunepartiedececontenu.

Lesmodèlessetrouventdansleurspropresmodules.Parexemple,news_full.html5setrouvesoussystem/modules/news/templates/news.

Sivousmodifiezcefichierdirectementdanscedossier,ilseraremplacélaprochainefoisquevousmettrezàjourContaoetvousperdreztoutesvosmodifications.Pourévitercela,Contaovouspermetdemodifierlesmodèlesdirectementàpartirdubackoffice.Danscecas,lefichierestdupliquéetvosmodificationsserontconservéeslorsdechaquemiseàjour.

Créezunnouveaudossieretajoutez-yunouplusieursmodèlesquevoussouhaitezmodifier.Parlasuite,n'oubliezpasdejoindreledossierauthèmecommeexpliquédansleparagrapheComposantsd'unthème.

Unmodèlepeutêtreunepartiedelastructured'unmodule,d'unélémentdecontenu,d'unformulaire,etc.etc'estpourquoiilssontpréfixés.Ilspeuventêtrefacilementgroupés,classésetreconnus.Parexemple:lepréfixej_signifie"jQuery"etnl_signifie"newsletter".

Modèles

ManuelpourContao3.2

55Modèles

Page 56: Manuel pour Contao 3.2 - Contao Documentation

Lesbalisesd'insertionsontdesjokersquisontremplacésparducontenudynamiquequandunepageestaffichéeàl'écran.Ellesvouspermettent,parexemple,d'afficherladatecourante,l'adressed'unmembreenfonctiondesonnomoubiend'inclureunfichier.Lesbalisesd'insertionpeuventêtreutiliséespresquepartoutdansContao,mêmedanslespagesencache.

Lesbalisesd'insertionsuivantesvouspermettentdefaireunlienversuneautrepageouversunarticleenutilisantsonIDousonalias.

Balised'insertion Description

{{link::*}}Cettebaliseseraremplacéeparunlienversunepageinterne(remplacez*parunIDouunaliasdepage).

{{link::back}}

Cettebaliseseraremplacéeparunlienquipointeversladernièrepagevisitée.Ellepeutaussiêtreutiliséecomme{{link_open::back}},{{link_url::back}}ou{{link_title::back}}(voirci-dessous).

{{link::login}}Cettebaliseseraremplacéeparunlienverslapagedeconnexiondumembreactuellementconnecté(s'ilyenaun).

{{link_open::*}}Cettebaliseseraremplacéeparlabalised'ouvertured'unlienversunepageinterne:{{link_open::12}}Cliquezici{{link_close}}.

{{link_url::*}}Cettebaliseseraremplacéeparl'URLd'unepageinterne:<ahref="{{link_url::12}}">Cliquezici</a>.

{{link_title::*}}Cettebaliseseraremplacéeparletitred'unepageinterne:<atitle="{{link_title::12}}">Cliquezici</a>.

{{link_close}}Cettebaliseseraremplacéeparlabalisedefermetured'unlienversunepageinterne:{{link_open::12}}Cliquezici{{link_close}}.

{{article::*}}Cettebaliseseraremplacéeparunlienversunarticle(remplacez*parunIDouunaliasd'article).

{{article_open::*}}Cettebaliseseraremplacéparlabalised'ouverturedulienversunarticle:{{article_open::12}}Cliquezici{{link_close}}.

{{article_url::*}}Cettebaliseseraremplacéeparl'URLd'unarticle:<ahref="{{article_url::12}}">Cliquezici</a>.

{{article_title::*}}Cettebaliseseraremplacéeparletitred'unarticle:<atitle="{{article_title::12}}">Cliquezici</a>.

{{news::*}}Cettebaliseseraremplacéeparunlienversuneactualité(remplacez*parunIDouunaliasd'actualité).

{{news_open::*}}Cettebaliseseraremplacéparlabalised'ouverturedulienversuneactualité:{{news_open::12}}Cliquezici{{link_close}}.

{{news_url::*}}Cettebaliseseraremplacéeparl'URLd'uneactualité:<ahref="{{news_url::12}}">Cliquezici</a>.

{{news_title::*}}Cettebaliseseraremplacéeparletitred'uneactualité:<atitle="{{news_title::12}}">Cliquezici</a>.

{{news_feed::*}}Cettebaliseseraremplacéeparl'URLd'unfluxd'unévénement(remplacez*parunIDdufluxd'unévénement).

{{event::*}}Cettebaliseseraremplacéeparunlienversunévénement(remplacez*parunIDouunaliasd'événement).

Balisesd'insertion

Lesélémentsdelien

ManuelpourContao3.2

56Balisesd'insertion

Page 57: Manuel pour Contao 3.2 - Contao Documentation

{{event_open::*}} Cettebaliseseraremplacéparlabalised'ouverturedulienversunévénement:{{event_open::12}}Cliquezici{{link_close}}.

{{event_url::*}}Cettebaliseseraremplacéeparl'URLd'unévénement:<ahref="{{event_url::12}}">Cliquezici</a>.

{{event_title::*}}Cettebaliseseraremplacéeparletitred'unévénement:<atitle="{{event_title::12}}">Cliquezici</a>.

{{calendar_feed::*}}Cettebaliseseraremplacéeparl'URLd'unfluxd'uncalendrier(remplacez*parunIDdufluxd'uncalendrier).

{{faq::*}}Cettebaliseseraremplacéeparunlienversunequestionfréquemmentposée(remplacez*parunIDouunaliasdeFAQ).

{{faq_open::*}}Cettebaliseseraremplacéparlabalised'ouvertureduliend'unequestion:{{faq_open::12}}Cliquezici{{link_close}}.

{{faq_url::*}}Cettebaliseseraremplacéeparl'URLd'unequestion:<ahref="{{faq_url::12}}">Cliquezici</a>.

{{faq_title::*}}Cettebaliseseraremplacéeparletitred'unequestion:<atitle="{{faq_title::12}}">Cliquezici</a>.

Lesbalisesd'insertionsuivantesvouspermettentd'affichern'importequellepropriétédumembreactuellementconnecté.

Balised'insertion Description

{{user::firstname}} Cettebaliseseraremplacéeparleprénomdumembreactuellementconnecté.

{{user::lastname}} Cettebaliseseraremplacéeparlenomdefamilledumembreactuellementconnecté.

{{user::company}} Cettebaliseseraremplacéeparlenomdelasociétédumembreactuellementconnecté.

{{user::phone}} Cettebaliseseraremplacéeparlen°detéléphonedumembreactuellementconnecté.

{{user::mobile}}Cettebaliseseraremplacéeparlen°detéléphoneportabledumembreactuellementconnecté.

{{user::fax}} Cettebaliseseraremplacéeparlen°defaxdumembreactuellementconnecté.

{{user::email}} Cettebaliseseraremplacéeparl'adressee-maildumembreactuellementconnecté.

{{user::website}}Cettebaliseseraremplacéeparl'adressedusiteinternetdumembreactuellementconnecté.

{{user::street}} Cettebaliseseraremplacéeparlenomdelaruedumembreactuellementconnecté.

{{user::postal}} Cettebaliseseraremplacéeparlecodepostaldumembreactuellementconnecté.

{{user::city}} Cettebaliseseraremplacéeparlenomdelavilledumembreactuellementconnecté.

{{user::country}} Seraremplacéeparlenomdupaysdumembreactuellementconnecté.

{{user::username}} Cettebaliseseraremplacéeparlenomd'utilisateurdumembreactuellementconnecté.

Lesbalisesd'insertionsuivantesvouspermettentd'affichern'importequellepropriétédelapagecourante.

Balised'insertion Description

{{page::id}} Cettebaliseseraremplacéeparl'IDdelapagecourante.

{{page::alias}} Cettebaliseseraremplacéeparl'aliasdelapagecourante.

{{page::title}} Cettebaliseseraremplacéeparlenomdelapagecourante.

Propriétésdel'utilisateur

Propriétésdepage

ManuelpourContao3.2

57Balisesd'insertion

Page 58: Manuel pour Contao 3.2 - Contao Documentation

{{page::pageTitle}} Cettebaliseseraremplacéeparletitredelapagecourante.

{{page::language}} Cettebaliseseraremplacéeparlalanguedelapagecourante.

{{page::parentAlias}} Cettebaliseseraremplacéeparl'aliasdelapageparente.

{{page::parentTitle}} Cettebaliseseraremplacéeparlenomdelapageparente.

{{page::parentPageTitle}} Cettebaliseseraremplacéeparletitredelapageparente.

{{page::mainAlias}} Cettebaliseseraremplacéeparl'aliasdelapageparenteprincipale.

{{page::mainTitle}} Cettebaliseseraremplacéeparlenomdelapageparenteprincipale.

{{page::mainPageTitle}} Cettebaliseseraremplacéeparletitredelapageparenteprincipale.

{{page::rootTitle}} Cettebaliseseraremplacéeparlenomdusiteinternet.

{{page::rootPageTitle}} Cettebaliseseraremplacéeparletitredusiteinternet.

Lesbalisesd'insertionsuivantesvouspermettentd'afficherlesvariablesd'environnementcommelenomdelapageoulachaînederequête.

Balised'insertion Description

{{env::host}} Cettebaliseseraremplacéeparlenomd'hôteactuel.

{{env::url}} Cettebaliseseraremplacéeparlenomd'hôteetleprotocole.

{{env::path}}Cettebaliseseraremplacéeparlabasedel'URLactuelleincluantlecheminversledossierContao.

{{env::request}} Cettebaliseseraremplacéeparlachaînederequêteactuelle.

{{env::ip}} Cettebaliseseraremplacéeparl'adresseIPduvisiteuractuel.

{{env::referer}} Cettebaliseseraremplacéeparl'URLdeladernièrepagevisitée.

{{env::files_url}} Cettebaliseseraremplacéeparl'URLstatiquedurépertoirefiles.

{{env::assets_url}} Cettebaliseseraremplacéeparl'URLstatiquedurépertoireassets.

Lesbalisesd'insertionsuivantesvouspermettentd'incluredifférentesressourcescommedesarticles,desmodulesoudesfichiersquisetrouventdanslerépertoire"templates".

Balised'insertion Description

{{insert_article::*}}Cettebaliseseraremplacéeparl'articleréférencé(remplacez*parl'IDoul'aliasdel'article).

{{insert_content::*}}Cettebaliseseraremplacéeparl'élémentdecontenuréférencé(remplacez*parl'IDdel'élément).

{{insert_module::*}} Cettebaliseseraremplacéeparlemoduleréférencé(remplacez*parl'IDdumodule).

{{insert_form::*}}Cettebaliseseraremplacéeparleformulaireréférencé(remplacez*parl'IDduformulaire).

{{article_teaser::*}} Cettebaliseseraremplacéeparuneaccroched'article(remplacez*parl'IDdel'article).

{{news_teaser::*}}Cettebaliseseraremplacéeparuneaccroched'actualité(remplacez*parl'IDdel'actualité).

Variablesd'environnement

Élémentsinclus

ManuelpourContao3.2

58Balisesd'insertion

Page 59: Manuel pour Contao 3.2 - Contao Documentation

{{event_teaser::*}} Cettebaliseseraremplacéeparuneaccroched'évènement(remplacez*parl'IDdel'évènement).

{{file::*}}

Cettebaliseseraremplacéeparlecontenud'unfichiersetrouvantdansledossier"templates"(remplacez*parlenomdufichier).Vouspouvezaussifournirdesarguments:{{file::file.php?arg1=val&arg2=val}}.Vouspouvezégalementrécupérerlechemind'unfichieràpartirdelabasededonnéesavecsonUUID:{{file::6939a448-9b30-11e4-bcba-079af1e9baea}}.

Lesbalisesd'insertionsuivantesvouspermettentd'effectuerdifférentestâchescommeajouterladatecouranteouajouterdesimageslightbox.

Balised'insertion Description

{{date}} Cettebaliseseraremplacéeparladatecourantedansleformatdedateglobal.

{{date::*}} Cettebaliseseraremplacéeparladatecourantedansunformatdedatepersonnalisé.

{{last_update}}Cettebaliseseraremplacéeparladatedeladernièremiseàjourdansleformatdedateglobal.

{{last_update::*}}Cettebaliseseraremplacéeparladatedeladernièremiseàjourdansunformatdedatepersonnalisé.

{{email::*}} Cettebaliseseraremplacéeunliencliquableetencodéversuneadressee-mail.

{{email_open::*}}Cettebaliseseraremplacéeparunliencliquableetencodéversuneadressee-mail.Toutefois,labalisedefermeture</a>neserapasajoutée.

{{email_url::*}} Cettebaliseseraremplacéeparl'adressee-mailencodéeseulement.

{{lang::*}}

Cettebalisepeutêtreutiliséepourmarquerlesmotsétrangersàl'intérieurd'untexte:{{lang::en}}Goodbye{{lang}}seraremplacépar<spanlang="en">Goodbye</span>etajoutel'attributxml:lang="en"siledoctypeestXHTML.

{{abbr::*}}Marquelesabréviationsdansuntexte:{{abbr::WorldWideWeb}}WWW{{abbr}}seraremplacépar<abbrtitle="WorldWideWeb">WWW</abbr>.

{{acronym::*}}

Marquelesacronymesdansuntexte:{{acronym::MultipurposeInternetMailExtensions}}MIME{{acronym}}seraremplacépar<acronymtitle="MultipurposeInternetMailExtensions">MIME</acronym>.

{{ua::*}}Propriétésdesortiedel'agentutilisateur:{{ua::browser}}.Ellesera,parexemple,remplacéepar"chrome".

{{iflng::*}}

Cettebaliseseracomplètementsuppriméesilalanguedelapagenecorrespondpasàlalanguedelabalise.Vouspouvezl'utiliserpourdéfinirdeslabelsspécifiquesàunelangue:{{iflng::en}}Yourname{{iflng}}{{iflng::de}}IhrName{{iflng}}.

{{ifnlng::*}}

Cettebaliseseracomplètementsuppriméesilalanguedelapagecorrespondàlalanguedelabalise.Vouspouvezl'utiliserpourdéfinirdeslabelsspécifiquesàunelangue:{{ifnlng::de}}Yourname{{ifnlng}}{{iflng::de}}IhrName{{iflng}}.

{{image::*}}

Cettebaliseseraremplacéeparunevignetted'image(remplacer*avecl'IDdebasededonnées,UUIDouunchemindefichiersystème):{{image::58ca4a90-2d30-11e4-8c21-0800200c9a66?width=200&height=150}}.width:Largeurdelavignette,height:Hauteurdelavignette,alt:Textealternatif,class:ClasseCSS,rel:Attributrel(parex."lightbox"),mode:Mode("proportional","crop"ou"box").

{{label::*}}

Cettebaliseseraremplacéeparunlibellétraduit.LepremierparamètreestunnomdefichierdelangueouunacronymetelsqueCNT(pays)ouLNG(langues).Exemples:{{label::CNT:au}}affiche"Australie"et{{label::tl_article:title:0}}affiche"Titre".Notezqueseullepremierdeux-pointsestdoublé.

Divers

ManuelpourContao3.2

59Balisesd'insertion

Page 60: Manuel pour Contao 3.2 - Contao Documentation

{{version}} CettebaliseseraremplacéeparlaversionactuelledeContao(parexemple3.2.7).

{{request_token}} Cettebaliseseraremplacéeparlademandedejetondelasessionencours.

{{toggle_view}}Ajoutelelienquivouspermetdebasculerentrelemodèlepourmobileetceluid'unordinateurdebureau.

{{br}} CettebaliseseraremplacéeparlabaliseHTML<br>(sautdeligne).

Enutilisantdesdrapeaux,lesbalisesd'insertionpeuventêtretraitéesdemanièreplusapprofondie.Parexemple,lavaleurpeutêtretransmiseauxméthodesPHPspécifiques.Plusieursdrapeauxpeuventêtreappliqués:

{{ua::browser|uncached}}

{{page::title|decodeEntities|strtoupper}}

Drapeauxdisponibles:

Drapeau Description Plusd'information

uncachedNepasremplacerunebalised'insertionlorsquelapageestmiseencache

refreshNepasmettreencachelabalised'insertion,mêmesielleestutiliséeplusieursfoissurlamêmepage

addslashes Ajoutedesbarresobliquesinverséesdansunechaîne FonctionPHP

stripslashes Supprimelesbarresobliquesinverséesd'unechaîne FonctionPHP

standardizeNormaliselasortie(parexemplepourunaliasdepageouuneclasseCSS)

ampersand ConvertitlesesperluettesenentitésdecaractèreHTML

specialcharsConvertitlescaractèresspéciauxenentitésdecaractèreHTML

nl2brInsèredesretoursàlaligneHTMLàchaquenouvellelignedansunechaîne FonctionPHP

nl2br_preIdentiqueànl2br,maisconservelesretoursàlalignedanslabalise<pre>

strtolower Renvoieunechaîneenminuscules FonctionPHP

utf8_strtolower ConversionUnicodeenminuscules

strtoupper Renvoieunechaîneenmajuscules FonctionPHP

utf8_strtoupper ConversionUnicodeenmajuscules

ucfirst Metlepremiercaractèred'unechaîneenmajuscule FonctionPHP

lcfirst Metlepremiercaractèred'unechaîneenminuscule FonctionPHP

ucwordsMetenmajusculelapremièrelettredetouslesmotsdansunechaîne FonctionPHP

trim Supprimelesespacesendébutetfindechaîne FonctionPHP

rtrim Supprimelesespacesdefindechaîne FonctionPHP

ltrim Supprimelesespacesdedébutdechaîne FonctionPHP

utf8_romanize Romaniselasortie

Drapeauxdesbalisesd'insertion

ManuelpourContao3.2

60Balisesd'insertion

Page 61: Manuel pour Contao 3.2 - Contao Documentation

strrev Inverseunechaîne FonctionPHP

encodeEmail Encodelesadressese-maildanslasortie VoirString::encodeEmail

decodeEntities DécodelesentitésdecaractèreHTMLdanslasortie VoirString::decodeEntities()

number_format Formateunnuméro(sansdécimale) VoirSystem::getFormattedNumber()

currency_format Formateunedevise(deuxdécimales) VoirSystem::getFormattedNumber()

readable_sizeConvertitdestaillesdefichiersdansunformatlisibleparunhumain

VoirSystem::getReadableSize()

ManuelpourContao3.2

61Balisesd'insertion

Page 62: Manuel pour Contao 3.2 - Contao Documentation

LeschapitressuivantsexpliquentcommentadministrerContao.Outrel'installationetlamiseàjourdel'application,unadministrateurestresponsabledelacréationdesutilisateursetdesgroupesd'utilisateurs,degérerlesmodulesadditionnelsetdelamaintenancedusystème.

Administrationdusystème

ManuelpourContao3.2

62Administrationdusystème

Page 63: Manuel pour Contao 3.2 - Contao Documentation

Contaofaitunedistinctionentrelesutilisateursdubackoffice("utilisateurs"),quipeuventseconnecteraupanneaud'administration,etlesutilisateursfrontoffice("membres"),quipeuventseconnecterausiteinternet.Contrairementauxadministrateurs,quiontaccèsàtouteslespagesetàtouslesélémentspardéfaut("allowall"),lesutilisateursnepeuventpasaccéderàuneressourcequin'apasétéexplicitementautoriséedansleurprofiloudansleprofildel'undesgroupesd'utilisateursauxquelsilsappartiennent("denyall").

Chaqueutilisateurpeutêtreassociéàplusieursgroupesd'utilisateursethériteautomatiquementdeleursautorisations.Touteslesautorisationssontcumulatives,cequisignifiequel'utilisateurhéritedelasommedespermissionsdetouslesgroupesauxquelsilappartient.SilegroupeAaccordeuncertaindroit,vousnepouvezpaslarévoquerdanslegroupeB.

L'option"Pagesautorisées"permetdedéfinirquellespagesdelastructuredesite,l'utilisateurestautoriséàvoir.Lacaptured'écranci-dessousmontrelastructuredesitetellequ'elleestperçueparHelenLewis.Bienquelesiteinternetcontientbeaucoupplusdepages,ellenepeutenvoirquetrois,parcequeseull'accèsàlapage"Courses"aétéautorisédanslesparamètresdugroupe"Editors".NotezquemêmesiHelenLewisestautoriséeàvoirtroispages,ellenepeutmodifierquel'uned'elles!

Êtrecapabledevoirunepagen'inclutpasledroitdelamodifier(oudemodifiersesarticles).Rappelez-vousquelespermissionsd'unepagesontdéfiniesdanslastructuredesite,doncpourpermettrel'accèsàunepageàunutilisateur,vousdevezlasélectionnerdanssonprofiletaccordersonaccèsdanslastructuredesite.

Semblableàl'option"Pagesautorisées",l'option"Répertoiresautorisés"définiequelsrépertoiresunutilisateurestautoriséàvoir.Lacaptured'écranci-dessousmontrelegestionnairedefichierstelqu'ilestperçuparHelenLewis.Ellen'estautoriséedevoirquelerépertoire"campus",alorsquelesadministrateurspeuventvoirlerépertoirecompletdesfichiers(files).

Utilisateursetgroupesd'utilisateurs

Utilisateurs

Pagesautorisées

Répertoiresautorisés

ManuelpourContao3.2

63Utilisateursetgroupesd'utilisateurs

Page 64: Manuel pour Contao 3.2 - Contao Documentation

Commementionnéaudébut,lesutilisateursn'ontpasdutoutdepermissionspardéfaut("denyall"),cequiimpliqueaussiqu'ilsnepeuventpasaccéderauxchampsd'unformulaire.Mêmes'ilssontparexempleautorisésàaccéderaumoduled'actualités,leformulairepourcréerunenouvelleentréeseravidejusqu'àcequel'administrateursélectionneunouplusieurschampsdelatabletl_newsdanslesparamètresdugroupe.

Champsautorisés

Membres

ManuelpourContao3.2

64Utilisateursetgroupesd'utilisateurs

Page 65: Manuel pour Contao 3.2 - Contao Documentation

Lagestiondesmembres(utilisateursfrontoffice)estbeaucoupplusfacileàgérerquecelledesutilisateursbackoffice,cariln'yapasdepagesoudechampsàautoriser.Lagestiondesmembresestprincipalementrequisepourcontrôlerl'accèsauxpagesprotégées,quiestmisenœuvreauniveaudugroupe.Enfonctiondelaconfigurationdusiteinternet,lesmembresinscritspourrontvoirdespagesprotégéesouaccéderàdestéléchargementsprotégésquinesontpasdisponiblespourlesinvités.

ManuelpourContao3.2

65Utilisateursetgroupesd'utilisateurs

Page 66: Manuel pour Contao 3.2 - Contao Documentation

LesextensionssontunepartieessentielledeContao,carilsvouspermettentd'ajouterdesfonctionnalitéssupplémentaires.Ilexisteplusde1400extensionsdisponiblesdansleréférentield'extensionsdeContao,quevouspouvezparcourirdirectementàpartirdubackoffice.Lacommunicationavecleserveurduréférentiels'effectueviaSOAP,doncvousdevezactiverl'extensionSOAPdePHPpourutiliserleservice(siellen'estpasactivéepardéfaut).

Lemodule"Catalogued'extensions"vouspermetdeparcourirlalistedesextensionsetd'installerdesextensionsparsimplepressiond'unbouton.Utilisezlesoptionsdefiltrageetdetripourtrouveruneextensionparticulièreetcliquezsurl'icôned'informationouletitredel'extensionpourouvrirlapagededétailsetinstallerlemodule.

Lapagededétailscontientunedescriptiondel'extensionetdesinformationsimportantesconcernantlesconfigurationsdusystèmerequisesainsiquelesversionsetlesdépendancesd'autresmodules.Cliquezsurlebouton"Installer"pourtéléchargeretinstallerl'extension.

Extensions

Catalogued'extensions

ManuelpourContao3.2

66Extensions

Page 67: Manuel pour Contao 3.2 - Contao Documentation

Contaotéléchargeraetinstalleraautomatiquementl'extensionetmettraàjourlabasededonnéessinécessaire.

ManuelpourContao3.2

67Extensions

Page 68: Manuel pour Contao 3.2 - Contao Documentation

Lemodule"Gestionnaired'extensions"vouspermetdemettreàjouretdedésinstallerdesextensions.Ilvérifieautomatiquementlesmisesàjouretvousavertitsiunenouvelleversionestdisponible.Denombreusesextensionsincluentégalementdesliensversunmanuelenligneet/ouunfildediscussiondansunforumoùvouspouvezobtenirdel'aide.

Pourdésinstalleruneextension,cliquezsimplementsurl'icônededésinstallationetsuivezlesinstructions.Legestionnaired'extensionsvasupprimertouslesfichiersetrépertoiresetmettreàjourlabasededonnéessinécessaire.Notezquecetteactionnepeutpasêtreannuléeetlestablesnepeuventpasêtrerestaurées!

Gestionnaired'extensions

ManuelpourContao3.2

68Extensions

Page 69: Manuel pour Contao 3.2 - Contao Documentation

Danslecasoùl'extensionSOAPdePHPn'estpasdisponiblesurvotreserveur,vouspouvezégalementinstallerdesextensionsdeContaomanuellement.Trouvezlemodulecorrespondantdanslalistedesextensionsettéléchargezl'archive.zipdeladernièreversion.Ensuite,décompressezlesfichiersetcopiez-lesdansvotrerépertoirelocaloudistantdeContao.Enfin,vérifiezlabasededonnéesavecl'outild'installationdeContao.

Installationmanuelle

ManuelpourContao3.2

69Extensions

Page 70: Manuel pour Contao 3.2 - Contao Documentation

Laplupartdestravauxd'entretiendansContaosontexécutésautomatiquementparle"PeriodicCommandScheduler",vouspouvezdoncvousconcentrersurvotretravail.Mêmelestâchesdanslemoduledemaintenancesonteffectuéesautomatiquement,maisparfoisilestnécessairedelesdéclenchermanuellement.

Outrelecontenugénéréparl'utilisateur,Contaostockebeaucoupdedonnéesdusystèmequisontutiliséespourrestaurerlesenregistrementssupprimés,reveniràdesversionsantérieures,créerl'indexderecherchedusiteinternetouréduireletempsdechargementd'unepage.Vouspouvezpurgercesdonnéesmanuellementparexemplepoursupprimerlesanciennesvignettesàpartirducached'imagesoupourrecréerlesfichiersXMLduplandusiteaprèsquevousayezmodifiélastructuredesite.

Lespagessontgénéralementajoutéesautomatiquementàl'indexderecherchequandellessontvuesdanslefrontoffice(saufsivousêtesconnectéaubackofficeenmêmetemps),vousn'avezdoncpasbesoindevousinquiéterausujetdel'indexderecherche.Cependant,sivousavezmodifiéungrandnombredepages,ilestpluscommodedelesmettreàjourtoutesàlafoisaulieudelesouvriruneparunedanslenavigateur.Danscecas,vouspouvezreconstruirel'indexde

Maintenance

Purgerdesdonnées

Reconstruirel'indexderecherche

ManuelpourContao3.2

70Maintenance

Page 71: Manuel pour Contao 3.2 - Contao Documentation

recherchemanuellement.

ManuelpourContao3.2

71Maintenance

Page 72: Manuel pour Contao 3.2 - Contao Documentation

Lestableauxconteneursdedonnées("DataContainerArrays"enAnglais,ouDCA)sontutiliséspourstockerlesmétadonnéesdestables.ChaqueDCAdécritunetableparticulièredupointdevuedesaconfiguration,desesrelationsaveclesautrestablesetdeseschamps.LenoyaudeContaodéterminegrâceàcesmétadonnéescommentlisterlesenregistrements,commentgénérerlesformulairesdanslebackofficeetcommentsauvegarderlesdonnées.LesfichiersDCAdetouslesmodulesactifssontchargéslesunsaprèslesautres(encommençantpar"backend",puis"frontend"etensuitedansl'ordrealphabétique)afinquechaquemodulepuissesurchargerlaconfigurationexistante.Lefichiersystem/config/dcaconfig.phpestinclusàlafin.

Tableauxconteneursdedonnées

ManuelpourContao3.2

72Tableauxconteneursdedonnées

Page 73: Manuel pour Contao 3.2 - Contao Documentation

Untableauconteneurdedonnéesestdiviséensixsections.Lapremièresectioncontientlesconfigurationsgénéralesdelatable,commelesrelationsavecd'autrestables.Lesdeuxièmeettroisièmesectionsdéterminentlamanièredontlesenregistrementssontlistés,etquellesopérationsunutilisateurestendroitd'exécuter.Laquatrièmesectiondéfinitdifférentsgroupesdechampsdeformulaires,appelés"palettes",etlesdeuxdernièressectionsdécriventleschampsendétail.

Laconfigurationdelatabledécritlatableelle-même,parexemplequeltypedeconteneursdedonnéesestutilisépourstockerlesdonnéesoucommentelleestenrelationavecd'autrestables.Vouspouvezégalementactiverlesuividesversionsoudéfinircequiarriveauxenregistrementsenfantslorsquelesdonnéessontéditéesousupprimées.

Clé Valeur Description

label&$GLOBALS['TL_LANG']

(string)Lelibelléutilisédansl'arborescencedespagesoudesfichiers,etincluttypiquementuneréférenceautableaudelangues.

ptable Tableparente(string) Lenomdelatableparente(table.pid=ptable.id).

ctable Tablesenfants(array) Lesnomsdestablesenfants(table.id=ctable.pid).

dataContainer Conteneurdedonnées(string)

Table(tabledelabasededonnées),File(fichierdeconfigurationlocal)ouFolder(gestionnairedefichiers).

closed true/false(boolean) Sitrue,vousnepouvezplusrajouterd'enregistrementdanscettetable.

notEditable true/false(boolean) Sitrue,latablenepeutpasêtremodifiée.

notDeletable true/false(boolean) Sitrue,lesenregistrementsdelatablenepeuventpasêtresupprimés.

switchToEdit true/false(boolean) Activelebouton"Sauvegarderetéditer"lorsqu'unnouvelenregistrementestajouté(modedetri4uniquement).

enableVersioning true/false(boolean) Sitrue,Contaoenregistrel'ancienneversiondel'enregistrementlorsqu'unenouvelleversionestcréée.

doNotCopyRecords true/false(boolean)Sitrue,Contaonedupliquerapaslesenregistrementsdelatablecourantelorsqu'unenregistrementdesatableparenteestdupliqué.

doNotDeleteRecords true/false(boolean)Sitrue,Contaon'effacerapaslesenregistrementsdelatablecourantelorsqu'unenregistrementdesatableparenteesteffacé.

onload_callback Fonctioncallback(array)

Appelleunefonctionpersonnaliséelorsqu'unDataContainerestinitialisé,etpassel'objetDataContainerenargument.

onsubmit_callback Fonctioncallback(array)

Appelleunefonctionpersonnaliséeaprèslamiseàjourd'unenregistrement,etpassel'objetDataContainerenargument.

ondelete_callback Fonctioncallback(array)

Appelleunefonctionpersonnaliséeaprèslasuppressiond'unenregistrement,etpassel'objetDataContainerenargument.

oncut_callback Fonctioncallback(array)

Appelleunefonctionpersonnaliséelorsqu'unenregistrementestdéplacé,etpassel'objetDataContainerenargument.Ajoutéeàpartirdelaversion2.8.2deContao.

oncopy_callback Fonctioncallback Appelleunefonctionpersonnaliséelorsqu'unenregistrementestdupliqué,etpassel'objetDataContainerenargument.Ajoutéeà

Référence

Configurationdelatable

ManuelpourContao3.2

73Référence

Page 74: Manuel pour Contao 3.2 - Contao Documentation

partirdelaversion2.8.2deContao.

onversion_callback Fonctioncallback(array)

Appelleunefonctionpersonnaliséelorsqu'unenouvelleversiond'unenregistrementestcrééeetpasselatable,l'IDd'insertionetl'objetDataContainerenarguments.

onrestore_callback Fonctioncallback(array)

Appelleunefonctionpersonnaliséelorsqu'uneversiond'unenregistrementestrestauréeetpassel'IDd'insertion,latable,letableaudedonnéesetlaversionenarguments.

sql Configurationdelatable(array)

Décritlaconfigurationdelatable,parexemple'keys'=>array('id'=>'primary','pid'=>'index')

Letableau"list"définitcommentlesenregistrementssontlistés.Contaofournittroisvuesdifférentes:lavueenliste,lavueparenteetlavuearborescente.Vouspouvezconfigurerdifférentesoptionsdetri,telsquedesfiltresouunordredetripardéfautetajouterdeslibelléspersonnalisés.

Clé Valeur Description

mode Modedetri(integer)

0Lesenregistrementsnesontpastriés1Lesenregistrementssonttriésselonunchampdéterminé2Lesenregistrementssonttriésselonunchampsélectionnable3Lesenregistrementssonttriésparlatableparente4Affichelesenregistrementsenfantsd'unetableparente(voirlemodulefeuillesdestyle)5Lesenregistrementssontprésentésenarborescence(voirlastructuredesite)6Affichelesenregistrementsenfantsdansunestructureenarborescence(voirlemodulearticles)

flag Tri"flag"(integer)

1Triascendantsurlapremièrelettre2Tridescendantsurlapremièrelettre3Triascendantsurlesdeuxpremièreslettres4Tridescendantsurlesdeuxpremièreslettres5Triascendantparjour6Tridescendantparjour7Triascendantparmois8Tridescendantparmois9Triascendantparannée10Tridescendantparannée11Triascendant12Tridescendant

panelLayoutPrésentationdupanneau(string)

searchaffichelemenuderecherchedesenregistrementssortaffichelemenudetridesenregistrementsfilteraffichelemenudefiltragedesenregistrementslimitaffichelemenudelimitationdunombredesenregistrements

Lesoptionsdoiventêtreséparéespardesvirgules(=espace)etdespoints-virgules(=nouvelleligne)commesort,filter;search,limit.

fieldsValeursdetripardéfaut(array)

Unouplusieurschampsutiliséspourtrierlatable.

headerFields Champsd'en-tête(array)

Unouplusieurschampsaffichésdansl'élémenten-tête(modedetri4uniquement).

iconIcôned'arborescence(string)

Chemindel'icônequiseraaffichéeaudessusdel'arborescence(modedetri5et6uniquement).

root Nœudsracines(array)

IDdesenregistrementsracines(pagesautorisées).Engénéral,cettevaleursegèretouteseule.

Listedesenregistrements

Tri

ManuelpourContao3.2

74Référence

Page 75: Manuel pour Contao 3.2 - Contao Documentation

(array) valeursegèretouteseule.

filterFiltrederequête(array)

Vouspermetd'ajouterdesfiltrespersonnaliséssousformedetableaux,parexemplearray('status=?','active').

disableGrouping true/false(boolean)

Vouspermetdedésactiverlesen-têtesdegroupedanslesvuesenlisteetdanslesvuesparentes.

paste_button_callbackFonctioncallback(array)

Cettefonctionseraappeléeaulieud'afficherlesboutonsdecollagepardéfaut.Aspécifierentantquearray('Class','Method').

child_record_callbackFonctioncallback(array)

Cettefonctionseraappeléepourrestituerlesélémentsenfants(modedetri4uniquement).Aspécifierentantquearray('Class','Method').

child_record_class ClassCSS(string)

Vouspermetd'ajouteruneclasseCSSauxélémentsdelavueparente.

Clé Valeur Description

fields Champs(array) Unouplusieurschampsquiserontaffichésdanslaliste.(parexemplearray('title','user_id:tl_user.name')).

showColumns true/false(boolean)

Sitrue,unen-têtedetableauseragénéréaveclesnomsdecolonnes(parexemple,lalistedesmembresdanslebackoffice)

formatChaînedeformatage(string)

UnechaînedecaractèresHTMLutiliséepourformaterleschampsquiserontaffichés(parexemple%s).

maxCharactersNombredecaractères(integer)

Nombremaximumdecaractèresdulibellé.

group_callback Fonctioncallback(array)

Appelleunefonctionpersonnaliséeplutôtquelafonctionpardéfautpourl'en-têtedegroupe.

label_callback Fonctioncallback(array) Appelleunefonctionpersonnaliséeplutôtquelafonctionlibellépardéfaut.

Letableaudesopérationsestdiviséendeuxsections:lesopérationsglobales,quiconcernenttouslesenregistrementsàlafois(parexemple,modificationdeplusieursenregistrements),etlesopérationsunitaires,quiconcernentqu'unenregistrementspécifique(parexemple,modificationousuppressiond'unenregistrement).

Clé Valeur Description

label&$GLOBALS['TL_LANG']

(string)Labeldubouton.Typiquementuneréférenceautableauglobaldelangues.

href Fragmentd'URL(string)

Unfragmentd'URLajoutéàlachaînedel'URIlorsduclicsurunbouton(parexemple,act=editAll).

class ClasseCSS(string) AttributdeclasseCSSdubouton.

attributesAttributssupplémentaires(string)

Attributssupplémentairescommeungestionnaired'événementsoudedéfinitionsdestyle.

Libellés

Opérations

Opérationsglobales

ManuelpourContao3.2

75Référence

Page 76: Manuel pour Contao 3.2 - Contao Documentation

Clé Valeur Description

label&$GLOBALS['TL_LANG']

(string)Intitulédubouton.Typiquementuneréférenceautableauglobaldelangues.

href Fragmentd'URL(string)

Fragmentd'URLajoutéàlachaînedel'URIlorsduclicsurlebouton(parexemple,act=edit).

icon Icône(string) Cheminetnomdefichierdel'icône.

attributesAttributssupplémentaires(string)

Attributssupplémentairescommeungestionnaired'événementsoudedéfinitionsdestyle.

button_callback Fonctioncallback(array)

Appelleunefonctionpersonnaliséeàlaplacedelafonctiondeboutonpardéfaut.Aspécifierentantquearray('Class','Method').

Letableaudeschampsdéfinitlescolonnesd'unetable.Enfonctiondecesparamétrages,Contaodéterminequeltypedechampsdeformulaireàcharger,siunutilisateurestautoriséounonàaccéderàcertainchampetsiunchamppeutêtreutilisécommecritèredetrioudefiltre.

Clé Valeur Description

label&$GLOBALS['TL_LANG']

(string)Intituléduchamp.Typiquement,uneréférenceautableauglobaldelangues.

default Valeurpardéfaut(mixed)

Valeurpardéfautattribuéequandunnouvelenregistrementestcréé.

exclude true/false(boolean)Sitrue,lechampseraexclupourlesnon-administrateurs.Ilpeutêtreactivédanslemodulegroupesd'utilisateurs(champsexclusacceptés).

search true/false(boolean) Sitrue,lechampserainclusdanslemenuderecherche(voir"tridesenregistrements"->"panelLayout").

sorting true/false(boolean) Sitrue,lechampserainclusdanslemenudetri(voir"tridesenregistrements"->"panelLayout").

filter true/false(boolean) Sitrue,lechampserainclusdanslemenudefiltrage(voir"tridesenregistrements"->"panelLayout").

flag Modedetri(integer)

1Triascendantsurlapremièrelettre2Tridescendantsurlapremièrelettre3TriascendantsurlesXpremièreslettres(voirlength)4TridescendantsurlesXpremièreslettres(voirlength)5Triascendantparjour6Tridescendantparjour7Triascendantparmois8Tridescendantparmois9Triascendantparannée10Tridescendantparannée11Triascendant12Tridescendant

length Longueurducritèredetri(integer)

Permetdespécifierlenombredecaractèresutiliséspourlesgroupesdetri(flags3et4).

textChamptextepasswordChampmotdepassetextareaTextareaselectMenudéroulantcheckboxCaseàcocher

Opérationsunitaires

Champs

ManuelpourContao3.2

76Référence

Page 77: Manuel pour Contao 3.2 - Contao Documentation

inputType Typedechamps(string)

selectMenudéroulantcheckboxCaseàcocherradioBoutonradioradioTableTableauavecimagesetboutonsradioimageSizeDeuxchampsdetexteavecunmenudéroulantinputUnitChamptexteavecunpetitmenudéroulantd'élémentstrblQuatrechampstextesavecunpetitmenudéroulantd'élémentschmodTableauCHMODpageTreeArborescencedespagesfileTreeArborescencedesfichierstableWizardAssistantdetablestimePeriodChampdetexteavecunmenudéroulantlistWizardAssistantdelistesoptionWizardAssistantd'optionsmoduleWizardAssistantdemodulescheckboxWizardAssistantdecasesàcocher

options Options(array) Optionsd'unmenudéroulantoudeboutonsradio.

options_callback Fonctioncallback(array)

Fonctioncallbackretournantuntableaud'options.Aspécifierentantquearray('Class','Method').

foreignKey Table.champ(string)

Récupèrelesoptionsdepuisunetabledelabasededonnées.Renvoiel'IDcommecléetlechampspécifiécommevaleur.

reference&$GLOBALS['TL_LANG']

(string)Tableaucontenantlesintitulésdesoptions.Typiquement,uneréférenceautableauglobaldelangues.

explanation&$GLOBALS['TL_LANG']

(string)Tableaucontenantlesdescriptions.Typiquement,uneréférenceautableauglobaldelangues.

input_field_callback Fonctioncallback(array)

Exécuteunefonctionpersonnaliséeàlasaisieduchamp,àlaplacedelaroutinepardéfaut,etpassel'objetDataContaineretlelibelléenarguments.

eval Configurationduchamp(array) Diversesoptionsdeconfiguration.Voirleparagraphesuivant.

wizard Fonctioncallback(array)

Appelleunefonctionpersonnaliséeetajoutesavaleurderetourdanslechampdesaisie.Aspécifierentantquearray('Class','Method').

sqlDéfinitiond'unchampdebasededonnées(string)

Décritletypededonnéesetsaconfigurationdebasededonnées,parexemplevarchar(255)NOTNULLdefault''

relation Configurationdesrelations(array) Décritlarelationàlatableparente(voirleparagraphe"relations").

load_callback Fonctionscallback(array)

Cesfonctionsserontappeléesauchargementduchamp.Spécifiezchaquefonctiondecallbackentantquearray('Class','Method').Passelavaleurduchampetleconteneurdedonnéesenarguments.Attendlavaleurduchampcommevaleurderetour.

save_callback Fonctionscallback(array)

Cesfonctionsserontappeléesàlasauvegardeduchamp.Spécifiezchaquefonctiondecallbackentantquearray('Class','Method').Passelavaleurduchampetleconteneurdedonnéesenarguments.Attendlavaleurduchampcommevaleurderetour.Renvoieuneexceptionpourafficherunmessaged'erreur.

Letableaud'évaluationconfigureendétailunchampparticulier.Vouspouvez,parexemple,créerdeschampsobligatoires,ajouterunsélecteurdedatesoudéfinirlenombredelignesetdecolonnesd'unblocdetexte(textarea).Vouspouvezaussimodifierl'apparenced'unchampouactiverl'encryptagedesdonnées.Chaquechamppeutêtrevalidéparuneexpressionrégulière.

Clé Valeur Description

Évaluation

ManuelpourContao3.2

77Référence

Page 78: Manuel pour Contao 3.2 - Contao Documentation

helpwizard (boolean) Sitrue,l'icônedel'assistantseraaffichéeàcôtédulibelléduchamp.

mandatory true/false(boolean) Sitrue,lechampnepeutpasêtrevide.

maxlengthLongueurmaximale(integer)

Nombremaximumdecaractèresautorisésdanslechampcourant.

minlengthLongueurminimale(integer)

Nombreminimumdecaractèresquidoiventêtresaisis.

fallback true/false(boolean) Sitrue,lechampnepeutêtreassignéqu'unefoispartable.

rgxpExpressionrégulière(string)

alias exigeunaliasvalide

alnumn'autorisequedescaractèresalphanumériques(ycomprislepoint[.],letraitd’union[-],letiretbas[_]etl'espace[])

alpha n'autorisequedescaractèresalphabétiques(ycomprislepoint[.],letraitd’union[-]etl'espace[])

date exigeunedatevalide

datim exigeunedateetuneheurevalide

digit n'autorisequedescaractèresnumériques(ycomprislepoint[.]etletraitd’union[-])

email exigeuneadressee-mailvalide

emails exigeunelisted'adressese-mailvalide

extnd interdit#&()/<=>

folderalias exigeuneURLd'aliasdedossiervalide

friendly exigeuneadressee-mailvalideauformat"nomconvivial"(friendlynameformat)

language exigeuncodedelanguesvalide

locale exigeune"locale"valide(parexemple"fr-CH")

phoneexigeunnumérodetéléphonevalide(caractèresnumériques,espace[],plus[+],traitd’union[-],parenthèses[()]etbarreoblique[/])

prcnt autorisedesnombresentre0et100

url exigeuneURLvalide

time exigeuneheurevalide

cols Colonnes(integer) Nombredecolonnes(champstextareaseulement).

rows Lignes(integer) Nombredelignes(champstextareaseulement).

multiple true/false(boolean)

Autoriselesvaleursmultiples.S'appliqueauxchampstextes,listesdéroulantes,boutonsradiosetcasesàcocher.Requispourl'assistantdecasesàcocher.

size Taille(integer)

Tailled'unelistedéroulanteàchoixmultiples,ounombredechampsdesaisie.

Attributsde

ManuelpourContao3.2

78Référence

Page 79: Manuel pour Contao 3.2 - Contao Documentation

style style(string)

Attributsdestyle(parexempleborder:2px)

rteÉditeurdetexteriche(string)

tinyMCEutiliselefichierconfig/tinyMCE.phptinyFlashutiliselefichierconfig/tinyFlash.phpVouspouvezégalementajoutervospropresfichiersdeconfiguration.

submitOnChange true/false(boolean) Sitrue,leformulaireserasoumislorsquelavaleurduchampestmodifiée.

nospace true/false(boolean) Sitrue,lescaractèresd'espacementneserontpasautorisés.

allowHtml true/false(boolean) Sitrue,lechampcourantaccepteralecodeHTML.

preserveTags true/false(boolean) Sitrue,lesbalisesHTMLneserontpassupprimées.

decodeEntities true/false(boolean)

Sitrue,lesélémentsHTMLserontdécodés.NotezquelesélémentsHTMLsonttoujoursdécodéssiallowHtmlvauttrue.

doNotSaveEmpty true/false(boolean) Sitrue,lechampneserapasenregistrés'ilestvide.

alwaysSave true/false(boolean)

Sitrue,lechampseratoujoursenregistré,mêmesisavaleurn'apaschangé.Celapeutêtreutileenconjonctiond'unload_callback.

spaceToUnderscore true/false(boolean)

Sitrue,touslescaractèresd'espacementserontremplacésparuntiretbas.

unique true/false(boolean) Sitrue,lavaleurduchampnepeutêtreenregistréesielleexistedéjà.

encrypt true/false(boolean) Sitrue,lavaleurduchampserastockéesousformecryptée.

trailingSlash true/false(boolean)

Sitrue,unebarreobliqueseraajoutéeàlafindelavaleurduchamp.Sifalse,labarreoblique,siexistante,quiterminelavaleurduchampserasupprimée.

files true/false(boolean)

Sitrue,lesfichiersetlesdossiersserontaffichés.Sifalse,seulslesrépertoiresserontaffichés.Nes'appliquequ'auxarborescencesdefichiers.

filesOnly true/false(boolean)

Supprimelesboutonsradiooulescasesàcocheràcôtédesnomsdesrépertoires.Nes'appliquequ'auxarborescencesdefichiers.

extensionsExtensionsdefichiers(string)

N'autorisequecertainesextensionsdansl'arborescencedefichiers(listeséparéepardesvirgules).Nes'appliquequ'auxarborescencesdefichiers.

path Chemin(string)

Répertoireracinepersonnalisépourl'arborescencedefichiers.Nes'appliquequ'auxarborescencesdefichiers.

fieldType

Typedechampd'entrée(string)

checkboxautoriselessélectionsmultiplesradion'autorisequ'uneseulesélectionNes'appliquequ'auxarborescencesdefichiersetdepages.

includeBlankOption true/false(boolean)

Sitrue,uneoptionvideseraajoutéeautableaudesoptions.Nes'appliquequ'auxlistesdéroulantes.

blankOptionLabel Libellé(string) Libellépourl'optionvide(pardéfaut-).

chosen true/false(boolean) Balises"select"nativesamélioréesavecChosen.

findInSet true/false(boolean) Trisurlesvaleursactuellesdesoptionsplutôtquesurleurslibellés.

datepicker true/false Sitrue,lechampactuelaunsélecteurdedates.

ManuelpourContao3.2

79Référence

Page 80: Manuel pour Contao 3.2 - Contao Documentation

datepicker (boolean) Sitrue,lechampactuelaunsélecteurdedates.

colorpicker true/false(boolean) Sitrue,lechampactuelaunsélecteurdecouleurs

feEditable true/false(boolean)

Sitrue,lechampcourantpeutêtremodifiédanslefrontoffice.Nes'appliquequ'àlatabletl_member.

feGroup Groupname(string)

personaldonnéespersonnellesaddressdétailsdel'adressecontactdétailsdecontactlogindétailsd'identification(uniquementlatabletl_member)Vouspouvezégalementdéfinirvospropresgroupes.

feViewable true/false(boolean)

Sitrue,lechampcourantestaffichédanslemoduledelistesdesmembres.

doNotCopy true/false(boolean)

Sitrue,lechampcourantneserapasdupliquélorsquel'enregistrementestdupliqué.

hideInput true/false(boolean)

Sitrue,lavaleurduchampseracachée(elleseracependantvisibledanslasourcedelapage!).

doNotShow true/false(boolean)

Sitrue,lechampcourantneserapasaffichédanslesmodes"modifiertous"et"voirlesdétails".

isBoolean true/false(boolean) Indiquequ'unchampparticulierestdetypebooléen.

disabled true/false(boolean) Désactivelechamp(n'estpassupportépartouslestypesdechamps).

readonly true/false(boolean)

Rendlechampenlectureseule(n'estpassupportépartouslestypesdechamps).

csv Délimiteur(string)

Lechoixdecechampneserapassauvegardécommeunechaînesérialiséemaiscommeunelisteséparéepardesvirgules.Exemple:'eval'=>array('csv'=>',')

Lesrelationsdécrivent,commentleschampsdebasededonnéessontliésàd'autrestables.DéfinitlatableréférencéedanslacléforeignKey.Lesrelationsfournissentdesclassesdemodèlespourchargerdesensemblesdedonnéesréférencéesdemanièreefficaceetconvivialepourledéveloppeur.(voirModel::getRelated()).

Clé Valeur Description

type Typederelation(string)

hasOneLavaleurréférenceunensemblededonnéesenfantshasManyLavaleurréférencecertainsensemblesdedonnéesenfants(sérialisé)belongsToLavaleurréférenceunensemblededonnéesparentes(z.B.pid)belongsToManyLavaleurréférencecertainsensemblesdedonnéesparentes(sérialisé)

loadComportementauchargement(string)

lazyChargelesenregistrementsréférencésuniquementlorsquecelaestnécessaire.(pardéfaut,économisedelaRAM)eagerChargeautomatiquementlesenregistrementsréférencés(économiselesappelsàlabasededonnées)

Relations

ManuelpourContao3.2

80Référence

Page 81: Manuel pour Contao 3.2 - Contao Documentation

Unepaletteestungroupedechampsdeformulairequisontnécessairespourmodifierunenregistrement.Unepalettenecontienttypiquementpastouteslescolonnesd'unetable,maisseulementcellesquiappartiennentàuncertainmoduleouuncertainélémentdecontenu.Lespalettespeuventchangerdynamiquementsuivantlesdroitsdel'utilisateurouletypedel'élémentetcertainssous-ensemblesduformulaire(appelésdessubpalettes)peuventêtrechargésinteractivementavecAjax.

Unepaletteestunechaînedecaractèrescomposéedenomsdechampsconcaténésetséparéssoitpardespoints-virgules(;),soitpardesvirgules(,).Alorsquelavirguleestutiliséesimplementpourséparerdesnomsdechamps,lepoint-virguleindiquelecommencementd'unnouveaufieldset,quipeutêtredérouléouenroulé.

Palettes

Définirdesgroupes

ManuelpourContao3.2

81Palettes

Page 82: Manuel pour Contao 3.2 - Contao Documentation

L'exempleci-dessussedéfinitparlecodesuivant:

{title_legend},headline,alias,author;{date_legend},date,time;{teaser_legend:hide},subheadline,teaser

Lesélémentsdesubstitutiontitle_legendetdate_legendserontremplacésparleurlibellécorrespondantdansletableau"TL_LANG".

$GLOBALS['TL_LANG']['tl_news']['title_legend']='Titleandauthor';

$GLOBALS['TL_LANG']['tl_news']['date_legend']='Dateandtime';

LebackofficedeContaoutiliseunsystèmesimpledegrilleendeuxcolonnespourdisposerleschampsd'entréesdansleursgroupes.VouspouvezutiliserlesclassesCSSsuivantesdanslasectionévaluationdutableauconteneurdedonnéesentantquetl_class(exemple'tl_class'=>'w50wizard').

tl_class Description

w50 Définitlalargeurduchampsà50%etlerendflottant(float:left).

clr Libèretouslesélémentsflottants(clear:both).

wizard Raccourcitlechampdesaisiedesortequ'ilyaitassezdeplacepourlebouton"Assistant"(parexempleleschampsavecunsélecteurdedates).

long Lechampdesaisiedetextes'étendsurdeuxcolonnes.

m12 Ajouteunemargesupérieurede12pixelsàl'élément(utilisépourlescasesàcocheruniques).

Disposerleschamps

ManuelpourContao3.2

82Palettes

Page 83: Manuel pour Contao 3.2 - Contao Documentation

Lesfonctionscallbacksontfondéessurunpatternderépartitiond'événements.Vouspouvezinscrireuneouplusieurscallbackspouruncertainévénementetlorsquel'événementestdéclenché,lesfonctionscallbacksontexécutées.Lescallbacksvouspermettentdepersonnaliserlecoursdel'exécutionducœurdeContao.

Callback Description

onload_callbackEstexécutéequandl'objetDataContainerestinitialisé.Celavouspermet,parexemple,devérifierlespermissionsoudemodifierletableauconteneurdedonnéesdynamiquementàl'exécution.

onsubmit_callbackEstexécutéelorsqu'unformulairedubackofficeestsoumis.Celavouspermet,parexemple,demodifierlesdonnéesduformulaireavantqu'ellesnesoientécritesdanslabasededonnées(utiliséepourcalculerlesintervallesdansl'extensioncalendrier).

ondelete_callback Estexécutéeavantqu'unenregistrementsoitsupprimédelabasededonnées.

oncut_callback Estexécutéeaprèsqu'unenregistrementaitétédéplacéversunenouvelleposition.

oncopy_callback Estexécutéeaprèsqu'unenregistrementaitétédupliqué.

Callback Description

paste_button_callbackPermetd'avoirdesboutonsdecollageindividuelsetest,parexemple,utiliséedanslastructuredesitepourdésactiverlesboutonsenfonctiondespermissionsdel'utilisateur(nécessiteuncontrôledecommandeadditionnelviaload_callback).

child_record_callback Définitcommentlesélémentsenfantssontrendusdansla"vueparente".

group_callback Permetd'avoirdesen-têtesdegroupesindividuelsdanslelisting.

label_callback Permetd'avoirdeslibellésindividuelsdanslelistingetest,parexemple,utiliséedanslemoduleutilisateurspourajouterdesicônesdestatut.

Callback Description

button_callbackPermetd'avoirdesicônesdenavigationindividuelsetest,parexemple,utiliséedanslastructuredesitepourdésactiverdesboutonsenfonctiondespermissionsdel'utilisateur(nécessiteuncontrôledecommandeadditionnelviaload_callback).

Callback Description

options_callbackVouspermetdedéfinirunefonctionindividuellepourchargerdesdonnéesdansunmenudéroulantouunelistedecasesàcocher.Utile,parexemple,pourdesrelationsavecclésétrangèresconditionnelles.

input_field_callbackPermetlacréationdechampsdeformulaireindividuelsetest,parexemple,utiliséedanslemodulebackoffice"donnéespersonnelles"pourgénérerlewidget"nettoyerlesdonnées".Attention:lechampsn'estpassauvegardéautomatiquement!

load_callback Estexécutéelorsqueunchampsdeformulaireestinitialiséetpeut,parexemple,êtreutiliséepourchargerunevaleurpardéfaut.

Callbacks

Callbacksglobaux

Callbacksdelisting

Callbacksd'opérations

Callbacksdechamps

ManuelpourContao3.2

83Callbacks

Page 84: Manuel pour Contao 3.2 - Contao Documentation

save_callback Estexécutéequandunchampsestsoumisetpeut,parexemple,êtreutiliséepourajouteruneroutinedevalidationindividuelle.

ManuelpourContao3.2

84Callbacks

Page 85: Manuel pour Contao 3.2 - Contao Documentation

Lapersonnalisationestunedesfonctionnalitéslesplusimportantesden'importequelleapplicationetparticulièrementdessystèmesdegestiondecontenu.Contaofournitdenombreusesoptionspourajusterlaconfiguration,personnaliserleschampsetleslibellés,ajoutersespropresmorceauxdecodeoumêmecréerdenouvellesextensions.Vouspouvezcontrôlerpresquen'importequelcomportementducœurdeContaosansmêmetouchersesfichiers,ainsivousn'avezpasàréappliquervoschangementsàchaquemiseàjour.

PersonnaliserContao

ManuelpourContao3.2

85PersonnaliserContao

Page 86: Manuel pour Contao 3.2 - Contao Documentation

AvantdedévelopperdesextensionspourContao,vousdevezcontournerlecacheinterne.Sivousvoulezcontournerlecacheinterne,Suivezlesliens"Système"->"Configuration"etcochezlacase"Contournerlecacheinterne"sous"Configurationglobale".

Dèsquelesiteinternetseraenproduction,vousdevrezdécocherlacase"Contournerlecacheinterne",afinderéduireaumaximumletempsderéponse.

Contournerlecacheinterne

ManuelpourContao3.2

86Contournerlecacheinterne

Page 87: Manuel pour Contao 3.2 - Contao Documentation

LaconfigurationdeContaoestdéfiniedansungrandtableaudiviséentroissections:laconfigurationdusystème,laconfigurationduconteneurdedonnéesetlaconfigurationdelalangue.Letableaudeconfigurationestconstruitaumomentdel'exécutionetnecontientquelespartiesnécessairesàlagénérationd'unepagedonnée.Contaoneperdpasdetempsetdemémoireà"parser"denombreuxfichiersdeconfigurationsredondants.

Laconfigurationdusystèmeestenregistréedanslesfichiersconfig.phpdesdifférentsmodulesdeContao.Sivousvoulezlapersonnaliser,ajoutezvosmodificationsdanslefichiersystem/config/localconfig.php,afinqu'ellesnesoientpasécraséesàlaprochainemiseàjour.LaplupartdesparamètrespeuventêtreconfigurésdanslemoduleConfigurationdubackofficeetserontécritsautomatiquementdanslefichierdeconfiguration;vousaurezdoncrarementbesoindelemodifiermanuellement.

//Désactivelecréateurd'extension

unset($GLOBALS['BE_MOD']['devtools']['extension']);

###INSTALLSCRIPTSTART###

$GLOBALS['TL_CONFIG']['debugMode']=false;

$GLOBALS['TL_CONFIG']['displayErrors']=false;

Pensezàmettrevosmodificationsau-dessusdelaligneINSTALLSCRIPTSTART;Àdéfaut,ellesserontsuppriméesparlemoduledeconfiguration.Etn'utilisezjamaislefichierconfig.phppourstockerdesparamètresdeconfiguration,carcefichierpeutêtreécrasélorsdesmisesàjour!

Contaoutiliseletableauconteneurdedonnées(DCA)pourstockerlesmétadonnéesrelativesauxtables.LaconfigurationduconteneurdedonnéesestenregistréedanslesdossiersdcadesdiversmodulesdeContao.Faitesvosmodificationsdanslefichiersystem/config/dcaconfig.phpafinqu'ellesnesoientpasécraséesàlaprochainemiseàjour.

//Rendobligatoirelechampcompanydanslatabledesmembres

$GLOBALS['TL_DCA']['tl_member']['fields']['company']['eval']['mandatory']=

true;

//Vérifiequelesnomsdecompanynecomprennentquedescaractères

alphanumériques

$GLOBALS['TL_DCA']['tl_member']['fields']['company']['eval']['rgxp']='alnum';

//N'autorisequelesadministrateursàutiliserlesélémentsdecontenude

type"includes"

if(!BackendUser::getInstance()->isAdmin)

{

unset($GLOBALS['TL_CTE']['includes']);

}

Commevouspouvezlevoir,lefichierdcaconfig.phpestunbonendroitpourenregistrerdepetitesmodificationsconcernantlaconfigurationdeContao.Pourfairedenombreuxchangements,pensezplutôtàlesincluredansuneextensionpersonnalisée,afindenepasenperdrelatrace.

LeslibellésetlestraductionssontenregistrésdanslesdossierslanguagesdesdifférentsmodulesdeContao.ChaquelangueestidentifiéeparsoncodeISO-639-1.Appliquezvosmodificationsdanslefichiersystem/config/langconfig.phpafin

Configurationspersonnalisées

Personnaliserlaconfigurationdusystème

Personnaliserlaconfigurationduconteneurdedonnées

Personnaliserleslibellésetlestraductions

ManuelpourContao3.2

87Configurationspersonnalisées

Page 88: Manuel pour Contao 3.2 - Contao Documentation

qu'ellesnesoientpasécraséesàlaprochainemiseàjour.

//Modifieunlibellépourtoutesleslangues

$GLOBALS['TL_LANG']['MSC']['goBack']='«';

//Modifieunlibellépouruneseulelangue

if($GLOBALS['TL_LANGUAGE']=='de')

{

$GLOBALS['TL_LANG']['tl_layout']['column']='Bereich';

}

elseif($GLOBALS['TL_LANGUAGE']=='fr')

{

$GLOBALS['TL_LANG']['tl_layout']['column']='Section';

}

Bienentendu,lesmodificationsdutableaudelanguespeuventaussiêtreinclusesdansunmodulepersonnalisé,cequiestrecommandélorsqu'ilyenabeaucoup.

ManuelpourContao3.2

88Configurationspersonnalisées

Page 89: Manuel pour Contao 3.2 - Contao Documentation

Imaginonsquevoussouhaitiezajouterunnumérodeclientàlatabledesmembres.L'ajoutd'unchamppersonnaliséàunetabledeContaonécessitedemodifierplusd'unfichier,ilestdoncpréférabled'ajouterunmodulepersonnalisédanslerépertoiresystem/modules.Gardezenmémoirequelesmodulessontchargésensuivantl'ordrealphabétique,n'appelezdoncpasvotreextensioncustomsivoussouhaitezredéfinirlesconfigurationsdel'extensionnews.

Créezlefichierdca/tl_member.phpdanslerépertoiredevotremoduleetajoutez-ylesmétadonnéespourlenouveauchamp,afinqueContaosachecommentlegérer.

Àpartirdelaversion3deContao,vouspouvezégalementspécifierdirectementleschampscorrespondantsetleurconfigurationpourlabasededonnéesdansletableauconteneurdedonnéessoussql.LesdétailsSQLnesontpasenvoyésàlabasededonnées,maissontutiliséspourcalculerladifférenceentrelesspécificationsdeContaoetlestablesexistantes.

//Modificationdelapalette

$GLOBALS['TL_DCA']['tl_member']['palettes']['default']=str_replace

(

'company',

'customer_number,company',

$GLOBALS['TL_DCA']['tl_member']['palettes']['default']

);

//Ajoutelesmétadonnéesduchamp

$GLOBALS['TL_DCA']['tl_member']['fields']['customer_number']=array

(

'label'=>&amp;$GLOBALS['TL_LANG']['tl_member']['customer_number'],

'exclude'=>true,

'inputType'=>'text',

'eval'=>array('mandatory'=>true,'rgxp'=>'digit','maxlength'=>8),

'sql'=>"varchar(8)NOTNULLdefault''"

);

Sivousnecomprenezpaslecodeci-dessus,ilpeutêtreutilederelirelechapitresurlestableauxconteneursdedonnées.

Aprèsl'ajoutoulamodificationd'unchampdansletableauconteneurdedonnées,vousdevriezutiliserl'outild'installationdeContaoafindemettreàjourlestablesdevotrebasededonnées.

Créezlefichierlanguages/en/tl_member.phpdanslerépertoiredevotremodule,etajoutez-yleslibellésanglaispourvotrenouveauchamp:

$GLOBALS['TL_LANG']['tl_member']['customer_number']=array

(

'Customernumber',

'Pleaseenterthe8-digitcustomernumber.'

);

Danslemodulemembres,vouspouvezdésormaissaisirunnumérodeclientquipeutcontenirjusqu'à8caractèresnumériques.Silechampn'estpassaisi,oucontientuncaractèrenonnumérique,Contaorefuserad'enregistrerlavaleuretafficheraunmessaged'erreuràlaplace.

Ajouterdeschampspersonnalisés

ÉtendreleDCA(tableauconteneurdedonnées)

Ajouterunetraduction

ManuelpourContao3.2

89Ajouterdeschampspersonnalisés

Page 90: Manuel pour Contao 3.2 - Contao Documentation

CettepageexpliquecommentpersonnaliserTinyMCEetsauvegarderlesmodificationsafinqu'ellesnesoientpasécraséesparlaprochainemiseàjourdeContao.Notezque,pardéfaut,Contaon'inclutpastouslespluginsdeTinyMCE;sivoussouhaitezutiliserunpluginparticulierquinefaitpaspartiedeladistributiondeContao,ilvousfautdoncletéléchargeràpartirdusiteduprojetTinyMCE,etlemettredanslerépertoireassets/tinymce/plugins.

L'imageci-dessusmontrelefichierdeconfigurationdel'éditeurdetexterichesystem/config/tinyMCE.php.Pourcréerunfichierdeconfigurationpersonnalisé,copiezsimplementcefichieretrenommez-le,parexempleentinyCustom.php.Faitesensuitevosmodificationsetsauvegardezlenouveaufichier.Ilresteencoreàadapterlaconfigurationduconteneurdedonnéesdanslefichiersystem/config/dcaconfig.phpetindiqueràContaoàquelschampslefichierpersonnalisédeconfigurations'applique.

//Utilisationd'uneconfigurationpersonnaliséedel'éditeurdetexteriche

pourlesélémentstextes

$GLOBALS['TL_DCA']['tl_content']['fields']['text']['eval']['rte']=

'tinyCustom';

Personnaliserl'éditeurdetexteriche(TinyMCE)

ManuelpourContao3.2

90Personnaliserl'éditeurdetexteriche(TinyMCE)

Page 91: Manuel pour Contao 3.2 - Contao Documentation

Imaginonsquevousvouliezmodifierlecomportementdumoduledenavigationpourqu'ilsoittoujoursvisible,mêmeenl'absencedesous-pages,alorsquelemoduleneseraitnormalementpasaffiché.Danscecas,unenotedoitinformerl'utilisateurqu'iln'yapasdesous-pages.Bienentendu,nousallonsfaireensortedeconserveraumaximumlaclasseoriginaledenavigation,afinquelesfuturesmisesàjournenécessitentpasdemaintenance.Lesclassesdemodulesetd'élémentsdecontenupeuventêtreassignéesdynamiquementdanslaconfigurationdusystèmedeContao,cequivouspermetdelesremplacerfacilementparvospropresversions.

Lecomportementdelaclassedenavigationpardéfautcorrespondassezbienàcequenousvoulons,saufquelaméthodegenerate()cachelemodulelorsqu'iln'yapasdesous-pages.Ilsuffitdoncdemodifiercetteméthodeparticulière,etlameilleurefaçondelefaireestd'étendrelaclasseoriginaleenlasupplantant.Pourcefaire,créezunnouveaufichierxcustom/ModuleMyNavigation.phpetdéfinissezlaclassepersonnaliséeModuleMyNavigation:

//xcustom/ModuleMyNavigation.php

classModuleMyNavigationextendsModuleNavigation

{

publicfunctiongenerate()

{

//Exécutelaméthodeoriginale

$buffer=parent::generate();

if(empty($buffer))

{

$buffer='Therearenosubpages';

}

return$buffer;

}

}

Lesclassesdemodulesetd'élémentsdecontenupeuventêtreassignéesdynamiquementdanslaconfigurationdusystèmedeContao,cequivouspermetdelesremplacerfacilementparvospropresversions.LesnomsdesclassesdemodulessontenregistrésdansletableauglobalFE_MOD.

//xcustom/config/config.php

$GLOBALS['FE_MOD']['navigationMenu']['navigation']='ModuleMyNavigation';

Grâceàlaconfigurationdynamique,Contaochargeautomatiquementlanouvelleclasseàlarequêtesuivante,etlemoduledenavigationafficheralemessage"Therearenosubpages"aulieudenerienafficherdutout.Lamodificationsupportelesmisesàjoursansnécessiterdemaintenance.

Surchargerlesméthodesdeclasses

Créeruneclassepersonnalisée

Enregistreruneclassepersonnalisée

ManuelpourContao3.2

91Surchargerlesméthodesdeclasses

Page 92: Manuel pour Contao 3.2 - Contao Documentation

Leshooksfonctionnentdelamêmemanièrequelesfonctionscallbackdutableauconteneurdedonnées(DCA).Vouspouvezenregistreruneouplusieursfonctionspourunévénementdonné,etlorsquel'événementestdéclenché,lesfonctionscallbacksontexécutées.Leshooksvouspermettentd'ajouterdesfonctionnalitéspersonnaliséesaucœurdeContao.

LehookactivateAccountestdéclenchélorsqu'unnouveaucompteenfrontofficeestactivé.Ilpassel'objetUserenargumentetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.4.3.

//config.php

$GLOBALS['TL_HOOKS']['activateAccount'][]=array('MyClass',

'myActivateAccount');

//MyClass.php

publicfunctionmyActivateAccount(Database_Result$objUser)

{

//Fairequelquechose

}

LehookactivateRecipientestdéclenchélorsqu'unnouveaudestinataired'unenewsletterestajouté.Ilpassel'adressee-mail,lesIDdudestinataireetdelalistedediffusionenargumentsetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.8.RC1.

//config.php

$GLOBALS['TL_HOOKS']['activateRecipient'][]=array('MyClass',

'myActivateRecipient');

//MyClass.php

publicfunctionmyActivateRecipient($strEmail,$arrRecipients,$arrChannels)

{

//Fairequelquechose

}

LehookaddCommentestdéclenchélorsqu'uncommentaireestajouté.Ilpassel'IDdel'enregistrementetletableaudedonnéesenargumentsetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.8.2.

//config.php

$GLOBALS['TL_HOOKS']['addComment'][]=array('MyClass','myAddComment');

//MyClass.php

publicfunctionmyAddComment($intId,$arrSet)

{

//Fairequelquechose

}

LehookaddCustomRegexpestdéclenchélorsqu'uneexpressionrégulièreinconnueesttrouvée.Ilpasselenomde

Contaohooks

activateAccount

activateRecipient

addComment

addCustomRegexp

ManuelpourContao3.2

92Contaohooks

Page 93: Manuel pour Contao 3.2 - Contao Documentation

l'expressionrégulière,lavaleurcouranteetl'objetWidgetenargumentsetattendunevaleurderetourdetypebooléen.Ilestdisponibleàpartirdelaversion2.6.2.

//config.php

$GLOBALS['TL_HOOKS']['addCustomRegexp'][]=array('MyClass',

'myAddCustomRegexp');

//MyClass.php

publicfunctionmyAddCustomRegexp($strRegexp,$varValue,Widget$objWidget)

{

if($strRegexp=='postal')

{

if(!preg_match('/^0-9{4,6}$/',$varValue))

{

$objWidget->addError('Field'.$objWidget->label.'shouldbeapostalcode.');

}

returntrue;

}

returnfalse;

}

LehookaddLogEntryestdéclenchélorsqu'unenouvelleentréeestajoutéeaujournal(log).Ilpasselemessage,lafonctionetl'actionenargumentsetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.8.RC1.

//config.php

$GLOBALS['TL_HOOKS']['addLogEntry'][]=array('MyClass','myAddLogEntry');

//MyClass.php

publicfunctionmyAddLogEntry($strText,$strFunction,$strAction)

{

//Fairequelquechose

}

LehookcheckCredentialsestdéclenchélorsqu'unetentatived'identificationéchoueàcaused'unmotdepasseincorrect.Ilpasselenomdel'utilisateur,lemotdepasseetl'objetUserenargumentsetattendunevaleurderetourdetypebooléen.Ilestdisponibleàpartirdelaversion2.6.0.

//config.php

$GLOBALS['TL_HOOKS']['checkCredentials'][]=array('MyClass',

'myCheckCredentials');

//MyClass.php

publicfunctionmyCheckCredentials($strUsername,$strPassword,User$objUser)

{

//Checkagainstaglobaldatabase

if($this->checkGlobalDbFor($strUsername,$strPassword))

{

returntrue;

}

returnfalse;

}

LehookcloseAccountestdéclenchélorsqu'unutilisateurclôturesoncompte.Ilpassel'IDdel'utilisateur,lemode

addLogEntry

checkCredentials

closeAccount

ManuelpourContao3.2

93Contaohooks

Page 94: Manuel pour Contao 3.2 - Contao Documentation

opérationneletlemoduleenargumentsetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.8.0.

//config.php

$GLOBALS['TL_HOOKS']['closeAccount'][]=array('MyClass','myCloseAccount');

//MyClass.php

publicfunctionmyCloseAccount($intId,$strMode,$objModule)

{

if($strMode=='close_delete')

{

//Fairequelquechose

}

}

LehookcompileDefinitionestdéclenchéquandunedéfinitiondeformataged'unefeuilledestyleestécrite.Ilpasseletableaudeconfigurationenargumentetattendunechaînedecaractèrescommevaleurderetour.Ilestdisponibleàpartirdelaversion2.9.4.

//config.php

$GLOBALS['TL_HOOKS']['compileDefinition'][]=array('MyClass',

'myCompileDefinition');

//MyClass.php

publicfunctionmyCompileDefinition($arrRow)

{

if(isset($arrRow['border-radius']))

{

return"\nborder-radius:".$arrRow['border-radius'].";";

}

return'';

}

LehookcompileFormFieldsestdéclenchéavantqu'unchampdeformulairesoitchargé.Ilpasseuntableaud'objetsFormFieldModelainsiquel'IDetl'objetduformulaireenargumentsetattendletableaud'objetsFormFieldModelcommevaleurderetour.Aveccehook,leschampsdeformulairepeuventêtreajustésdynamiquementavantl'affichage.Ilestdisponibleàpartirdelaversion3.2.

//config.php

$GLOBALS['TL_HOOKS']['compileFormFields'][]=array('MyClass','myCompileFormFields');

//MyClass.php

publicfunctionmyCompileFormFields($arrFields,$formId,$this)

{

if($formId=='my_form_id')

{

foreach($arrFieldsAS$objFields)

{

if($objFields->name=='my_form_field_1')

{

//Fairequelquechose

}

}

}

return$arrFields;

}

compileDefinition

compileFormFields

ManuelpourContao3.2

94Contaohooks

Page 95: Manuel pour Contao 3.2 - Contao Documentation

LehookcreateDefinitionestdéclenchéquandunedéfinitiondeformataged'unefeuilledestyleestimportée.Ilpasselacléetlavaleur,ladéfinitiondeformataged'origineetletableaudedonnéesenargumentsetattenduntableauoufalsecommevaleurderetour.Ilestdisponibleàpartirdelaversion2.9.4.

//config.php

$GLOBALS['TL_HOOKS']['createDefinition'][]=array('MyClass',

'myCreateDefinition');

//MyClass.php

publicfunctionmyCreateDefinition($strKey,$strValue,$strDefinition,$arrSet)

{

if($strKey=='border-radius')

{

returnarray('border-radius'=>$strValue);

}

returnfalse;

}

LehookcreateNewUserestdéclenchélorsqu'unnouvelutilisateurfrontoffices'enregistresurlesiteinternet.Ilpasselenouvelutilisateuretletableaudedonnéesenargumentsetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.2.0.

//config.php

$GLOBALS['TL_HOOKS']['createNewUser'][]=array('MyClass','myCreateNewUser');

//MyClass.php

publicfunctionmyCreateNewUser($intId,$arrData)

{

//Modificationdel'enregistrement

}

LehookexecutePreActionsestdéclenchéparlesrequêtesAjaxquinenécessitentpasunobjetDCA.Ilpasselenomdel'actionenargumentetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.6.1.

//config.php

$GLOBALS['TL_HOOKS']['executePreActions'][]=array('MyClass','myExecutePreActions');

//MyClass.php

publicfunctionmyExecutePreActions($strAction)

{

if($strAction=='update')

{

//Fairequelquechose

}

}

LehookexecutePostActionsestdéclenchéparlesrequêtesAjaxquinécessitentunobjetDCA.Ilpasselenomdel'actionetl'objetDataContainerenargumentsetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.6.1.

createDefinition

createNewUser

executePreActions

executePostActions

ManuelpourContao3.2

95Contaohooks

Page 96: Manuel pour Contao 3.2 - Contao Documentation

//config.php

$GLOBALS['TL_HOOKS']['executePostActions'][]=array('MyClass','myExecutePostActions');

//MyClass.php

publicfunctionmyExecutePostActions($strAction,DataContainer$dc)

{

if($strAction=='update')

{

//Fairequelquechose

}

}

LehookgenerateBreadcrumbpermetdemodifierlanavigationfild'Ariane.Ilpasselesélémentsdenavigationetlemodulefrontofficeenargumentsetattenddesélémentscommevaleurderetour.Ilestdisponibleàpartirdelaversion2.10.0.

//config.php

$GLOBALS['TL_HOOKS']['generateBreadcrumb'][]=array('MyClass','myGenerateBreadcrumb');

//MyClass.php

publicfunctionmyGenerateBreadcrumb($arrItems,\Module$objModule)

{

return$arrItems;

}

LehookgenerateFrontendUrlestdéclenchélorsdelare-créationd'uneURLdefrontoffice.Ilpassel'objetPage,lachaînedeparamètresetl'URLpardéfautenargumentsetattendunechaînedecaractèrescommevaleurderetour.Ilestdisponibleàpartirdelaversion2.5.8.

//config.php

$GLOBALS['TL_HOOKS']['generateFrontendUrl'][]=array('MyClass','myGenerateFrontendUrl');

//MyClass.php

publicfunctionmyGenerateFrontendUrl($arrRow,$strParams,$strUrl)

{

returnstr_replace('.html','.xml',$strUrl);

}

LehookgeneratePageestdéclenchéavantlacompilationdumodèledeprésentationprincipale("fe_page").Ilpassel'objetPage,l'objetModeletuneréférencequiluiestpropreenargumentsetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.8.RC1.

//config.php

$GLOBALS['TL_HOOKS']['generatePage'][]=array('MyClass','myGeneratePage');

//MyClass.php

publicfunctionmyGeneratePage(\PageModel$objPage,\LayoutModel$objLayout,\PageRegular$objPageRegular)

{

//Fairequelquechose

}

generateBreadcrumb

generateFrontendUrl

generatePage

getAllEvents

ManuelpourContao3.2

96Contaohooks

Page 97: Manuel pour Contao 3.2 - Contao Documentation

LehookgetAllEventsvouspermetdemodifierlesjeuxderésultatsproduitsparlesmodulescalendrieretévénements.Ilpasselejeuderésultatscourant,lesIDdesélémentsparentsetl'heurededébutetdefinenargumentsetattendunjeuderésultats(tableau)commevaleurderetour.Ilestdisponibleàpartirdelaversion2.6.4.

//config.php

$GLOBALS['TL_HOOKS']['getAllEvents'][]=array('MyClass','myGetAllEvents');

//MyClass.php

publicfunctionmyGetAllEvents($arrEvents,$arrCalendars,$intStart,$intEnd,Module$objModule)

{

ksort($arrEvents);

return$arrEvents;

}

LehookgetAttributesFromDcavouspermetdemodifierlesattributsdechampsd'unformulaire.IlpasselesattributswidgetcourantsetunobjetDataContainerenargumentsetattenduntableaud'argumentscommevaleurderetour.Ilestdisponibleàpartirdelaversion3.2.RC1.

//config.php

$GLOBALS['TL_HOOKS']['getAttributesFromDca'][]=array('MyClass','myGetAttributesFromDca');

//MyClass.php

publicfunctionmyGetAttributesFromDca($arrAttributes,$objDca)

{

//Fairequelquechose

return$arrAttributes;

}

LehookgetContentElementestdéclenchélorsqu'unélémentdecontenuestrendu.Ilpassel'objetDatabaseetunechaîne-tampon(bufferstring)enargumentsetattendunechaîne-tamponcommevaleurderetour.Ilestdisponibleàpartirdelaversion2.9.0.

//config.php

$GLOBALS['TL_HOOKS']['getContentElement'][]=array('MyClass','myGetContentElement');

//MyClass.php

publicfunctionmyGetContentElement(Database_Result$objElement,$strBuffer)

{

return$strBuffer;

}

LehookgetImageestdéclenchéquandunevignetteestgénéréeetvouspermetd'ajouteruneroutinepersonnalisée.Ilpasselechemind'accès,lalargeuretlahauteur,lamode,lenomducacheetl'objetFileenargumentsetattendunchemind'accèscommevaleurderetour.Ilestdisponibleàpartirdelaversion2.8.RC1.

//config.php

$GLOBALS['TL_HOOKS']['getImage'][]=array('MyClass','myGetImage');

//MyClass.php

publicfunctionmyGetImage($image,$width,$height,$mode,$strCacheName,$objFile)

{

getAttributesFromDca

getContentElement

getImage

ManuelpourContao3.2

97Contaohooks

Page 98: Manuel pour Contao 3.2 - Contao Documentation

returnMyImage::generateThumbnail($image,$widht,$height,$mode);

}

LehookgetPageIdFromUrlestdéclenchélorsdel'évaluationdespartiesd'uneURL.Ilpasselesfragmentsd'URLenargumentetattenduntableaudefragmentsd'uneURLenvaleurderetour.Ilestdisponibledepuislaversion2.5.4.

//config.php

$GLOBALS['TL_HOOKS']['getPageIdFromUrl'][]=array('MyClass','myGetPageIdFromUrl');

//MyClass.php

publicfunctionmyGetPageIdFromUrl($arrFragments)

{

returnarray_unique($arrFragments);

}

LehookgetPageLayoutestexécutéeavantd'initialiserlemodèlefrontoffice.Ilpasselemodèledelapage,l'objetModeletuneréférenceàl'objetPageenargumentsetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion3.1.0.

//config.php

$GLOBALS['TL_HOOKS']['getPageLayout'][]=array('MyClass','mygetPageLayout');

//MyClass.php

publicfunctionmygetPageLayout(\PageModel$objPage,\LayoutModel$objLayout,\PageRegular$objPageRegular)

{

//Fairequelquechose

}

LehookgetSearchablePagesestdéclenchélorsdelareconstructiondel'indexderecherche.Ilpasseletableaudespagesetl'IDdelapageracineenargumentsetattenduntableaud'URLsabsolues(!)commevaleurderetour.Ilestdisponibleàpartirdelaversion2.2.0.

//config.php

$GLOBALS['TL_HOOKS']['getSearchablePages'][]=array('MyClass','myGetSearchablePages');

//MyClass.php

publicfunctionmyGetSearchablePages($arrPages,$intRoot)

{

returnarray_merge($arrPages,array('Additionalpages'));

}

LehookinitializeSystemestdéclenchélorsquelesystèmeestinitialisé.Ilestdisponibleàpartirdelaversion3.1.RC1.

//config.php

$GLOBALS['TL_HOOKS']['initializeSystem'][]=array('MyClass','myInitializeSystem');

//MyClass.php

publicfunctionmyInitializeSystem()

{

//Fairequelquechose

}

getPageIdFromUrl

getPageLayout

getSearchablePages

initializeSystem

ManuelpourContao3.2

98Contaohooks

Page 99: Manuel pour Contao 3.2 - Contao Documentation

LehookimportUserestdéclenchélorsqu'unnomd'utilisateurnepeutêtretrouvédanslabasededonnées.Ilpasselenomd'utilisateur,lemotdepasseetlenomdelatableenargumentsetattendunevaleurderetourdetypebooléen.Ilestdisponibleàpartirdelaversion2.7.RC1.

//config.php

$GLOBALS['TL_HOOKS']['importUser'][]=array('MyClass','myImportUser');

//MyClass.php

publicfunctionmyImportUser($strUsername,$strPassword,$strTable)

{

if($strTable=='tl_member')

{

//Importel'utilisateuràpartird'unserveurLDAP

if($this->importUserFromLdap($strUsername,$strPassword))

{

returntrue;

}

}

returnfalse;

}

LehookisVisibleElementestdéclenchélorsdelavérificationsiunélémentdoitêtrevisibledanslefrontofficeounon.Un"élément"danscecassignifiesoitunarticle,soitunmoduledefrontofficeousoitunélémentdecontenu.AladifférencedestroisautreshooksgetArticle,getFrontendModuleetgetContentElement,onpeutprévenirlacréationdubalisagecomplet.Lehookpasselemodèledel'instanceetl'étatdevisibilitécourantenargumentsetattendlenouvelétatdevisibilitécommevaleurderetour.Ilestdisponibleàpartirdelaversion3.2.RC1.

//config.php

$GLOBALS['TL_HOOKS']['isVisibleElement'][]=array('MyClass','myIsVisibleElement');

//MyClass.php

publicfunctionmyIsVisibleElement($objElement,$blnIsVisible)

{

if($objElementinstanceofContentElement)

{

//Vérifiezsicetélémentdecontenupeutêtreaffiché

if($this->myElementCanBeShownInFrontend($objElement))

{

returntrue;

}

}

//Sinon,nousnevoulonspaschangerl'étatdevisibilité

return$blnIsVisible;

}

LehooklistCommentsestdéclenchélorsquedescommentairessontlistésdanslebackoffice.Ilpassel'enregistrementcourantenargumentetattendunechaînedecaractèrescommevaleurderetour.Ilestdisponibleàpartirdelaversion2.8.RC2.

//config.php

$GLOBALS['TL_HOOKS']['listComments'][]=array('MyClass','myListComments');

importUser

isVisibleElement

listComments

ManuelpourContao3.2

99Contaohooks

Page 100: Manuel pour Contao 3.2 - Contao Documentation

//MyClass.php

publicfunctionmyListComments($arrRow)

{

return'<ahref="contao/main.php?do=…">'.$arrRow['title'].'</a>';

}

LehookloadFormFieldestdéclenchélorsqu'unchampdeformulaireestchargé.Ilpassel'objetWidget,l'IDetlesdonnéesduformulaireenargumentsetattendunobjetWidgetcommevaleurderetour.Ilestdisponibleàpartirdelaversion2.5.0.

//config.php

$GLOBALS['TL_HOOKS']['loadFormField'][]=array('MyClass','myLoadFormField');

//MyClass.php

publicfunctionmyLoadFormField(Widget$objWidget,$strForm,$arrForm)

{

$objWidget->class='myclass';

return$objWidget;

}

LehookloadDataContainerestdéclenchélorsqu'unfichierDCAestchargé.Ilpasselenomdefichierenargumentetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.8.2.

//config.php

$GLOBALS['TL_HOOKS']['loadDataContainer'][]=array('MyClass','myLoadDataContainer');

//MyClass.php

publicfunctionmyLoadDataContainer($strName)

{

//Fairequelquechose

}

LehookloadLanguageFileestdéclenchéauchargementd'unfichierdelangues.Ilpasselenomdufichieretlalangueenargumentsetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.8.RC1.

//config.php

$GLOBALS['TL_HOOKS']['loadLanguageFile'][]=array('MyClass','myLoadLanguageFile');

//MyClass.php

publicfunctionmyLoadLanguageFile($strName,$strLanguage)

{

//Fairequelquechose

}

LehookoutputBackendTemplateestdéclenchélorsdel'affichageàl'écrand'unmodèledubackoffice.Ilpasselecontenuetlenomdumodèleenargumentsetattendlecontenudumodèlecommevaleurderetour.Ilestdisponibleàpartirdelaversion2.6.0.

//config.php

loadFormField

loadDataContainer

loadLanguageFile

outputBackendTemplate

ManuelpourContao3.2

100Contaohooks

Page 101: Manuel pour Contao 3.2 - Contao Documentation

$GLOBALS['TL_HOOKS']['outputBackendTemplate'][]=array('MyClass','myOutputBackendTemplate');

//MyClass.php

publicfunctionmyOutputBackendTemplate($strContent,$strTemplate)

{

if($strTemplate=='be_main')

{

//Modificationdelasortie

}

return$strContent;

}

LehookoutputFrontendTemplateestdéclenchélorsdel'affichageàl'écrand'unmodèledufrontoffice.Ilpasselecontenuetlenomdumodèleenargumentsetattendlecontenudumodèlecommevaleurderetour.Ilestdisponibleàpartirdelaversion2.6.0.

//config.php

$GLOBALS['TL_HOOKS']['outputFrontendTemplate'][]=array('MyClass','myOutputFrontendTemplate');

//MyClass.php

publicfunctionmyOutputFrontendTemplate($strContent,$strTemplate)

{

if($strTemplate=='fe_page')

{

//Modificationdelasortie

}

return$strContent;

}

LehookparseBackendTemplateestdéclenchélorsqu'unmodèledebackofficeestanalysé("parsé").Ilpasselecontenuetlenomdumodèleenargumentsetattendlecontenudumodèlecommevaleurderetour.Ilestdisponibleàpartirdelaversion2.6.0.

//config.php

$GLOBALS['TL_HOOKS']['parseBackendTemplate'][]=array('MyClass','myParseBackendTemplate');

//MyClass.php

publicfunctionmyParseBackendTemplate($strContent,$strTemplate)

{

if($strTemplate=='be_main')

{

//Modificationdelasortie

}

return$strContent;

}

LehookparseFrontendTemplateestdéclenchélorsdel'analyse("parsing")d'unmodèledefrontoffice.Ilpasselecontenuetlenomdumodèleenargumentsetattendlecontenudumodèlecommevaleurderetour.Ilestdisponibleàpartirdelaversion2.6.0.

//config.php

$GLOBALS['TL_HOOKS']['parseFrontendTemplate'][]=array('MyClass','myParseFrontendTemplate');

outputFrontendTemplate

parseBackendTemplate

parseFrontendTemplate

ManuelpourContao3.2

101Contaohooks

Page 102: Manuel pour Contao 3.2 - Contao Documentation

//MyClass.php

publicfunctionmyParseFrontendTemplate($strContent,$strTemplate)

{

if($strTemplate=='ce_text')

{

//Modificationdelasortie

}

return$strContent;

}

LehookparseTemplateestdéclenchéavantleprocessusd'analysed'unmodèle.IlreçoituneinstanceTemplate(quipeutêtreFrontendTemplateouBackendTemplate)enargumentetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.10.0.

//config.php

$GLOBALS['TL_HOOKS']['parseTemplate'][]=array('MyClass','myParseTemplate');

//MyClass.php

publicfunctionmyParseTemplate($objTemplate)

{

if($objTemplate->getName()=='mod_html')

{

//Modifierl'objet

}

}

LehookpostDownloadestdéclenchéaprèsqu'unfichieraitététéléchargéavecl'élémenttéléchargement(s).Ilpasselenomdufichierenargumentetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.4.6.

//config.php

$GLOBALS['TL_HOOKS']['postDownload'][]=array('MyClass','myPostDownload');

//MyClass.php

publicfunctionmyPostDownload($strFile)

{

//Fairequelquechose

}

LehookpostLoginestdéclenchéaprèsqu'unmembrefrontofficeouunutilisateurbackofficesesoitidentifié.Ilpassel'objetUserenargumentetn'attendpasdevaleurderetour.

//config.php

$GLOBALS['TL_HOOKS']['postLogin'][]=array('MyClass','myPostLogin');

//MyClass.php

publicfunctionmyPostLogin(User$objUser)

{

//Fairequelquechose

}

parseTemplate

postDownload

postLogin

postLogout

ManuelpourContao3.2

102Contaohooks

Page 103: Manuel pour Contao 3.2 - Contao Documentation

LehookpostLogoutestdéclenchéaprèsqu'unmembrefrontofficeouunutilisateurbackofficesesoitdéconnecté.Ilpassel'objetUserenargumentetn'attendpasdevaleurderetour.

//config.php

$GLOBALS['TL_HOOKS']['postLogout'][]=array('MyClass','myPostLogout');

//MyClass.php

publicfunctionmyPostLogout(User$objUser)

{

//Fairequelquechose

}

LehookpostUploadestdéclenchéaprèsqu'unutilisateuraitenvoyéunouplusieursfichiersdanslebackoffice.Ilpasseuntableaudenomsdefichiersenargumentetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.6.4.

//config.php

$GLOBALS['TL_HOOKS']['postUpload'][]=array('MyClass','myPostUpload');

//MyClass.php

publicfunctionmyPostUpload($arrFiles)

{

//Fairequelquechose

}

LehookprepareFormDataestdéclenchéaprèsqu'unformulaireaétésoumis.Ilpasseletableaudesdonnées,letableaudeslabelsetl'objetduformulairecommeargumentsetn'attendpasdevaleurderetour.Decettefaçon,lesdonnéespeuventêtremodifiéesouétendues,avantl'exécutiondesactionscommel'envoidemessagerieoulestockagededonnées.Ilestdisponibleàpartirdelaversion3.0.0.

//config.php

$GLOBALS['TL_HOOKS']['prepareFormData'][]=array('MyClass','myPrepareFormData');

//MyClass.php

publicfunctionmyPrepareFormData(&$arrSubmitted,$arrLabels,$objForm)

{

//Fairequelquechose

}

LehookprintArticleAsPdfestdéclenchélorsqu'unarticleestexportéauformatPDF.Ilpasseletextedel'articleetl'objetArticleenargumentsetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.8.RC1.

//config.php

$GLOBALS['TL_HOOKS']['printArticleAsPdf'][]=array('MyClass','myPrintArticleAsPdf');

//MyClass.php

publicfunctionmyPrintArticleAsPdf($strArticle,Database_Result$objArticle)

{

//Fairequelquechose

exit;

}

postUpload

prepareFormData

printArticleAsPdf

ManuelpourContao3.2

103Contaohooks

Page 104: Manuel pour Contao 3.2 - Contao Documentation

LehookprocessFormDataestdéclenchéaprèslasoumissiond'unformulaire.Ilpasseletableaudesdonnéesduformulaire,letableauconteneurdedonnéesetletableaudefichiersenargumentsetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.4.4.

//config.php

$GLOBALS['TL_HOOKS']['processFormData'][]=array('MyClass','myProcessFormData');

//MyClass.php

publicfunctionmyProcessFormData($arrPost,$arrForm,$arrFiles)

{

//Fairequelquechose

}

LehookremoveOldFeedsestdéclenchélorsdelasuppressiondesvieuxfichiersXMLdurépertoiredeContao.Ilnepassepasd'argumentsetattenduntableaudenomsdefichiersàconservercommevaleurderetour.Ilestdisponibleàpartirdelaversion2.5.8.

//config.php

$GLOBALS['TL_HOOKS']['removeOldFeeds'][]=array('MyClass','myRemoveOldFeeds');

//MyClass.php

publicfunctionmyRemoveOldFeeds()

{

returnarray('custom.xml');

}

LehookremoveRecipientestdéclenchéàlasuppressiond'undestinatairedenewsletter.Ilpassel'adressee-mailetlesIDdelalistedediffusionenargumentsetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.8.RC1.

//config.php

$GLOBALS['TL_HOOKS']['removeRecipient'][]=array('MyClass','myRemoveRecipient');

//MyClass.php

publicfunctionmyRemoveRecipient($strEmail,$arrChannels)

{

//Fairequelquechose

}

LehookreplaceInsertTagsestdéclenchélorsqu'unebalised'insertioninconnueesttrouvée.Ilpasselabalised'insertionenargumentetattendlavaleurderemplacementoufalsecommevaleurderetour.Ilestdisponibleàpartirdelaversion2.6.0.

//config.php

$GLOBALS['TL_HOOKS']['replaceInsertTags'][]=array('MyClass','myReplaceInsertTags');

//MyClass.php

publicfunctionmyReplaceInsertTags($strTag)

{

if($strTag=='mytag')

{

processFormData

removeOldFeeds

removeRecipient

replaceInsertTags

ManuelpourContao3.2

104Contaohooks

Page 105: Manuel pour Contao 3.2 - Contao Documentation

return'mytagreplacement';

}

returnfalse;

}

LehookreviseTableestdéclenchélorsqueContaosupprimed'unetabledesenregistrementsorphelins.Ilpasselenomdelatablecourante,lesIDdetouslesnouveauxenregistrements,lenomdelatableparente,etlesnomsdetouteslestablesenfantsenargumentsetattendunbooléencommevaleurderetour(leretourdelavaleurtrueprovoquelerechargementdelapagecourante).Ilestdisponibleàpartirdelaversion2.6.4.

//config.php

$GLOBALS['TL_HOOKS']['reviseTable'][]=array('MyClass','myReviseTable');

//MyClass.php

publicfunctionmyReviseTable($table,$new_records,$parent_table,$child_tables)

{

//Fairequelquechose

}

LehooksetNewPasswordestdéclenchéaprèslasaisied'unnouveaumotdepasse.Ilpassel'objetUseretlemotdepassecryptéenargumentsetn'attendpasdevaleurderetour.Ilestdisponibleàpartirdelaversion2.2.3.

//config.php

$GLOBALS['TL_HOOKS']['setNewPassword'][]=array('MyClass','mySetNewPassword');

//MyClass.php

publicfunctionmySetNewPassword($objUser,$strPassword)

{

//Fairequelquechose

}

LehookvalidateFormFieldestdéclenchéàlasoumissiond'unchampdeformulaire.Ilpassel'objetWidgetetl'IDduformulaireenargumentsetattendunobjetWidgetcommevaleurderetour.Ilestdisponibleàpartirdelaversion2.5.0.

//config.php

$GLOBALS['TL_HOOKS']['validateFormField'][]=array('MyClass','myValidateFormField');

//MyClass.php

publicfunctionmyValidateFormField(Widget$objWidget,$intId)

{

if($objWidgetinstanceofFormPassword)

{

//Fairequelquechose

}

return$objWidget;

}

reviseTable

setNewPassword

validateFormField

ManuelpourContao3.2

105Contaohooks

Page 106: Manuel pour Contao 3.2 - Contao Documentation

Pourpubliervotrepropreextensiondansleréférentield'extensions,vousavezbesoind'uncomptedecontributeur.Unefoisquevousêtesconnecté,vouspouvezaccéderàl'interfacedudéveloppeurduréférentield'extensionsparl'intermédiairedesliens"Manageextensions"et"Managetranslations".

Référentield'extensions

ManuelpourContao3.2

106Référentield'extensions

Page 107: Manuel pour Contao 3.2 - Contao Documentation

Pourajouterunenouvelleextension,suivezlelien"Manageextensions"etcliquezsurlebouton"Addextension".Vousserezredirigéversunformulaireoùvouspouvezentrerlesdétailsdel'extension.Laboîtejauneau-dessuscontientdesinformationsimportantessurlesconventionsdenommage,quevousdevriezlireattentivement.

Lescatégoriessuivantessontactuellementdisponibles:

Catégorie Description

Application L'extensionestuneapplicationautonome.

Plugin L'extensionestunelibrairiePHPouJavaScript.

Theme L'extensionestunthèmepourlebackoffice.

Utility L'extensionestunprogrammeutilitairepourlebackoffice.

Widget L'extensionestunwidgetdeformulaire.

Translation L'extensionestunetraductiond'uneversiondeContao.

Bundle Unensembled'extensionsquipeuventêtreinstalléessimultanément.

Other L'extensionn'entredansaucunedescatégoriesprécédentes.

Ajoutd'uneextension

ManuelpourContao3.2

107Ajoutd'uneextension

Page 108: Manuel pour Contao 3.2 - Contao Documentation

Aprèsavoircrééuneextension,vouspouvezajouterunepremièrerelease.Chaquenouvelleversiond'uneextensionseraenregistréecommeunereleaseséparée.Ouvrezlesgestionnairedereleasesgrâceàl'icônedenavigationcorrespondanteetcliquezsurlebouton"Addrelease".

Lesnumérosdeversionsdansleréférentield'extensionssontformésdetroisblocsdechiffresquiindiquents'ils'agitd'uneversionmajeure,mineureoudemaintenance(parexemple1.0.0)ainsiqu'unstatutdedéveloppementsousformedetexte(parexemplebeta1).

Status Description

alpha1-alpha3 Indiquequ'ils'agitd'uneversionalpha.

beta1-beta3 Indiquequ'ils'agitd'uneversionbêta.

rc1-rc3 Indiquequ'ils'agitd'uneversionreleasecandidate.

stable Indiquequ'ils'agitd'uneversionstablepourdessystèmesenproduction.

Ajouterunerelease

ManuelpourContao3.2

108Ajouterunerelease

Page 109: Manuel pour Contao 3.2 - Contao Documentation

Vousdevezensuiteajouterdesfichiersàlanouvellerelease.Ouvrezlegestionnairedefichiers,etcliquezsurlebouton"Add/updatefiles".Vouspouveztéléverserdesfichiersindividuellementoudesarchives.zipcomplètes.Assurez-vousdechoisirlebonrépertoirecible,afinquelescheminsd'accèssoientcorrectsàl'issuedel'envoi.

Ajouterdesfichiers

ManuelpourContao3.2

109Ajouterdesfichiers

Page 110: Manuel pour Contao 3.2 - Contao Documentation

Lesfichierspeuventégalementêtreimportésàpartird'unréférentielGitHub,sivousaveztaguélareleaseetpousséletagversleréférentielcentraldeGitHub.

Entrezl'URLHTTPSduréférentielGitHubdanslesparamètres.

Vouspouvezégalementspécifierlenomdurépertoireracinedevotreréférentiel.Danscecas,lesfichiersetlesrépertoiresendehorsdecerépertoireracineserontignoréslorsdel'importation.

Sivoussélectionnezuntag,sesfichiersseronttéléchargésautomatiquementetserontalorsdisponiblescommelorsd'untéléversementmanuel.

Ajoutdefichiersàpartird'unréférentielGitHub

ManuelpourContao3.2

110Ajoutdefichiersàpartird'unréférentielGitHub

Page 111: Manuel pour Contao 3.2 - Contao Documentation

Avantdepouvoirpublieruneextension,vousdevezcréeraumoinsunetraduction.Ouvrezlegestionnairedetraductionsetcliquezsurlebouton"Addlanguage".Ilestrecommandédetoujourscréerunetraductionanglaise,carlesutilisateursdebackofficenevoientgénéralement,danslegestionnaired'extensions,quelesextensionsdisponiblesdansleurproprelangueouenanglais(languepardéfaut).

Lestraductionscomplétéespeuventêtrepubliéesencliquantsurl'icônedenavigationcorrespondante.

Ajouterdestraductions

ManuelpourContao3.2

111Ajouterdestraductions

Page 112: Manuel pour Contao 3.2 - Contao Documentation

Peut-êtrequel'unedevosextensionsutiliselesfonctionalitésd'uneautreextensioncommeparexemplelestâchesplanifiées(cronjobs).Pourfairefonctionnervotreextension,l'installationdel'extensioncronconstituedoncunpré-requis,généralementappelédépendance.Cesdépendancespeuventêtreenregistréesdansleréférentield'extensions,detellesortequelesmodulesnécessairessoientautomatiquementinstalléslorsquevousinstallezuneextensionparticulière.

Choisissezd'abordl'extensionquevoussouhaitezajouterentantquedépendanceetconfirmezvotrechoixencliquantsurlebouton"Continue".Puissélectionnezlaversionminimaleetmaximaledontlefonctionnementavecvotreextensionestreconnu.

Ajouterdesdépendances

ManuelpourContao3.2

112Ajouterdesdépendances

Page 113: Manuel pour Contao 3.2 - Contao Documentation

Aprèsavoircrééauminimumunerelease,téléverséauminimumunfichier,publiéauminimumunetraductionetajoutélesdépendancesnécessaires,vouspouvezpublierl'extensiongrâceàl'icônedenavigationcorrespondante.Notezquevousnepouvezplussupprimerl'extensionunefoisqu'elleestpubliée.Pourvérifiersitoutfonctionnecommeprévu,connectez-vousdanslebackofficeetfaitesuntestd'installationaveclegestionnaired'extensions.

Publieruneextension

ManuelpourContao3.2

113Publieruneextension

Page 114: Manuel pour Contao 3.2 - Contao Documentation

LesiteinternetdedéveloppementdeContao,quiestlabasedudéveloppementcontinudeContao,estdisponiblesurgithub.com/contao.Ilcontientparexempleunjournaldesmodificationspasséesetdesfuturesfonctionnalités(milestones)ainsiqu'unsystèmedeticketspoursignalerdesproblèmesoudemanderdenouvellesfonctionnalités.IlprendégalementenchargelanavigationdansleréférentielducodedeContao,oùvouspouvezvoirexactementquelsfichiersontchangés.

DéveloppementdeContao

ManuelpourContao3.2

114DéveloppementdeContao

Page 115: Manuel pour Contao 3.2 - Contao Documentation

Toutd'abord,veuilleznoterquevousdevezêtreconnectépourcréerdenouveauxtickets.L'inscriptionsurGitHubestgratuite.Ensuite,connectez-vousàvotrecompteetcliquezsur"NewIssue"danslemenuprincipal.

Toujoursdécrireleséventuelsproblèmesendétailetfaites-noussavoircommentlesreproduireàpartirdeladémonstrationenligneoudansnotreenvironnementdedéveloppement.Siunproblèmeseproduituniquementdansvotreinstallation,maispasdansladémonstrationenligne,veuillezs'ilvousplaîtconsulterleforums.

Créationd'unnouveauticket

ManuelpourContao3.2

115Créationd'unnouveauticket