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

      • 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

    # getRenderOptions

    La méthode getRenderOptions permet de spécifier des options de représentations

    • de Smart Element
    • de Smart Field
        /**
         * @param \Anakeen\Core\Internal\SmartElement $document current Smart Element to render
         * @return RenderOptions default render configuration options
         */
        public function getRenderOptions(\Anakeen\Core\Internal\SmartElement $document);
    

    Certaines options de Smart Fields sont communes à tous, tandis que d'autres dépendent de son type.

    Les classes Anakeen\Ui\DefaultView et Anakeen\Ui\DefaultEdit retournent les options par défaut des Smart Fields.

    Cette méthode doit retourner un objet de la classe Anakeen\Ui\RenderOptions qui contient les options choisies pour les Smart Fields du Smart Element à visualiser.

    Les options sont des objets héritant de la classe \Anakeen\Ui\BaseRenderOptions. Cette classe permet d'associer chaque option à un ou plusieurs Smart Fields au moyen de la méthode setScope.

    En particulier, il existe

    • une classe pour les options du Smart Element (\Anakeen\Ui\DocumentRenderOptions)
    • une classe pour les options communes à tous les types de Smart Fields (\Anakeen\Ui\CommonRenderOptions)
    • une classe par type de Smart Field (\Anakeen\Ui\<type>RenderOptions)

    Exemple :

    $options = new Anakeen\Ui\RenderOptions();
    $enumOption = new Anakeen\Ui\EnumRenderOptions();
    $enumOption->setScope(\Anakeen\AttributeIdentifiers\My_family::my_continent);
    $enumOption->useFirstChoice(false);
    $options->setOption($enumOption);
    

    Afin de simplifier la définition des options, des alias sont définis sur la classe Anakeen\Ui\RenderOptions :

    Type Méthode Classe associée
    document document() Anakeen\Ui\DocumentRenderOptions
    commune common() Anakeen\Ui\CommonRenderOptions
    account account() Anakeen\Ui\AccountRenderOptions
    array arrayAttribute() Anakeen\Ui\ArrayRenderOptions
    color color() Anakeen\Ui\ColorRenderOptions
    date date() Anakeen\Ui\DateRenderOptions
    docid docid() Anakeen\Ui\DocidRenderOptions
    double double() Anakeen\Ui\DoubleRenderOptions
    enum enum() Anakeen\Ui\EnumRenderOptions
    file file() Anakeen\Ui\FileRenderOptions
    frame frame() Anakeen\Ui\FrameRenderOptions
    htmltext htmltext() Anakeen\Ui\HtmltextRenderOptions
    int int() Anakeen\Ui\IntRenderOptions
    image color() Anakeen\Ui\ImageRenderOptions
    longtext longtext() Anakeen\Ui\LongtextRenderOptions
    password password() Anakeen\Ui\PasswordRenderOptions
    money money() Anakeen\Ui\MoneyRenderOptions
    tab tab() Anakeen\Ui\TabRenderOptions
    text text() Anakeen\Ui\TextRenderOptions
    time time() Anakeen\Ui\TimeRenderOptions
    timestamp timestamp() Anakeen\Ui\TimestampRenderOptions

    Exemple :

    use Anakeen\Ui\RenderAttributeNeeded;
    use Anakeen\AttributeIdentifiers\My_family;
    
    class RenderConfigCustom extends \Anakeen\Ui\TransitionRender
    {
      /**
             - @param \Anakeen\Core\Internal\SmartElement $document current smart element to render
             - @return RenderOptions default render configuration options
             */
      public function getRenderOptions(\Anakeen\Core\Internal\SmartElement $document)
      {
        $options = parent::getRenderOptions($document);
    
        $options->enum(My_family::my_continent)->display(\Anakeen\Ui\EnumRenderOptions::horizontalDisplay);
        $options->money()->setCurrency('EUR');
    
        return $options;
      }
    }
    

    # Remarques

    Une option posée pour un Smart Field identifié est prioritaire sur l'option posée pour un type.

    Une option posée pour un type est prioritaire à une option commune posée pour tous les Smart Fields.

    Exemple :

    use Anakeen\Ui\RenderAttributeNeeded;
    use Anakeen\AttributeIdentifiers\My_family;
    
    class RenderConfigCustom extends \Anakeen\Ui\TransitionRender
    {
      /**
             - @param \Anakeen\Core\Internal\SmartElement $document current Smart Element to render
             - @return RenderOptions default render configuration options
             */
      public function getOptions(\Anakeen\Core\Internal\SmartElement $document)
      {
        $options = parent::getOptions($document);
    
        $options->commonOption()->showEmptyContent("Non communiqué");
        $options->commonOption("my_phone")->showEmptyContent("Pas de téléphone");
    
        return $options;
      }
    }
    

    # Options personnalisées

    Des options personnalisées peuvent aussi être propagées à la vue du client. Ces options non utilisées sur le rendu standard peuvent être exploitées par un code javascript spécifique.

    La méthode setOption permet d'ajouter des options supplémentaires.

    Les identifiants de ces options ne doivent pas être en conflit avec les noms des options existantes. Si l'identifiant est un identifiant déjà reconnu, cela revient à modifier ce paramètre de représentation.

    Les valeurs de l'option peuvent être des nombres, des chaînes de caractères, des tableaux ou tout autre type qui peut être converti en JSON. C'est la donnée convertie en JSON qui sera exploitée.

    $options = new Anakeen\Ui\RenderOptions();
    $options->commonOptions(My_contact::zct_photo)
        ->setOption("MyFirstCustomOption", "MyOptionValue");
        ->setOption("MySecondCustomOption", [
            "One"=>"MyFirstValue",
            "Two"=>"MySecondValue"
        ]);
    

    Exemple récupération en JS :

    import ankSmartController from "@anakeen/user-interfaces/components/lib/AnkController";
    
    ankSmartController.registerFunction("myContactKey", scopedController => {
      scopedController.addEventListener(
        "change",
        {
          name: "myEvent.myFamily"
        },
        function(smartElement, smartField) {
          // Si l'attribut my_attr égal "GO" alors les attributs ayant l'option MyFirstCustomOption sont cachés
          if (smartField.attributeValue.value === "GO") {
            var attributes = scopedController.getAttributes();
    
            _.each(attributes, function(attr) {
              if (attr.getOption("MyFirstCustomOption") === "MyOptionValue") {
                scopedController.hideAttribute(attr.id);
              }
            });
          }
        }
      );
    });