CMS Automne
http://www.automne-cms.org/forum/

Utiliser en lien fichier joint
http://www.automne-cms.org/forum/viewtopic.php?f=2&t=740
Page 1 sur 1

Auteur:  Yves [ Jeu Déc 02, 2010 3:32 pm ]
Sujet du message:  Utiliser en lien fichier joint

Dans le module Actualités, il y a la possibilité de joindre un fichier.
Dans l'affichage d'une actualité, je souhaiterais pour faire un lien vers ce fichier du genre "cliquer ici".
Voici mon code :
<atm-if what="{Actualites:Titre:value}">
<div class="page_actu_fichier"><a href="{Actualites:Fichier joint:value}" class="actu" target="_blank">Cliquer ici</a></div>
</atm-if>


Merci d'avance

Auteur:  Frank [ Jeu Déc 02, 2010 4:02 pm ]
Sujet du message:  Re: Utiliser en lien fichier joint

Tu as plusieurs solutions pour insérer des fichiers dans les actualités.
De mon point de vue la solution la plus souple est d'utiliser un plugin WYSIWYG qui te permet d'insérer un fichier stocké dans la médiathèque.

Maintenant tu peux très bien ajouter un champ ou un sous-objet de type fichier pour insérer des fichiers en même temps que tu rédiges ton actualité.

Je ne comprend pas très bien la condition dans ton code : si j'ai un titre alors j'affiche un lien vers le fichier joint.

J'aurais plutôt testé la présence d'un fichier joint, le code le plus simple pour faire ça (à adapter avec le nom de ton module et de ton champ)

Code :
<atm-if what="{Actualites:Fichier:filename}">
   <p>{Actualites:Fichier:fileHTML}</p>
</atm-if>   

Auteur:  Yves [ Ven Déc 03, 2010 2:47 pm ]
Sujet du message:  Re: Utiliser en lien fichier joint

Je suis désolé, mais je ne comprends pas ton code.
J'utilise le module "Actualités" contenant au besoin un fichier joint.
Pour afficher l'actualité, j'ai créé une rangée pour une page.

Voici le code de la rangée concernant l'affichage de cette actualité :
<row>
<!-- Accès au module actualités en langue française -->
<block module="pnews" id="actus" language="fr">
<!-- Objet du module sur lequel va porter la rechercher, nom de la recherche -->
<atm-search what="{Actualites}" name="actualites">
<!-- Paramètre de filtre facultatif qui permet de restreindre l'affichage à une catégorie-->
<atm-search-param search="actualites" type="{Actualites:Categorie:fieldID}" value="block" mandatory="false" />
<!-- Nombre d'éléments à afficher, ici on laisse le choix à l'utilisateur avec la valeur block-->
<atm-search-limit search="actualites" value="block"/>
<!-- Trie les éléments par date de début de publication en ordre décroissant -->
<atm-search-order search="actualites" type="publication date after" direction="desc"/>
<!-- Résultats de la recherche -->
<atm-result search="actualites">
<!-- On affiche le titre de l'actualité-->
<div class="page_actu_titre">{Actualites:Titre:value}</div>
<!-- On affiche la date de début de publication -->
<div class="page_actu_date">{Actualites:formatedDateStart|d/m/Y}</div>
<!-- S'il y a un article on affiche le détail-->
<atm-if what="{Actualites:Titre:value}">
<div class="page_actu_intro">{Actualites:Introduction:htmlvalue}</div>
</atm-if>
<!-- S'il y a un fichier joint on affiche un lien vers le fichier-->
<atm-if what="{Actualites:Fichier:filename}">
<p>&#160;</p>
<div class="page_actu_fichier"><a href="{Actualites:Fichier:fileHTML}" class="actu" target="_blank">Voir l'annonce</a></div>
</atm-if>-->
<div id="page_actu_trait"></div>
</atm-result>
</atm-search>
</block>
</row>

Auteur:  GuillaumeM [ Ven Déc 03, 2010 3:04 pm ]
Sujet du message:  Re: Utiliser en lien fichier joint

Je ne sais pas si c'est ça, mais tu as une fermeture de commentaire bizarre à la fin de ton code :

Code :
</atm-if>-->


Ta rangée doit planter à la régénération, non ?

Auteur:  Frank [ Ven Déc 03, 2010 3:19 pm ]
Sujet du message:  Re: Utiliser en lien fichier joint

