Génération d’un nouveau portail

cd C:\\nchp\\usr\\local\\nchp\\ezged\\www3.src\\sf\\app\\
php bin/console ezds:create-portal formation EZDS001_QRY_FACTURES,EZDS003_QRY_DEVIS,EZDS_PHOTOTHEQUE

Si soucis, relancer ou forcer une mise à jour :
C:\\nchp\\usr\\local\\nchp\\ezged\\bin>python ezged_updater3.4.pyc -force
Redémarrer la GED

Le portail sera accessible ici :
<http://127.0.0.1/ezds/portail/portail_formation/home>
<http://10.211.55.3/ezds/portail/portail_formation/home>

# Supprimer un portail
cd /Volumes/\\[C\\]\\ Windows\\ 11/nchp/usr/local/nchp/ezged/www3.src/sf/app
rm -f config/portail_formation.yaml && rm -fr templates/portal/portail_formation && rm -fr public/portal/portail_formation

Arborescence initialisée automatiquement

config/portail_formation.yaml

templates/portal/portail_formation / 
__________________________________ / _actualite1_detail.html.twig
__________________________________ / _actualite2_detail.html.twig
__________________________________ / _actualites.html.twig
__________________________________ / _alertes.html.twig
__________________________________ / _document.html.twig
__________________________________ / _exemple_page.html.twig
__________________________________ / _home.html.twig
__________________________________ / _page.html.twig
__________________________________ / _submenu.html.twig
__________________________________ / _user.html.twig
__________________________________ / index.html.twig
__________________________________ / layout.html.twig

public/portal/portail_formation / 
_______________________________ / style.css

Fichier de configuration

Le fichier de configuration est au format YAML. Celui-ci contient une succession de blocs. Les types de blocs sont les suivants : widget - logo - search - menu

Exemple de configuration :

enable: true                                           # --- Active ou non le portail
auth:                                                  # --- Paramètres d'authentification
  enable: true                                         # --- Active le formulaire d'authentification, si false, alors il faut renseigner login/pass
  #login: admin                                        # --- login utilisé automatiquement si auth_enable = false
  #pass: admin                                         # --- pass utilisé automatiquement si auth_enable = false
  #groups: ["group1", "group2"]                        # --- Groupes autorisés à consulter le portail
title: Portail EzGED                                   # --- Balise html title
template_racine: "portal/portail_formation/"
template: "portail_formation/index.html.twig"
https: true                                            # --- Force l'https sur tous les liens
blocs:
  bloc1:
    id: 'widget_meteo'
    type: 'widget'
    enable: true
    debug: false
    twig: true
    source: false
    params:
      widget_id: 33
  bloc10:
    id: 'portail1_logo1'
    type: 'logo'
    enable: true
    debug: false
    twig: true
    source: false
    html:
      before: '<div class="ezportal_logo header-logo">'
      after: '</div>'
      class: 'portail_logo'
      style: 'margin: 0; padding: 0; width: 70px; filter: none;'
    params:
      src: '/ezds/portal/logoEzged.png'
      link:
        portail: 'portail1'
  bloc20:
    id: 'portail1_search1'
    type: 'search'
    enable: true
    debug: false
    twig: true
    source: false
    html:
      before: '<div class="ezportal_card_container"><h3 class="">Recherche globale</h3>'
      after: '</div>'
      class: 'form-control mb-4 mb-md-0'
      style: 'width: 100%;'
      placeholder: 'Rechercher dans tous les documents'
  bloc30:
    id: 'portail1_menu1'
    type: 'menu'
    enable: true
    debug: false
    twig: true
    source: true
    notinmenu: false
    html:
      class: 'navbar-nav me-auto my-2 my-lg-0 navbar-nav-scroll'
    params:
      entry1:
        type: 'home'
        lib: 'Accueil'
        key: 'home'
        enable: true
      entry2:
        type: 'qry'
        lib: 'Toutes les factures Fournisseur'
        qrysyskey: 'EZDS001_QRY_FACTURES'
        enable: true
        search: true
        #parent: 'Fournisseur'
        icon_google: 'description'
        view:
          id: 'portail1_menu1_EZDS001_QRY_FACTURES'
          #type: "grid"
          display: "table"
          title: "Liste des documents"
          number: 10
          enable: true
          debug: false
          filters:
            enable: true
            display: true
            #position: left
            fields:
              field1:
                type: field
                id: EZ_CONTACT_LIB
                lib: Contact
                enable: true
                html:
                  before: '<li class="nav-item">'
                  after: '</li>'
              #field2:
                #type: field
                #id: EZ_FACTURE_FOURNISSEUR_DATE_PIECE
                #lib: Année
                #format: YEAR
                #enable: true
                #html:
                  #before: '<li class="nav-item">'
                  #after: '</li>'
              # Exemple de filtre
              field3:
                type: field
                id: vue_svt_affaire.VUE_SVT_AFFAIRE_DESIGNATION
                lib: Affaire
                **display: select**
                enable: true
                html:
                  before: '<li class="nav-item">'
                  after: '</li>'
              field4:
                type: field
                id: svt_defaut_categorie.SVT_DEFAUT_CATEGORIE_LIB
                lib: Origine
                **display: selectmultiple**
                enable: true
                html:
                  before: '<li class="nav-item">'
                  after: '</li>'
          fields:
            field1:
              type: field
              id: EZ_CONTACT_LIB
              lib: Emetteur
              align: left
              class: "#d-none d-md-table-cell"
              style: ""
            field2:
              type: field
              id: EZ_FACTURE_FOURNISSEUR_DATE_PIECE
              lib: Date pièce
              align: left
              format: "date-fr"
              class: "#d-none d-md-table-cell"
              style: ""
            field3:
              type: field
              id: EZ_FACTURE_FOURNISSEUR_MONTANT_HT
              lib: Montant HT
              align: right
              lib_align: right
              format: "%0.2f €"
              class: "#d-none d-md-table-cell"
              style: ""
            field4:
              type: view_document
              id: view
              lib: Voir
              align: center
              lib_align: center
          document:
            information:
              field1:
                type: field
                id: EZ_CONTACT_LIB
                lib: Emetteur
              field2:
                type: field
                id: EZ_FACTURE_FOURNISSEUR_NUMERO_FACTURE
                lib: Numéro
              field3:
                type: field
                id: EZ_FACTURE_FOURNISSEUR_DATE_PIECE
                lib: Date pièce
                format: "date-fr"
              field4:
                type: field
                id: EZ_FACTURE_FOURNISSEUR_MONTANT_HT
                lib: Montant HT
                format: "%0.2f €"
            notes: true
            display_document: true
            links:
              apps: ["ez_bl_fournisseur"] # Affiche les documents liés manuellement de type ez_bl_fournisseur
  bloc40:
    id: 'portail1_menu2'
    type: 'menu'
    enable: true
    debug: false
    twig: true
    source: false
    params:
      entry1:
        type: 'page'
        lib: 'Exemple de page'
        key: 'exemple_page'
        enable: true
        notinmenu: false

