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

Symfony PHP Discussion :

Partial avec un morceau de code variable


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Points : 88
    Points
    88
    Par défaut Partial avec un morceau de code variable
    Bonjour,
    j'ai dans mon appli différents listings: articles, tutoriaux, etc...
    Le template étant très similaire selon le type de liste, j'ai utilisé un partial global. Grosso modo le code du partial est du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php foreach($elements as $element):?>
      <div class="div1" >
        <?php echo $element->$myfunction();?>
      </div>
      <div class="div2">
        <!-- du code ici -->
      </div>
      <!-- encore plein de code soit commun à tous, soit du genre de celui dans div1-->
    <?php endforeach;?>
    Pour div1 et le reste pas de problème je passe comme suit dans mon template
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php include_partial('global/monpartial',array('elements'=>$variable,'myfunction'=>'getProperty');
    Par contre dans div2 je dois utiliser du code différent:
    -des fois je n'affiche pas div2
    -cela peut être un lien du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo link_to('monlien',$element) ?>
    -voir même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <?php echo sfMyFunctions::abracadabra($element->$myfunction() ?>
    Y a t'il un moyen d'avoir une partie variable dans un partial?
    Peut être un slot mais est ce possible de les définir dans le template en utilisant des variables qui existeront dans le partial ? (cas de $element)

    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 69
    Points : 67
    Points
    67
    Par défaut
    Dans l'attente d'une réponse de quelqu'un de plus experimenté je vais te dire ce que moi j'aurais fait (mais c'est ptet pas la façon la plus propre)

    J'aurais tout simplement géré ça avec des conditions dans le partial, en passant des variables qui définissent ces conditions au partial.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Points : 88
    Points
    88
    Par défaut
    Merci pour ta réponse, pour l'instant c'est ce que j'ai fait.
    Si qqu'un connait une manière propre pour résoudre ce problème ?

  4. #4
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Si tu n'as pas à accéder à la couche modèle, ce qui impliquerait un passage par celle du contrôleur, c'est la bonne méthode. Du moins tant que le code n'est pas illisible.

    Si non, c'est qu'il faut tout repenser depuis le départ (peut-être même depuis l'appel du form).
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Points : 88
    Points
    88
    Par défaut
    Citation Envoyé par Michel Rotta Voir le message
    Si tu n'as pas à accéder à la couche modèle, ce qui impliquerait un passage par celle du contrôleur, c'est la bonne méthode. Du moins tant que le code n'est pas illisible.
    Non j'ai juste eu à mettre 3 if() pour gérer les 3 rendus possibles, ça reste lisible mais je suis à la limites.
    Citation Envoyé par Michel Rotta Voir le message
    Si non, c'est qu'il faut tout repenser depuis le départ (peut-être même depuis l'appel du form).
    Non c'est pas pour un form, c'est pour une pagination.
    En gros j'utilise le même design pour paginer une liste d'articles, de personnes, d'objets etc... donc j'ai utilisé un partial.

    dans mon partial je fais un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $elements = $pager->getResults();
     
    <?php foreach ($elements as $element)?>
    du html ...
     
    <!-- la partie qui change -->
    <span><?php echo $element->$function() ?></span>  <!-- pour un article -->
    <!-- pour une personne -->
    <a href="<?php url_for('mon_url',$element->$function())?>" >$element->$function()</a>
    etc...
    où $function est transmise selon le type d'élément à mon partial
    array('function'=>'getTitle') pour un article
    array('function'=>'getGroup') pour une personne
    etc...

Discussions similaires

  1. [XL-2010] Code unique avec nom de feuille en variable
    Par alexr05 dans le forum Excel
    Réponses: 5
    Dernier message: 26/04/2015, 18h03
  2. [JpGraph] gestion de codes/variables avec jpgraph
    Par mamouth2000 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 17/03/2014, 23h50
  3. variable avec accolades(compréhension du code)
    Par stephane543 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/08/2009, 00h38
  4. [JSP] [include] inclure un morceau de code
    Par viena dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/01/2005, 11h51
  5. [langage] Probleme avec commande system et code
    Par Ludo167 dans le forum Langage
    Réponses: 3
    Dernier message: 14/07/2004, 12h01

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