Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

Discussion: afficher une image

  1. #1
    Membre confirmé
    Avatar de yorukaze
    Profil pro
    Inscrit en
    janvier 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 28
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : janvier 2007
    Messages : 284
    Points : 259
    Points
    259

    Par défaut afficher une image

    Hello tous,

    voila mon soucis.

    Dans mon template j'essai d'afficher une image. Cette image existe bien, je la vois sur le serveur mais je n'arrive pas à l'afficher.

    En mettant

    Code :
        {attribute_view_gui attribute=$node.data_map.photo.content}
    ou
    .
    Code :
        {attribute_view_gui attribute=$node.data_map.photo.content image_class='large'}
    je n'ai aucun résultat.

    dans mon débug j'ai

    Code :
    None of the templates design:content/datatype/view/.tpl, design:content/datatype/view/.tpl could be found
    Si vous avez une idée c'est le moment

    Merci


    Vous avez trouvé votre bonheur? Alors hop ca aidera tout le monde !

  2. #2
    Membre chevronné Avatar de sboyer
    Homme Profil pro Simon Boyer
    Développeur PHP chez OpenWide
    Inscrit en
    février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Nom : Homme Simon Boyer
    Âge : 27
    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 : 686
    Points
    686

    Par défaut

    Salut,
    Est-ce que ça fonctionne avec
    Code :
    {attribute_view_gui attribute=$node.data_map.photo}
    ?

  3. #3
    Candidat au titre de Membre du Club
    Profil pro Asmaâ BADOU
    Inscrit en
    janvier 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Nom : Asmaâ BADOU

    Informations forums :
    Inscription : janvier 2010
    Messages : 63
    Points : 14
    Points
    14

    Par défaut

    je crois qu'il faut mettre ça :

    Code :
    {attribute_view_gui attribute=$node.data_map.image}

    et pas:

    Code :
    {attribute_view_gui attribute=$node.data_map.photo}

    et bien sur tu peux ajouter la classe image

    Code :
    1
    2
     
    {attribute_view_gui attribute=$node.data_map.image image_class=imagelarge}

  4. #4
    Membre chevronné Avatar de sboyer
    Homme Profil pro Simon Boyer
    Développeur PHP chez OpenWide
    Inscrit en
    février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Nom : Homme Simon Boyer
    Âge : 27
    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 : 686
    Points
    686

    Par défaut

    Bonjour,
    Il faut mettre "image" ou "photo" en fonction de l'identifiant d'attribut choisi lors de la création de la classe.

  5. #5
    Membre du Club Avatar de eric13500
    Homme Profil pro Eric CHEVRON
    Formateur en Bureautique et CMS, Responsable Fondateur de Pôle Efficience
    Inscrit en
    novembre 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Nom : Homme Eric CHEVRON
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur en Bureautique et CMS, Responsable Fondateur de Pôle Efficience
    Secteur : Conseil

    Informations forums :
    Inscription : novembre 2009
    Messages : 88
    Points : 40
    Points
    40

    Par défaut

    Bonjour.

    Je suis en train d'étudier eZ Publish et je me heurte au même problème, avec un peu plus d'essais :

    Contexte :
    • eZ Publish 2011-11
    • package ezwebin


    J'ai créé une classe "Livre" avec entre autres attributs "cover" de type image censé contenir la couverture du livre.

    J'ai en parallèle créé un template pour l'affichage des objets de cette classe.

    Je parviens à afficher tous les attributs, sauf "cover"

    J'ai essayé :
    Code :
    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
    <table border=1>
    	<tr>
    		<td>$node.data_map.cover.has_content ==> </td>
    		<td>{$node.data_map.cover.has_content}</td>
    	</tr>
    	<tr>
    		<td>$node.data_map.cover ==> </td>
    		<td>{$node.data_map.cover}</td>
    	</tr>
    	<tr>
    		<td>$node.data_map.cover.content ==> </td>
    		<td>{$node.data_map.cover.content}</td>
    	</tr>
    	<tr>
    		<td>$node.data_map.cover.image ==> </td>
    		<td>{$node.data_map.cover.image}</td>
    	</tr>
    	<tr>
    		<td>$object.data_map.cover ==> </td>
    		<td>{$object.data_map.cover}</td>
    	</tr>
    	<tr>
    		<td>$object.data_map.cover.content ==> </td>
    		<td>{$object.data_map.cover.content}</td>
    	</tr>
    	<tr>
    		<td>$object.data_map.cover.image ==> </td>
    		<td>{$object.data_map.cover.image}</td>
    	</tr>
    	<tr>
    		<td>attribute_view_gui attribute=$node.data_map.cover ==> </td>
    		<td>{attribute_view_gui attribute=$node.data_map.cover}</td>
    	</tr>
    	<tr>
    		<td>attribute_view_gui attribute=$node.data_map.cover.content ==> </td>
    		<td>{attribute_view_gui attribute=$node.data_map.cover.content}</td>
    	</tr>
    	<tr>
    		<td>attribute_view_gui attribute=$node.data_map.cover.image ==> </td>
    		<td>{attribute_view_gui attribute=$node.data_map.cover.image}</td>
    	</tr>
    	<tr>
    		<td>attribute_view_gui attribute=$object.data_map.cover ==> </td>
    		<td>{attribute_view_gui attribute=$object.data_map.cover}</td>
    	</tr>
    	<tr>
    		<td>attribute_view_gui attribute=$object.data_map.cover.content ==> </td>
    		<td>{attribute_view_gui attribute=$object.data_map.cover.content}</td>
    	</tr>
    		<tr>
    		<td>attribute_view_gui attribute=$object.data_map.cover.image ==> </td>
    		<td>{attribute_view_gui attribute=$object.data_map.cover.image}</td>
    	</tr>
    Et après avoir vidé tous les caches et rafraîchi ma page, j'en obtiens :
    $node.data_map.cover.has_content ==> 1
    $node.data_map.cover ==> Object(eZContentObjectAttribute)
    $node.data_map.cover.content ==> Object(eZImageAliasHandler)
    $node.data_map.cover.image ==>
    $object.data_map.cover ==>
    $object.data_map.cover.content ==>
    $object.data_map.cover.image ==>
    attribute_view_gui attribute=$node.data_map.cover ==>
    attribute_view_gui attribute=$node.data_map.cover.content ==>
    attribute_view_gui attribute=$node.data_map.cover.image ==>
    attribute_view_gui attribute=$object.data_map.cover ==>
    attribute_view_gui attribute=$object.data_map.cover.content ==>
    attribute_view_gui attribute=$object.data_map.cover.image ==>

    Evidemment, il me faut résoudre ça pour hier !!!

    Je remercie donc chaleureusement quiconque pourra me donner une piste, une explication, ou mieux encore une solution !

  6. #6
    Membre habitué
    Homme Profil pro Nicolas Pastorino
    VP Community
    Inscrit en
    septembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Nom : Homme Nicolas Pastorino
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : VP Community
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2011
    Messages : 63
    Points : 132
    Points
    132

    Par défaut

    Bonjour Eric,

    La bonne ligne est la suivante:

    Code :
    1
    2
     
    {attribute_view_gui attribute=$object.data_map.cover}
    Qui se charge normalement de générer la balise img.

    Il serait intéressant d'activer le DebugOutput ainsi que le TemplateDebug pour s'assurer qu'un template est bien disponible et utilisé par la fonction de template attribute_view_gui.

    Pour ce faire, dans une surcharge du site.ini (au niveau "override" - settings/override/site.ini.append.php - ou bien au niveau siteaccess settings/siteaccess/<nom_du_siteaccess>/site.ini.append.php) place la config suivante:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    [DebugSettings]
    DebugOuput=enabled
     
    [TemplateSettings]
    Debug=enabled
    DevelopmentMode=enabled
    ShowXHTMLCode=disabled
    ShowUsedTemplates=enabled
    Un vidage de cache (au moins INI) sera nécessaire.

    Vérifie ensuite, en rechargeant la page de view full d'un objet de la classe "Livre", qu'il n'y a pas d'erreur relative au chargement du template templates/content/datatype/view/ezimage.tpl

    L'alternative, moins propre, est de dupliquer le travail effectué par le template d'affichage du datatype (templates/content/datatype/view/ezimage.tpl) dans ton template de view full, générant à la main la balise <img>. Exemple:

    Code :
    1
    2
     
    <img src={$object.data_map.cover.content.medium.url|ezroot} />
    "medium", dans la ligne ci-dessus, correspondant à l'image alias ( plus d'info ici et )

    Tiens nous au courant,
    --
    Nicolas

  7. #7
    Membre du Club Avatar de eric13500
    Homme Profil pro Eric CHEVRON
    Formateur en Bureautique et CMS, Responsable Fondateur de Pôle Efficience
    Inscrit en
    novembre 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Nom : Homme Eric CHEVRON
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur en Bureautique et CMS, Responsable Fondateur de Pôle Efficience
    Secteur : Conseil

    Informations forums :
    Inscription : novembre 2009
    Messages : 88
    Points : 40
    Points
    40

    Par défaut

    Bonjour, et grand merci pour cette réponse aussi rapide que précise.

    A l'instant où je réponds, j'ai suivi ton premier conseil, à savoir activer les debug au niveau site et au niveau site access => Rien...

    Avant d'appliquer la solution "moins propre", j'aimerai avoir ton avis sur la méthode que j'ai employée :

    dans le dossier \extension\ezwebin\design\ezwebin\override\templates\full, j'ai ajouté le fichier book.tpl ainsi composé :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <table>
    	<tr>
    		<td align="left">
    			<h1>{$node.data_map.title.content}</h1>
    			<p><em>{attribute_view_gui attribute=$node.data_map.isbn}</em><br />
    				{$node.data_map.type.content} by <strong>{$node.data_map.author.content}</strong><br />
    				Published in {$node.data_map.date.content.year}
    		</td>
    		<td align="right">
    			{attribute_view_gui attribute=$object.data_map.cover}
    		</td>
    	</tr>
    	<tr colspan=2>
    		<td>
    			<p>{attribute_view_gui attribute=$node.data_map.description}</p>
    		</td>
    	</tr>
    </table>
    (Ca casse pas trois pattes à un canard, mais c'était pour tester la notion de template personnalisé)

    Pour que ce template soit "connu" d'eZ Publish, j'ai ajouté les lignes suivantes à :
    • \settings\siteaccess\ezwebin_site\override.ini.append.php
      \settings\siteaccess\eng\override.ini.append.php
      \settings\siteaccess\fre\override.ini.append.php


    Code :
    1
    2
    3
    4
    5
    [livre]
    Source=node/view/full.tpl
    MatchFile=full/book.tpl
    Subdir=templates
    Match[class_identifier]=book
    En dehors de l'image, le résultat est au rendez-vous.

    Après quelques fouilles, je me suis aperçu d'un détail qui n'en est peut-être pas un :
    En mode édition d'un livre, dans l'attribut "image" apparaît le nom de l'image, alors qu'en mode édition d'un article, c'est l'image elle-même qu'on voit...
    J'en viens à supposer que le problème ne relève pas de l'affichage de l'image par le template, mais plutôt du chargement de ladite image dans ma classe "Livre"...

    A titre indicatif, voici le descriptif de l'attribut :
    4. Couverture [Image] (id:343)
    Nom: Couverture
    Identifiant: cover
    Catégorie: Par défaut (Content)
    Description: Photo de la couverture du livre
    Drapeaux:
    N'est pas requis
    Recherche non autorisée
    Ne collecte pas d'informations
    La traduction est activée
    En espérant que ces détails supplémentaires te permettront de me mettre sur la voie, et en te remerciant encore de te pencher sur le problème, bien cordialement,
    Eric.

  8. #8
    Membre chevronné Avatar de sboyer
    Homme Profil pro Simon Boyer
    Développeur PHP chez OpenWide
    Inscrit en
    février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Nom : Homme Simon Boyer
    Âge : 27
    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 : 686
    Points
    686

    Par défaut

    Salut,

    Attention, ici tu as ajouté un fichier dans l'extension "ezwebin".
    Cela est fortement déconseillé !

    La bonne pratique est de créer une extension spécifique pour ton projet, qui contiendra les design, settings, classes et opérateurs dont tu auras besoin.

    Pour ton image, essaie d'afficher ça :
    Code :
    {$node.data_map.cover|attribute('show', 1)}
    Ca te donnera déjà quelques pistes pour comprendre comment est stocké tout cela. C'est l'équivalent du print_r php, mais tu peux définir la profondeur grâce au chiffre en deuxième argument.

  9. #9
    Membre du Club Avatar de eric13500
    Homme Profil pro Eric CHEVRON
    Formateur en Bureautique et CMS, Responsable Fondateur de Pôle Efficience
    Inscrit en
    novembre 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Nom : Homme Eric CHEVRON
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur en Bureautique et CMS, Responsable Fondateur de Pôle Efficience
    Secteur : Conseil

    Informations forums :
    Inscription : novembre 2009
    Messages : 88
    Points : 40
    Points
    40

    Par défaut

    Bonjour Simon, et merci pour ces conseils.

    Cependant, je découvre eZ Publish et :
    Attention, ici tu as ajouté un fichier dans l'extension "ezwebin".
    Cela est fortement déconseillé !
    J'ai suivi un des rares tutos que j'ai trouvé
    La bonne pratique est de créer une extension spécifique pour ton projet, qui contiendra les design, settings, classes et opérateurs dont tu auras besoin.
    Tu veux dire que je dois réécrire mon propre équivalent à ezwebin ???
    J'en ai pour 2 ans !!!
    En plus, et quand bien même j'y parviendrais, je n'ai aucune idée de comment l'utiliser
    Si tu pouvais m'en dire un peu plus sur la méthode...

    Pour ton image, essaie d'afficher ça :
    {$node.data_map.cover|attribute('show', 1)}
    Ca te donnera déjà quelques pistes pour comprendre comment est stocké tout cela.
    Voilà ce que ça donne :
    Code :
    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
    Attribute_______________________________Type________________________________Value
    id______________________________________string______________________________1269
    contentobject_id________________________string______________________________213
    version_________________________________string______________________________19
    language_code___________________________string______________________________'eng-US'
    language_id_____________________________string______________________________4
    contentclassattribute_id________________string______________________________343
    attribute_original_id___________________string______________________________0
    sort_key_int____________________________string______________________________0
    sort_key_string_________________________string______________________________''
    data_type_string________________________string______________________________'ezimage'
    data_text_______________________________string______________________________' '
    data_int________________________________NULL	
    data_float______________________________string______________________________0
    contentclass_attribute__________________object[eZContentClassAttribute]_____Object
    contentclass_attribute_identifier_______string______________________________'cover'
    contentclass_attribute_name_____________string______________________________'Couverture'
    can_translate___________________________integer_____________________________1
    is_information_collector________________string______________________________0
    is_required_____________________________string______________________________0
    content_________________________________object[eZImageAliasHandler]_________Object
    has_http_value__________________________boolean_____________________________false
    value___________________________________object[eZImageAliasHandler]_________Object
    has_content_____________________________string______________________________1
    class_content___________________________string______________________________''
    object__________________________________object[eZContentObject]_____________Object
    object_version__________________________object[eZContentObjectVersion]______Object
    view_template___________________________string______________________________'ezimage'
    edit_template___________________________string______________________________'ezimage'
    result_template_________________________string______________________________'ezimage'
    has_validation_error____________________boolean_____________________________false
    validation_error________________________NULL	
    validation_log__________________________NULL	
    language________________________________object[eZContentObjectAttribute]____Object
    is_a____________________________________string______________________________'ezimage'
    display_info____________________________array_______________________________Array(4)
    class_display_info______________________array_______________________________Array(2)
    En dehors du fait que la possibilité de créer un tableau dans l'éditeur de ce forum manque cruellement, j'y constate que
    • has_content ==> string ==> 1

    ce qui me semble vouloir dire que l'objet n'est pas vide
    et
    • content ==> object[eZImageAliasHandler] ==> Object

    ce qui ne me dit pas comment afficher l'image

    Et quid de l'interrogation que j'évoquais dans mon précédent post :
    Après quelques fouilles, je me suis aperçu d'un détail qui n'en est peut-être pas un :
    En mode édition d'un livre, dans l'attribut "image" apparaît le nom de l'image, alors qu'en mode édition d'un article, c'est l'image elle-même qu'on voit...
    J'en viens à supposer que le problème ne relève pas de l'affichage de l'image par le template, mais plutôt du chargement de ladite image dans ma classe "Livre"...
    Encore merci pour les réponses que vous m'avez donné... et celles que vous ajouterez !
    Bien cordialement,
    Eric.

  10. #10
    Membre du Club
    Homme Profil pro
    Digital Experience Manager
    Inscrit en
    août 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Digital Experience Manager
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2012
    Messages : 24
    Points : 57
    Points
    57

    Par défaut

    Salut Eric!

    Tu veux dire que je dois réécrire mon propre équivalent à ezwebin ???
    J'en ai pour 2 ans !!!
    En plus, et quand bien même j'y parviendrais, je n'ai aucune idée de comment l'utiliser
    Si tu pouvais m'en dire un peu plus sur la méthode...
    Il n'est effectivement pas préférable de modifier ezwebin (ou ezflow, ezdemo) qui sont les designs par défaut d'eZ Publish. Cela te permet de conserver un affichage pour toutes les fonctions natives d'eZ Publish.
    L'idéal étant comme Simon l'a dit de créer une extension spécifique à ton site qui se chargera de gérer les nouvelles fonctions et classes de contenu que tu auras mises en place. Il ne s'agit pas de redévelopper entièrement eZ Publish...
    Si ton objectif est de découvrir eZ Publish, tu peux d'amuser à bidouiller à l'intérieur d'ezwebin (à tes risques et périls )... moi même j'ai commencé comme cela.


    En ce qui concerne l'affichage de ton image, je pense que book.tpl n'affiche pas l'image car tu fais appel à
    Code :
    {attribute_view_gui attribute=$object.data_map.cover}
    alors que tu cherches à afficher la vue full d'un noeud.

    Essaie:
    Code :
    {attribute_view_gui attribute=$node.data_map.cover image_class=medium}

  11. #11
    Membre chevronné Avatar de sboyer
    Homme Profil pro Simon Boyer
    Développeur PHP chez OpenWide
    Inscrit en
    février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Nom : Homme Simon Boyer
    Âge : 27
    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 : 686
    Points
    686

    Par défaut

    Citation Envoyé par SylvainGuittard Voir le message
    En ce qui concerne l'affichage de ton image, je pense que book.tpl n'affiche pas l'image car tu fais appel à
    Code :
    {attribute_view_gui attribute=$object.data_map.cover}
    alors que tu cherches à afficher la vue full d'un noeud.

    Essaie:
    Code :
    {attribute_view_gui attribute=$node.data_map.cover image_class=medium}
    Je ne pense pas que ça vienne de là, car attribute show affiche bien le bon attribut.

    Voici deux choses à vérifier souvent lorsqu'on utilise eZPublish :
    1. Es-tu sûr d'avoir les bons droits sur les fichiers ?
    2. As-tu vidé les caches ?

    Si oui, alors est-ce que tu vois l'image dans le backoffice ? Apparemment non. Essaie d'uploader une nouvelle image, parfois il peut y avoir des soucis d'upload avec certaines images.


    Concernant la création d'une extension, ça fait peur mais en fait c'est assez simple, et tu ne mets dedans que ce dont tu as besoin. Je pense qu'il faudrait ouvrir un autre topic pour cela.
    En attendant voici un tuto : http://abetari.com/Blog/eZ-Publish/C...ion-eZ-publish

  12. #12
    Membre du Club
    Homme Profil pro
    Digital Experience Manager
    Inscrit en
    août 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Digital Experience Manager
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2012
    Messages : 24
    Points : 57
    Points
    57

    Par défaut

    @Simon
    Je ne pense pas que ça vienne de là, car attribute show affiche bien le bon attribut.
    Mais attribute show a été fait sur $node, non?

    Ou alors il faut que j'aille me coucher

  13. #13
    Membre chevronné Avatar de sboyer
    Homme Profil pro Simon Boyer
    Développeur PHP chez OpenWide
    Inscrit en
    février 2010
    Messages
    348
    Détails du profil
    Informations personnelles :
    Nom : Homme Simon Boyer
    Âge : 27
    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 : 686
    Points
    686

    Par défaut

    Non lol, il a bien été fait sur $node.data_map.cover

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •