Précédent   Forum du club des développeurs et IT Pro > PHP > Scripts > CMS > eZ Publish
eZ Publish Forum d'entraide sur le script de CMS eZ Publish. Avant de poster -> Tutoriels eZ Publish
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/10/2010, 10h04   #1
yorukaze
Membre confirmé
 
Avatar de yorukaze
 
Inscription : janvier 2007
Messages : 284
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : janvier 2007
Messages : 284
Points : 259
Points : 259
Envoyer un message via MSN à yorukaze
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 !
yorukaze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2010, 11h40   #2
sboyer
Membre chevronné
 
Avatar de sboyer
 
Homme Simon Boyer
Développeur PHP chez OpenWide
Inscription : février 2010
Messages : 344
Détails du profil
Informations personnelles :
Nom : Homme Simon Boyer
Âge : 26
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 : 344
Points : 669
Points : 669
Salut,
Est-ce que ça fonctionne avec
Code :
{attribute_view_gui attribute=$node.data_map.photo}
?
sboyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2010, 11h16   #3
abadou
Candidat au titre de Membre du Club
 
Asmaâ BADOU
Inscription : janvier 2010
Messages : 63
Détails du profil
Informations personnelles :
Nom : Asmaâ BADOU

Informations forums :
Inscription : janvier 2010
Messages : 63
Points : 14
Points : 14
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}
abadou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2010, 10h00   #4
sboyer
Membre chevronné
 
Avatar de sboyer
 
Homme Simon Boyer
Développeur PHP chez OpenWide
Inscription : février 2010
Messages : 344
Détails du profil
Informations personnelles :
Nom : Homme Simon Boyer
Âge : 26
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 : 344
Points : 669
Points : 669
Bonjour,
Il faut mettre "image" ou "photo" en fonction de l'identifiant d'attribut choisi lors de la création de la classe.
sboyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2013, 17h40   #5
eric13500
Futur Membre du Club
 
Homme Eric CHEVRON
Formateur en Bureautique et Informatique
Inscription : novembre 2009
Messages : 26
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 Informatique
Secteur : Conseil

Informations forums :
Inscription : novembre 2009
Messages : 26
Points : 16
Points : 16
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 :
Citation:
$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 !
eric13500 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2013, 14h39   #6
jeanvoye
Membre régulier
 
Homme Nicolas Pastorino
VP Community
Inscription : septembre 2011
Messages : 45
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 : 45
Points : 96
Points : 96
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
jeanvoye est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/02/2013, 07h59   #7
eric13500
Futur Membre du Club
 
Homme Eric CHEVRON
Formateur en Bureautique et Informatique
Inscription : novembre 2009
Messages : 26
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 Informatique
Secteur : Conseil

Informations forums :
Inscription : novembre 2009
Messages : 26
Points : 16
Points : 16
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 :
Citation:
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.
eric13500 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2013, 09h46   #8
sboyer
Membre chevronné
 
Avatar de sboyer
 
Homme Simon Boyer
Développeur PHP chez OpenWide
Inscription : février 2010
Messages : 344
Détails du profil
Informations personnelles :
Nom : Homme Simon Boyer
Âge : 26
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 : 344
Points : 669
Points : 669
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.
sboyer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2013, 19h21   #9
eric13500
Futur Membre du Club
 
Homme Eric CHEVRON
Formateur en Bureautique et Informatique
Inscription : novembre 2009
Messages : 26
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 Informatique
Secteur : Conseil

Informations forums :
Inscription : novembre 2009
Messages : 26
Points : 16
Points : 16
Bonjour Simon, et merci pour ces conseils.

Cependant, je découvre eZ Publish et :
Citation:
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é
Citation:
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...

Citation:
Pour ton image, essaie d'afficher ça :
Citation:
{$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 :
Citation:
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.
eric13500 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2013, 08h38   #10
SylvainGuittard
Membre du Club
 
Homme
Community Engineer
Inscription : août 2012
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : août 2012
Messages : 20
Points : 47
Points : 47
Salut Eric!

Citation:
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}
SylvainGuittard est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/02/2013, 09h56   #11
sboyer
Membre chevronné
 
Avatar de sboyer
 
Homme Simon Boyer
Développeur PHP chez OpenWide
Inscription : février 2010
Messages : 344
Détails du profil
Informations personnelles :
Nom : Homme Simon Boyer
Âge : 26
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 : 344
Points : 669
Points : 669
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
sboyer est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/02/2013, 10h08   #12
SylvainGuittard
Membre du Club
 
Homme
Community Engineer
Inscription : août 2012
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

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

Informations forums :
Inscription : août 2012
Messages : 20
Points : 47
Points : 47
@Simon
Citation:
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
SylvainGuittard est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/02/2013, 13h24   #13
sboyer
Membre chevronné
 
Avatar de sboyer
 
Homme Simon Boyer
Développeur PHP chez OpenWide
Inscription : février 2010
Messages : 344
Détails du profil
Informations personnelles :
Nom : Homme Simon Boyer
Âge : 26
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 : 344
Points : 669
Points : 669
Non lol, il a bien été fait sur $node.data_map.cover
sboyer est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h30.


 
 
 
 
Partenaires

Hébergement Web