Création d’un bloc de type “Logo”

Configuration d’un logo

# -------------------------------------------------------------
# LOGO
# -------------------------------------------------------------
bloc1:
	id: 'portail1_logo1'
  type: 'logo'
  enable: true
  debug: false
  twig: true
	source: false
  html:
    before: '<div class="header-logo">'
    after: '</div>'
    class: 'portail_logo'
    style: 'margin: 0; padding: 0; width: 70px; filter: none;'
  params:
    src: '/ezds/resources/images/logoEzged150.png'
    link:
      portail: 'portail1'
      #url: '<https://www.google.fr>'
      #target: '_blank'
      #title: 'Explication sur le lien'

Affichage du logo

# Solution 1 : si twig = true
{{ portal_logo('portail1_logo1') }}

# Solution 2 : si source = true
{{ dump(c) }}
{{ dump(logo) }}
{{ c.blocs.portail1_logo1.html | raw }}
{{ logo.portail1_logo1.html | raw }}

# Solution 3
{{ dump(logo) }}
{{ dump(c.blocs.portail1_logo1.structure) }}
<img src="{{ c.blocs.portail1_logo1.structure.src }}" class="{{ c.blocs.portail1_logo1.structure.class }}" style="{{ c.blocs.portail1_logo1.structure.style }}" border="0"/>

# Solution 4 : Inclusion d'un template
{{ include("portal/v3/_logo.html.twig") }}

# Solution 5 : HTML pur sans configuration
<a href="<http://10.211.55.3/ezds/portail/portail_formation/home?portail=portail1>"  target="_blank"  title="Explication sur le lien" >
	<img src="/ezds/portal/logoEzged.png" class="portail_logo" id="portail1_logo1" style="margin: 0; padding: 0; width: 70px; filter: none;"/>
</a>

Création d’un bloc de type “Widget”

Configuration d’un widget

bloc1:
	id: 'widget_meteo'
	type: 'widget'
	enable: true
	debug: false
	twig: true
	#source: false
	params:
	  widget_id: 33

Affichage du widget

# Solution 1 : affichage du widget par l'identifiant du bloc
<div class="mb-4">
	{{ portal_widget('widget_meteo') }}
</div>

# Solution 2 : affichage du widget par l'identifiant du widget dans la qry
# dans ce cas, la déclaration du bloc n'est pas obligatoire.
{{ portal_widget(33) }}

Création d’un bloc de type “search”

Configuration du moteur de recherche