par
Nestecha » 05 déc. 2014, 23:09
Ok, donc pour faire cela, pour tester crée :
avantapres.php, index.php, pageDeux.php, pageTrois.php, pageQuatre.php.
Code de index pageDeux etc :
<?php include 'avantapres.php'; ?>
<p>Index</p>
Avec entre les <p> ce que tu veux, c'est juste pour voir sur quelle page tu te trouves. C'est ainsi que tu procéderais sur tes vraies pages.
Ensuite le code de avantapres.php :
<?php
// On récupère l'URL complète dans REQUEST_URI, et on sépare chaque mot trouvé entre les / afin de mettre chaque valeur dans un tableau //
$aPartsOfPage = explode('/', $_SERVER['REQUEST_URI']);
// On récupère le nom réel de la page (index.php, ou pageDeux.php...) en cherchant la dernière valeur du tableau qu'on vient de créer
$sPageName = end($aPartsOfPage);
// Dans le cas où la dernière valeur est = '', c'est qu'on est sur le index.php mais qu'il n'est pas affiché, donc on change la variable en index.php.
if ($sPageName == '') {
$sPageName = 'index.php';
}
// On crée un tableau avec toutes nos pages dedans, dans l'ordre (!!)
$aPages = ['index.php', 'pageDeux.php', 'pageTrois.php', 'pageQuatre.php'];
// On crée un compteur qui nous servira pour faire avancer les pages, on cherche la clé associée à la valeur $sPageName dans $aPages, sur index.php on cherchera donc quelle clé est attribuée à index.php dans $aPages, ici 0
$iCounterForward = array_search($sPageName,$aPages);
// Si le compteur dépasse le nombre de cases de notre tableau $aPages, on le fait revenir à zéro (sinon il ne saura plus où aller après la dernière page)
if ($iCounterForward >= count($aPages)-1) {
$iCounterForward = 0;
}
// Tant que le nom de la page (index.php par exemple) est le même que la valeur de $aPages[compteur], on augmente de 1 le compteur, ainsi on accèdera à la page suivante
while ($sPageName == $aPages[$iCounterForward]) {
$iCounterForward++;
}
$iCounterBackward = array_search($sPageName,$aPages);
// Même principe qu'au dessus, sauf qu'ici on sait que la première case est 0, donc on ne veut pas aller dans les -1 -2, donc si le compteur est à 0, on le fait remonter à la clé de la dernière case
if ($iCounterBackward <= 0) {
$iCounterBackward = count($aPages) - 1;
}
// Même principe qu'au dessus, mais à l'envers
while ($sPageName == $aPages[$iCounterBackward]) {
$iCounterBackward--;
}
// Ici ça servira à afficher le nom des pages sur lesquelles nous allons aller en fonction du nom des fichiers. C'est pas top, mais c'est déjà ça. On enlève simplement le .php avec des fonctions sur les chaînes de caractères.
$sAvant = substr($aPages[$iCounterBackward],0,strpos($aPages[$iCounterBackward],'.'));
$sApres = substr($aPages[$iCounterForward],0,strpos($aPages[$iCounterForward],'.'));
?>
<!-- Ici ton code original, sauf que j'ai ajouté le php dans les <a> et dans les <h3> -->
<div class="fleches">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="avant" style="width:20%"><a href="<?= $aPages[$iCounterBackward]; ?>">
<div class="precedent"></div>
<h3>Lien Page <?= $sAvant; ?></h3>
</a>
</td>
<td style="width:60%"></td>
<td class="apres" style="width:20%"><a href="<?= $aPages[$iCounterForward]; ?>">
<div class="suivant"></div>
<h3>Lien Page <?= $sApres; ?></h3>
</a></td>
</tr>
</table>
</div>
Je sais, ça fait beaucoup. C'est assez rare de vouloir faire ce que tu veux faire, mais à mon avis t'apprendras beaucoup en comprenant tout ça, j'ai commenté tout le code pour que tu comprennes. Si tu as des questions n'hésite pas !
Ok, donc pour faire cela, pour tester crée :
avantapres.php, index.php, pageDeux.php, pageTrois.php, pageQuatre.php.
Code de index pageDeux etc :
[php]<?php include 'avantapres.php'; ?>
<p>Index</p>
[/php]
Avec entre les <p> ce que tu veux, c'est juste pour voir sur quelle page tu te trouves. C'est ainsi que tu procéderais sur tes vraies pages.
Ensuite le code de avantapres.php :
[php]<?php
// On récupère l'URL complète dans REQUEST_URI, et on sépare chaque mot trouvé entre les / afin de mettre chaque valeur dans un tableau //
$aPartsOfPage = explode('/', $_SERVER['REQUEST_URI']);
// On récupère le nom réel de la page (index.php, ou pageDeux.php...) en cherchant la dernière valeur du tableau qu'on vient de créer
$sPageName = end($aPartsOfPage);
// Dans le cas où la dernière valeur est = '', c'est qu'on est sur le index.php mais qu'il n'est pas affiché, donc on change la variable en index.php.
if ($sPageName == '') {
$sPageName = 'index.php';
}
// On crée un tableau avec toutes nos pages dedans, dans l'ordre (!!)
$aPages = ['index.php', 'pageDeux.php', 'pageTrois.php', 'pageQuatre.php'];
// On crée un compteur qui nous servira pour faire avancer les pages, on cherche la clé associée à la valeur $sPageName dans $aPages, sur index.php on cherchera donc quelle clé est attribuée à index.php dans $aPages, ici 0
$iCounterForward = array_search($sPageName,$aPages);
// Si le compteur dépasse le nombre de cases de notre tableau $aPages, on le fait revenir à zéro (sinon il ne saura plus où aller après la dernière page)
if ($iCounterForward >= count($aPages)-1) {
$iCounterForward = 0;
}
// Tant que le nom de la page (index.php par exemple) est le même que la valeur de $aPages[compteur], on augmente de 1 le compteur, ainsi on accèdera à la page suivante
while ($sPageName == $aPages[$iCounterForward]) {
$iCounterForward++;
}
$iCounterBackward = array_search($sPageName,$aPages);
// Même principe qu'au dessus, sauf qu'ici on sait que la première case est 0, donc on ne veut pas aller dans les -1 -2, donc si le compteur est à 0, on le fait remonter à la clé de la dernière case
if ($iCounterBackward <= 0) {
$iCounterBackward = count($aPages) - 1;
}
// Même principe qu'au dessus, mais à l'envers
while ($sPageName == $aPages[$iCounterBackward]) {
$iCounterBackward--;
}
// Ici ça servira à afficher le nom des pages sur lesquelles nous allons aller en fonction du nom des fichiers. C'est pas top, mais c'est déjà ça. On enlève simplement le .php avec des fonctions sur les chaînes de caractères.
$sAvant = substr($aPages[$iCounterBackward],0,strpos($aPages[$iCounterBackward],'.'));
$sApres = substr($aPages[$iCounterForward],0,strpos($aPages[$iCounterForward],'.'));
?>
<!-- Ici ton code original, sauf que j'ai ajouté le php dans les <a> et dans les <h3> -->
<div class="fleches">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="avant" style="width:20%"><a href="<?= $aPages[$iCounterBackward]; ?>">
<div class="precedent"></div>
<h3>Lien Page <?= $sAvant; ?></h3>
</a>
</td>
<td style="width:60%"></td>
<td class="apres" style="width:20%"><a href="<?= $aPages[$iCounterForward]; ?>">
<div class="suivant"></div>
<h3>Lien Page <?= $sApres; ?></h3>
</a></td>
</tr>
</table>
</div>
[/php]
Je sais, ça fait beaucoup. C'est assez rare de vouloir faire ce que tu veux faire, mais à mon avis t'apprendras beaucoup en comprenant tout ça, j'ai commenté tout le code pour que tu comprennes. Si tu as des questions n'hésite pas !