Jump to content

Faire appel à la fonction "include" en php sur un site en xhtml/CSS c'est possible?


Recommended Posts

bonjour à touts les hubeurs et les hubeuses,

je tient tout dabord à m'excuser de la longeur de ce post mais c'est pour vous évitez des questions de compréhension ,

je suis nouveau sur le forum donc veuillez m'excuser à l'avance si je me suis trompé de rubrique d'autant que mon problème est un peu confu... je m'explique

j'ai fait un site extensible avec plusieur calques CSS (ex: width:95%; height:100%...) et plusieurs pages ayant plus ou moins de contenu.

comme j'ai fait un menu très dynamique (qui bouge selon la position horizontale de la sourie :P ) en flash, je ne veux pas que cette animation ce "reload" (recommence) à chaques clic de la sourie sur un lien vers une autre page (car l'animation à un départ assez brutal et très désagréable pour la navigation :thumbsdown: ).

j'avai donc opté au départ pour une page avec une inclusion de mon menu flash dans un calque fixe et en arrière plan un iframe prenant toute la place du navigateur dans un autre calque....ce qui m'a posé plusieurs problèmes :

--> problème de l'hauteur (height) de l'iframe variable selon le contenu de la page apellée (car il ne faut pas que j'ai deux scrollbar celui du navigateur suffit, c'est très déroutant pour le visiteur et pour une question estétique).

-->besoins de javascript pour le référencement des pages apellés dans l'iframe.

-->problème de compatibilité entre des règle CSS sur une page appelé ne marchant pas dans l'iframe de la page principale.

-->apparement je ne peux pas me servir d'un javascript pour reconnaitre la hauteur de ma page apellée dans l'iframe puisqu'elles sont toutes extensibles (les pages)...donc je crois que cela doit fausser les donneés - NB : Si quelqu'un connait un code javascript pouvant permettre de reconnaitre la hauteur d'une page appartenant à un site extensible fait en XHTML et CSS, je suis quand même preneur. (car je n'ai vraiment pas trouvé de code javascript qui marche jusqu'à présent)[

je ne veux pas mettre une hauteur maximal pour l'iframe, puisqu'il y a des pages avec plus ou moins de contenu qui se retrouverai avec un gros blanc désagrable en fin de page :thumbdown: j'ai essayé de m'y faire mais graphiquement je n'y arrive pas :blush:

----> je voudrais donc savoir si je peux inclure facilement mon site xhtml/css qui est déja fait dans une page principale "index" en php avec une fonction include qui remplacerai cet affreux iframe et avec mon animation flash qui ne se reloaderai pas...

ce serai le pied :rolleyes:

en vous remerciant d'avance

Link to post
Share on other sites

Salut,

Pour répondre à la question première, et sachant que le html et le php s'entendent bien ensemble, il est tout à fait possible de faire un "include" de (presque) toute une page dans une autre, à condition de respecter l'extension .php, ce, que le html soit x, y ou schmouldu du vercors.

Attention toutefois à ne pas doublonner tes balises doctype, meta, etc.

Par contre, et déviant cette fois-ci de la question, pour obtenir un référencement "A minima" de ton site, un menu de navigation exclusivement en flash n'est pas une bonne idée.

xpatval

Link to post
Share on other sites

Salut

Il ne faut pas que ça t'effraie, ça n'est pas très compliqué. Je suis loin (très loin) d'être un grand pro, mais j'ai un site dont les entêtes de pages, les pieds de pages et les menus de navigation sont entièrement gérés par des includes, et ça se passe plutôt bien, à part une grosse erreur de débutant qui est désormais corrigée (ne pas nommer les includes blabla.inc mais blabla.php ! -merci Dan).

C'est génial pour les mises à jour. Certaines pages font quelques lignes de php mais 200 lignes envoyées au navigateur.

Il faut être un peu méthodique au départ et tout bien tester avant la mise en ligne définitive (ce que je ne fais pas assez, mea culpa).

