Arborescence d’un projet

├── public
│   ├── Images
│   └── VendorName
│       └── ModuleName
└── vendor
    └── <VendorName>
        └── <ModuleName>
            ├── Accounts
            │   ├── 100-<ModuleName>Groups.xml
            │   ├── 110-<ModuleName>Roles.xml
            │   └── 120-<ModuleName>Users.xml
            ├── Autocompletion
            │   ├──<ModuleName>Autocompletion.php
            ├── Config
            │   ├── 100-<ModuleName>Parameters.xml
            │   └── 110-<ModuleName>Routes.xml
            ├── Enumerates
            │   └── 100-<ModuleName>Enumerates.xml
            ├── Settings
            │   └──100-ViewControls/
            │   └──200-FieldAccesses/
            ├── Routes
            │   └── Main.php
            └── SmartStructures
                └── <SmartStructureName>
                    ├── 100-<SmartStructureName>Structure.xml
                    ├── 110-<SmartStructureName>Parameters.xml
                    ├── 500-<SmartStructureName>Settings.xml
                    ├── <SmartStructureName>Autocompletion
                    │   └── <SmartStructureName>Autocompletion.php
                    ├── <SmartStructureName>Behavior.php
                    ├── <SmartStructureName>Settings
                    │   ├── <SmartStructureName>Masks/
                    │   │   ├── 210-Mask<SmartElementName>.xml
                    │   ├──<SmartStructureName>ViewControls/
                    │   │   ├── 220-ViewControl<SmartElementName>.xml
                    │   ├──<SmartStructureName>FieldAccesses/
                    │   │   ├── 230-FieldAccess<SmartElementName>.xml
                    │   ├──<SmartStructureName>Profiles/
                    │   │   ├── 240-Profile<SmartElementName>.xml
                    │   ├──<SmartStructureName>MailTemplates/
                    │   │   ├── 250-MailTemplate<SmartElementName>.xml
                    │   └──<SmartStructureName>Timers/
                    │   │   ├── 260-Timer<SmartElementName>.xml
                    │   └──<SmartStructureName>Exec/
                    │   │   ├── 270-Exec<SmartElementName>.xml
                    └── <WorkflowName>Workflow
                        ├── Wdoc<SmartStructureName>Workflow
                        │   ├── 130-Wdoc<SmartStructureName>WorkflowPermissions.xml
                        │   ├── 140-Wdoc<SmartStructureName>WorkflowAccess.xml
                        │   └── 510-Wdoc<SmartStructureName>WorkflowSettings.xml
                        └── Wfam<SmartStructureName>Workflow
                            ├── 100-Wfam<SmartStructureName>Structure.xml
                            ├── 110-Wfam<SmartStructureName>Parameters.xml
                               ├── Wfam<SmartStructureName>Behavior.php
                               ├── Wfam<SmartStructureName>GraphConstant.php
                               └── Wfam<SmartStructureName>Graph.xml

Les éléments obligatoires

  • public: ce répertoire contient tous les assets (html, css, js, images, etc.) mis à disposition des utilisateurs sans nécessité d’authentification.

  • vendor: ce répertoire contient le code et le paramétrage créé par l’intégrateur.

Organisation des fichiers

Dossier public

Dans le répertoire public, deux sous répertoires sont conseillés :

  • Images : pour contenir les images des SmartStructures,
  • <vendorName>/<moduleName> : ce répertoire contient les assets du projet en cours

Dossier vendor

