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 :

Ajout du code entre les balises <head> et </head> [1.x]


Sujet :

Symfony PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Ajout du code entre les balises <head> et </head>
    Bonsoir,

    J'ai besoin de rajouter du code entre les balises <head> et </head>.
    Notamment pour ajouter des balises <style type="text/css>...</style>, <script type="text/javascript">...</script> ou encore <base href="..." /> qui sont générés dans mon contrôleur.

    Cependant, je ne trouve aucune fonction permettant de faire cela.

    J'ai bien trouvé les méthodes addstylesheet et addJavascript de l'objet Response mais ceux-ci ne permettent que d'inclure un fichier externe or moi c'est du code interne que je veux ajouter.

    Savez-vous comment je peux faire ?

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Oui, il faut utiliser les slots.
    Ex, dans ton layout.php, entre les <head>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php if (has_slot('mystyle')): ?>
      <?php include_slot('mystyle') ?>
    <?php endif; ?>
    Et dans ton template:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php slot('mystyle') ?>
      <style type="text/css">
      h1{
      	font-size:36pt;
    	text-decoration:underline;
    	}
      </style>
      <script type="text/javascript">
      function do(){
      	//
    	}
      </script>  	
    <?php end_slot() ?>
    En fait, tu peux utiliser les slots n'importe où, dans le layout, dans un component, un partial, ...
    Tiens, c'est une bonne idée pour la FAQ, ça !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Merci Tsilefy.
    Ca répond en effet à ma demande.

    J'avais déjà regardé les slots mais je n'avais pas compris ce qu'on pouvait en faire.
    Maintenant c'est clair pour moi.

    Je marque donc ce post en résolu.

    Encore merci à toi.

  4. #4
    Membre averti
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Points : 445
    Points
    445
    Billets dans le blog
    7
    Par défaut
    Juste une question
    Est ce qu'on peut pas l'ajouter dans view.yml ?
    qui t'empeche de specifier des proprietés pour chaque template dans ce fichiers
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //default : tous les templates vont inclure les css : [default, grid, table]
    default:
     
      stylesheets:    [default, grid, table]
     
      javascripts:    []
    //ceci va ajouter le css main seulement a votre template "testSuccess"
    testSuccess:
      has_layout: on
     
      stylesheets:    [main]
    en plus un code interne peut devenir externe ?

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    A ma connaissance, on ne peut pas, view.yml s'applique uniquement à au contenu même du template, or ici on fait référence depuis le template à un contenu qui sera placé dans le layout commun à toute l'application.
    Peux-tu expliquer le code interne qui devient externe ? Si c'est pour le slot, un slot appartient au Response global, et c'est pourquoi on peut le remplir de n'importe où. Ce n'est pas la définition (locale) du code qui compte, c'est sa déclaration (globale).

  6. #6
    Membre averti
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Points : 445
    Points
    445
    Billets dans le blog
    7
    Par défaut
    c'est à dire on crait un fichier mon_js.js qui contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     function do(){
      	//
    	}
    et un fichier mon_css.css qui contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    h1{
      	font-size:36pt;
    	text-decoration:underline;
    	}
    puis dans view.yml tu ajoute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    testSuccess:
      
      stylesheets:    [mon_css]
    
      javascripts:     [mon_js]
    avec testSuccess le nom de la vue qu'on va personaliser

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Oui, ça, ça marche parfaitement.
    Mais ça ne répond pas au besoin de l'OP qui voulait spécifiquement du code interne, et qui a exclu l'utilisation de tout fichier externe. Je suppose qu'il a ses raisons.

  8. #8
    Membre averti
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Points : 445
    Points
    445
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Tsilefy Voir le message
    ça ne répond pas au besoin de l'OP qui voulait spécifiquement du code interne
    c'est pour cela que j'ai dit :
    un code interne peut devenir externe ?
    enfin il a le choix

  9. #9
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Ah c'était ça !!
    J'ai mal compris, ça y est, je suis bon pour l'internement!

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Le code que je souhaite rajouter sera généré automatique à partir de données que l'utilisateur saisira via un formulaire.

    Je voulais éviter de devoir générze de nouveau fichier depuis mes scripts PHP et de modifier les fichiers de config de symfony tel que view.yml avec PHP.
    C'est pour cela que je cherchais une solution avec du code interne et non externe.
    Sinon ta solution est en effet la meilleure.

    La solution avec les slots ne semble la plus appropriée pour mon cas.

    Merci de votre aide.

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

Discussions similaires

  1. [RegEx] Extraire le code entre les balises <body> d'une page html
    Par abousa3d dans le forum Langage
    Réponses: 5
    Dernier message: 19/05/2010, 11h35
  2. La recherche s'effectue-t-elle dans le texte entre les balises [code]?
    Par franculo_caoulene dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 4
    Dernier message: 18/06/2009, 13h53
  3. Recherche de texte se trouvant entre les balises [code]
    Par Oliv- dans le forum Evolutions du club
    Réponses: 3
    Dernier message: 30/11/2008, 22h39
  4. [IE 6.0] Plus d'affichage entre les balises [code] [/code]
    Par Trap D dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 20/10/2005, 11h39

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