Pour le reste, je me limite à mes compétences et à mes opinions : pas de flash (nuisible au référencement et à l'accessibilité, de toute façon), pas d'iframe, très peu de javascript (je préfère faire bosser le serveur que le PC du visiteur).

Comment tourne ton site si le visiteur a désactivé le javascript, comme c'est le cas dans certains réseaux d'entreprise ?

Link to post
Share on other sites

Ouep +1

Tu peux utiliser les includes pour des parties répétitives comme le header / footer, scripts appelés dans plusieurs pages,

mais aussi pour rendre ton code plus lisible par exemple pour y placer un script assez long.

@++

Edited by birdyman
Link to post
Share on other sites

Personnellement, j'essaye de me tenir à une règle :

Un élément -> un fichier.

Ce qui fait que j'ai pas mal d'includes, mais des fichiers appelants beaucoup plus lisibles (et ça me force à coder proprement, de manière à pouvoir réutiliser les fichiers sans modifications).

Link to post
Share on other sites

Si j'ai bien compris tu veux une page xHtml qui contient ton flash et ton contenu et le changement de contenu ne doit pas recharger le flash.

Avec cette hypothese, si tu fais des includes en php, tu rechargeras tes pages à chaque clic ce qui veut dire ton flash aussi.

Une solution élégante pourrait être d'utiliser Ajax pour rafraichir juste une partie de la page sans recharger le reste... A mediter

Link to post
Share on other sites

Comme tous les posts précédents : aucun problème pour mettre des includes dans un site en (X)HTML/CSS.

Par contre, pour ce qui est du menu en Flash, je rejoins l'avis de xpatval : pas top pour le référencement, les moteurs ne suivant pas les liens dans un fichier Flash (à ma connaissance).

Tu peux cependant pallier à celà en reproduisant ton menu en bas de page, en liens texte, par exemple (les moteurs pourront donc indexer toutes tes pages sans problème).

Link to post
Share on other sites

Tout dabord merci de vos réponses très précieuses;

Si je comprend bien je ne peux donc pas inclure un body entier d'une page xhtml dans une fonction include contenu dans une page php, sans modifier le code xhtml de ma page appelé dans l'include? :unsure:

Car mon but de mes recherches sur google est de trouver un exemple ou un tutorial montrant une page contenant une fonction include appelant un fichier .html ou .htm et lui donner une dimension variable selon le contenu de la page chargée, qui rappelons-le est extensible (c'est un peu comme ça que j'apprend :P );

et ainsi ne pas rafraichir mon menu en flash (inclu dans la page .php).

Car par exemple le principe de l'iframe est de charger un page .html à l'intérieur d'une autre page .html qui elle ne sera pas rafraichie, ni le menu flash qu'elle contient; c'est donc le contenu de l'iframe qui change.

Ce que je voudrais, c'est arriver au même résultat mais sans les inconvéniant de l'iframe...mais je crois surtout ne pas avoir très bien saisi le principe du fonctionnement de l'include en php

Tu peux cependant pallier à celà en reproduisant ton menu en bas de page, en liens texte, par exemple (les moteurs pourront donc indexer toutes tes pages sans problème)

Oui c'est que j'ai fait, ce n'est pas visible mais les liens sont présent :)

Par contre il est vrai que pour inclure complètement du flash dans internet explorer il faut appeler l'objet par un code javascript; donc pour les gens qui désactivent le javascript ou les mals voyants munis de navigateurs imcompatibles avec ce code j'ai prévu un lien pointant vers le mème site avec un menu statique en css

Une solution élégante pourrait être d'utiliser Ajax pour rafraichir juste une partie de la page sans recharger le reste... A mediter

Et bien cela me parait bien plus logique de ne pas rafraichir un petit morceau de la page puisqu'il n'est plus question de redimension :w00t: ; sur google j'ai trouvé des pseudo-tutoriaux sur Ajax, mais j'ai la triste impression que je n'y comprend absolument rien :blushing:

Si vous avez des liens vers des tutoriaux "pour les nuls", sur Ajax, à partagé n'hésitez surtout pas

Edited by crouttedepain
Link to post
Share on other sites

En fait, c'est la réflexion portée sur l'architecture de tes pages qui importe. Tu peux très bien faire cela:

<DOCTYPE...>
<?php
include "head.php"; (tes balises meta, par ex)
?>
<body>
<?php
include "header.php";
include "contenu.php";
include "navigation.php";
include "footer.php";
?>
</body>
</html>

Mais quel est l'intérêt dans ton cas ?

xpatval

Link to post
Share on other sites

Salut,

La réponse est simple il n'est pas possible de ne pas recharger une animation flash ( ou n'importe quel élément d'ailleur ) à chaque changement de page sans passer par des frames / iframes ou alors des solutions "type" Ajax .

L'include PHP est traiter coté serveur qui renvoi donc une page html au navigateur comme si il sagissait d'un seul page.

Si je comprend bien ton problème ce qui te gène est que ton menu à une sorte d'intro et que la jouer à chaque fois est pénible .

Pour ca tu peut utiliser une variable que tu passe à ton objet flash apres le premier chargement de ta page pour qu'il ne joue plus cette intro par exemple. Soit en utilisant les cookies , les sessions ou en passant un parametre en mode GET de page en page .

Edited by manmachine
Link to post
Share on other sites

bonjour à tous,

merci beaucoup pour toute vos réponses, j'ai donc laissé tomber le faite de recharger l'animation par iframe ou ajax, tout compte fait ne le faite pas si vous avez déjà fait la structure de votre site, c'est comme tuer une mouche au lance-flamme :P

j'ai finalement mis une variable dans l'animation,ce qui est beaucoup plus simple.

merci encore de vos conseils et sur ce je clos le post :)

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...