Contraintes

  • Les noms des répertoires doivent être écrits en Pascal Case (première lettre en majuscule et séparateur de mot par les majuscules)
  • Les noms des répertoires correspondent au namespace des classes les contenant
 ├── Accounts
 │   ├── 100-<ModuleName>Groups.xml
 │   ├── 110-<ModuleName>Roles.xml
 │   └── 120-<ModuleName>Users.xml
 ├── Autocompletion
 │   ├──<ModuleName>Autocompletion.php
 ├── Config
 │   ├── 100-<ModuleName>Parameters.xml
 │   └── 110-<ModuleName>Routes.xml
 ├── Enumerates
 │   └── 100-<ModuleName>Enumerates.xml
 ├── Settings
 │   └──100-ViewControls/
 │   └──200-FieldAccesses/
 ├── Routes
 │   └── Main.php
 └── SmartStructures
  • Accounts: Un répertoire contenant les comptes à importer. Par défaut les comptes sont dans 3 fichiers présentés de la manière suivante :

    • 100-<ModuleName>Roles.xml : les rôles à importer,
    • 110-<ModuleName>Groups.xml : les groupes à importer,
    • 120-<ModuleName>Users.xml : les utilisateurs à importer
  • Autocompletion: Répertoire contenant les classes d’autocompletion communes à tous les éléments du module :

    • <ModuleName>Autocompletion.php
  • Config: Un répertoire contenant la configuration du module pour SmartDataEngine (routes et paramètres) :

    • 100-<ModuleName>Parameters.xml : les paramètres ajoutés par le module et leur valeur par défaut,
    • 110-<ModuleName>Routes.xml : les routes et leurs accès ajoutés par le module
  • Enumerates: Répertoire contenant les énumérés communs à tous les éléments du module :

    • 100-<ModuleName>Enumerates.xml : liste des énumérés du module
  • Settings

    • Ce dossier permet de mettre des paramétrages (masks, field access layer, profiles, modèles de mail, Timer, ...) et de pouvoir les utiliser sur toutes les Smart Structures qui sont dans le dossier SmartStructures
  • Routes

    • Main.php : Permet de définir les routes

Dossier SmartStructures

 └── SmartStructures
     └── <SmartStructureName>
         ├── 100-<SmartStructureName>Structure.xml
         ├── 110-<SmartStructureName>Parameters.xml
         ├── 500-<SmartStructureName>Settings.xml
         ├── <SmartStructureName>Autocompletion
         │   └── <SmartStructureName>Autocompletion.php
         ├── <SmartStructureName>Behavior.php
         ├── <SmartStructureName>Settings
         │   ├── <SmartStructureName>Masks/
         │   │   ├── 210-Mask<SmartElementName>.xml
         │   ├──<SmartStructureName>ViewControls/
         │   │   ├── 220-ViewControl<SmartElementName>.xml
         │   ├──<SmartStructureName>FieldAccesses/
         │   │   ├── 230-FieldAccess<SmartElementName>.xml
         │   ├──<SmartStructureName>Profiles/
         │   │   ├── 240-Profile<SmartElementName>.xml
         │   ├──<SmartStructureName>MailTemplates/
         │   │   ├── 250-MailTemplate<SmartElementName>.xml
         │   └──<SmartStructureName>Timers/
         │   │   ├── 260-Timer<SmartElementName>.xml
         │   └──<SmartStructureName>Exec/
         │   │   ├── 270-Exec<SmartElementName>.xml
         └── <WorkflowName>Workflow
             ├── Wdoc<SmartStructureName>Workflow
             │   ├── 130-Wdoc<SmartStructureName>WorkflowPermissions.xml
             │   ├── 140-Wdoc<SmartStructureName>WorkflowAccess.xml
             │   └── 510-Wdoc<SmartStructureName>WorkflowSettings.xml
             └── Wfam<SmartStructureName>Workflow
                 ├── 100-Wfam<SmartStructureName>Structure.xml
                 ├── 110-Wfam<SmartStructureName>Parameters.xml
                 ├── Wfam<SmartStructureName>Behavior.php
                 ├── Wfam<SmartStructureName>GraphConstant.php
                 └── Wfam<SmartStructureName>Graph.xml
  • 100-<SmartStructureName>Structure.xml: ce fichier contient les instructions xml qui définissent la structure et le fonctionnement de la structure :

    • Le nom logique,
    • Les propriétés : titre, icône, lien avec la classe, héritage
    • La structure : liste des smart fields
    • FieldHook : lien entre les comportements automatiques (smart field calculé),
    • Autocompletion : lien entre les smart fields et les règles d’autocomplétion,
    • Valeurs par défaut des smart fields (méthode et valeur).
  • 110-<SmartStructureName>Parameters.xml: les paramètres et les valeurs par défaut des paramètres de la Smart Structure,

  • 500-<SmartStructureName>Settings.xml: lien entre les Smart Element de paramétrage (settings) (PDoc, PFam, CVDoc, …),

  • <SmartStructureName>Autocompletion: cette classe contient les aides à la saisie de la Smart Structure,

  • <SmartStructureName>Behavior.php: cette classe contient le code métier de la Smart Structure,

  • <SmartStructureName>Settings: ce répertoire contient tous les Smart Elements de paramétrage de la Smart Structure sous la forme d’un dossier par type contenant un fichier XML par élément :

    • <SmartStructureName>Masks/210-Mask<SmartElementName>.xml:
      • Les visibilités des Smart Fields sont définis dans ce fichier
    • <SmartStructureName>ViewControls/220-ViewControl<SmartElementName>.xml:
      • Les contrôles de vue permettent de spécifier des représentations alternatives pour un Smart Element
    • <SmartStructureName>FieldAccesses/230-FieldAccess<SmartElementName>.xml
      • Les accès des utilisateurs sur les Smart Fields sont définis dans ce fichier
    • <SmartStructureName>Profiles/240-Profiles<SmartElementName>.xml
      • Un profil de Smart Element permet de déterminer les droits acquis pour les rôles, les groupes et les utilisateurs pour un Smart Element donné.
    • <SmartStructureName>MailTemplates/250-MailTemplate<SmartElementName>.xml
      • La configuration d’un mail se fait dans ce fichier
    • <SmartStructureName>Timers/260-Timer<SmartElementName>.xml
      • Les minuteurs (Timers) permettent de déclencher des tâches à des dates prédéfinies sur un Smart Element
    • <SmartStructureName>Exec/270-Exec<SmartElementName>.xml:
      • Ce fichier permet de définir des tâches programmées. Les tâches programmées permettent de lancer, à intervalle régulier, des actions
  • <WorkflowName>Workflow: Répertoire contenant les énumérés communs à tous les éléments du module :

    • Wdoc<SmartStructureName>Workflow

      • 130-Wdoc<SmartStructureName>WorkflowPermissions.xml:
        • Ce fichier permet de définir les permissions des utilisateurs pour chaque étape du cycle de vie (profils dynamiques)
      • 140-Wdoc<SmartStructureName>WorkflowAccess.xml:
        • Ce fichier permet de définir l’utilisateur, le groupe ou le rôle qui peut accéder à une certaine transition
      • 510-Wdoc<SmartStructureName>WorkflowSettings.xml
        • Ce fichier permet de configurer chaque étape du cycle de vie (envoie de mail, timer, "mask", visuels, etc)
    • Wfam<SmartStructureName>Workflow

      • 100-Wfam<SmartStructureName>Structure.xml:
        • Ce fichier sert principalement à ajouter des paramètres à la Smart Structure pour le cycle de vie (Par exemple d’ajouter des valeurs par défaut)
      • 110-Wfam<SmartStructureName>Parameters.xml
        • Ce fichier permet de définir les paramètres de la Smart Structure (par exemple un préfixe pour le titre des Smart Elements)
      • Wfam<SmartStructureName>Behavior.php:
        • Ce fichier permet de gérer le comportement (lancement de tâches, création de timer, envoi de mail, ...) entre chaque étape (transitions) du cycle de vie.
      • Wfam<SmartStructureName>GraphConstant.php:
        • Ici sont stockées les constantes pour les transitions du cycle de vie
      • Wfam<SmartStructureName>Graph.xml:
        • Ce fichier permet de spécifier les transitions d’un cycle de vie

Et ensuite ?

Comment préparer l’environnement