Modifier et définir ses templates

Le dossier "templates"

Les templates sont des fichiers (extension .tpl) dans lesquels peut être définie toute la présentation des résultats affichés. L'immense avantage des templates est de permettre de complètement séparer le traitement des données et leur présentation. C'est cette technique qui permet la personnalisation de Thamous puisque les scriptes de gestion de la présentation peuvent être ainsi isolés de ceux envoyant les requêtes à la base et en recevant les résultats, scriptes qui doivent rester inaccessibles pour garantir aux données personnelles leur caractère privé et protéger les données publiques de la base. Cette technique permet aussi une programmation plus structurée et donc bien plus facile à maintenir et à faire évoluer puisque le code traitant les données n'est plus mélangé à celui qui en définit la présentation. Il reste toutefois à assurer la bonne communication des deux...  Cela permet aussi à une personne connaissant les formats de présentation (essentiellement de l'html) de faire les modifications qu'il peut faire à ce niveau sans plus avoir à connaître les autres langages (php, mysql) avec lesquels la présentation était mêlée. Le mélange de ces différents aspects est un des grands intérêts des langages informatiques et de php en particulier (d'ailleurs, les classes utilisées pour gérer les templates sont écrites en php...), mais c'est aussi ce qui en rend le code difficile à lire. Bien sûr, comme la communication entre les deux aspects doit être assurée... on ne peut pas toujours se contenter de savoir lire les templates.  Néanmoins, pour un grand nombre de modifications cela est possible.
Ainsi, toutes les modifications possibles touchant l'apparence de Thamous peuvent être faites sur les templates mais il est préférable de faire autrement celles qui peuvent l'être : il est mieux de modifier la configuration à  partir des constantes de configuration, de changer les styles à partir des feuilles de styles, de changer les formats d'exportation à partir des fichiers d'exportations etc. que de le faire directement sur les templates.
Un peu de bon sens permet de faire un certain nombre de modifications. Mais pour une modification complète de l'apparence et des fonctions de Thamous une connaissance des langages html, php, javascript et de Smarty est requise.

Supprimer l'affichage de votre nom du menu général

Pour supprimer l'affichage votre nom du menu général vous devez sélectionner le dossier "templates" dans la fenêtre d'administration de Thamous. Le champ de gauche situé en-dessous contient alors la liste des templates d'origine.
La modification que nous voulons faire concerne le menu général. On sélectionne pour cela le fichier "menu.tpl". En parcourant celui-ci on comprend qu'il nous renvoie à deux autres templates : "menu-admin.tpl" et "menu_recherche.tpl". Comme votre nom apparaît dans la partie basse de la fenêtre du menu, c'est qu'il est certainement dans le premier template (les contenus des templates s'affichent dans l'ordre dans lequel ils sont appelés). On ouvre donc le fichier "menu_admin.tpl".
Le début de fichier est :

{* Appelé par menu.tpl *}
{*Menu Historique, Développements, Contact, Projets, Admin, Nouveau, Avancée *}

{* Appelé par menu.php *}
{* Menu général.*}

{config_load file='aide.conf'}
<center>
<table class='menu_general'>
   <tr>
       <td class="nom">{$nom}</td>
       <td class="titre_menu_general">
              <a    href='../docs/historique.html' target='Historique'
                     onmouseover="return overlib('{#historique#}');"
                         onmouseout="return nd();">
(...)


Il suffit donc de supprimer la ligne  :

<td class="nom">{$nom}</td>

et d'enregistrer votre modification en cliquant sur le bouton "Enregistrer Modifs." sans changer le nom du fichier.
Le fichier "menu_admin.tpl" apparaît maintenant dans le champ de droite de vos fichiers personnalisés.

Si vous réactualisez la fenêtre du menu (il suffit de changer de projet ou de table de recherche), votre nom aura disparu!

Si vous voulez revenir à  la configuration par défaut, il vous suffit de sélectionner votre fichier menu_admin.tpl", ce qui en affichera le contenu, et ensuite de cliquer sur le bouton "Supprimer fichier".

Supprimer le bouton de bulles d'aide du menu général

