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] Relations Object with template


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut [eZ Publish] Relations Object with template
    Bonjour ,

    Je Cherche un solution pour le probleme suivant :

    j'ai deux classe : a et b
    et j'ai 1 template pour chacune de ces classes.

    Dans la classe a , la classe b est en relation objet !

    Mon probleme est que dans le template de la classe a , jintegre le template de la classe b ! avec un include ! mais je n'arrive pas a afficher les données de la classe b !
    Sachant que le contenu de la classe b sont des relations_objects.

    C'est a dire que si mon template b est un tableau avec toutes les données que j'ai collecté avec mes relations objects, je narrive pas apres un include a affiché le tableau ainsi que ces données ! ( il n'y a que le tableau qui apparait , mais je narrive pas a appeler les données)

    Merci,
    Cordialement

  2. #2
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Salut et Bienvenu,

    tu n'as pas besoin de faire l'inclusion utilises plutôt la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {content_view_gui content_object=$object view=full }
    Quant à l'objet à passer fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {$la_variable_contenant_lattribut|attribute(show,2)}
    poste le résultat ici, cela permettras de t'indiquer la valeur à passer à content_view_gui.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut template
    Bonjour, et merci de ta réponse.

    Je ne suis pas vraiment sure d'avoir compris tes directives.

    Donc voici mon template A.

    Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <fieldset><legend>Titre de loeuvre</legend>
    {attribute_view_gui attribute=$node.data_map.name}</fieldset>
     
    <fieldset><legend>Lien Oeuvre personne</legend>
    {include uri='design:lien/lop.tpl'}
    Alors, j'ai fait un include sur mon deuxieme template "lop.tpl", comme on le voit ci-dessus.

    Et ci-dessous, voici mon template lop.tpl

    Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <table>
    	<th>Type</th>
    	<th>Artiste</th>
    		<tr>
    			<td>
    {attribute_view_gui attribute=$node.data_map.artistlop}
                            </td>
    			<td>
    {attribute_view_gui attribute=$node.data_map.typelop}
                            </td>
    	        </tr>
    </table>

    Les attributs " artistlop " et " typelop " etant des relations objects avec 2 fiches distincts.


    Le but est donc d'avoir sur template A,
    en incluant mon template lop.tpl
    les resultats de ce dernier , soit artistlop et typelop.



    En fait cest pour un site de music.

    J'ai :
    une classe oeuvre
    une classe artiste
    une classe type de lartiste
    uen classe lien oeuvre personne


    Le but cest de pouvoir creer une fiche oeuvre, et avec un relations object, inserer tous les artistes en relation avec cette oeuvre, accompager du type de chacun des artistes.

    Pour cela j'ai creer la classe lien oeuvre personne, qui a pour relations objets : la classe artiste et la classe type de l'artiste.

    Ainsi dans ma classe oeuvre de fait un include de la classe lien oeuvre personne, afin davoir un tableau du style.


    -------------------
    Nom de l'oeuvre


    type artiste | Nom artiste en relation avec loeuvre1
    type artiste | Nom artiste idem 2
    type artiste | Nom artiste idem 3
    type artiste | Nom artiste idem 4

    -------------------


    Sinon ce que j'essaie de faire, cest
    de changer le template du datatype relationsobjects
    afin qu'il puisse me renvoyé les attibuts type et nom de lartiste ds la fiche "liens oeuvre personne", au lieu de me renvoyer le nom de la fiche.

    mais je ne sais pas quoi mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {content_view_gui view=embed content_object=fetch( content, object, hash( object_id, $Relations.item.contentobject_id))}
    ceci affiche le nom de larticle.


    Merci bcp , de votre patience .

  4. #4
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Par défaut
    Salut,

    Comme te l'as dis thes32, tu n'as pas besoin de faire d'inclusion. Il te suffit d'utiliser content_view_gui.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <fieldset><legend>Titre de loeuvre</legend>
    {attribute_view_gui attribute=$node.data_map.name}</fieldset>
     
    <fieldset><legend>Lien Oeuvre personne</legend>
    <table>
        <tr>
            <th>Type</th>
            <th>Artiste</th>
        </tr>
        <tr>
            <td>{content_view_gui content_object=$node.data_map.artistlop.object view=full}</td>
            <td>{content_view_gui content_object=$node.data_map.typelop.object view=full}</td>
        </tr>
    </table>
    Ensuite il te suffira d'ajouter une règle dans override.ini.append.php pour spécifier quelle template utiliser pour afficher tes deux relations objects !
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut override
    Qu'entends tu par :

    une règle dans override.ini.append.php pour spécifier quelle template utiliser pour afficher tes deux relations objects !
    ?

    car dans mon fichier override, jai deja overrider ma classe lien oeuvre artiste et ma classe oeuvre.

    et en essayant le code que tu mas montré , j'obtient :

    Type Artiste
    Current version Current version

    Related objects Related objects
    None None

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut override
    Voici ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [full_lop]
    Source=node/view/full.tpl
    MatchFile=lien/lop.tpl
    Subdir=templates
    Match[class_identifier]=lop
     
     
    [full_oeuvre]
    Source=node/view/full.tpl
    MatchFile=full/oeuvre.tpl
    Subdir=templates
    Match[class_identifier]=oeuvre
    Match[view]=lop

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/04/2009, 14h07
  2. Réponses: 2
    Dernier message: 27/07/2007, 09h21

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