Tu n'as même pas besoin de mettre ça dans une balise : )

Le libellé de l'aide actuel n'est surement pas assez explicite, tu aurais mieux compris :
Citer:
{Actualites:Fichier:fileHTML} : génère le code HTML pour créer un lien vers le fichier


Maintenant, si on veut personnaliser le lien, on utilisera les autres champs à notre disposition dans l'aide du module :

Citer:
{Actualites:Fichier:fileLabel} : Libellé du fichier
{Actualites:Fichier:filename} : Nom du fichier
{Actualites:Fichier:filePath} : Chemin du répertoire du fichier et de la vignette
{Actualites:Fichier:fileSize} : Poids du fichier en Mo
{Actualites:Fichier:fileIcon} : Chemin vers l'icône du fichier (si elle existe)
{Actualites:Fichier:fileExtension} : Type de fichier (extension)


Exemple :
Code :
<a href="{Actualites:Fichier:filePath/{Actualites:Fichier:filename}" title="{Actualites:Fichier:fileLabel} ({Actualites:Fichier:fileExtension} - {Actualites:Fichier:fileSize}">{Actualites:Fichier:fileLabel}</a>


Si je reprends ton exemple, ça donne ça pour la syntaxe la plus simple, à toi d'adapter si tu veux personnaliser le lien :

Code :
<row>
   <!-- Accès au module actualités en langue française -->
   <block module="pnews" id="actus" language="fr">
      <!-- Objet du module sur lequel va porter la rechercher, nom de la recherche -->
      <atm-search what="{Actualites}" name="actualites">
         <!-- Paramètre de filtre facultatif qui permet de restreindre l'affichage à une catégorie-->
         <atm-search-param search="actualites" type="{Actualites:Categorie:fieldID}" value="block" mandatory="false"/>
         <!-- Nombre d'éléments à afficher, ici on laisse le choix à l'utilisateur avec la valeur block-->
         <atm-search-limit search="actualites" value="block"/>
         <!-- Trie les éléments par date de début de publication en ordre décroissant -->
         <atm-search-order search="actualites" type="publication date after" direction="desc"/>
         <!-- Résultats de la recherche -->
         <atm-result search="actualites">
         <!-- On affiche le titre de l'actualité-->
         <div class="page_actu_titre">{Actualites:Titre:value}</div>
         <!-- On affiche la date de début de publication -->
         <div class="page_actu_date">{Actualites:formatedDateStart|d/m/Y}</div>
         <!-- S'il y a un article on affiche le détail-->
         <atm-if what="{Actualites:Titre:value}">
            <div class="page_actu_intro">{Actualites:Introduction:htmlvalue}</div>
         </atm-if>
         <!-- S'il y a un fichier joint on affiche un lien vers le fichier-->
         <atm-if what="{Actualites:Fichier:filename}">
            <div class="page_actu_fichier">{Actualites:Fichier:fileHTML}</div>
         </atm-if>
         </atm-result>
      </atm-search>
   </block>
</row> 


J'espère que c'est plus clair ;)

Auteur:  Yves [ Dim Déc 05, 2010 5:46 pm ]
Sujet du message:  Re: Utiliser en lien fichier joint

Bonjour,

Je suis désolé de revenir vers toi mais ça ne fonctionne pas. Je pensais au départ que mon code était mal formé.
J'ai donc repris le code que tu m'as transmis :
<!-- S'il y a un fichier joint on affiche un lien vers le fichier-->
<atm-if what="{Actualites:Fichier:filename}">
<p>Lien</p>
</atm-if>

La condition génère une erreur. voir ci-dessous :
Parse error: syntax error, unexpected '{' in /var/www/html/44.php(184) : runtime-created function on line 1 Fatal error: Function name must be a string in /var/www/html/44.php on line 185

44.php est la page contenant mon code.

Merci d'avance

Auteur:  Frank [ Dim Déc 05, 2010 11:20 pm ]
Sujet du message:  Re: Utiliser en lien fichier joint

Le code est à adapter en fonction du nom de ton module et du nom du champ de l'objet.
Es-tu bien sur d'avoir ces mêmes valeurs ?

La syntaxe est {MODULE:CHAMP:filename} par exemple pour récupérer le nom du fichier.

Tu trouveras ces valeurs dans l'aide disponible lorsque tu édites le code XML de ta rangée.

Page 1 sur 1 Le fuseau horaire est UTC [Heure d’été]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/