Portail de publication

Préambule

Le portail de publication est une plateforme de libre accès développée pour répondre à un besoin des organismes de mette à la disposition des documents issus des différents processus et/ou sources.

Le portail de publication offre la possibilité de rechercher un document selon les catégories définies auparavant et récemment de faire une recherche plein texte sur les documents stockés.

La connexion au portail de publication peut se réaliser sur le même serveur que MultiGest ou sur un serveur dédié au portail.

Prérequis

L’installation du portail de publication peut se réaliser sur le même serveur que MultiGest ou sur un serveur dédié.

Installation dans le serveur MultiGest

Dans le cas d’une installation du portail de publication dans le serveur MultiGest il est nécessaire de s’assurer

Attention

COMPATIBILITE MULTIGEST / PORTAIL DE PUBLICATION Pour une version de MultiGest 9.5.2 SVN 12562 ou supérieure, installer un portail de publication ayant une version SVN 12562 ou supérieure. A l’inverse, pour l’installation d’un portail de publication ayant une version SVN 12562 ou supérieure, mettre à jour la version de MultiGest pour correspondre à une version égale ou supérieure à la 9.5.2 SVN 12562.

Mise à jour du Portail de Publication

En cas de mise à jour du portail de publication, si la version du portail actuellement en production est inférieure à la version SVN 12562, il convient de modifier la configuration Apache et les chemins paramétrés pointant vers le répertoire d’installation du portail de cette manière :

chemin_paramétré en chemin_paramétré/www

Installation d’Apache et Php

Pré-requis

Installer le « redistributable Visual C++ 2012 » disponible dans le répertoire Package Apache-2.4 Php5612.

Copie des répertoires

Copier les répertoires Apache-2.4 et php5612 dans le répertoire d’application de votre serveur.

Ex : D:/APPLIS

D:/APPLIS/Apache-2.4

D:/APPLIS/php5612

Modification du paramétrage

Pour Apache-2.4

httpd.conf

Dans le répertoire conf se trouvant dans Apache-2.4 modifier le fichier httpd.conf.

Si différents, remplacer les chemins “D:/APPLIS/Apache-2.4” par le chemin vers le répertoire d’Apache (Attention au sens des barres).

Remplacer les valeurs “support@client.com” par une adresse mail support interne.

httpd-php.conf

Si différents, remplacer les chemins “D:/APPLIS/php5612” par le chemin vers le répertoire de PHP.

httpd-virtualhosts.conf

Remplacer “80” par le port HTTP souhaité pour l’utilisation du portail.

Si différents, remplacer les chemins “D:/APPLIS/PPublication/www” par le chemin vers le répertoire du Portail de Publication suivi du répertoire ‘www’.

Bien vérifier la présence des lignes suivantes :

  • si valeur n’est pas utf-8 ou n’existe pas dans le fichier de configuration httpd.conf :
    AddDefaultCharset UTF-8
  • Toujours :
    php_value default_charset "utf-8"

Exemple :

Listen 5110
<VirtualHost *:5110>
    DocumentRoot "C:/CHEMIN"
    ServerAlias *:5110
    DirectoryIndex ppController.php
    AddDefaultCharset UTF-8
    php_value default_charset "utf-8"
      
    <Directory "C:/Chemin">
        Options -Indexes +FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

Pour PHP

php.ini

  • Modifier le fichier “php.ini” se trouvant dans le répertoire Php5612 :
    • Remplacer les chemins “D:/APPLIS/PPublication” par le chemin vers le répertoire du Portail de Publication (Attention au sens des barres)
    • Remplacer le chemin “D:/APPLIS/PPublication/logs” par le chemin vers le répertoire des logs du Portail de Publication
    • Remplacer les chemins ” D:/APPLIS/php5612″ par le chemin vers le répertoire de PHP (Attention au sens des barres)
    • Mettre l’url du serveur SMTP dans la balise [mail function] SMTP=
  • Si vous utilisez un autre php.ini que celui fournit dans le package :
    • Vérifier le fuseau horaire (ne pas laisser vide) dans la balise [DATE] date.timezone = Europe/Paris
    • Vérifier que les extensions suivantes sont activées (la ligne doit être dé-commentée en enlevant le point-virgule du début de ligne) :
      • php_gettext.dll
      • php_mysqli.dll
      • php_pdo_mysql.dll
      • php_intl.dll
  • Ajouter le répertoire d’installation de php dans la variable d’environnement “path”
    • Ouvrir le menu Windows puis faire un clic droit sur “ordinateur” et choisir propriétés.
    • Choisir “Paramètres Système avancées” puis “variables d’environnement”.
    • Modifier la valeur path en rajoutant à la fin de la valeur un ; puis la valeur du chemin de PHP.
  • Aller dans le répertoire “C:\Windows\System32\drivers\etc”
  • Editer le fichier “hosts”
  • Enlever le dièse de la ligne “# 127.0.0.1 localhost”

Installer le service Apache

  • Utiliser les fichiers .bat fourni en double-cliquant dessus (Apache_1-install.bat puis Apache_2-start.bat)