Pour supprimer le bouton de bulles d'aide vous devez sélectionner le dossier "templates" dans la fenêtre d'administration de Thamous. Le champ de gauche situé en-dessous contient alors la liste des templates d'origine.
La modification que nous voulons faire concerne le menu général. On sélectionne pour cela le fichier "menu.tpl". En parcourant celui-ci on comprend qu'il nous renvoie à deux autres templates : "menu-admin.tpl" et "menu_recherche.tpl". Comme le bouton des bulles d'aides apparaît dans la partie basse de la fenêtre du menu, c'est qu'il est certainement dans le deuxième template (les contenus des templates s'affichent dans l'ordre dans lequel ils sont appelés). On ouvre donc le fichier "menu_recherche.tpl".
Le fichier comprend un tableau dont le contenu de la première cellule est {include file="btn_bulles_aide.tpl"} ; c'est l'instruction pour inclure un template et il s'agit visiblement du bouton des bulles d'aide. Il suffit donc de supprimer cette cellule en coupant :

<td>{include file="btn_bulles_aide.tpl"}</td>

Le début du fichier est dès lors :

{* Appelé par menu.tpl *}
{* Menu pour une recherche simple. *}

<center>
<table>
      <tr>
           <form name="form_projets" action="/php/menu.php" method="post">
               <td>
       <input name="table" type="hidden" value="{$table}">

(...)

Il suffit maintenant d'enregistrer notre modification en cliquant sur le bouton "Enregistrer Modifs." sans changer le nom du fichier.
Le fichier "menu_recherche.tpl" apparaît maintenant dans le champ de droite de vos fichiers personnalisés.

Si vous réactualisez la fenêtre du menu (il suffit de changer de projet ou de table de recherche), vous constaterez que le bouton des bulles d'aides a disparu!

Si vous voulez revenir à  la configuration par défaut, il vous suffit de sélectionner votre fichier menu_recherche.tpl", ce qui en affichera le contenu, et ensuite de cliquer sur le bouton "Supprimer fichier".


Modifier l'ordre et la présentation des données publiques

Pour  modifier l'ordre et la présentation des données publiques vous devez sélectionner le dossier "templates" dans la fenêtre d'administration de Thamous. Le champ de gauche situé en-dessous contient alors la liste des templates d'origine.
La présentation des données publiques se fait dans les fichiers :
Soit un template par type de référence et pour biblio un template pour chaque type de référence bibliographique. Cela permet de modifier indépendamment la présentation de chaque type de référence.

Modifions par exemple la présentation d'une référence bibliographique de type "Article". On sélectionne pour cela le template "form_tbiblio_public_Article.tpl".
Sa structure est la même que tous les autres : un tableau avec pour chaque champ ("nom","titre", etc.) des cellules contenant les en-têtes (qui appellent un autre template 'header.tpl') associées à d'autres cellules contenant un champ recevant les données correspondant à l'en-tête.
Il suffit de modifier ce tableau pour obtenir la présentation souhaitée des articles et ensuite d'enregistrer ces modifications en cliquant sur le bouton "Enregistrer Modifs." sans changer le nom du fichier.
Le fichier "form_tbiblio_public_Article.tpl" apparaîtra dans le champ de droite de vos fichiers personnalisés. Si vous affichez un article il apparaîtra conformément à la présentation que vous aurez enregistrée.

Si vous voulez revenir à  la présentation par défaut, il vous suffit de sélectionner votre fichier "form_tbiblio_public_Article.tpl", ce qui en affichera le contenu, et ensuite de cliquer sur le bouton "Supprimer fichier".

Changer le nombre de lignes visibles du champ des mots-clefs (resp. remarques) d'une référence

Le template définissant la présentation du champ des mots-clefs (resp. remarques) d'un projet est "textarea_mots_clefs.tpl" (resp. "textarea_remarques.tpl") contenu dans le dossier "templates" accessible à partir de la fenêtre d'administration de Thamous.
Pour changer le nombre de lignes et de colonnes il suffit de modifier les valeurs de la ligne :

 <textarea name="mots_clefs" rows="7" cols="25"

