Manuel de référence
    • Introduction
    • Smart Data
    • Sécurité
    • Workflow
    • Les essentiels de l'API PHP
    • Composants graphiques
    • UIs de Smart Element
    • Internationalisation
    • Scripts
    • Module
    • API REST
    • Routes
    • Moteurs de transformation
    • Recherche générale
    • Supervision
    • Techniques avancées
    • Tableaux de bord
    • Workers
    Anakeen Platform 4
    Anakeen
    • Introduction
    • Smart Data
    • Sécurité
    • Workflow
    • Les essentiels de l'API PHP
    • Composants graphiques
    • UIs de Smart Element
    • Internationalisation
    • Scripts
    • Module
    • API REST
    • Routes
    • Moteurs de transformation
    • Recherche générale
    • Supervision
    • Techniques avancées
    • Tableaux de bord
    • Workers
    Anakeen Platform 4
    Anakeen
    • Représentation des Smart Elements

      • Introduction
        • Éléments inclus
        • Illustrations
          • Responsive design
      • Concepts
        • Rendu
        • Vue
      • Masque
        • Configuration d'un masque {#maskxml}
        • Visibilité des SmartFields {#maskvisibility}
          • Visibilité des SmartFields structurants {#maskvisibilitystruc}
      • Contrôle de vue
        • Profilage du contrôle de vue
        • Choix automatique de la vue {#autochoice}
        • Libellé du menu modifier
        • Astuces
        • Configuration d'un contrôle de vue {#viewcontrolxml}
        • Configuration générale
        • Configuration d'une vue
      • Classe de rendu
        • Classes de configuration de rendu par défaut
      • Méthodes de la classe de configuration de rendu

        • smartElement/renderMethod.md
          • Éléments inclus
          • Illustrations
            • Responsive design
        • getCssReferences
        • getJsReferences
          • Mode global
        • getEtag
        • getTemplates
          • Gérer les modèles
          • Corps du Smart Element : body
          • Sections
            • Entête du Smart Element : header
            • Menu du Smart Element : menu
            • Contenu du Smart Element : content
            • Pied du Smart Element : footer
          • Variables des templates {#gettemplateVariables}
            • Variables client
            • Variables serveur
        • getContextController
          • Contrôleur par défaut
            • Propriétés
            • Attributs
            • Fonctions
          • Traduction
            • Exemples
        • getVisibilities
          • Exemple
        • getNeeded
          • Exemple
        • getCustomServerData
          • Exemple
        • setCustomClientData
          • Exemple
        • getLabel
          • Exemple
        • getMenu
          • Déclaration
          • Élément de menu simple {#itemMenu}
            • Construction
            • Arguments
            • Exemple
          • Définition de l’URL
            • Indiquer une URL statique
            • Indiquer la cible du menu
          • Émettre un événement
          • Contenu du menu
          • Liste d’éléments de menu {#listMenu}
            • Construction
            • Arguments
            • Méthode
          • Liste dynamique d’éléments de menu {#dynamicMenu}
            • Construction
            • Exemple
          • Fonction associée à un menu {#callableMenu}
            • Construction
            • Exemple
          • Menu Séparateur {#separatorMenu}
            • Construction
            • Arguments
            • Exemple
          • Intégration d’éléments dans un menu
            • Ajout d’un élément en fin de liste
            • Ajout d’un élément à une position donnée
            • _Exemple_
          • Suppression d’un élément
          • Surcharge d’un élément de menu
            • Exemple
          • Visibilité des éléments de menu
            • Exemple
          • Menus prédéfinis
            • Rendu de consultation
            • Rendu de modification
            • Événements prédéfinis
          • Menu d’envoi de courriel (mail) {#sendmenu}
            • Formulaire d’envoi
            • Choix des destinataires
            • Menu d’envoi standard
            • Menu d’envoi avec un lien personnalisé
            • Menu d’envoi avec un modèle de mail spécifique
        • getOptions
          • Remarques
          • Options personnalisées
        • getMessages
          • Déclaration
          • Arguments
          • Exemple
      • Options de rendu
        • Options de représentation type Smart Element {#smartElement-options}
          • setStickyTabs
          • setOpenFirstTab
          • setTabPlacement
        • Options de rendu communes à tout type de Smart Fields {#common-options}
          • showEmptyContent {#common-showemptycontent}
          • setLink
          • setLabelPosition {#common-setlabelposition}
          • setAttributeLabel {#common-setattributelabel}
          • setDescription {#common-setdescription}
          • displayDeleteButton {#common-displaydeletebutton}
          • setInputTooltip {#common-setinputtooltip}
          • setAutoCompleteHtmlLabel {#common-setautocompletehtmllabel}
          • addButton {#common-addbutton}
          • setTemplate {#common-settemplate}
          • addHtmlClass {#common-addhtmlclass}
          • removeHtmlClass {#common-removehtmlclass}
          • setHtmlAttribute {#common-sethtmlattribute}
          • setTranslations {#common-settranslations}
          • setCustomWidgetAttributeFunction {#common-setcustomwidgetattributefunction}
        • Options de représentation type account {#account-options}
        • Options de représentation type array {#array-options}
          • setRowCountThreshold {#array-setrowcountthreshold}
          • disableRowAdd {#array-disablerowadd}
          • disableRowDel {#array-disablerowdel}
          • disableRowMove {#array-disablerowmove}
          • setRowMinLimit {#array-setrowminlimit}
          • setRowMaxLimit {#array-setrowmaxlimit}
          • setRowMinDefault {#array-setrowmindefault}
          • setDescription (colonne de tableau) {#column-setdescription}
          • setDescription (tableau) {#array-setdescription}
          • setTranspositionWidth {#array-settranspositionwidth}
          • setTranslations {#array-settranslations}
        • Options de représentation type color {#color-options}
          • setKendoColorConfiguration {#color-setkendocolorconfiguration}
        • Options de représentation type date {#date-options}
          • setKendoDateConfiguration {#date-setkendodateconfiguration}
          • setFormat {#date-setformat}
          • setPlaceHolder {#date-setplaceholder}
        • Options de représentation type docid {#docid-options}
          • setKendoMultiSelectConfiguration {#docid-setkendomultiselectconfiguration}
          • setPlaceHolder {#docid-setplaceholder}
          • setFormat {#docid-setformat}
          • setDocumentIconSize {#docid-setdocumenticonsize}
          • addCreateDocumentButton {#docid-addcreatedocumentbutton}
        • Options de représentation type double {#double-options}
          • setDecimalPrecision {#double-setdecimalprecision}
        • Options de représentation type enum {#enum-options}
          • setDisplay {#enum-setdisplay}
          • useSourceUri {#enum-usesourceuri}
          • useFirstChoice {#enum-usefirstchoice}
          • useOtherChoice {#enum-useothertchoice}
          • setPlaceHolder {#enum-setplaceholder}
          • setTranslations {#enum-settranslations}
          • setOrderBy {#enum-setorderby}
        • Options de représentation type file {#file-options}
          • setContentDispositionInline {#file-setcontentdispositioninline}
          • setTranslations {#file-settranslations}
          • setPlaceHolder {#file-setplaceholder}
          • setMimeIconSize {#file-setmimeiconsize}
        • Options de représentation type frame {#frame-options}
          • setCollapse {#frame-setcollapse}
          • setDescription (cadre) {#frame-setdescription}
          • setResponsiveColumns {#frame-setresponsivecolumns}
        • Options de représentation type htmltext {#htmltext-options}
          • setHeight {#htmltext-setheight}
          • setToolbar {#htmltext-settoolbar}
          • setKendoEditorConfiguration {#htmltext-setKendoEditorConfiguration}
          • setAnchorsOptions {#htmltext-setanchorsoptions}
        • Options de représentation type image {#image-options}
          • setThumbnailSize {#image-setthumbnailsize}
        • Options de représentation type int {#int-options}
          • setKendoNumericConfiguration {#int-setkendonumericconfiguration}
          • setFormat {#int-setformat}
          • setTranslations {#int-settranslations}
          • setPlaceHolder {#int-setplaceholder}
        • Options de représentation type longtext {#longtext-options}
          • setMaxDisplayedLineNumber {#longtext-setmaxdisplayedlinenumber}
        • Options de représentation type money {#money-options}
          • setCurrency {#money-setcurrency}
        • Options de représentation type password {#password-options}
          • hideValue {#password-hidevalue}
          • setPlaceHolder {#password-setplaceholder}
        • Options de représentation type tab {#tab-options}
          • setTooltipLabel {#tab-settooltiplabel}
          • setDescription (onglet) {#tab-setdescription}
        • Options de représentation type text {#text-options}
          • setMaxLength {#text-setmaxlength}
          • setKendoAutoCompleteConfiguration {#text-setkendoautocompleteconfiguration}
          • setPlaceHolder {#text-setplaceholder}
          • setFormat {#text-setformat}
        • Options de représentation type time {#time-options}
          • setKendoTimeConfiguration {#time-setkendotimeconfiguration}
          • setFormat {#time-setformat}
          • setPlaceHolder {#time-setplaceholder}
        • Options de représentation type timestamp {#timestamp-options}
          • setKendoDateConfiguration {#timestamp-setkendodateconfiguration}
      • Associer une classe de rendu à un Smart Element
        • Fichiers de surcharge des éléments de rendu {#overloadRender}
          • Format
          • Prise en compte des surcharges
          • Définir l'accès à un rendu de Smart Element
          • Désactiver le calcul des etag {#disableetag}
        • Classe d'accès à un rendu de Smart Element
        • Définir les rendus dans un contrôle de vue
        • Définir un rendu par défaut pour une Smart Structure
      • Contrôleurs clients (javascript)
      • Contrôleur global
        • Méthodes du contrôleur global
          • addSmartElement
          • getScopedController
          • getControllers
          • addEventListener
          • registerFunction
          • setVerbose
      • Contrôleur restreint
        • Objets internes du contrôleur
          • Smart Element {#internal-SE}
          • Smart Field {#internal-SF}
          • Types de Smart Field {#smart-field-types}
        • Énuméré
          • Fenêtre de transition {#SE-transition}
          • Menu
        • Carte des événements du contrôleur restreint
          • Ordonnancement des événements
          • Modification
          • Sauvegarde
          • Suppression
          • Restauration
          • Passage de transition
          • Autres
        • Méthodes du contrôleur restreint de Smart Element
          • addEventListener {#addEventListener}
          • addConstraint
          • addCustomClientData
          • appendArrayRow
          • changeStateSmartElement
          • cleanSmartFieldErrorMessage
          • deleteSmartElement
          • drawTab
          • fetchSmartElement
          • getCustomServerData
          • getProperties
          • getProperty
          • getSmartFields
          • getSmartField
          • getValues
          • getValue
          • getMenus
          • getMenu
          • getCustomClientData
          • hasSmartField
          • hideSmartField
          • hasMenu
          • isLoaded
          • isModified
          • injectJS
          • injectCSS
          • insertBeforeArrayRow
          • listConstraints
          • listEventListeners
          • maskSmartElement
          • removeEventListeners
          • removeCustomClientData
          • removeArrayRow
          • restoreSmartElement
          • removeConstraint
          • reinitSmartElement
          • saveSmartElement
          • setValue
          • setSmartFieldErrorMessage
          • selectTab
          • showMessage
          • showSmartField
          • triggerEvent
          • tryToDestroy
          • unmaskSmartElement
        • Liste des événements déclenchés sur le Smart Element Ui
          • actionClick {#actionClick}
          • afterDelete
          • afterSave
          • afterRestore
          • beforeClose
          • beforeDelete
          • beforeRender
          • beforeRestore
          • beforeSave
          • beforeValidate
          • close
          • displayError
          • displayMessage
          • ready
        • Liste des événements déclenchés sur les Smart Fields
          • smartFieldAnchorClick
          • smartFieldArrayChange
          • smartFieldBeforeRender
          • smartFieldDownloadFile
          • smartFieldHelperResponse
          • smartFieldHelperSearch
          • smartFieldHelperSelect
          • smartFieldEnumResponse {#smartfieldenumresponse}
          • smartFieldEnumSearch {#smartfieldenumsearch}
          • smartFieldEnumSelect {#smartfieldenumselect}
          • smartFieldReady
          • smartFieldChange
          • smartFieldUploadFile
          • smartFieldUploadFileDone
          • smartFieldBeforeTabSelect
          • smartFieldAfterTabSelect
          • smartFieldTabChange
          • smartFieldConstraintCheck
          • smartFieldCreateDialogSmartElementReady
          • smartFieldCreateDialogSmartElementBeforeSetFormValues
          • smartFieldCreateDialogSmartElementBeforeSetTargetValue
          • smartFieldCreateDialogSmartElementBeforeClose
          • smartFieldCreateDialogSmartElementBeforeDestroy
          • beforeDisplayTransition
          • afterDisplayTransition
          • beforeTransitionClose
          • beforeTransition
          • failTransition
          • successTransition
      • Rendu de transition
        • Associer une classe de rendu de transition via le cycle de vie
        • Classe de rendu de transition
          • getCssReferences
          • getJsReferences
          • getTemplates
          • getTransitionParameters
          • getRenderOptions
    • Aide à la saisie

    # getContextController

    La méthode getContextController permet d'ajouter des variables personnalisées au contrôleur de modèles. Le contrôleur de modèles analyse les templates côté serveur avant de les envoyer au client.

    Elle doit retourner une classe Anakeen\Ui\DocumentTemplateContext qui implémente ArrayAccess. L'ajout de nouvelles variables se fait donc en précisant la clef comme index du tableau :

    $templateContext[$key] = $value;
    

    La valeur peut prendre trois formes :

    1. Une valeur scalaire pour renseigner une clef simple
    2. Un tableau pour renseigner une liste de clef (répétable)
    3. Une fonction qui retourne soit une valeur scalaire soit un tableau de valeur

    Cette fonction n'est exécutée que si la clé correspondante est présente dans le modèle, au moment du remplacement.

    Les variables définies sont disponibles pour tous les modèles du Smart Element.

    Exemple :

    class RenderConfigCustom extends \Anakeen\Ui\DefaultView
    {
      public function getContextController(Anakeen\Core\Internal\SmartElement $document)
      {
        $controller = parent::getContextController($document);
        $controller["myController"] = $document->getFamilyParameterValue("myController");
        $controller["myValues"] = [["myList" => "Un"], ["myList" => "Deux"]];
        $controller["myDefinition"] = function () use ($document) {
          return $document->getMyComplexDefinition();
        };
        return $controller;
      }
    
      public function getTemplates(Anakeen\Core\Internal\SmartElement $document = null)
      {
        $templates = parent::getTemplates($document);
        $templates["sections"]["footer"]["file"] = "MY/customFoot.mustache";
        return $templates;
      }
    }
    

    Fichier : MY/customFoot.mustache :

    <footer class="dcpDocument__footer">
      <strong>[[myController]]</strong>
    
      <ol>
        [[#myValues]]
        <li>[[myList]]</li>
        [[/myValues]]
      </ol>
      <p>[[myDefinition]]</p>
    </footer>
    

    # Contrôleur par défaut

    Les classes de configuration de rendu par défaut utilisent le contrôleur Anakeen\Ui\DocumentTemplateContext.

    Ce contrôleur donne accès aux variables suivantes :

    # Propriétés

    Clef Définition
    [[document.properties.id]] Identifiant du document
    [[document.properties.initid]] Identifiant de la lignée documentaire
    [[document.properties.title]] Titre du document
    [[document.properties.icon]] Url de l'icône du document
    [[document.properties.revision]] Numéro de révision
    [[document.properties.mdate]] Date de révision (YYYY-MM-DD HH:MM)
    [[document.properties.status]] Status du document : alive, deleted, fixed
    [[document.properties.family.id]] Identifiant de la famille
    [[document.properties.family.title]] Titre de la famille
    [[document.properties.family.name]] Nom logique de la famille
    [[document.properties.family.icon]] Url de l'icône de la famille

    # Attributs

    Clef Définition
    [[document.attribute.<attrid>.label]] Libellé de l'attribut
    [[document.attribute.<attrid>.attributeValue.value]] Valeur brute
    [[document.attribute.<attrid>.attributeValue.displayValue]] valeur affichable
    [[document.attribute.<attrid>.attributeValue.<specialProperty>]] Autres propriétés (Voir formatCollection)

    # Fonctions

    Clef Définition
    [[i18n]] Fonction de traduction

    # Traduction

    Le contrôleur traduit les textes indiqués entre les balises i18n. Le texte traduit doit être fourni par le catalogue de langue du module.

    Exemple :

    <h1>{{#i18n}}my::Hello world{{/i18n}}</h1>
    

    La clef my::Hello world doit être une entrée traduite du catalogue.

    WARNING

    Il est recommandé d'utiliser un préfixe pour chaque traduction afin de ne pas être en conflit avec d'autres traductions.

    # Exemples

    Modification du pied de page pour afficher une valeur.

    class MyRenderConfigCustom extends \Anakeen\Ui\DefaultView
    {
      public function getTemplates(Anakeen\Core\Internal\SmartElement $document = null)
      {
        $templates = parent::getTemplates($document);
        $templates["sections"]["footer"]["file"] = "MY/customFoot.mustache";
        return $templates;
      }
    }
    

    Fichier MY/customFoot.mustache :

    <footer class="dcpDocument__footer">
      <strong>{{document.attributes.my_information.attributeValue.displayValue}}</strong>
    </footer>
    

    ← getTemplates getVisibilities →