Ou

  • Lancer une invite de commande en administrateur

Copier-coller la ligne de commande d’installation suivante

Si dessous les lignes de commande pour installer démarrer arrêter ou désinstaller le service Apache 2.4 (Remplacer les chemins par le chemin d’apache)

Commande d’installation

"D:\Programmes\Apache-2.4\bin\httpd.exe" -k install -n "Apache 2.4" -f "D:\Programmes\Apache-2.4\conf\httpd.conf"

Commande de lancement

"D:\Programmes\Apache-2.4\bin\httpd.exe" -k start -n "Apache 2.4"

Pour information :

Commande d’arrêt

"D:\Programmes\Apache-2.4\bin\httpd.exe" -k stop -n "Apache 2.4"

Commande de désinstallation

"D:\Programmes\Apache-2.4\bin\httpd.exe" -k uninstall -n "Apache 2.4"

Préconisations MySQL

L’utilisation du Portail de Publication nécessite l’utilisation d’un service MySQL 5.1 minimum et jusqu’à MySQL 5.7.

Une base de données spécifique doit être créée pour le Portail. Celle-ci sera ensuite à spécifier (nom, nom du serveur, etc) dans le fichier de configuration config.ini du Portail.

Attention

Le jeu de caractères du serveur doit être dans l’idéal UTF-8 Unicode (utf8). Si ce n’est pas le cas, la base créée pour le Portail doit être paramétrée en utf8 au niveau de son jeu de caractères par défaut.

Installation du Portail de Publication

Copie du répertoire

Copier le répertoire PPublication dans le répertoire d’application de votre serveur.

Ex : D:/APPLIS

D:/APPLIS/PPublication

Paramétrage du Portail

  • Se placer dans le répertoire PPublication
  • Copier le fichier client/samples/config-sample.ini et le coller dans client en le renommant en config.ini
  • Copier le fichier client/samples/logo-128×128-sample.png et le coller dans client en le renommant en logo-128×128.png
  • Copier le fichier client/samples/css-sample.less et le coller dans client en le renommant en css.less
  • Si utilisation d’un webservice pour la consultation des documents :
    • Webservice MultiGest : le fichier webservice.php est normalement déjà présent dans le répertoire client, ou il vous a été fourni par un autre moyen, dans ce cas le coller dans le répertoire client
    • Webservice autre : copier le fichier client/samples/webservice-sample.php et le coller dans client en le renommant en webservice.php
  • Se placer dans le répertoire PPublication/client
  • Ouvrir et paramétrer le fichier config.ini (configurer l’accès base de données en indiquant bien le nom de la base de données à utiliser – la créer manuellement si elle n’existe pas-, définir le répertoire de travail où placer les fichiers d’import, etc)

Si vous souhaitez modifier les couleurs par défaut de l’interface, ouvrir et paramétrer le fichier css.less.

Recherche plein texte

Objectif

Lors de l’utilisation de la barre de recherche présente dans l’interface du portail, si la recherche plein texte est active, alors l’expression exacte saisie sera recherchée dans le contenu des documents.

Au niveau de la liste de résultat de recherche, si au moins une occurrence a été trouvée dans le document, celui-ci présentera une barre de pertinence verte plus ou moins importante en fonction du score obtenu (calculé par MySQL).

Dans le cas inverse, si aucune occurrence n’a été trouvée et si le document apparait dans la liste de résultat (si une de ses métadonnées a matché), un point rouge sera affiché en face du libellé de recherche plein texte.

Fonctionnement

Lors d’un import dans le portail de publication, si la recherche plein texte a été activée dans le fichier de configuration config.ini, le contenu du document va être extrait.

Le contenu extrait est une chaîne de caractères qui est ensuite enregistrée dans la base de données du portail.

Note : si le document est accessible via webservice, celui-ci va être copié sur le serveur du portail temporairement, le temps de l’extraction du contenu

Liste de résultat – Explication du tri des documents

Les documents affichés dans la liste de résultat sont triés de la manière suivante :

Trouvé dans nom > Trouvé dans au moins une autre métadonnée > Score plein texte

De manière plus exhaustive, le tri est le suivant :

  • Trouvé dans nom + Trouvé dans au moins une autre métadonnée + Score plein texte
  • Trouvé dans nom + Trouvé dans au moins une autre métadonnée
  • Trouvé dans nom + Score plein texte
  • Trouvé dans nom
  • Trouvé dans au moins une autre métadonnée + Score plein texte
  • Trouvé dans au moins une autre métadonnée
  • Score plein texte

Activation

Le fichier de configuration config.ini permet à l’administrateur :

  • d’activer ou non la recherche plein texte (fulltext_active dans config.ini)
  • si la recherche plein texte est activée : de forcer son utilisation ou de laisser libre choix à l’utilisateur, dans ce cas, une case à cocher type interrupteur apparait dans l’interface proposé à l’utilisateur du portail (fulltext_user_option_search dans config.ini)

Paramétrage de la recherche plein texte

[fulltext]
fulltext_active = 1
fulltext_user_option_search = 1

Attention

Si utilisation de MultiGest : Si les documents sont issus de MultiGest (que l’on utilise le webservice pour accéder aux documents ou que ceux-ci soient rapatriés sur le portail de publication), il convient d’activer l’océrisation.

Lancement d’un import

Si l’utilisateur a en sa possession le fichier d’import spécifique au Portail de Publication, son importation se passe comme suit :

Le fichier d’import doit être nommé import.xml. Si ce n’est pas le cas, le renommer tel quel.

Il est à placer à la racine du répertoire de travail définit dans config.ini, (variable folderPath).

Par exemple : D:/APPLIS/PPublicationImport

Le lancement de l’import se fait par url via le navigateur internet :

Ou si un hash est configuré dans config.ini pour plus de sécurité :

Pour information, lors du tout premier import, 3 répertoires sont créés dans ce répertoire de travail :

  • current : qui recevra les fichiers sources placés à la racine du répertoire de travail, une fois l’import terminé
  • saves : qui recevra la sauvegarde du répertoire current lorsque celui-ci sera remplacé lors du prochain import. Le nombre de sauvegardes conservées est paramétré dans le fichier config.ini
  • rejected : qui recevra les fichiers sources placés à la racine du répertoire de travail, en cas de problème rencontré lors de l’import. A noter qu’un fichier d’extension .log sera créé dans ce cas-là : celui-ci permettra de connaître la cause de l’échec de l’import.

Import avec création d’un fichier XML listant les nouveaux documents

Pour activer la création d’un fichier XML listant l’ensemble des nouveaux documents non présents dans l’import précédent, deux solutions sont proposées :

Activation dans le fichier de configuration

Il suffit de modifier la valeur de la clé suivante en mettant la valeur à 1.

[import]
new_docs_create_xml = 1

Le fichier XML créé, nommé ppNewDocs.xml, se placera alors dans le répertoire current. Il est possible d’indiquer en plus un répertoire dans lequel mettre une copie de ce fichier.

[import]
new_docs_dest_path = "D:\GED\ppublication\mynewdocs.xml"

Enfin, tous les documents peuvent être forcés en statut ‘Nouveau’ en indiquant la valeur 1 dans la clé new_docs_force_all.

[import]
new_docs_force_all = 1

Activation ou désactivation dans l’url

Il est aussi possible de passer outre la configuration paramétrée dans le fichier config.ini en indiquant les valeurs désirées pour l’import directement dans l’url. Les clés à insérer dans l’url sont les suivantes :

  • createXmlNewDocs : active ou non la création du fichier XML listant les nouveaux documents (documents non présents dans le précédent import)
  • pathXmlNewDocs : chemin où devra être placée une copie du fichier XML
  • xmlNewDocsForceAll : permet d’assigner le statut ‘Nouveau’ à tous les documents de l’import en cours

Exemple d’url :

Exemple d’url avec désactivation de la génération du fichier XML :

Structure du fichier

<?xml version="1.0" encoding="UTF-8"?>
<documents portalUrl="http://mon-portail">
    <document id="1_8">
        <name>TITRE 1</name>
        <ext>pdf</ext>
        <categories>Agglo||Agglo > Délibérations||Agglo > Délibérations > 2013</categories>
        <description> ACTE_1- 8 - COM03</description>
        <datecrea></datecrea>
        <usercrea></usercrea>
        <daterev></daterev>
        <userrev></userrev>
        <size></size>
        <nbversions></nbversions>
        <link>http://mon-portail/ppController.php?action=actionOpenDoc&idDoc=1_8</link>
        <portalLink>http://mon-portail/ppController.php?action=actionSearchDoc&idDoc=1_8</portalLink>
    </document>
    <document id="1_4">
        <name>TITRE 2</name>
        <ext>pdf</ext>
        <categories>Agglo||Agglo > Délibérations||Agglo > Délibérations > 2014||Mairie||Mairie > Délibérations||Mairie > Délibérations > 2014</categories>
        <description> ACTE_2- 9 - COM23</description>
        <datecrea></datecrea>
        <usercrea></usercrea>
        <daterev></daterev>
        <userrev></userrev>
        <size></size>
        <nbversions></nbversions>
        <link>http://mon-portail/ppController.php?action=actionOpenDoc&idDoc=1_4</link>
        <portalLink>http://mon-portail/ppController.php?action=actionSearchDoc&idDoc=1_4</portalLink>
    </document>
    <document id="1_7">
        <name>TITRE 3</name>
        <ext>pdf</ext>
        <categories>Agglo||Agglo > Délibérations||Agglo > Délibérations > 2015</categories>
        <description>ACTE_3 - 10 - COM10</description>
        <datecrea></datecrea>
        <usercrea></usercrea>
        <daterev></daterev>
        <userrev></userrev>
        <size></size>
        <nbversions></nbversions>
        <link>http://mon-portail/ppController.php?action=actionOpenDoc&idDoc=1_7</link>
        <portalLink>http://mon-portail/ppController.php?action=actionSearchDoc&idDoc=1_7</portalLink>
    </document>