Vous enregistrez vos modifications en cliquant sur le bouton "Enregistrer Modifs." sans changer le nom du fichier.
Le fichier "textarea_mots_clefs.tpl" apparaîtra dans le champ de droite contenant vos fichiers personnalisés. Si vous affichez une référence le champ de mots-clefs (resp. remarques) apparaîtra avec le nombre de lignes et de colonnes spécifié. Il conviendra alors peut-être d'adapter la taille de la fenêtre contenant les références (cela se fait comme pour changer la position et la taille des fenêtres de listes).

Si vous voulez revenir à  la présentation par défaut, il vous suffit de sélectionner votre fichier "textarea_mots_clefs.tpl" (resp. "textarea_remarques.tpl"), ce qui en affichera le contenu, et ensuite de cliquer sur le bouton "Supprimer fichier".

Supprimer les remarques publiques apparaissant sous les champs de mots-clefs et de remarques d'une référence

Vous pouvez ne pas être intéressé par les remarques publiques des autres ou au moins ne pas vouloir qu'elles s'affichent systématiquement ne serait-ce que parce que cela prend un peu de temps (en l'occurrence très peu...) ou de place à l'écran.
Voyons comment les supprimer, on verra plus loin comment créer un bouton pour les afficher dans une fenêtre séparée.
Le fichier définissant la présentation de la partie basse d'une référence qui contient les données non publiques, c'est-à-dire celles propres à un projet est "form_projet.tpl" contenu dans le dossier "templates" accessible à partir de la fenêtre d'administration de Thamous.
En éditant ce fichier (il suffit de cliquer sur son nom) et en en parcourant le contenu on trouve à l'avant dernière ligne :

{include file="remarques_publiques.tpl"}

Cela ressemble à ce que l'on cherche... il suffit donc de supprimer cette ligne.
Vous enregistrez votre modification, sans changer le nom du fichier, en cliquant sur le bouton "Enregistrer Modifs.". Afficher une référence pour laquelle vous savez qu'il y a des remarques publiques, vous constaterez que celles-ci n'apparaissent plus.
Si vous voulez revenir à  la présentation par défaut, il vous suffit de sélectionner votre fichier "form_projet.tpl", ce qui en affichera le contenu, et ensuite de cliquer sur le bouton "Supprimer fichier".

Modifier l'affichage des remarques publiques ou personnelles sur la référence (remarques en lien) apparaissant sous les champs de mots-clefs et de remarques d'une référence

Sous les remarques publiques qui apparaissent sous les champs des mots-clefs et de remarques d'une référence apparaît aussi, quand il y en a...., les remarques sur cette référence entrées dans des liens pour lesquels cette référence est en but. Cela comprend aussi bien vos remarques privées que les remarques publiques des autres utilisateurs. Vous pouvez vouloir supprimer les unes ou les autres ne serait-ce que parce qu'elles occupent de la place à l'écran et que leur affichage prend du temps (cette fois un temps moins négligeable que l'affichage des remarques publiques). Vous pourriez aussi vouloir que ces remarques n'apparaissent pas systématiquement mais seulement quand vous le voulez. Vous pourriez aussi préférer avoir par défaut les remarques de cette référence (plutôt que sur celle-ci). Vous pourriez même vouloir avoir les unes quand vous êtes dans l'environnement de l'un de vos projets et en avoir d'autres quand vous êtes dans l'environnement d'un autre projet.
Vous pouvez utiliser la référence bibliographique dont l'id est 719 pour faire des essais car elle contient à la fois des remarques publiques de lien en source et en but.

Comme pour la suppression des remarques publiques on édite le template "form_projet.tpl" (le vôtre si celui de Thamous a été modifié). A la fin de celui-ci on trouve :

{include file="remarques_liens_projet.tpl"}

