Slide 1

Slide 1 text

Usine à Sites 1 Extension TYPO3 Usine à Sites EXT:site_factory

Slide 2

Slide 2 text

Usine à Sites 2 Romain Canon 24 ans Développeur PHP Amiens @Rommsteinz http://romain-canon.com [email protected]

Slide 3

Slide 3 text

Usine à Sites 3 Plan de présentation Description Démo Fonctionnement

Slide 4

Slide 4 text

Usine à Sites 4 • TYPO3 gère nativement le multi-sites • TYPO3 dispose d’un héritage puissant pour le TypoScript • TYPO3 propose une arborescence riche

Slide 5

Slide 5 text

Usine à Sites 5 • TYPO3 gère nativement le multi-sites • TYPO3 dispose d’un héritage puissant pour le TypoScript • TYPO3 propose une arborescence riche • TYPO3 déchire grave

Slide 6

Slide 6 text

Usine à Sites 6 → Usine à Sites Comment ça fonctionne ? • Création de site(s) modèle(s) • Remplissage d’un formulaire • Duplication du site modèle choisi ; changement des valeurs renseignées dans le formulaire

Slide 7

Slide 7 text

Usine à Sites 7 → Usine à Sites Quand est-ce utile ? • Dans des écoles : déploiement de sites pour étudiants • Collectivité : sites informatifs dédiés • Ou tout simplement gérer plusieurs gros sites sur une même instance TYPO3

Slide 8

Slide 8 text

Usine à Sites 8 IMPORTANT Oublier l’intégration TypoScript dans les enregistrements gabarits Passer à l’intégration « via extension » (Site Package) https://goo.gl/ojLoUj

Slide 9

Slide 9 text

Usine à Sites 9 Modèle #XX Modèle #1 My new site Bacon ipsum dolor amet pork belly tail frankfurter capicola. Capicola filet mignon t-bone, spare ribs picanha fatback meatball biltong turducken pork chop tongue. Swine alcatra cupim bresaola pastrami. Shankle boudin tenderloin, tri- tip cupim tongue beef jowl sausage. www.facebook.com/typo3 Nom Site T3UNI Facebook www.facebook.com/t3uni Logo Site T3Uni Bacon ipsum dolor amet pork belly tail frankfurter capicola. Capicola filet mignon t-bone, spare ribs picanha fatback meatball biltong turducken pork chop tongue. Swine alcatra cupim bresaola pastrami. Shankle boudin tenderloin, tri- tip cupim tongue beef jowl sausage. www.facebook.com/t3uni Fonctionnement

Slide 10

Slide 10 text

Usine à Sites 10 Principe de l’Usine à Sites 1. Création de site(s) modèle(s) • Sites classiques, avec des contenus d’exemple • Intégration de tous les plug-ins souhaités : connexion, powermail, etc. 2. Configuration des formulaires de modèle(s) 3. Configuration du processus de duplication 4. Utilisation de l’outil

Slide 11

Slide 11 text

Usine à Sites 11 Principe de l’Usine à Sites 1. Création de site(s) modèle(s) 2. Configuration des formulaires de modèle(s) • En TypoScript • Exemples : couleur de fond, lien Facebook, logo, etc. 3. Configuration du processus de duplication 4. Utilisation de l’outil

Slide 12

Slide 12 text

Usine à Sites 12 Principe de l’Usine à Sites 1. Création de site(s) modèle(s) 2. Configuration des formulaires de modèle(s) 3. Configuration du processus de duplication • Personnalisation poussée des sites dupliqués • Exemples : création d’un intégrateur, choix du backend layout des pages 4. Utilisation de l’outil

Slide 13

Slide 13 text

Usine à Sites 13 Principe de l’Usine à Sites 1. Création de site(s) modèle(s) 2. Configuration des formulaires de modèle(s) 3. Configuration du processus de duplication 4. Utilisation de l’outil • Remplissage du formulaire • Duplication du modèle • Configuration fine du nouveau site

Slide 14

Slide 14 text

Usine à Sites 14 DÉMO

Slide 15

Slide 15 text

Usine à Sites 15 Création de sites modèles • Site TYPO3 classique • Réfléchir dès le début sur les fonctionnalités proposées :  Plugin d’enregistrement/de connexion ?  Plugin de liste de news ?  Formulaire de contact ?  Tout sera dupliqué proprement, les liens vers les pages de stockage seront « conservés »

Slide 16

Slide 16 text

Usine à Sites 16 Création de sites modèles • Utilisation des constantes TypoScript pour les valeurs dynamiques :  Couleur du fond (code hexadécimal)  Lien vers l’image du logo  Page Facebook  Uid vers les pages « clés » : page d’accueil, liste d’articles, formulaire de contact, etc.  Utilisation de ces constantes dans la configuration TypoScript