</documents>

Fichier de configuration du portail

Le fichier de configuration permet de paramétrer la fonctionnalité d’export destiné au Portail de Publication. Il permet la génération du fichier import.xml qui servira ensuite à la création et l’alimentation de la base de données du portail de publication.

Ce fichier :

  • est un fichier de type XML
  • doit être nommé ppublication.xml
  • doit être placé dans le répertoire bin du répertoire d’installation de MultiGest
  • doit être encodé en utf-8

Attention

IMPORTANT : les textes en rouges dans les tableaux suivants traitent de fonctionnalités non encore implémentées.

Structure principale

La structure principale du xml est la suivante :

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <menu>
    <!-- Contenu non détaillé -->
    </menu>
    <doc>
    <!-- Contenu non détaillé -->
    </doc>
</config>

Balise <menu>

Structure simplifiée

Le contenu de la balise <menu> sert à la génération des menus du portail. Sa structure simplifiée est la suivante (les attributs des balises sont ignorés ici) :

<menu>
    <element>
        <cabinet />
        <menuAndSelect />
        <select /> <!-- balise <select> facultative -->
        <element>
            <menuAndSelect />
            <select /> <!-- balise <select> facultative -->
            <!-- n balises imbriquées <element> -->
        </element>
    </element> <!-- x balises <element> à la racine de <menu> -->
</menu>

Où :

  • <element> : correspond à un élément de menu
  • <cabinet> : indique sur quelle armoire les critères sont à appliquer. Cette balise est obligatoire. Elle ne doit apparaitre en revanche qu’à la racine des balises <element> qui sont enfants direct de <menu>
  • <menuAndSelect> : correspond au critère de génération du menu. Ce critère est aussi utilisé pour la sélection des documents
  • <select> : correspond à un critère supplémentaire à appliquer pour la sélection de document. Cette balise est facultative et peut avoir plusieurs occurrences sur un même niveau d’arborescence.

Génération automatique de menu

Attention

La balise <menuAndSelect> a un fonctionnement particulier : il est possible de générer automatiquement des menus en spécifiant simplement un champ (attribut FIELD) sans indiquer de valeur recherchée (attribut VALUE absent ou égal à vide). Effectivement, si l’attribut VALUE est vide ou non présent, cela créera autant d’éléments de menu que de valeurs trouvées.

Exemple :

<menuAndSelect TYPE='INDEX' FIELD='TYPE' VALUE='Assemblée générale' />

GENERERA LE MENU SUIVANT :

[Assemblée générale]

ALORS QUE

<menuAndSelect TYPE='INDEX' FIELD='TYPE' VALUE='' />

OU

<menuAndSelect TYPE='INDEX' FIELD='TYPE' />

GENERERA LE MENU SUIVANT :

[Assemblée générale]

[Assemblée extra-ordinaire]

[Réunion ordinaire]

…qui sont toutes les valeurs trouvées en base

Il est désormais possible de masquer les champs vides pour les documents du portail de publication.

A partir de la version Multigest svn 15922.

Paramétrage

Le paramètre est situé dans le fichier “config.ini” du portail de publication.

Dans la section “[interface]”, ajouter la clé “hide_empty_labels = 1” (ou plus simplement faire un copier-coller des lignes correspondantes à partir du fichier config-sample.ini présent dans le répertoire client/samples).

Deux valeurs sont possibles :

  • 0 : les champs vides sont affichés
  • 1 : les champs vides seront masqués

Résultat

Voici une illustration avec à gauche le paramètre à 0 et à droite le paramètre à 1.

Cela permet par exemple (cadre rouge) de ne pas afficher des champs vides quand plusieurs types de documents n’ont pas la même fiche nature.

Détails des attributs

Information

Les textes en rouges dans les tableaux suivants traitent de fonctionnalités non encore implémentées.

Balise : element

AttributsPrésenceValeurs possiblesCommentaires
DOCVISIBLEObligatoire0
1
Si 0 : aucun document ne sera pas affiché lorsque le menu sera actif Si 1 : la sélection du menu affichera des documents
FORCEDVALUEFacultativeChaîne de caractèresForce le libellé du menu par la chaîne de caractères saisie
MASKFacultativeExpressionMasque appliqué à la valeur du menu retourné par l’application du critère visible dans la balise enfant menuAndSelect

Balide : cabinet

AttributsPrésenceValeurs possiblesCommentaires
VALUEObligatoireNom physique d’une et d’une seule armoireBalise dont la présence au sein d’une balise <element> est obligatoire lorsque <element> est un enfant direct de la balise menu. Cela permet de savoir sur quelle armoire les critères spécifiés dans les balises <menuAndSelect> et <select> sont à appliquer.

Balise : menuAndSelect

AttributsPrésenceValeurs possiblesCommentaires
TYPEObligatoireINDEX METADOC METASYSDOSS METASYSDOC PDCIndique le type de données sur laquelle va porter la sélection
MASKTYPEFacultativeDATEAttribut qui devient obligatoire si utilisation de l’attribut MASK
MASKFacultativeExpression régulière MySQLPermet de formater la valeur récupérée en base. C’est la valeur formatée qui apparaitra dans le menu. C’est aussi la valeur formatée qui est utilisée pour la sélection des documents (1).

Balise :
menuAndSelect TYPE=”INDEX”
menuAndSelect TYPE=”METADOC”
menuAndSelect TYPE=”METASYSDOSS”
menuAndSelect TYPE=”METASYSDOC”

AttributsPrésenceValeurs possiblesCommentaires
FIELDObligatoireNom physique d’un champ d’index Nom physique d’un champ de fiche nature OU valeur SUFFIXE OU valeur REF Nom d’une métadonnée système dossier Nom d’une métadonnée système documentSpécifie le champ sur lequel va porter la sélection Les listes des métadonnées système dossier et document sont disponibles paragraphes 3.3.2.2 et 3.3.2.3
VALUEFacultativemaValeur
maValeur1, maValeur2,…
Possibilité de saisir une seule valeur ou une liste de valeurs séparées par des virgules
OPERATORFacultativeEG SUP INF IN BWNEG = Egal SUP = Supérieur à INF = Inférieur à IN = Dans la liste BWN = Entre deux valeurs Note : suivant l’opérateur choisi, l’attribut VALUE comportera une, deux ou une liste de valeurs (séparées par des virgules). L’opérateur par défaut si l’attribut n’est pas spécifié est EG.

Balise : menuAndSelect TYPE=”PDC”

AttributsPrésenceValeurs possiblesCommentaires
VALUEObligatoiresous-dossier/sous-sous-dossier/monDocumentIndiquer ici le plan de classement complet du document à exporter

Balise : menuAndSelect TYPE=”METADOC”

AttributsPrésenceValeurs possiblesCommentaires
CARDObligatoireNom physique d’une fiche natureSpécifie sur quelle fiche nature porte la sélection

Balise : select (facultative)

En tout point identique à la balise <menuAndSelect> à l’exception de l’attribut VALUE qui doit être toujours présent et qui nécessite l’assignation d’une valeur (ne peut être vide).

Liste des valeurs possibles

Attribut MASK – Expression régulière MySql

L’expression régulière peut utiliser les valeurs suivantes :

FormatDescriptionFormatDescription
%aAbbreviated weekday name (Sun-Sat)%pAM or PM
%bAbbreviated month name (Jan-Dec)%rTime, 12-hour (hh:mm:ss followed by AM or PM)
%cMonth, numeric (0-12)%SSeconds (00-59)
%DDay of month with English suffix (0th, 1st, 2nd, 3rd, etc)%sSeconds (00-59)
%dDay of month, numeric (00-31)%TTime, 24-hour (hh:mm:ss)
%eDay of month, numeric (0-31)%UWeek (00-53) where Sunday is the first day of week
%fMicroseconds (000000-999999)%uWeek (00-53) where Monday is the first day of week
%HHour (00-23)%VWeek (01-53) where Sunday is the first day of week, used with %X
%hHour (01-12)%vWeek (01-53) where Monday is the first day of week, used with %x
%IHour (01-12)%WWeekday name (Sunday-Saturday)
%iMinutes, numeric (00-59)%wDay of the week (0=Sunday, 6=Saturday)
%jDay of year (001-366)%XYear for the week where Sunday is the first day of week, four digits, used with %V
%kHour (0-23)%xYear for the week where Monday is the first day of week, four digits, used with %v
%lHour (1-12)%YYear, numeric, four digits
%MMonth name (January-December)%yYear, numeric, two digits
%mMonth, numeric (00-12)

Balise <doc>

Structure simplifiée

Le contenu de la balise <doc> sert au paramétrage des données à exporter concernant les documents.

Sont spécifiées :

Quelles données en base utiliser pour quelles données dans l’export (quelle(s) donnée(s) en base compose(nt) le nom, quelle(s) donnée(s) en base compose(nt) la description, etc)

Les données à afficher ou non (et par extension, à exporter) : date de création du document, créateur, etc.

Les données supplémentaires à exporter grâce aux balises <add>

La structure simplifiée de cette balise est la suivante (les attributs des balises sont ignorés ici) :

<doc>
    <name></name>
    <description></description>
    <options>
        <datecrea />
        <usercrea />
        <daterev />
        <userrev />
        <size />
        <nbversions />
    </options>
    <adds>
        <add></add> <!-- balise <add> facultative -->  
    </adds> <!-- n balises <add> -->
</doc>

Détails des attributs

Tableaux des attributs

