231 lines
9.5 KiB
Markdown
231 lines
9.5 KiB
Markdown
# Renommer le squelette
|
|
## Dupliquer nineskeletor et renommer en nineXXXX
|
|
Puis effectuer les changement suivants
|
|
- Renommer db/nineskeletor-create-0.sql en db/nineXXXX-create-0.sql
|
|
- Modifier db/nineXXXX-create-0.sql et changer le nom de la base de données en nineXXXX
|
|
- Renommer dicos/90_nineskeletor.xml en dicos/90_nineXXXX.xml
|
|
- Modifier dicos/nineXXXX-nineXXXX.xml et remplacer tout les nineskeletor en nineXXXX
|
|
- Renommer logrotate/nineskeletor en logrotate/nineXXXX
|
|
- Modifier logrotate/nineXXXX et remplacer tout les nineskeletor en nineXXXX
|
|
- Renommer postservice/90-nineskeletor en postservice/90-nineXXXX
|
|
- Modifier postservice/90-nineXXXX et remplacer tout les nineskeletor en nineXXXX
|
|
- Renommer pretemplate/25-nineskeletor en pretemplate/25-nineXXXX
|
|
- Modifier pretemplate/25-nineXXXX et remplacer tout les nineskeletor en nineXXXX
|
|
- Renommer src/nineskeletor-1.0 en src/nineXXXX-1.0
|
|
- Modifier src/nineXXXX-1.0/webpack.config.js et remplacer tout les nineskeletor en nineXXXX
|
|
- Renommer sso/filtres/nineskeletor.ini en sso/filtres/nineXXXX.ini
|
|
- Renommer sso/filtres/nineskeletor_apps.ini en sso/filtres/nineXXXX_apps.ini
|
|
- Modifier sso/filtres/nineXXXX_apps.ini et remplacer tout les nineskeletor en nineXXXX
|
|
- Renommer tmpl/nineskeletor.cron en tmpl/nineXXXX.cron
|
|
- Modifier tmpl/nineXXXX.cron et remplacer tout les nineskeletor en nineXXXX
|
|
- Renommer tmpl/nineskeletor-apache.conf en tmpl/nineXXXX-apache.conf
|
|
- Modifier tmpl/nineXXXX-apache.conf et remplacer tout les nineskeletor en nineXXXX
|
|
- Renommer tmpl/nineskeletor-db.yml en tmpl/nineXXXX-db.yml
|
|
- Modifier tmpl/nineXXXX-db.yml et remplacer tout les nineskeletor en nineXXXX
|
|
- Renommer tmpl/nineskeletor-env.local en tmpl/nineXXXX-env.local
|
|
- Modifier tmpl/nineXXXX-env.local et remplacer tout les nineskeletor en nineXXXX
|
|
- Renommer tmpl/nineskeletor-proxy.sh en tmpl/nineXXXX-proxy.sh
|
|
- Modifier Makefile et remplacer tout les nineskeletor en nineXXXX
|
|
- Remplacer logo public/uploads/logo/logo.png
|
|
|
|
## Compilier les asset
|
|
- apt-get install npm
|
|
- si proxy
|
|
- npm config set proxy "http://monproxyurl:monproxyport"
|
|
- npm config set https-proxy "http://monproxyurl:monproxyport"
|
|
- npm install -g yarn
|
|
- yarn install
|
|
- yarn encore dev
|
|
- yarn encore prod
|
|
|
|
# Description du squelette
|
|
|
|
## Bundle
|
|
- DebugBundle
|
|
- DoctrineBundle
|
|
- DoctrineMigrationsBundle
|
|
- FOSCKEditorBundle
|
|
- FOSRestBundle
|
|
- FrameworkBundle
|
|
- KnpSnappyBundle
|
|
- MakerBundle
|
|
- MonologBundle
|
|
- NelmioApiDocBundle
|
|
- OneupUploaderBundle
|
|
- SecurityBundle
|
|
- SensioFrameworkExtraBundle
|
|
- SwiftmailerBundle
|
|
- TetranzSelect2EntityBundle
|
|
- TwigBundle
|
|
- TwigExtraBundle
|
|
- WebProfilerBundle
|
|
- WebpackEncoreBundle
|
|
- ramsey/uuid
|
|
- cboden/ratchet
|
|
|
|
|
|
|
|
## Asset
|
|
|
|
### Tag app
|
|
- jQuery = https://www.npmjs.com/package/jquery
|
|
- jqueryui = https://www.npmjs.com/package/jqueryui
|
|
- bootstrap = https://www.npmjs.com/package/bootstrap
|
|
- timepicki = https://www.npmjs.com/package/timepicki
|
|
- datatables.net-bs4 = https://www.npmjs.com/package/datatables.net-bs4
|
|
- fontawsome-free = https://www.npmjs.com/package/@fortawesome/fontawesome-free
|
|
- bs-stepper = https://www.npmjs.com/package/bs-stepper
|
|
- masonry-layout = https://www.npmjs.com/package/masonry-layout
|
|
- react-slick = https://www.npmjs.com/package/react-slick
|
|
- image-loaded = https://www.npmjs.com/package/image-loaded
|
|
- moment = https://www.npmjs.com/package/moment
|
|
- select2 = https://www.npmjs.com/package/select2
|
|
- crop-select-js = https://www.npmjs.com/package/crop-select-js
|
|
- spectrum-colorpicker2 = https://www.npmjs.com/package/spectrum-colorpicker2
|
|
|
|
|
|
|
|
### Tag fullcalendar
|
|
- @fullcalendar/core = https://www.npmjs.com/package/@fullcalendar/core
|
|
- @fullcalendar/interaction = https://www.npmjs.com/package/@fullcalendar/interaction
|
|
- @fullcalendar/daygrid = https://www.npmjs.com/package/@fullcalendar/daygrid
|
|
|
|
### Tag dropzone
|
|
- dropzone = https://www.npmjs.com/package/dropzone
|
|
|
|
|
|
|
|
## Parameters
|
|
|
|
Provient du template env.local
|
|
- appEnv = PROD
|
|
- appSecret = valeur du fichier .key autogénéré au premier reconfigure
|
|
- appWeburl = Valeur du dicos web_url
|
|
- appAuth = Valeur du dicos = CAS / SQL
|
|
- appAlias = En dur l'alias web
|
|
- appName = Nom de l'application
|
|
- appCron = En dur à true pour activer le système de cron
|
|
- appMasteridentity = Valeur du dicos = Ninegate / LDAP / SQL
|
|
- appMasterurl = Si appMasteridentity la valeur du dicos correspondant à l'url du Ninegate maître
|
|
- appMasterkey = Si appMasteridentity la valeur du dicos correspondant à la clé d'API du Ninegate maître
|
|
- databaseName = En dur le nom de la base
|
|
- databaseUser = En dur le user de la base
|
|
- databasePassword = Autogénéré par le reconfigure
|
|
- databaseHost = Valeur du dicos pour le host de la base
|
|
- appMailmethod = Valeur du dicos soit sendmail soit smtp. sendmail par défaut si exim est activé sur le serveur
|
|
- appMailurl = Si smtp url calculé combinant smtphost smtpport smtpencryption smtpauthmode smtpuser smtppwd
|
|
- appMailnoreply = Valeur du dicos du noreplay
|
|
- ldapModel = si masteridentity à LDAP soit open soit scribe
|
|
- ldapHost = Valeur dicos Host LDAP
|
|
- ldapPort = Valeur dicos Port LDAP
|
|
- ldapUser = Valeur dicos User LDAP
|
|
- ldapPassword = Valeur dicos Password LDAP
|
|
- ldapBasedn = Valeur dicos Basedn LDAP
|
|
- ldapUsername = si Scribe en dur sinon valeur du dicos champs annuaire utilisé comme username
|
|
- ldapFirstname = si Scribe en dur sinon valeur du dicos champs annuaire utilisé comme firstname
|
|
- ldapLastname = si Scribe en dur sinon valeur du dicos champs annuaire utilisé comme lastname
|
|
- ldapEmail = si Scribe en dur sinon valeur du dicos champs annuaire utilisé comme email
|
|
- ldapFiltergroup = si Scribe en dur sinon valeur du dicos filtre ldap de recherche des groupes
|
|
- ldapFilteruser = si Scribe en dur sinon valeur du dicos filtre ldap des groupes
|
|
- ldapAdmins = Liste des admins obligatoire = Admin + valeur dicos
|
|
- casHost = Valeur dicos du host SSO
|
|
- casPort = Valeur dicos du Porst SSO
|
|
- casPath = Valeur dicos du Path SSO
|
|
- casUsername = Valeur en dur correspondant au filtre sso du username
|
|
- casEmail = Valeur en dur correspondant au filtre sso du email
|
|
- casLastname = Valeur en dur correspondant au filtre sso du lastname
|
|
- casFirstname = Valeur en dur correspondant au filtre sso du fistname
|
|
- proxyUse = Valeur dicos utiliser oui/non un proxy
|
|
- proxyHost = Si oui valeurs du dicos du host proxy
|
|
- proxyPort = Si oui valeurs du dicos du post proxy
|
|
- sondeUse = Valeur dicos utiliser oui/non une sonde statistique
|
|
- sondeUrl = Si oui url de la sonde statistique
|
|
|
|
## Sécurité
|
|
|
|
4 rôles possibles
|
|
- ROLE_ADMIN
|
|
- ROLE_MODO
|
|
- ROLE_MASTER
|
|
- ROLE_USER
|
|
|
|
4 routes protégés
|
|
- /user = accèssible à ROLE_USER / ROLE_MASTER / ROLE_MODO / ROLE_ADMIN
|
|
- /master = accèssible à ROLE_MASTER / ROLE_MODO / ROLE_ADMIN
|
|
- /modo = = accèssible à ROLE_MODO / ROLE_ADMIN
|
|
- /admin = = accèssible à ROLE_ADMIN
|
|
|
|
## Job
|
|
|
|
Nineskeletor intègre un système de job.
|
|
Ce système va exécuter des commandes symfony à interval régulier.
|
|
De base les jobs suivants sont livrés :
|
|
- app:sendMail = toutes les minutes = Execution du spool de mail en attente
|
|
- app:dumpBdd = toutes les nuits à 2h00 = Dump de la base
|
|
- app:purgeFile = toutes les nuits à 3h00 = Suppresion des fichiers obsolètes
|
|
- app:synchroUsers = toutes les nuites à 3h00 = Synchronisation des comptes utilisateurs soit via LDAP soit via Ninegate
|
|
|
|
Pour ajouter un job à la listes, modifier la commande app:initCron qui sera exécutée à chaque reconfigure
|
|
|
|
## Service
|
|
|
|
- app.password.encoder = encodage password sur la methode que l'annuaire
|
|
- app.upload.listener = action à réaliser sur upload via oneupload
|
|
- app.upload.samename = permet d'uploader un fichier et préserver le nom de fichier via oneupload
|
|
- app.ldap.service = fonction ldap
|
|
- app.sendmail.transport = executuion du spool de mail via sendmail
|
|
- app.mail.service = fonction envoit de mail
|
|
- app.twig.extension = extention twig
|
|
|
|
|
|
## Twig
|
|
|
|
### Twig Constantes
|
|
|
|
Variables globales twig reprises des parametres symfony
|
|
- appAlias
|
|
- appAuth
|
|
- appName
|
|
- appCron
|
|
- appMasteridentity
|
|
- sondeUse
|
|
- sondeUrl
|
|
|
|
### Twig Extention
|
|
|
|
App\Twig\AppExtension
|
|
- filtre = urlAvatar à placer avec user.avatar afin de définir l'url complète de l'avatar du user
|
|
|
|
### Twig Template de base
|
|
|
|
#### templates/base.html.twig
|
|
|
|
Deux paramétres non obligatoire
|
|
- useheader = permet d'afficher ou non la bannière dans la page = false par défaut
|
|
- usesidebar = permet d'afficher oun non la sidebar dans la page = false par défaut
|
|
- usemonocolor = afin de placer uniquement la couleur dark sur la page
|
|
Block
|
|
- block encorelinktags = pour déclarer des encore_link_tags spécifique à la page (encorelinktags app est intégré de base)
|
|
- block localstyle = pour déclarer des propriétés css spécifique à page (Include/style.css.twig est intégré de base)
|
|
- block body = le corps de la page
|
|
- block encorescripttags pour déclarer des encore_script_tags spécifique à la page (encorescripttags app est intégré de base)
|
|
- block localjavascript = pour déclarer du js spécifique à la page (Include/javascript.js.twig est intégré de base)
|
|
|
|
#### templates/Include/style.css.twig
|
|
|
|
Style de l'applicaiton en surcouche de bootstrap
|
|
|
|
#### templates/Include/sidebar.html.twig
|
|
|
|
La sidebar de l'application quand elle est affichée
|
|
|
|
#### templates/Include/javascript.js.twig
|
|
|
|
Librairie js de l'application
|
|
|
|
- object a et button s'ils ont un attribut data-method et data_confirm proposeront une confirmation à l'utilisateur avant de poursuivre l'action
|
|
- ModalLoad(idmodal,titre,url) = permet d'afficher en modal l'url indiqué en parametre. Par défaut on dispose de la modal #mymodal
|
|
|
|
#### templates/Form/fields.htms.twig
|
|
|
|
Mise en forme de champs de formulaire |