| Auteur | |
|---|---|
| Sidji | # 19 Dec 2007 - 18:52:07 |
| 24 Posts |
Bonsoir, Je possède un site web que j'aimerai réussir a coder pour que l'on puisse charger qu'une fois le "design" du site, et que toutes les pages s'ouvre dans le carré accueil/news. Actuellement mes pages s'affichent a l"ancienne c'est à dire que le header footer etc chargent a chaque fois : vous povez le voir notament avec la page d'accueil ( index.htm) et la page série (série.htm). http://generationmangas1.free.fr/Generation%20Mangas/V3/[/url]La structure de mon design est codé sur un CSS "externe" a mon index en html Code XHTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Et mon code CSS : /* ------------------- :: FOND DU SITE :: ------------------ */ J'ai essayé la méthode include pour tester grâce au tuto du site mais je n'y suis pas parvenu Voilàa :s Modifié par Sidji (19 Dec 2007 - 18:52) |
| fvsch | # 20 Dec 2007 - 14:10:02 |
| Administrateur 19941 Posts |
Bonjour,Sidji a écrit : Il y a plusieurs solutions pour cela, mais toutes ont leurs défauts. On peut citer: - les frames (efficace et relativement simple à mettre en place, mais quelques problèmes pour l'ergonomie et le référencement); - le changement dynamique de contenus via Javascript, et notamment ce que l'on appelle Ajax (efficace même si un peu plus ardu, mais très gros problèmes de référencement et quelques problèmes d'ergonomie également). On déconseille donc généralement ces deux options pour quelque chose qui relève de l'accès classique à des contenus (différentes pages d'un site). On reste donc sur le schéma classique: chaque page est un document web unique, et si on veut le même menu ou le même en-tête sur chaque page il faut que le code pour ce menu ou cet en-tête soit présent sur chaque document. Ensuite, on peut soit faire chaque document à la main, soit automatiser certaines choses comme l'insertion du code des éléments «statiques» du site sur chaque page, par exemple en utilisant PHP. Sidji a écrit : Cette méthode correspond à mon dernier paragraphe ci-dessus. Si elle t'intéresse, je ne peux que t'inviter à retravailler le tutoriel que tu évoques. |
| Sidji | # 20 Dec 2007 - 22:22:29 |
| 24 Posts |
Bonjour, j'ai relu encor euen fois la méthode des include, j'ai donc réussi ceci : Mon design et tout ce qui est style est sur un fichier CSS externe nommé design.CSS Mon design est découpé en 3 parties dans un dossier images/design/ mon index est nommé index.php avec le code PHP mis ci dessus, j'ai donc rajouter ceci : <div id="corps"> <!-- Cadre correspondant au CORPS en include --> Donc en bref quand on arrive sur le site, dans la case Accueil/News la page News.php s'ouvre jusqu'ici tout vas bien. ( car la page news doit etre la première page a s'afficher dans le "cadre" quand ona rrive.Cependant désormais je suis bloqué, car mon index.php est la base du site et lorsque j'ouvre d'autre liens, ils ne s'ouvrent pas dans le cadres, pourrait on m'aider ? Merci |
| fvsch | # 20 Dec 2007 - 22:58:10 |
| Administrateur 19941 Posts |
Sidji a écrit : Ben oui, c'est logique, car il n'y a pas de cadre (relire ma réponse ci-dessus...). Allez, je me cite: a écrit : (Il aurait plutôt fallu écrire: l'insertion du code des éléments «statiques» du site dans le code de chaque page.) Là encore, je te renvoie au tutoriel sur les include en PHP. Ce tutoriel est très clair, et sa lecture attentive devrait te permettre d'y voir plus clair. Ce que tu as tenté (vu le bout de code que tu montres) n'a pas grand chose à voir avec la démarche qui est proposée dans ce tutoriel. Est-ce que tu ne l'aurais pas lu en diagonale, par le plus grand des hasards? |
| Hell doc | # 21 Dec 2007 - 10:33:19 |
| 29 Posts |
Salut, Une soluce relativement simple consiste à déclarer un array en php et l'utilisation de la fonction switch. Ca te permet, par exemple, ensuite de faire si dans l'url id=1 include new.php, si id=2 include presentation.php, si id=3 patatipatata.php. J'ai géré un site en 2 langues sur ce modèle et ca marche du tonnerre ++ Hell doc |
| yank | # 21 Dec 2007 - 10:41:19 |
| 544 Posts |
Hell doc a écrit : Ta méthode d'id m'intéresse tu peux m'en dire plus concernant les l'utilisation des id ? |
| yank | # 21 Dec 2007 - 10:45:32 |
| 544 Posts |
Sidji a écrit : Salut C'est normal que les autres pages ne s'ouvrent pas puisque dans index.php tu ne dis pas comme quoi d'autres pages sont autorisées à part news.php. <div id="corps"> Par exemple Mais le code ci dessus n'est pas complet, relis le tuto avant Modifié par yank (21 Dec 2007 - 10:48) |
| Hell doc | # 21 Dec 2007 - 11:19:46 |
| 29 Posts |
Re, Cette solution est similaire à : <?php Dans mon cas, je filais/traçais tout au long de mon site en méthode GET une variable "lang". Grâce aux includes et à la méthode switch http://www.manuelphp.com/php/control-structures.switch.php[/url] j'instanciais ma variable. Ensuite (pour l'exemple) on appelle le fichier include_presentation_$lang.php du dossier "include". Dans mon dossier include se trouve include_presentation_FR.php et include_presentation_EN.php...dans lesquels on déclare les variables qui serviront à afficher le texte (il est impératif de déclarer les variables avec le même nom) exemple $ok = "Bonjour" pour le fichier _FR et $ok="Welcome" pour le fichier _EN et en appelant simplement $ok dans ce système précis ça gère l'affichage franco-anglais, même pas besoin de bdd Je sais pas si j'ai été clair, vous m'direz ^^ ++ Hell doc Ps : autant pour moi ! Modifié par Hell doc (21 Dec 2007 - 11:27) |
| koala64 | # 21 Dec 2007 - 11:24:55 |
| Modérateur 4162 Posts |
Bonjour Hell doc, Pourrais-tu éditer ton message précédent afin de baliser le code comme indiqué dans les règles du forum ? Merci d'avance. |
| Sidji | # 21 Dec 2007 - 20:27:02 |
| 24 Posts |
bon j'ai réessayé en étant attentif au tutorial mais je suis toujours en difficulté xD j'ai séparé le design en 4 parties : header.inc.php, menu.inc.php, corps .inc.php puis enfin le footer.inc.php J'ai donc mis dans chacun de ces fichiers la strucure de mon ancien "index", le nouveau me donen ainsi : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Bon a partir de la mon header s'affiche normalement, mon menu également et mon corps aussi, mais le footer bug de une et je comprends pas pourquoi, le code me semble correct pourtant : <div id="pub"> Or on m'indique une erreur a la ligne 19 ~ Ensuite je sais toujours pas réussir mes includes =s, pourrait on em donner un exemple un peu plus précis avec le code xhtml ci dessus? Merci. PS: afin d'etre un peu plus explicite voilà 2 images pour illustrer Donc quandj'arrive sur el site et seulement quand on arrive la première fois. http://generationmangas1.free.fr/1.jpg[/url]et lorsque j'ouvre l'un des liens de mes menu tel le lien 1 : http://generationmangas1.free.fr/1.jpg[/url]bref j'éspèrerai avoir le header.inc.php, menu.inc.php, et footer.inc.php fixes et justre le corps.inc.php de "dynamique" Modifié par Sidji (21 Dec 2007 - 20:55) |
| yank | # 24 Dec 2007 - 11:36:09 |
| 544 Posts |
Alors utilise la solution que j'ai mise plus haut ... Tu insère le bout de code dans ton div corps, tu remplaces par tes noms de pages, tu rajoutes des lignes avec noms selon le nombre de pages que tu as et que tu veux afficher dans ton "corps". Et tu fais tes pages en les nommant bien de la façon que tu les as nommé dans index.php ... Je te redonne mon code : <div id="corps"> voila il suffit pour toi de nommer et rajouter tes pages. ps le code : Pour appeler tes pages dans ton div corps, et SI la page n'est pas trouvée ALORS par défaut la page news s'affichera. Joyeux noël Dis nous si ça fonctionne |
| Sidji | # 31 Dec 2007 - 11:45:39 |
| 24 Posts |
Bonjour, dsl du retard je retravaille totalement les bases en prenant mon temps pour le moment, et je reprend le PHP depuis le début. Je te tiens au courantde l'avancement et du fonctionnement d'ici 2/3 jours, voilà Merci |
| yank | # 07 Jan 2008 - 09:56:45 |
| 544 Posts |
Sidji a écrit : Alors ? |
| Kaleel | # 10 Jan 2008 - 19:34:37 |
| 2 Posts |
Bonsoir, Je cherche a faire la même chose que le créateur du topic, j'ai donc inséré ton code au quel j'ai ajouté les différentes page de mon site. Alors en effet pour l'accueil celà fonctionne parfaitement, cela s'affiche dans le cadre réservé à l'affichage des différentes pages, cependant je n'arrive pas a appeller les autres pages dans ce cadre. En fait les liens de mon menu du genre Page2.php, ou Page3.php s'ouvrent mais sans le design, c'est à dire sur une nouvelle page. Donc j'aimerais savoir comment définir les liens dans le menu pour que les pages s'affichent (j'ai essayé plusieurs liens comme par exemple: index.php?p=Page1.php" mais ce ne fonctionne pas) Merci bien Cordialement. |
| fvsch | # 10 Jan 2008 - 19:47:32 |
| Administrateur 19941 Posts |
Bonsoir Kaleel, Il n'est jamais évident de faire du PHP sans rien en connaitre du tout. Une connaissance de base de ce langage t'aurait permis de comprendre qu'il fallait changer les valeurs de la variable $pageOK (qui est en fait un tableau associatif). Donc en l'occurrence, ça ferait (dans index.php, en modifiant le code posté par yank): $pageOK = array( Et ensuite dans tes pages (et dans le menu notamment) tu peux faire des liens de ce type: - index.php?p=page-1 - index.php?p=page-2 - index.php?p=page-3 - index.php?p=page-4 - index.php?p=blabla Par ailleurs, je rappelle qu'il y a un tutoriel sur la fonction include en PHP dans les tutoriels d'Alsacréations. Il n'utilise pas la même méthode, mais il peut être utile de le lire également. |
| Kaleel | # 10 Jan 2008 - 21:54:37 |
| 2 Posts |
Bonsoir, Merci d'avoir répondu: J'avais bien compris comment modifier ce code, seulement je ne trouvais pas les liens. Je tiens juste a rectifier votre proposition: index.php?p=page-1 Ne marche pas index.php?page=page-1 fonctionne Voila si ca peut aider de futur recherches Sinon j'aimerais savoir si ce tape "d'inclusion" est propre ? Merci bien Cordialement. PS: a écrit : => En effet je n'y connais pas grand chose mais je me suis deja débrouillé pour d'autres choses bien plus complexes |
| fvsch | # 10 Jan 2008 - 22:37:41 |
| Administrateur 19941 Posts |
Kaleel a écrit : Ça n'est pas tellement ma proposition qui est à modifier, mais plutôt le script qui serait à adapter. Si on veut que la variable passée en paramètre dans l'URL soit p plutôt que page, il suffit de remplacer les $_GET['page'] par $_GET['p']. Ou bien de corriger le script ainsi: <?php Par exemple... Kaleel a écrit : Qu'est-ce qu'une technique propre? |
| Sidji | # 17 Jan 2008 - 20:23:25 |
| 24 Posts |
oula dsl pour le retard je suis pas mal pris avec els cours pour le moment, donc oui j'ai essayé et sa fonctionne très bien Mais j'ai abandonné ce projet pour reprendre depuis le début, donc je reprendrais le code quand j'aurais appris un peu plus sur les variables donc dans mon cas c'est résolu, merci Modifié par Sidji (20 Jan 2008 - 18:39) |