BaliseAttributsPrésenceValeurs possiblesCommentaires
dataTYPEObligatoireINDEX
METADOC
METASYSDOSS
METASYSDOC
PDC
Indique le type de données à exporter
data TYPE=”INDEX” data TYPE=”METADOC” data TYPE=”METASYSDOSS” data TYPE=”METASYSDOC”FIELDObligatoireNom physique d’un champ d’index
Nom physique d’un champ de fiche nature
Nom d’une meta-donnée système dossier
Nom d’une meta-donnée système document
Indique le champ de la valeur à exporter
BaliseAttributsPrésenceValeurs possiblesCommentaires
name descriptionSEPARATORFacultativeChaîne de caractèresPermet l’utilisation de plusieurs balises <data> au sein de la balise <name> ou <description>. La valeur à indiquer dans SEPARATOR est la chaîne de séparation des valeurs. Ex : SEPARATOR= ‘’ – ‘’ (espace tiret espace)
BaliseAttributsPrésenceValeurs possiblesCommentaires
datecrea
usercrea
daterev
userrev
size
nbversions
ACTIVEObligatoire0
1
Indique si la données est à exporter ou non (suivant si elle est utilisée dans le portail de publication ou non)
BaliseAttributsPrésenceValeurs possiblesCommentaires
add (facultative)IDFacultativeChaîne de caractèresPermet de forcer l’ID attribué au type de champs personnalisé. Cet attribut est facultatif : s’il n’est pas spécifié un ID automatique lui sera assigné. Cet attribut est à utiliser lorsque le portail de publication utilise le webservice MultiGest. Voir paragraphe 6.
BaliseAttributsPrésenceValeurs possiblesCommentaires
label (facultative)VALUEFacultativeChaîne de caractèresPermet d’indiquer la valeur du libellé du champ personnalisé comme il devra apparaitre dans l’interface du portail. Si la balise <label> n’est pas présente, alors la donnée de la balise <add> ne sera pas affichée dans l’interface du portail.

Structure complète et possibilités

Information

