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).

Smiley url 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">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
	<head>
		<title> :: [ Generation Mangas V3 >> Découvrez la passion a travers l'animation ! ] :: //</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<link rel="stylesheet" media="screen" type="text/css" title="designV3" href="CSS/designV3.css" />
	</head>
	<body>
		<div id="header">

		<!-- Ici on mettra le header  mais en CSS-->
			<div id="tagboard">
				<p>Ici se trouvera la tagboard de Génération Mangas.</p>
			</div>
			<div id="editorial">
				<p>Bienvenue sur notre site ! A ce jour énormément de sites web proposent des séries en téléchargement, mais beaucoup d'animés et de de mangas sont souvent mis à l'écart. <br />
				 Sans compter de très bon OST qui passent inapercus ou encore des dossiers incomplets dû tout simplement au manque de traitements de ces sections au détriment du download. <br />

				 Sur Generation Mangas, vous retrouverez donc une petite communauté qui grandira doucement mais sûrement!<br />
				 Nous ne priviligeons pas seulement la section multimédia et vous retrouverez toujours de l'actualité sur l'animation ! <br />
				 Nous vous souhaitons une agréable visite et n'hésitez pas à nous faire part de vos critiques, bon surf !</p>
			</div>
		</div>
		<div id="page">
			<div id="menu"> <!-- Cadre correspondant au menu -->

				<div id="home"> <!-- Cadre correspondant au menu HOME -->
					<a href="index.htm" title="News">News</a><br />
					<a href="infos_site.htm" title="Informations sur le site">Informations sur le site</a><br />
					<a href="staff.htm" title="Staff">Staff</a><br />
					<a href="recrutement.htm" title="Recrutement">Recrutement</a><br />
					<a href="http://generationmangas1.free.fr/Forum/GM/index.php" title="Forum">Forum</a><br />

					<a href="http://www.i-services.net/membres/livredor/livredor.php?user=53399" title="Livre d'or">Livre d'or</a><br />
					<a href="bannieres.htm" title="Bannières">Bannières</a><br />
					<a href="mailto:generationmangas1@free.fr" title="Nous contacter">Nous contacter</a><br />
					<a href="dons_ftp.htm" title="Dons FTP">Dons FTP</a><br />
					<a href="sondages.htm" title="Sondages">Sondages</a><br />
					<a href="faq.htm" title="FAQ">FAQ</a><br />

					<a href="liens.htm" title="Liens">Liens</a>
				</div>
				<div id="multimedia"> <!-- Cadre correspondant au menu MULTIMEDIA -->
					<a href="series.htm" title="Séries">Séries</a><br />
					<a href="oavs.htm" title="OAVs">OAVs</a><br />
					<a href="films.htm" title="Films">Films</a><br />

					<a href="osts.htm" title="OSTs">OSTs</a><br />
					<a href="scans.htm" title="Scans">Scans</a><br />
					<a href="covers.htm" title="Covers">Covers</a><br />
					<a href="dossiers.htm" title="Dossiers">Dossiers</a><br />
					<a href="galerie_images.htm" title="Galerie d'images">Galerie d'images</a><br />
					<a href="wallpapers.htm" title="Wallpapers">Wallpapers</a><br />

					<a href="amvs.htm" title="AMVs">AMVs</a><br />
					<a href="fans.htm" title="Créations de fans">Créations de fans</a><br />
					<a href="utilitaires.htm" title="Utilitaires">Utilitaires</a><br />
				</div>
				<div id="partenaires"> <!-- Cadre correspondant au menu PARTENAIRES -->
					<a href="bannieres.htm" title="Votre site ici?">Votre site</a><br />

					<a href="bannieres.htm" title="Votre site ici?">Votre site</a><br />
					<a href="bannieres.htm" title="Votre site ici?">Votre site</a><br />
					<a href="bannieres.htm" title="Votre site ici?">Votre site</a><br />
					<a href="bannieres.htm" title="Votre site ici?">Votre site</a><br />
					<a href="bannieres.htm" title="Votre site ici?">Votre site</a><br />
					<a href="bannieres.htm" title="Votre site ici?">Votre site</a><br />

					<a href="bannieres.htm" title="Votre site ici?">Votre site</a><br />
					<a href="bannieres.htm" title="Votre site ici?">Votre site</a><br />
					<a href="bannieres.htm" title="Votre site ici?">Votre site</a><br />
					<br />
					<a href="liens.htm" title="Voir tous les partenaires">Voir tous les partenaires</a>
				</div>
			</div>

			<div id="corps"> <!-- Cadre correspondant au CORPS en include -->

			</div>
		</div>
		<div id="footer">
			<div id="pub">
			<!-- Ici on mettra la pub-->
			</div>
		</div>

	</body>
</html>


Et mon code CSS :

/* ------------------- :: FOND DU SITE :: ------------------ */
/* --------------------------------------------------------------*/

body
{
	width: 900px;
	margin: auto;
	background-color: white;
	line-height: 12px;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 10px;
}

a img
{
border: none;
}


/* --------------- :: STYLE DES LIENS :: -------------- */
/* ----------------------------------------------------------*/

a:link
{
	color: black;
	text-decoration: none;
	font-weight: normal;
	cursor: crosshair;
	word-spacing: normal;
	white-space: normal;
}

a:active
{
	color: #FF0000;
	text-decoration: none;
	font-weight: normal;
	cursor: crosshair;
	word-spacing: normal;
	white-space: normal;
}

a:visited
{
	color: black;
	text-decoration: none;
	font-weight: normal;
	cursor: crosshair;
	word-spacing: normal;
	white-space: normal;
}

a:hover
{
	color: #0D0EA2;
	text-decoration: none;
	font-weight: bold;
	cursor: crosshair;
	word-spacing: normal;
	white-space: normal;
}

/* --------------- :: STYLE DES TITRES :: -------------- */
/* -------------------------------------------------------------*/

h1
{
	text-align: center;
	font-weight: bold;
	font-family: "Verdana", "Times New Roman", serif;
	color: #0D0EA2;
	font-size: 18px
}
/*
h2
{

}

h3
{

}

h4
{

}

h5
{

}

h6
{

}
*/

/* --------------- :: STYLE DES BLOCS :: -------------- */
/* -----------------------------------------------------------*/
#header
{
	width: 900px;
	height: 490px;
	background-image: url("../images/design/header.jpg");
}

#tagboard
{
	width: 395px;
	height: 165px;
	position: relative;
	left: 65px;
	top: 280px;
}

#editorial
{
	width: 363px;
	height: 165px;
	position: relative;
	left: 472px;
	top: 113px;
	margin-left: 6px
}
	
#page
{
	width: 900px;
	background-image: url("../images/design/corps.jpg");
	background-repeat: repeat-y;
}

#menu
{
	width: 230px;
	height: 585px;
	float: left;
}

#home
{
	position: relative;
	left: 65px;
}

#multimedia
{
	position: relative;
	left: 65px;
	top: 70px;
}

#partenaires
{
	position: relative;
	left: 65px;
	top: 150px;
}

#corps
{
	width: 610px;
	height: 585px;
	overflow: auto;
	margin-left: 10px;
}

#footer
{
	width: 900px;
	height: 125px;
	background-image: url("../images/design/footer.jpg");
	clear: both;
}

#pub
{
	width: 575px;
	height: 80px;
	position: relative;
	left: 272px;
	top: 30px;
}


J'ai essayé la méthode include pour tester grâce au tuto du site mais je n'y suis pas parvenu Smiley ohwell

Voilàa :s
Modifié par Sidji (19 Dec 2007 - 18:52)
Bonjour,

Sidji a écrit :
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.

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 :
J'ai essayé la méthode include pour tester grâce au tuto du site mais je n'y suis pas parvenu Smiley ohwell

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.
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 -->
				<?php
				include("news.php");
				?>
			</div>


Donc en bref quand on arrive sur le site, dans la case Accueil/News la page News.php s'ouvre Smiley biggrin 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 Smiley lol
Sidji a écrit :
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

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 :
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.

(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?
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 Smiley cligne

++

Hell doc
Hell doc a écrit :
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 Smiley cligne

++

Hell doc


Ta méthode d'id m'intéresse
Smiley ravi tu peux m'en dire plus concernant les l'utilisation des id ? Smiley cligne
Sidji a écrit :

<div id="corps"> <!-- Cadre correspondant au CORPS en include -->
				<?php
				include("news.php");
				?>
			</div>


Donc en bref quand on arrive sur le site, dans la case Accueil/News la page News.php s'ouvre Smiley biggrin 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 Smiley lol


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">
<?php
 $pageOK = array('news' => 'news.php',
	'anims' => 'anims.php',
     );
 }
 ?>
</div>


Par exemple Smiley cligne Mais le code ci dessus n'est pas complet, relis le tuto avant Smiley cligne
Modifié par yank (21 Dec 2007 - 10:48)
Re,

Cette solution est similaire à :

<?php
$pageOK = array('news' => 'news.php',
'anims' => 'anims.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 Smiley cligne
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)
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">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
	<head>
		<title> :: [ Generation Mangas V3 >> Découvrez la passion a travers l'animation ! ] :: //</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<link rel="stylesheet" media="screen" type="text/css" title="designV3" href="CSS/designV3.css" />
	</head>
	<body>
		<div id="header"> <!-- Cadre correspondant au header -->
			<?php include('header.inc.php'); ?>
		</div>	
			
		<div id="page"> <!-- Cadre correspondant à la partie variable -->
			<?php include ('menu.inc.php'); ?>
			<?php include ('corps.inc.php') ?>
		</div>
		
		<div id="footer"> <!-- Cadre correspondant au footer -->
			<?php include('footer.inc.php'); ?>
		</div>
	</body>
</html>


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">
<!-- Ici on mettra la pub-->
</div>


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.
Smiley url http://generationmangas1.free.fr/1.jpg[/url]

et lorsque j'ouvre l'un des liens de mes menu tel le lien 1 :
Smiley url 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" Smiley bawling
Modifié par Sidji (21 Dec 2007 - 20:55)
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">
<?php
 $pageOK = array('news' => 'news.php',
	'anims' => 'anims.php',
	'blabla' => 'blabla.html',
     );

if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
   include($pageOK[$_GET['page']]);  
 } else {
   include('news.php');  
 }
 ?>
</div>


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 Smiley lol

Dis nous si ça fonctionne Smiley cligne
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 Smiley biggrin
Sidji a écrit :
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 Smiley biggrin

Alors ? Smiley cligne
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 Smiley smile

Cordialement.
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(
	'page-1' => 'Page1.php',
	'page-2' => 'Page2.php',
	'page-3' => 'Page3.php',
	'page-4' => 'Page4.php',
	'blabla' => 'inc/truc/machin/long_blabla.php'
);

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. Smiley cligne
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 Smiley smile

Sinon j'aimerais savoir si ce tape "d'inclusion" est propre ?

Merci bien Smiley biggrin

Cordialement.

PS:
a écrit :
Il n'est jamais évident de faire du PHP sans rien en connaitre du tout.

=> En effet je n'y connais pas grand chose mais je me suis deja débrouillé pour d'autres choses bien plus complexes Smiley sweatdrop Smiley lol
Kaleel a écrit :
Je tiens juste a rectifier votre proposition:
index.php?p=page-1
Ne marche pas
index.php?page=page-1
fonctionne

Ç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
$get_page = $_GET['p'];

$page_ok = array(
	'key1' => 'page1.php',
	'key2' => 'page2.php',
	'key3' => 'page3.php'
);

if ( (isset($get_page)) && (isset($pageOK[$get_page])) ) {
	include($pageOK[$get_page]);
} else {
	include('news.php');  
}
?>

Par exemple...

Kaleel a écrit :
Sinon j'aimerais savoir si ce tape "d'inclusion" est propre ?

Qu'est-ce qu'une technique propre?
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 Smiley lol

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 Smiley sweatdrop

donc dans mon cas c'est résolu, merci Smiley biggrin
Modifié par Sidji (20 Jan 2008 - 18:39)