IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[eZ Publish] Problème : Comment afficher, dans un template, les informations concernant un fichier (nom, date, etc).


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Points : 2
    Points
    2
    Par défaut [eZ Publish] Problème : Comment afficher, dans un template, les informations concernant un fichier (nom, date, etc).
    Bonjour
    Nouvel utilisateur d'EZ-Publish, je vous soumets mon problème.
    Dans un Template (.tpl) j'aimerais afficher toutes les informations concernant un fichier ce trouvant côté serveur, c'est à dire : son nom, sa date, sa taille, etc.
    Si quelqu'un peut m'aider, il sera le bien venu.
    Merci à tous.

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 40
    Points : 41
    Points
    41
    Par défaut
    Bonjour, chaque élément mis sur le site possède un id
    par exemple si l'id de ton fichier est 212 tu peux y accéder en faisant
    {def $my_node=fetch( 'content', 'node', hash( 'node_id', 212 ) )}

    pour avoir des informations tels que le nom tu fais
    la date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {$my_node.object.published|l10n(shortdatetime)}
    Chaque node possède des informations qui sont visibles en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {$my_node|attribute(show,1)}
    ou 1 est la profondeur de l'arborescence.

    Pour récupérer l'id du node il te suffit d'aller dans l'interface admin, de cliquer sur ton fichier. Sous le nom du fichier tu auras une ligne
    Dernière modification: 13/08/2010 12:15, ----- ----- (ID du Nœud : 1177, ID de l'objet : 1238)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Problème : Comment afficher, dans un template, les informations concernant un fichier (nom, date, etc).
    merci Mawguai pour ton aide
    ça fonctionne à merveille
    j'ai juste modifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {def $my_node=fetch( 'content', 'node', hash( 'node_id', 212 ) )}
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {def $my_node=fetch( 'content', 'node', hash( 'node_id', $node.node_id ) )}
    car le .tpl est lié à plusieurs bontons

    bref super
    merci
    à bientôt pour de nouvelles aventures
    philippe

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    en fait je viens de me rendre compte que la date est celle qui est lié à ID du Nœud, donc celle de création de l'élément dans ez-publish

    mais moi je cherche à lire celle du fichier qui se trouve sur le disque (date système du fichier, qui lui est rafraichit toutes les vingt minutes)

    désolé Mawguai

  5. #5
    Membre éclairé Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Points : 683
    Points
    683
    Par défaut
    Salut,
    Est-ce que ça fonctionnerait avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {$my_node.data_map.fichier.object.modified}
    edit : Il faut remplacer "fichier" par l'identifiant du datatype qui contient ton fichier.

    Si ça ne fonctionne pas, de quelle manière mets-tu à jour ton fichier ?

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    merci grozaloumek,
    mais je n'ai pas réussit à mettre ta commande en place.
    En fait voici mon source, dans lequel j'affiche déjà plusieurs informations concernant le fichier (qui est le contenu d'une webcam) mis à jour toutes les 20minutes via FTP.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {def $filePath = concat( ezini( 'ImportWebcamSettings', 'ImagesDir', 'sanef.ini' ),
    $node.object.data_map.file_name.content )
    $tmpArray = $node.object.data_map.file_name.content | explode( '.' )
    $fileExt = $tmpArray | extract_right( 1 )
    $my_node = fetch( 'content', 'node', hash( 'node_id', $node.node_id ) )
    }
    <div>
    <p>
    C’est ici que j’aimerais afficher la date système du fichier {$filePath}</p>
    </div>


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <div id="node{$node.node_id}" style="display: none;">
          <div class='info_content' style='width: 255px; height: 250px'>
     
    <div class='info_body'>
     
    {if or( eq( $fileExt[ 0 ], 'ogg' ), eq( $fileExt[ 0 ], 'ogv' ) )}
     
    {def $tabSiteURL = ezini( 'SiteSettings', 'SiteURL', 'site.ini' )|explode( '/' )}
     
    <script type="text/javascript">
    if(!applet_nodes) var applet_nodes = [];
    applet_nodes[{$node.node_id}] = '<applet code="com.fluendo.player.Cortado.class" codebase="http://{$tabSiteURL[0]}/extension/sanef/lib" archive="cortado.jar" width="235" height="132"><param name="url" value={$filePath | ezroot( , 'full' )} /><param name="debug" value="0" /><param name="loop" value="true" /><param name="logo" value="false" /></applet>';
    </script>
    <div id="applet_container{$node.node_id}"></div>
     
    {else}
     
    <script type="text/javascript">
    var webcam_image_{$node.node_id};
     
    function refreshWebcamImage{$node.node_id}()
    {literal}
    {
    {/literal}
    webcam_image_{$node.node_id}.attr("src", "{$filePath}?time=" + (new Date()).valueOf());
    setTimeout("refreshWebcamImage{$node.node_id}()", 30000);
    {literal}
    }
    {/literal}
     
    {literal}
    $(function() {
    {/literal}
    webcam_image_{$node.node_id} = $("#webcam_image_{$node.node_id}");
    refreshWebcamImage{$node.node_id}();
    {literal}
    });
    {/literal}
    </script>
    <img id="webcam_image_{$node.node_id}" src="{$filePath}" width='235' height='132' />
     
    {/if}
     
    </div>
     
    </div>

    merci d'avance

  7. #7
    Membre éclairé Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Points : 683
    Points
    683
    Par défaut
    Salut,
    eZPublish donne la possibilité d'exécuter des fonctions php directement dans le template, et ce sans développer d'extensions.
    Pour cela, il faut ajouter dans le fichier template.ini.append.php les lignes suivantes : (vider le cache si nécessaire)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [PHP]
    PHPOperatorList[filemtime]=filemtime
    Cette fonctionnalité ne marche que pour les fonctions php ayant moins de 3 arguments il me semble.

    Dans ton cas tu as besoin de la fonction php filemtime. Tu ajouteras donc dans ton template la ligne suivante, après avoir modifié ton template.ini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {$filePath|filemtime()}

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Salut,
    merci grozaloumek,
    j'ai modifier le template.ini dans \settings\ avec PHPOperatorList[filemtime]=filemtime
    et dans le template j'ai mis : {$filePath|filemtime()}
    mais, malgrés avoir vidé les caches, ça ne fonctionne pas

    alors j'ai ajouté la commande : PHPOperatorList[filemtime]=filemtime
    dans les template.ini.append.php qui avait déjà un [PHP]
    mais sans résultat

    c'est évident que je dois mal m'y prendre ... c'est dur de garder son calme pour un problème aussi basic...
    bref
    merci encore pour votre aide à tous
    philippe

  9. #9
    Membre éclairé Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Points : 683
    Points
    683
    Par défaut
    Salut Philippe,

    Il ne faut jamais toucher aux fichiers .ini directement dans settings/ , mais seulement aux fichiers .ini.append.php

    Rajoute dans le fichier /settings/override/template.ini.append.php le paragraphe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [PHP]
    PHPOperatorList[filemtime]=filemtime
    As-tu vérifié que le chemin désigné par $filePath pointe bien sur le fichier voulu ?

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    oui $filePath pointe bien sur le fichier voulu
    mais dans /settings/override je n'ai pas de fichier template.ini.append.php
    est-ce normal docteur ?

    il n'y a que ceux ci :
    content.ini.append.php
    cronjob.ini.append.php
    ezoe_attributes.ini.append.php
    ezxml.ini.append.php
    forum.ini.append.php
    i18n.ini.append.php
    image.ini.append.php
    menu.ini.append.php
    sanef.ini.append.php
    site.ini.append.php
    viewcache.ini.append.php

  11. #11
    Membre éclairé Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Points : 683
    Points
    683
    Par défaut
    Sinon, question toute bête, mais ça marcherait pas avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {$my_node.object.modified|l10n(shortdatetime)}

  12. #12
    Membre éclairé Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Points : 683
    Points
    683
    Par défaut
    Dans ce cas tu crées le fichier et tu mets dedans ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php /* #?ini charset="utf-8"?
    
    [PHP]
    PHPOperatorList[filemtime]=filemtime
    
    */ ?>

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    J'ai essayé les 2 solutions:
    {$my_node.object.modified|l10n(shortdatetime)}
    et
    créé le fichier : /settings/override/template.ini.append.php
    avec
    <?php /* #?ini charset="utf-8"?
    [PHP]
    PHPOperatorList[filemtime]=filemtime
    */ ?>

    en réinitilisant tous les caches
    mais hélas, niette, nada, rien à l'horizon

  14. #14
    Membre éclairé Avatar de sboyer
    Homme Profil pro
    Développeur PHP chez OpenWide
    Inscrit en
    Février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur PHP chez OpenWide
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 348
    Points : 683
    Points
    683
    Par défaut
    De quelle forme est l'url de ton fichier ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment afficher dans chaque ligne les elements d'un tableau des tableaux ?
    Par younesait dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/04/2017, 15h08
  2. Réponses: 9
    Dernier message: 07/12/2011, 16h57
  3. Comment afficher dans une page html un fichier flash sans problème d'activeX
    Par Alexandrebox dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 09/05/2007, 17h39
  4. delphi:comment afficher dans un label
    Par imeys dans le forum Bases de données
    Réponses: 3
    Dernier message: 26/04/2006, 18h56
  5. Comment afficher dans une combobox les driver des imprimante
    Par lassad dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/10/2005, 08h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo