| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
Nasedo Régulier


Inscrit le: Dec 22, 2005 Messages: 220
|
Posté le: 28 Jul 2007, 17:54 Sujet du message: NSN News, pagination [RESOLU] |
|
|
Bonjour,
Je suis actuellement entrain de chercher comment mettre en place la pagination pour NSN News comme sur ton site Stefvar.
Je souhaiterai avoir le même principe histoire de faciliter un peut le travail des robots ainsi que la navigation des utilisateurs
Si tu pouvait m'expliquer les modifs à apporté à NSN News ca serai très sympa  _________________ Actualité informatique, jeux vidéo | Tutoriaux |
|
|
|
| Revenir en haut de page |
|
stefvar Administrateur


Inscrit le: Jul 06, 2005 Messages: 8211 Localisation: France Corse Ventiseri
|
|
| Revenir en haut de page |
|
Nasedo Régulier


Inscrit le: Dec 22, 2005 Messages: 220
|
Posté le: 28 Jul 2007, 18:31 Sujet du message: Re : NSN News, pagination |
|
|
Merci Stefvar, cependant ca ne donne pas vraiment le même résultat que chez toi ^^
 _________________ Actualité informatique, jeux vidéo | Tutoriaux |
|
|
|
| Revenir en haut de page |
|
stefvar Administrateur


Inscrit le: Jul 06, 2005 Messages: 8211 Localisation: France Corse Ventiseri
|
Posté le: 28 Jul 2007, 18:37 Sujet du message: Re : NSN News, pagination |
|
|
Re,
Bizarre, je colle le code ici au cas où le Wiki m'aurait joué des tours :
| Code: | if($articlepages!=1 && $articlepages!=0) {
$counter = 1;
$currentpage = ($max / $storynum);
echo "<table align='center' border='0' cellpadding='0' cellspacing='0' width='100%'>\n<tr>\n";
echo "<center>";
if($currentpage <= 1) {
echo " ";
} else {
$preced = ($currentpage * 10) - ($storynum * 2);
echo "<a href='modules.php?name=News&min=".$preced."'><= </a>\n";
}
while($counter <= $articlepages ) {
$cpage = $counter;
$mintemp = ($storynum * $counter) - $storynum;
if($counter == $currentpage) {
echo "<option selected><b>$counter</b></option>\n";
} else {
echo "<a href='modules.php?name=News&min=".$mintemp."'>$counter</a>\n";
}
$counter++;
}
if($currentpage >= $articlepages) {
echo " ";
} else {
$suiv = ($currentpage * 10);
echo "<a href='modules.php?name=News&min=".$suiv."'> =></a>\n";
}
echo "</center>";
echo "</tr>\n</table>\n";
} |
_________________ Avant de poster, lire la charte du forum, merci. |
|
|
|
| Revenir en haut de page |
|
Nasedo Régulier


Inscrit le: Dec 22, 2005 Messages: 220
|
Posté le: 28 Jul 2007, 18:39 Sujet du message: Re : NSN News, pagination |
|
|
Effectivement petit problème avec le wiki, il semblerai que les antislash des \n soient passés à la trappe
avec ces derniers ca marche mieux ^^
Merci beaucoup  _________________ Actualité informatique, jeux vidéo | Tutoriaux |
|
|
|
| Revenir en haut de page |
|
Nasedo Régulier


Inscrit le: Dec 22, 2005 Messages: 220
|
Posté le: 29 Jul 2007, 0:18 Sujet du message: Re : NSN News, pagination |
|
|
Re,
Concernant ce code, je souhaiterai y apporter une petite modification, je voudrais savoir si il serai possible de ne pas tout afficher affin de ne garder que les 5 dernières pages ainsi que la toute dernière?
Exemple avec 80 pages :
1 2 3 4 5 ... 80
De cette façon ca permettrai au moteurs d'indexer les dernières news et aux visiteurs de consulter rapidement les jours précédents sans pour autant avoir 80 (voir beaucoup plus) liens en bas de page  _________________ Actualité informatique, jeux vidéo | Tutoriaux |
|
|
|
| Revenir en haut de page |
|
Nasedo Régulier


Inscrit le: Dec 22, 2005 Messages: 220
|
Posté le: 04 Aug 2007, 3:30 Sujet du message: Re: Re : NSN News, pagination |
|
|
| Nasedo a écrit: | Re,
Concernant ce code, je souhaiterai y apporter une petite modification, je voudrais savoir si il serai possible de ne pas tout afficher affin de ne garder que les 5 dernières pages ainsi que la toute dernière?
Exemple avec 80 pages :
1 2 3 4 5 ... 80
De cette façon ca permettrai au moteurs d'indexer les dernières news et aux visiteurs de consulter rapidement les jours précédents sans pour autant avoir 80 (voir beaucoup plus) liens en bas de page |
Un petit up pour savoir si ce que je souhaite faire est faisable ? _________________ Actualité informatique, jeux vidéo | Tutoriaux |
|
|
|
| Revenir en haut de page |
|
Snesman Bénévole SV


Inscrit le: Apr 30, 2006 Messages: 1846
|
Posté le: 04 Aug 2007, 4:39 Sujet du message: Re : NSN News, pagination |
|
|
Bonjour,
Je pense que ça doit être faisable. On doit pouvoir tirer quelque chose du code phpbb à cet effet. |
|
|
|
| Revenir en haut de page |
|
stefvar Administrateur


Inscrit le: Jul 06, 2005 Messages: 8211 Localisation: France Corse Ventiseri
|
Posté le: 04 Aug 2007, 7:04 Sujet du message: Re : NSN News, pagination |
|
|
Bonjour,
Oui cela est tout à fait faisable mais personnellement, actuellement, je n'ai vraiment pas le temps . _________________ Avant de poster, lire la charte du forum, merci. |
|
|
|
| Revenir en haut de page |
|
Nasedo Régulier


Inscrit le: Dec 22, 2005 Messages: 220
|
Posté le: 04 Aug 2007, 8:24 Sujet du message: Re : NSN News, pagination |
|
|
Ok pas de soucy Stefvar
Je regarderai comme le propose Snesman le code de phpbb pour voir si je peut l'adapter (c'est pas gagné d'avance avec ma "maitrise" du php mais qui sait ^^) _________________ Actualité informatique, jeux vidéo | Tutoriaux |
|
|
|
| Revenir en haut de page |
|
stefvar Administrateur


Inscrit le: Jul 06, 2005 Messages: 8211 Localisation: France Corse Ventiseri
|
Posté le: 04 Aug 2007, 8:27 Sujet du message: Re : NSN News, pagination |
|
|
Re,
J'ai un code qui devrait faire l'affaire en l'adaptant. Je regarderai dès que j'ai fini ce que j'ai en cours . _________________ Avant de poster, lire la charte du forum, merci. |
|
|
|
| Revenir en haut de page |
|
Nasedo Régulier


Inscrit le: Dec 22, 2005 Messages: 220
|
|
| Revenir en haut de page |
|
stefvar Administrateur


Inscrit le: Jul 06, 2005 Messages: 8211 Localisation: France Corse Ventiseri
|
Posté le: 04 Aug 2007, 17:19 Sujet du message: Re : NSN News, pagination |
|
|
Re,
En fin de compte, je n'aurai pas le temps de le faire rapidement.
Je te passe le code que je me suis servi pour SV_Cache. Il ne devrait pas trop y avoir de modification à faire pour l'adapter à NSN News :
| Code: |
$nb_results_p_page = 25;
$nb_avant = 20;
$nb_apres = 20;
$premiere = 1;
$derniere = 1;
$courant = empty($_GET['page']) ? 1 : $_GET['page'];
$start = ($courant - 1) * $nb_results_p_page;
$result = $db->sql_query("SELECT COUNT(*) from " . $prefix . "_users");
$ret = mysql_fetch_array($result);
$nb_results = $ret[0];
$nb_pages = ceil($nb_results / $nb_results_p_page);
$avant = $courant > ($nb_avant + 1) ? $nb_avant : $courant - 1;
$apres = $courant <= $nb_pages - $nb_apres ? $nb_apres : $nb_pages - $courant;
echo "</table></form></center>";
echo "<br>";
echo "<table><center>";
if($premiere && $courant - $avant > 1)
echo "<a href='".$admin_file.".php?op=SVCGestionUtilisateurSQL'> Première </a>";
if($courant > 1)
$pageprecedente = $courant-1;
echo "<a href='".$admin_file.".php?op=SVCGestionUtilisateurSQL&page=$pageprecedente'> Précédente </a>";
for($i = $courant - $avant; $i <= $courant + $apres; $i++){
if($i == $courant)
echo "<span style=\"color: #FF0000;\"> $i </span> ";
else
echo "<a href='".$admin_file.".php?op=SVCGestionUtilisateurSQL&page=$i'> $i </a>";
}
if($courant < $nb_pages)
$pagesuivante = $courant+1;
echo "<a href='".$admin_file.".php?op=SVCGestionUtilisateurSQL&page=$pagesuivante'> Suivante </a>";
if($derniere && $courant + $apres < $nb_pages)
echo "<a href='".$admin_file.".php?op=SVCGestionUtilisateurSQL&page=$nb_pages'> Dernière </a>";
echo "</table></center>"; |
Si tu y arrives, je suis preneur du résultat. Sinon, dit le moi je le ferai à temps perdu . _________________ Avant de poster, lire la charte du forum, merci. |
|
|
|
| Revenir en haut de page |
|
Nasedo Régulier


Inscrit le: Dec 22, 2005 Messages: 220
|
|
| Revenir en haut de page |
|
Snesman Bénévole SV


Inscrit le: Apr 30, 2006 Messages: 1846
|
Posté le: 04 Aug 2007, 23:42 Sujet du message: Re : NSN News, pagination |
|
|
Bonjour,
Je vais quant à moi regarder du coté de phpBB. |
|
|
|
| Revenir en haut de page |
|
Snesman Bénévole SV


Inscrit le: Apr 30, 2006 Messages: 1846
|
Posté le: 07 Aug 2007, 1:05 Sujet du message: Re : NSN News, pagination |
|
|
Bonjour,
J'ai trouvé la fonction dans phpBB, elle se trouve dans le fichier includes/functions.php du module Forum sous le nom de generate_pagination. Je vais voir à l'adapter au module nsn news et je vous tiens au courant des évolutions.
EDIT : Fonction presque terminée pour l'adaptation, je suis en train de fignoler deux, trois trucs et je la mets en ligne. |
|
|
|
| Revenir en haut de page |
|
Snesman Bénévole SV


Inscrit le: Apr 30, 2006 Messages: 1846
|
Posté le: 07 Aug 2007, 4:36 Sujet du message: Re : NSN News, pagination |
|
|
Bonjour,
Adaptation terminée ... OK
Chargement de la réponse ... En cours
Bon voilà Nasedo, j'ai fini de bosser dessus, c'était plus simple que je croyais.
Donc tu ouvres le fichier modules/News/public/NEIndex.php, tu remplaces le code de Stefvar par celui qui suit :
| Code: | //
//Début pagination - Snesman
//
$total_pages = $articlepages;
if ( $total_pages == 1 )
{
echo "";
}
$on_page = floor($max / $storynum);
$page_string = '';
if ( $total_pages > 10 )
{
$init_page_max = ( $total_pages > 3 ) ? 3 : $total_pages;
for($i = 1; $i < $init_page_max + 1; $i++)
{
$page_string .= ($i == $on_page ) ? "<b>" .$i. "</b>" : '<a href=modules.php?name=News&min=' . ( ( $i - 1 ) * $storynum ) . '>' . $i . "</a>";
if ( $i < $init_page_max )
{
$page_string .= ", ";
}
}
if ( $total_pages > 3 )
{
if ( $on_page > 1 && $on_page < $total_pages )
{
$page_string .= ( $on_page > 5 ) ? ' ... ' : ', ';
$init_page_min = ( $on_page > 4 ) ? $on_page : 5;
$init_page_max = ( $on_page < $total_pages - 4 ) ? $on_page : $total_pages - 4;
for($i = $init_page_min - 1; $i < $init_page_max + 2; $i++)
{
$page_string .= ($i == $on_page ) ? "<b>" .$i. "</b>" : '<a href=modules.php?name=News&min=' . ( ( $i - 1 ) * $storynum ) . '>' . $i . "</a>";
if ( $i < $init_page_max + 1 )
{
$page_string .= ', ';
}
}
$page_string .= ( $on_page < $total_pages - 4 ) ? ' ... ' : ', ';
}
else
{
$page_string .= ' ... ';
}
for($i = $total_pages - 2; $i < $total_pages + 1; $i++)
{
$page_string .= ($i == $on_page ) ? "<b>" .$i. "</b>" : '<a href=modules.php?name=News&min=' . ( ( $i - 1 ) * $storynum ) . '>' . $i . "</a>";
if( $i < $total_pages )
{
$page_string .= ", ";
}
}
}
}
else
{
for($i = 1; $i < $total_pages + 1; $i++)
{
$page_string .= ($i == $on_page ) ? "<b>" .$i. "</b>" : '<a href=modules.php?name=News&min=' . ( ( $i - 1 ) * $storynum ) . '>' . $i . "</a>";
if ( $i < $total_pages )
{
$page_string .= ', ';
}
}
}
if ( $on_page > 1 )
{
$page_string = '<a href=modules.php?name=News&min=' . ( ( $on_page - 2 ) * $storynum ) . '><<==</a> ' . $page_string;
}
if ( $on_page < $total_pages )
{
$page_string .= ' <a href=modules.php?name=News&min=' . ( $on_page * $storynum ) . '>==>></a>';
}
$page_string = "<b>Aller à la page : </b>" . $page_string;
echo "<center>$page_string</center>";
//
//Fin ajout pagination - Snesman
// |
Tu peux même avant de faire la modif, aller jeter un oeil sur mon site où le script est en place, tu pourras ainsi te faire une idée du résultat.
http://www.pc-dream.net/
EDIT : J'ai testé le script, et n'ai pas relevé d'erreur lors de son éxécution ainsi que lors du passage de page en page. |
|
|
|
| Revenir en haut de page |
|
Nasedo Régulier


Inscrit le: Dec 22, 2005 Messages: 220
|
Posté le: 07 Aug 2007, 6:51 Sujet du message: Re : NSN News, pagination |
|
|
Bonjour Snesman,
Je te dit un grand merci et bravo pour la rapidité!
J'avais bien essayé de bidouiller le code de svcache fourni par Stefvar cette nuit mais je n'avais que des erreurs! Du coup j'avais laissé dans l'état
En tout cas c'est parfait! Vraiment, impeccable
Du coup je ne garde que ce système de pagination sur mon site, j'ai supprimé la liste déroulante (au passage ca supprimé pas mal d'erreurs au niveau du W3C )
Aller, une petite pour fêter ca :  _________________ Actualité informatique, jeux vidéo | Tutoriaux |
|
|
|
| Revenir en haut de page |
|
|