Slide 17

Slide 17 text

Usine à Sites 17 Création de sites modèles • Utilisation des constantes TypoScript pour les valeurs dynamiques : Constantes : module.tx_sitefactory { config { siteTitle = Site Modèle logo = EXT:skin_exemple/Resources/Public/Images/logo-typo3.jpg backgroundColor = #FFFFFF facebook = https://www.facebook.com/ twitter = https://twitter.com/ } pages { homePage = 2 } }

Slide 18

Slide 18 text

Usine à Sites 18 Création de sites modèles • Utilisation des constantes TypoScript pour les valeurs dynamiques : Setup : page = PAGE page.10 = FLUIDTEMPLATE page.10 { file = EXT:skin_exemple/Resources/Private/Templates/Default.html variables { siteTitle = TEXT siteTitle.value = {$module.tx_sitefactory.config.siteTitle} } }

Slide 19

Slide 19 text

Usine à Sites 19 Personnalisation du formulaire • Configuration des champs : module.tx_sitefactory.fields • Différents types de champs sont proposés par défaut : texte, sélecteur, palette de couleurs, envoi d’image, etc. • Possibilité de rajouter des types de champs (développement requis, mais facilité par l’API de l’Usine à Sites) • Gestion des règles de validation : url correcte, champ non-vide, etc.

Slide 20

Slide 20 text

Usine à Sites 20 Personnalisation du formulaire module.tx_sitefactory { fields { # The domain name used for the new site. domain { type = text label = form.field.label.domain_name hint = form.field.hint.domain_name placeholder = www.example.com validation { # Obviously we want a correct domain name here... correctDomainName { validator = Romm\SiteFactory\Form\Validation\DomainNameValidator } } } } } Le type de champ Libellé + aide, peuvent être des références LLL Liste des validateurs ; ici on veut que la valeur rentrée soit un nom de domaine correct

Slide 21

Slide 21 text

Usine à Sites 21 Personnalisation du formulaire module.tx_sitefactory { fields { # The color of the body’s background. backgroundColor { type = color_picker label = form.field.label.background_color hint = form.field.hint.background_color placeholder = #FFFFFF defaultValue = #FFFFFF } } }

Slide 22

Slide 22 text

Usine à Sites 22 Personnalisation du formulaire module.tx_sitefactory { fields { # The color (image) of the site logo { type = image_upload label = form.field.label.logo hint = form.field.hint.logo # Contains the HTML template of the uploader. partialsHeader.1 = Form/Fields/Header/ImageUploadHeader settings { allowedExtensions { 1 = jpg 2 = jpeg 3 = png 4 = gif } } } } }

Slide 23

Slide 23 text

Usine à Sites 23 Personnalisation de la duplication module.tx_sitefactory.duplicationProcesses { # Creates a new "sys_filemounts" record. # # Available settings: # - path: Path of the folder created on the server. # If none given, "user_upload" is used. # - newRecordName: Will save the new "sys_filemounts" record's uid at this index. # It can then be used later (e.g. link this record to a backend user). # If none is given, "fileMountUid" is used. sysFileMounts { class = Romm\SiteFactory\Duplication\Process\SysFileMountsProcess label = duplication_process.mount_point_creation settings { path = user_upload/ createdRecordName = fileMountUid } } }

Slide 24

Slide 24 text

Usine à Sites 24 module.tx_sitefactory.duplicationProcesses { # Creates a new "be_groups" record. # # Available settings: # - modelUid: Required! # Uid of the backend user group model, which will be duplicated for the new site. # - sysFileMountUid: The uid of the file mount which will be linked to the backend user group. # Can be an integer, or "data:foo" where foo refers to the value of "settings.createdRecordName" # for the file mount creation process (default value is "fileMountUid"). # - createdRecordName: Will save the new "be_group" record's uid at this index. # It can then be used later (e.g. link this record to a backend user). # If none is given, "backendUserGroupUid" is used. backendUserGroupCreation { class = Romm\SiteFactory\Duplication\Process\BackendUserGroupCreationProcess label = duplication_process.backend_usergroup_creation settings { modelUid = 1 sysFileMountUid = data:fileMountUid createdRecordName = backendUserGroupUid } } } Personnalisation de la duplication

Slide 25

Slide 25 text

Usine à Sites 25 TODO • Compatibilité TYPO3 v7 • Rédaction de la documentation • Développement de la communauté autours de l’outil • Ajouts de champs/processus de duplication • Intégration avec EXT:themes ?

Slide 26

Slide 26 text

Usine à Sites 26 Slack https://forger.typo3.org/slack → Inscription au Slack TYPO3 #ext-site-factory → Canal de l’extension Usine à Sites ? Questions