Si l'on supprime cette ligne on supprime à la fois vos remarques sur la référence et celles des autres utilisateurs. Vous pouvez le faire pour le vérifier et ensuite reprendre le fichier modifié en ajoutant la ligne supprimée. Au lieu de cela, nous allons éditer le fichier "remarques_liens_projet.tpl" qui se trouve aussi dans le dossier des templates.
La première partie du template construit le menu popup qui permet de choisir d'afficher soit les remarques en lien du projet actif dont la référence actuelle est en source soit celles où elle est en but, celles-ci s'affichant par défaut.
La deuxième partie est un test {if} (...) {else} (...) {/if} qui renvoie à un template ou un autre suivant la valeur d'une variable $origine dont les valeurs sont "but" ou "source".
 

<select name="origine" size="1" length="50"
                onchange="document.form_remarques_liens.submit();"
                onmouseover="window.status='Edition des remarques sur les liens de/sur cette références de l\'environnement {$projet|capitalize}.'; return true;">
                 {if $origine=='' OR $origine=='source'}
                             <option value="source" selected>Remarques de liens de
                             <option value="sbut">Remarques de liens sur
                     {else}
                             <option value="source">Remarques de liens de
                             <option value="but" selected>Remarques de liens sur
                     {/if}
        </select>

et remplacer la deuxième partie par :

{if $origine=='' OR $origine=='source'}
        {include file="remarques_liens_projet_de.tpl" projet=$projet}
        {include file="remarques_liens_publiques_de.tpl"}
{else}
        {include file="remarques_liens_projet_sur.tpl" projet=$projet}
        {include file="remarques_liens_publiques_sur.tpl"}
{/if}   




{if $origine=='' OR $origine=='but'}
        {include file="remarques_liens_projet_sur.tpl" projet=$projet}
{else}
        {include file="remarques_liens_projet_de.tpl" projet=$projet}
{/if}   

Attention : les changements se rapportent au fichier d'origine, pas à celui que vous avez modifié si vous avez fait les modifications précédentes!

<select name="origine" size="1" length="50"
                onchange="document.form_remarques_liens.submit();"
                onmouseover="window.status='Edition des remarques sur les liens de/sur cette références de l\'environnement {$projet|capitalize}.'; return true;">
               
                         <option value='' selected>Remarques de liens sur/de
                         <option value="but">Remarques de liens sur
                         <option value="source">Remarques de liens de
        </select>

et de remplacer la deuxième partie par :

{if $origine=='but'}
        {include file="remarques_liens_projet_sur.tpl" projet=$projet}
        {include file="remarques_liens_publiques_sur.tpl"}
{/if}
{if $origine=='source'}
        {include file="remarques_liens_projet_de.tpl" projet=$projet}
        {include file="remarques_liens_publiques_de.tpl"}
{/if}   


 On verra plus loin comment créer un bouton pour les afficher ces remarques dans une fenêtre séparée.


Fermer automatiquement la fenêtre de navigation

Quand vous naviguez avec les liens, la référence dont les liens sont édités apparaît en haut au centre. En cliquant sur celle-ci, vous ouvrez la fenêtre de cette référence et la fenêtre de navigation reste ouverte. Vous pourriez préférer que cette fenêtre se ferme automatiquement.
Pour cela, il vous suffit de modifier le template "navigation_liens.tpl".
Vous trouverez dans celui-ci le code suivant (javascripts) :

<a
      onclick="
        var file='form_ref.php?{$param}';
       var features='width={#RefWidth#}, height={#RefHeight#}, screenX={#RefX#}, screenY={#RefY#}, resizable, scrollbars';            
                window.open(file,'{$nom_fenetre}',features);"
                onmouseover="window.status='Affiche la référence.'; return true;">
            {$titre}
 </a>

Il suffit d'y insérer l'instruction window.close()  et ainsi de le remplacer par le code suivant :

 <a
      onclick="
        var file='form_ref.php?{$param}';
       var features='width={#RefWidth#}, height={#RefHeight#}, screenX={#RefX#}, screenY={#RefY#}, resizable, scrollbars'; 
                window.close();         
                window.open(file,'{$nom_fenetre}',features);"
                onmouseover="window.status='Affiche la référence.'; return true;">
            {$titre}
 </a>

Après avoir enregistré vos modifications sans changer le nom du template, la fenêtre de navigation se fermera quand vous afficherez la référence dont les liens sont édités.