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

Langage PHP Discussion :

Incorporer du code dynamiquement entre les balises <HEAD> </HEAD>


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 256
    Points : 79
    Points
    79
    Par défaut Incorporer du code dynamiquement entre les balises <HEAD> </HEAD>
    Bonjour,
    Je suis en train d'essayer de rendre mon code plus conforme et normalement, une balise <LINK doit obligatoirement se trouver à l'intérieur de <HEAD>...</HEAD> .
    Bon, c'est bien beau, mais quand j'appelle une fonction qui a besoin de son propre fichier CSS, quand elle est appelée il y a longtemps que </HEAD a été fermé et que le <BODY a été ouvert.
    Alors est-ce qu'il existe une façon d'ajouter du contenu au HEAD dynamiquement ?

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Sénégal

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

    Informations forums :
    Inscription : Mars 2018
    Messages : 12
    Points : 25
    Points
    25
    Par défaut
    Avez vous essayé de définir cette fonction dans une nouvelle page PHP et e l'appeler directement avec la fonction include('page.php');

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 256
    Points : 79
    Points
    79
    Par défaut
    En fait, c'est ce qui se passe à l'heure actuelle. Mais je ne vois pas ce que ça changerait. Cet appel suit suit mon bloc HEAD de toute façon.
    Cette restriction imposée par la norme est assez ridicule. De nos jours il n'existe pratiquement aucun site qui ne soit pas dynamique, et c'est assez élémentaire qu'on puisse avoir besoin de CSS ou de Javascript n'importe où et n'importe quand. D'ailleurs il n'y a aucun navigateur qui se choque quand on y transgresse.

  4. #4
    Membre confirmé Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Points : 492
    Points
    492
    Par défaut
    Ce que dit Lebou NDIAYE est tout à fait exact.
    On a l'impression que tu ne comprends pas quelque chose ou peut-être que c'est moi.

    Est-ce que tu utilises un framework PHP, un moteur de template ?

    En règle générale, le template standard se compose comme suit :
    - header
    - body
    - footer

    Je ne vois pas ce qui t'empêche d'ajouter du "dynamisme" dans le header.
    Tout le monde fait ça tout le temps :-)

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 256
    Points : 79
    Points
    79
    Par défaut
    Aucun framework. En fait j'ai mon propre framework que j'ai développé en ColdFusion depuis plus de 12 ans, je cherche maintenant à en faire une version PHP.
    J'ai un programme principal, qui naturellement déclare
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <HTML
    <HEAD
    ...
    </HEAD
    <BODY
    ...
    </BODY
    </HTML
    puis plus bas
    • include un .php
    • appelle la fonction qui est dans le php

    Mais cette fonction a besoin de styles particuliers dans un fichier CSS et d'un Javascript.
    Or, d'après la norme il faudrait que ces appels de CSS et de script soient absolument dans la section HEAD, c'est franchement malcommode.
    ma section
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <HTML
    <HEAD
    ...
    </HEAD
    se trouve dans un fichier application.php déclaré dans auto_prepend_file dans php.ini.
    Ce fichier contient tout ce qui est nécessaire quelque soit la page appelée.
    Le reste est déclaré par chaque page indépendante, y compris la balise <BODY qui peut comporter des attributs particuliers.

    Le problème, c'est que d'après la norme, il faudrait que je mette dans ce fichier application.php tous les styles et Javascript possibles, même si aucun ne sera finalement utilisé. Ça n'a pas de sens.
    Ce fichier « application » est un concept de base pour toute application en Coldfusion, j'essaie de rester le plus possible conforme à la version d'origine.
    Notez que le problème se trouve également dans mon application CF, mais là maintenant je suis en php.

  6. #6
    Membre confirmé Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Points : 492
    Points
    492
    Par défaut
    Notez que le problème se trouve également dans mon application CF, mais là maintenant je suis en php.
    Si tu es maintenant en PHP, qu'est-ce qui t'empêche de faire ce qui suit ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <head>
        <?php
            liste de mes CSS et JS
        ?>
    </head>

  7. #7
    Membre confirmé Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Points : 492
    Points
    492
    Par défaut
    Si le head n'est pas modifiable via PHP, il y a une autre solution.

    Il suffit de le modifier une fois le document ready via javascript.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Sénégal

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

    Informations forums :
    Inscription : Mars 2018
    Messages : 12
    Points : 25
    Points
    25
    Par défaut
    Mais savez vous qu'en CSS il y'a trois façons de définir les styles:
    1-La première est que vous pouvez définir vos styles dans chaque balise concernée
    2-Ou bien définir vos styles en des balises <style>****</style> mais ces dernières doivent être placées entre les balises HEAD
    3-Et en fin celle de définir un fichier CSS particulier et l'appeler dans ton fichier PHP avec la balise LINK

    J'aurai bien vous aider mais je ne sais pas si j'ai bien saisi votre problème...

    Surtout avec le fait de définir définir des styles dont lesquels vous n'aurez pas besoin ...

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    ce n'est pas un souci de compréhension, mais de CONCEPTION.

    Citation Envoyé par schnee Voir le message
    mais quand j'appelle une fonction qui a besoin de son propre fichier CSS, quand elle est appelée il y a longtemps que </HEAD a été fermé et que le <BODY a été ouvert.
    • PHP agit coté serveur.
    • Il permet de générer le "code source", qui sera affiché dans le navigateur.

    Donc, rien n'empêche de faire les traitements PHP AVANT tout affichage HTML.
    C'est même recommandé.

    Je t'invite à te documenter sur :

    N.B. Par convention, les balises HTML s'écrivent en minuscules : <head>, <body>,...

    1- Idée fausse : NON, les scripts JS n'ont pas besoin d'être dans le <head>.
    Ils peuvent être n'importe où dans le code : de préférence après le code HTML qu'ils concernent (car il faut que les éléments concernés soient présents dans le DOM *).
    * Sinon, on peut/doit utiliser DOMContentLoaded :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    window.addEventListener("DOMContentLoaded", (event) => {
        console.log("DOM entièrement chargé et analysé");
        // ICI, le code JS
    });
    Il est d'ailleurs recommandé de les mettre A LA FIN du script, avant la balise </html>.

    2- Styles CSS : en effet, il est préférable de les déclarer dans le <head>.
    Si tu as des "modules" nécessitant du CSS, il faut les appeler (ou du moins charger leur CSS) AVANT tout affichage HTML, pour intégrer les <link ...> dans le <head>.

    Citation Envoyé par schnee Voir le message
    Le problème, c'est que d'après la norme, il faudrait que je mette dans ce fichier application.php tous les styles et Javascript possibles, même si aucun ne sera finalement utilisé. Ça n'a pas de sens.
    SI, ça a du sens.
    Une fois chargés, les fichiers CSS sont mis en cache du navigateur.
    Donc : autant les charger une fois pour toutes (même s'ils ne sont pas utilisés dans la page en cours).

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

Discussions similaires

  1. 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, 21h39
  2. variables dynamiques de smarty entre les balises de HTML
    Par hassna.kaibous dans le forum Autres langages pour le Web
    Réponses: 1
    Dernier message: 01/07/2008, 10h33
  3. variable dynamiques entre les balises HTML
    Par hassna.kaibous dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 24/06/2008, 15h08
  4. [1.x] Ajout du code entre les balises <head> et </head>
    Par SRTPC dans le forum Symfony
    Réponses: 9
    Dernier message: 28/05/2008, 22h36
  5. [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, 10h39

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