Légende :
Expression sans encadrement = expression obligatoire
[ expr ] = expression obligatoire
{ expr } = expression facultative
[ expr1 || expr2 ] = expression obligatoire : en choisir une et une seule parmi la liste
{ expr1 || expr2 } = expression facultative : en choisir une seule ou aucune parmi la liste

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <menu>
        <element DOCVISIBLE='[1 || 0]' {FORCEDVALUE='monLibellé'}>
            <cabinet VALUE='nomPhysiqueArmoire' />
            [
            <menuAndSelect TYPE='INDEX' FIELD='nomPhysiqueChampIndex' {VALUE='[maValeur || maValeur1, maValeur2,..]' {MASKTYPE='DATE' MASK='monMasque'} />
            || <menuAndSelect TYPE='METADOC' CARD='nomPhysiqueFicheNature' FIELD='nomPhysiqueChampNature' {VALUE='[maValeur || maValeur1, maValeur2,..]' {MASKTYPE='DATE' MASK='monMasque'} />
            || <menuAndSelect TYPE='METASYSDOSS' FIELD='nomMetaDonnéesSystèmeDossier' {VALUE='[maValeur || maValeur1, maValeur2,..]' {MASKTYPE='DATE' MASK='monMasque'} />
            || <menuAndSelect TYPE='METASYSDOC' FIELD='nomMetaDonnéesSystèmeDocument' {VALUE='[maValeur || maValeur1, maValeur2,..]' {MASKTYPE='DATE' MASK='monMasque'} />
            || <menuAndSelect TYPE='PDC' {VALUE='[maValeur || maValeur1, maValeur2,..]'} />
            ]
            {
            <select TYPE='INDEX' FIELD='nomPhysiqueChampIndex' VALUE='[maValeur || maValeur1, maValeur2,..]' {MASKTYPE='DATE' MASK='monMasque'} />
            || <select TYPE='METADOC' CARD='nomPhysiqueFicheNature' FIELD='nomPhysiqueChampNature' VALUE='[maValeur || maValeur1, maValeur2,..]' {MASKTYPE='DATE' MASK='monMasque'} />
            || <select TYPE='METASYSDOSS' FIELD='nomMetaDonnéesSystèmeDossier' VALUE='[maValeur || maValeur1, maValeur2,..]' {MASKTYPE='DATE' MASK='monMasque'} />
            || <select TYPE='METASYSDOC' FIELD='nomMetaDonnéesSystèmeDocument' VALUE='[maValeur || maValeur1, maValeur2,..]' {MASKTYPE='DATE' MASK='monMasque'} />
            || <select TYPE='PDC' VALUE='[maValeur || maValeur1, maValeur2,..]' />
            }
            {
            <element ...>
                <menuAndSelect .../>
                {
                <select .../>
                }
                {
                <element ...>
                    <menuAndSelect .../>
                    {
                    <select .../>
                    ...
                    }
                </element>
                }
            </element>
            }
        </element>
        {
        <element ...>
            <cabinet .../>
            <menuAndSelect ... />
            {
            <select ... />
            ...
            }
            </element>
            }
            { <!-- n balises <element> -->
            <element ...>
        </element>
        }
    </menu>
    <doc>
        <name {SEPARATOR='monSéparateur'}>
            <data TYPE='INDEX' FIELD='nomPhysiqueChampIndex' {MASKTYPE='DATE' MASK='monMasque'} />
            || <data TYPE='METADOC' FIELD='nomPhysiqueChampNature' {MASKTYPE='DATE' MASK='monMasque'} />
            || <data TYPE='METASYSDOSS' FIELD='nomMetaDonnéesSystèmeDossier' {MASKTYPE='DATE' MASK='monMasque'} />
            || <data TYPE='METASYSDOC' FIELD='nomMetaDonnéesSystèmeDocument' {MASKTYPE='DATE' MASK='monMasque'} />
            || <data TYPE='PDC' />
            || <data TYPE='CABINET' FIELD='nomDonnéeArmoire'/>
            ]
            { <!-- Si balise parent <name> possède l'attribut SEPARATOR -->
            <data .../> <!-- n balises <data> -->
            }
        </name>
        <description {SEPARATOR='monSéparateur'}>
            [
            <data TYPE='INDEX' FIELD='nomPhysiqueChampIndex' {MASKTYPE='DATE' MASK='monMasque'} />
            || <data TYPE='METADOC' FIELD='nomPhysiqueChampNature' {MASKTYPE='DATE' MASK='monMasque'} />
            || <data TYPE='METASYSDOSS' FIELD='nomMetaDonnéesSystèmeDossier' {MASKTYPE='DATE' MASK='monMasque'} />
            || <data TYPE='METASYSDOC' FIELD='nomMetaDonnéesSystèmeDocument' {MASKTYPE='DATE' MASK='monMasque'} />
            || <data TYPE='PDC' />
            || <data TYPE='CABINET' FIELD='nomDonnéeArmoire'/>
            ]
            { <!-- Seulement si balise parent <name> possède l'attribut SEPARATOR -->
            <data .../> <!-- n balises <data> -->
            }
        </description>
        <options>
            <datecrea ACTIVE='[0 || 1]' />
            <usercrea ACTIVE='[0 || 1]' />
            <userrev ACTIVE='[0 || 1]' />
            <size ACTIVE='[0 || 1]' />
            <nbversions ACTIVE='[0 || 1]' />
        </options>
        <adds>
            <add {ID='monIdImposé'}>
                {<label VALUE='monLibellé' />}
                [
                <data TYPE='INDEX' FIELD='nomPhysiqueChampIndex' {MASKTYPE='DATE' MASK='monMasque'} />
                || <data TYPE='METADOC' FIELD='nomPhysiqueChampNature' {MASKTYPE='DATE' MASK='monMasque'} />
                || <data TYPE='METASYSDOSS' FIELD='nomMetaDonnéesSystèmeDossier' {MASKTYPE='DATE' MASK='monMasque'} />
                || <data TYPE='METASYSDOC' FIELD='nomMetaDonnéesSystèmeDocument' {MASKTYPE='DATE' MASK='monMasque'} />
                || <data TYPE='PDC' />
                || <data TYPE='CABINET' FIELD='nomDonnéeArmoire'/>
                ]
            </add>
            { <!-- n balises <add> -->
            <add>
            ...
            </add>
            }
        </adds>
    </doc>
</config>

Webservice MultiGest et Paramétrage supplémentaire

Si le portail de publication utilise le webservice de MultiGest pour la consultation des documents, un paramétrage supplémentaire est nécessaire dans le fichier ppublication.xml.

Effectivement, pour l’ouverture d’un document, le webservice MultiGest a besoin de connaitre :

  • le nom physique de l’armoire
  • l’ID de dossier dans lequel se trouve le document
  • l’ID du document

Pour cela, il suffit d’ajouter des balises <add> dans la balise <doc> du fihcier ppublication.xml comme ceci :

<doc>
    ...
    <adds>
        ...
        <add ID="mgArmoire">
            <data TYPE="CABINET" FIELD="NOMTABLE" />
        </add>
        <add ID="mgDossier">
            <data TYPE="INDEX" FIELD="ID" />
        </add>
        <add ID="mgDoc">
            <data TYPE="METASYSDOC" FIELD="IDDOC" />
        </add>
    </adds>
</doc>

Lancement de l’export

Le Portail de Publication utilise un webservice

La commande est la suivante :

"REP_INSTALL_PHP\php-win.exe" -f "REP_INSTALL_MULTIGEST\webserveur\shell\shellconnector.php" -- -c E1 –p WS=1

Cette commande permet :

  • la création du fichier export.xml récupérable dans le répertoire ppublication créé dans le répertoire des exports (ce chemin est paramétré dans le fichier webserveur.ini présent dans le répertoire bin, clé EXPORT_PORTABLE)

Si le webservice utilisé est le webservice MultiGest, bien vérifier la présence des données requises dans le fichier ppublication.xml, voir paragraphe précédente.

Le Portail de Publication n’utilise pas de webservice

La commande est la suivante :

"REP_INSTALL_PHP\php-win.exe" -f "REP_INSTALL_MULTIGEST\webserveur\shell\shellconnector.php" -- -c E1 –p WS=0

Cette commande permet :

  • la création du fichier export.xml récupérable dans le répertoire ppublication créé dans le répertoire des exports (ce chemin est paramétré dans le fichier webserveur.ini présent dans le répertoire bin, clé EXPORT_PORTABLE)
  • l’export des fichiers : chaque fichier étant renommé avec l’ID attribué au document dans l’export

Cas concret : Mairie

Demande du client

Données du client

Les données du client sont les suivantes :

  • Une seule armoire concernée :
    • Indexes de dossier de l’armoire :
      • Type de séance
      • Titre de séance
      • Date de séance
  • Un seul document concerné :
    • Nom dans le Plan De Classement : Délibérations
    • Champs de la fiche nature associée :
      • Type d’acte
      • Numéro d’acte
      • Objet
      • Nom de la commission

Rendu souhaité

Pour le menu :

  • Premier niveau :
    • Libellé Agglo – Sélection sur INDEX : Type de séance – Valeur de sélection : Conseil communautaire
    • Libellé Mairie – Sélection sur INDEX : Type de séance – Valeur de sélection : Conseil municipal
  • Second niveau :
    • Libellé Délibérations – Sélection sur PDC – Valeur de sélection : Délibérations
  • Troisième niveau :
    • Libellé YYYY (année) – Sélection sur INDEX : Date de séance – Valeur de sélection : TOUTES

Pour le document :

  • Nom : valeur d’INDEX : Titre de séance
  • Description : Concaténation des valeurs : Valeur de METADONNEES DOCUMENT : Type d’acte ++ Valeur de METADONNEES DOCUMENT : Numéro d’acte ++ Valeur de METADONNEES DOCUMENT : Nom de la commission
  • Données personnalisées :
    • Objet : Valeur de METADONNEES DOCUMENT : Objet

Consultation des documents : utilisation du webservice de MultiGest

Affichage des documents : à n’importe quel niveau de menu (pas seulement au dernier niveau)

Fichier ppublication.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <menu>
        <element FORCEDVALUE="Agglo" DOCVISIBLE="1">
            <cabinet VALUE="ARMOIREDUPUY" />
            <menuAndSelect TYPE="INDEX" FIELD="TYPE_SEANCE" VALUE="conseil communautaire" />
            <element FORCEDVALUE="Délibérations" DOCVISIBLE="1">
                <menuAndSelect TYPE="PDC" VALUE="Délibération" />
                <element DOCVISIBLE="1">
                    <menuAndSelect TYPE="INDEX" FIELD="DATE_SEANCE" MASKTYPE="DATE" MASK="%Y" />
                </element>
            </element>
        </element>
        <element FORCEDVALUE="Mairie" DOCVISIBLE="1">
            <cabinet VALUE="ARMOIREDUPUY" />
            <menuAndSelect TYPE="INDEX" FIELD="TYPE_SEANCE" VALUE="conseil municipal" />
            <element FORCEDVALUE="Délibérations" DOCVISIBLE="1">
                <menuAndSelect TYPE="PDC" VALUE="Délibération" />
                <element DOCVISIBLE="1">
                    <menuA ndSelect TYPE="INDEX" FIELD="DATE_SEANCE" MASKTYPE="DATE" MASK="%Y" />
                </element>
            </element>
        </element>
    </menu>
    <doc>
        <name>
            <data TYPE="INDEX" FIELD="TITRE_SEANCE" />
        </name>
        <description SEPARATOR=" – ">
            <data TYPE="METADOC" CARD="NATURE1" FIELD="TYPE_ACTE" />
            <data TYPE="METADOC" CARD="NATURE1" FIELD="NUMERO_ACTE" />
            <data TYPE="METADOC" CARD="NATURE1" FIELD="NOM_COMMISSION" />
        </description>
        <options>
            <datecrea ACTIVE="0" />
            <usercrea ACTIVE="0" />
            <daterev ACTIVE="0" />
            <userrev ACTIVE="0" />
            <size ACTIVE="0" />
            <nbversions ACTIVE="0" />
        </options>
        <adds>
            <add>
                <label VALUE="Objet" />
                <data TYPE="METADOC" CARD="NATURE1" FIELD="OBJET" />
            </add>
            <add ID="mgArmoire">
                <data TYPE="CABINET" FIELD="NOMTABLE" />
            </add>
            <add ID="mgDossier">
                <data TYPE="INDEX" FIELD="ID" />
            </add>
            <add ID="mgDoc">
                <data TYPE="METASYSDOC" FIELD="IDDOC" />
            </add>
        </adds>
    </doc>
</config>

Lancement de l’export

On lance l’export sans oublier de spécifier qu’un webservice sera utilisé (WS=1) :

"REP_INSTALL_PHP\php-win.exe" -f "REP_INSTALL_MULTIGEST\webserveur\shell\shellconnector.php" -- -c E1 –p WS=1

Portail de Publication

Après import du fichier import.xml, le rendu dans le Portail de Publication est le suivant :

Figure 29 – Menu

Figure 30 – Menu Agglo

Figure 31 – Menu Mairie

Figure 32 – Cartouche Document

Figure 33 – Affichage des documents quand menu de dernier niveau sélectionné

Figure 34 – Affichage des documents quand menu possédant un menu enfant est sélectionné