1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| <!-- Recherche des attributs de la classe "document_interne" de numéro de noeud 88 -->
{def $attributs = fetch( 'class', 'attribute_list', hash( 'class_id', 88 ) )}
<div id="docaire_recherche">
<!-- Création du formulaire de recherche de documents avec les critères Type et Sous type -->
<div id="formulaire_recherche">
<form action={'mon_module/recherche'|ezurl} method="post"
{foreach $attributs as $attribut}
<!-- Parcourt des attributs de la classe "document_interne" -->
{if or($attribut.identifier|eq('type_document'), $attribut.identifier|eq('sous_type_document')))}
<!-- Création d un select pour chacun des attributs de la classe correspondant aux critères de recherche -->
<label for={$attribut.identifier}>{$attribut.name}</label>
<select name={$attribut.identifier}>
<!-- Création des options du sélect avec les options définies pour l attribut de classe -->
<option value=""></option>
{foreach $attribut.content.options as $option}
<option value="{$option.id}"
{switch match=$attribut.identifier}
<!-- Définition de l option sélectionnée si celle-ci est reçue en paramètre de la vue, c est à dire si un choix a déjà été saisi -->
{case match='type_document'}
{if $option.id|eq($type)} selected {/if}
{/case}
{case match='sous_type_document'}
{if $option.id|eq($sous_type)}selected{/if}
{/case}
{/switch}
>{$option.name}</option>
{/foreach}
</select>
{/if}
{/foreach}
<input type="submit" name="Recherche" value="OK">
</form>
</div>
<!-- Recherche des documents correspondants aux critères saisis -->
{if or($type|ne(''), $sous_type|ne(''))}
<!-- Récupération du numéro de noeud de dossier Documents -->
{def $node_dossier_documents_id = ezini('NodeIds','Documents','site.ini')}
<!-- Construction du tableau des critères de sélection pour les documents internes -->
{def $selections = array()}
{if $type|ne('')}
{set $selections = $selections|append(array('document_interne/type_document', '=', $type))}
{/if}
{if $sous_type|ne('')}
{set $selections = $selections|append(array('document_interne/sous_type_document', '=', $sous_type))}
{/if}
<!-- Recherche des documents interne sous le dossier Documents -->
{def $documents = fetch( 'content', 'list', hash( 'parent_node_id', $node_dossier_documents_id, 'sort_by', array( 'attribute', true(), 'document_interne/identifiant_document_interne' ), 'class_filter_type', 'include', 'class_filter_array', array('document_interne'), 'attribute_filter', $selections, 'depth', 50))}
{def $nb_documents = $documents|count()}
<!-- Affichage du résultat de la sélection des documents -->
<div id="resultats_recherche">
{if $nb_documents|ne(0)}
<ul>
{foreach $documents as $document}
<li id={$document.node_id}>
<a href={concat( 'content/download/', $document.data_map.fichier_document_interne.contentobject_id, '/', $document.data_map.fichier_document_interne.id, '/version/', $document.data_map.fichier_document_interne.version , '/file/', $document.data_map.fichier_document_interne.content.original_filename|urlencode )|ezurl} title={concat('"', $document.data_map.description_document_interne.data_text|strip_tags(), '"')}>{$document.data_map.identifiant_document_interne.data_text}</a>
</li>
{/foreach}
</ul>
{else}
<p>Aucun document n a été trouvé avec les critètes de recherche choisis</p>
{/if}
</div>
{/if}
</div> |
Partager