cs_nashouille
Messages postés21Date d'inscriptionmardi 16 mars 2004StatutMembreDernière intervention11 juillet 2008 11 janv. 2010 à 02:59
salut
Je ne vois rien dans ce qui est de la POO ! Il y a simplement une méthode déclaré dans un nom qui renvoi un formatage HTML de balise. J'aurais simplement appelé cela méthode static de pagination.
voici un exemple
<?php
/**
* class dataPager
*
* Description for class dataPager
*
* @author: NASHOUILLE
*/
class DataPager {
private $_fieldindex = 1;
private $_pagesize;
private $_totalrowcount;
//Premiere page
public function firstPage(){
//Si derniere page egale 0
if( $this->lastPage() == 0)
return 0;
return 1;
}
//Page precedente
public function previousPage(){
//Si derniere page egale 0
if( $this->lastPage() == 0)
return 0;
//Page suivante
public function nextPage(){
if($this->_fieldindex >= ceil($this->_totalrowcount/$this->_pagesize))
return ceil($this->_totalrowcount/$this->_pagesize);
$next = $this->_fieldindex;
return $next + 1;
}
//Derniere page
public function lastPage(){
return ceil($this->_totalrowcount/$this->_pagesize);
}
//Obtient ou définit le nombre d'enregistrements affichés pour chaque page de données.
public function pageSize($value = ""){
//Obtient la page en cours affiché dans une page de données.
public function pageField(){
if( $this->lastPage() == 0)
return 0;
return $this->_fieldindex;
}
//Obtient ou definit le nombre total des enregistrements extraits par l'objet
//de source de données sous-jacent référencé par le contrôle lié aux données associé.
public function TotalRowCount($value = ""){
if(strlen(trim($value)) == 0)
return (int)$this->_totalrowcount;
if(!is_numeric($value))
throw new exception("Format incorrect.");
$this->_totalrowcount = (int)$value;
}
//Obtient l'index du premier enregistrement affiché dans une page de données.
public function StartRowIndex(){
//On multiplie page en court par nombre de page moins monbre de page
return $this->_fieldindex * $this->_pagesize - $this->_pagesize;
}
function __construct($value){
if($value > 1)
$this->_fieldindex = $value;
}
}
?>
pour l'utilisation c'est simple
instance du pager
$pager = new DataPager($page);
nombre page
$pager->pageSize(10);
object ou requete pour comptage des ligne
$pager->TotalRowCount($contact->dbCount());
instantation de la class de gestion SQL et utilisation des methodes $pager->StartRowIndex(), $pager->pageSize() dans la clause sql LIMIT
Méthode de pagination
[{$_SERVER['PHP_SELF']}?page= firstPage().">Premier]
[{$_SERVER['PHP_SELF']}?page= previousPage().">Precedent]
nextPage().">Suivant
lastPage().">Dernier
NeoUmbrella
Messages postés117Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention15 janvier 2013 9 janv. 2010 à 00:12
Bonjour, je suis entièrement d'accord avec kohntark.
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 8 janv. 2010 à 23:41
Salut,
Je déplore qu'une fois de plus les commentaires d'une source partent "en live". Ca relève du systématique et c'est particulièrement gonflant.
Je crois qu'il serait bon d'instaurer, ou plus exactement d'imposer (allo les admins ??) un climat plus fraternel, basé sur le partage de compétences, sur l'esprit communautaire et sur le respect de chacun, débutants comme initiés.
J'en ai franchement ras le bol, comme beaucoup ici, de voir ces "combats", qui dans de nombreux cas n'apportent qu'une mauvaise ambiance qui se fait de plus en plus présente sur le réseau CS.
Ne sommes nous pas ici pour partager et progresser chacun à notre niveau ?
En ce qui concerne ce thread :
Je ne peux que saluer que tu postes une source mtrix000, c'est en accord avec cet esprit de partage.
Là où je n'y suis plus c'est dans ta réponse à Neigedhiver.
Je pense que Neige a, comme à son habitude, apporté des critiques constructives, en argumentant et en donnant des axes d'améliorations.
Considérant cela ta réponse me semble fort déplacée.
Autant je suis d'accord lorsque tu dis que certains commentaires incitent à ne pas poster de sources, autant je ne le suis pas dans le cas présent, ni pour les nombreux commentaires de Neigedhiver que j'ai pu lire.
"tu l'as pas tester et tu te permet de la critiqué"
=> il ne suffit pas qu'une source "fonctionne" pour qu'elle prétende être une bonne source.
""neigedhiver" tu devrais arrété de faire des commentaire et commencé a partager des sources,
car j'ai plus l'impression que tu n'est la que pour faire fuire les nouveaux, surtout quand on voi la qualité insatisfesante de tes sources, sa me fait assez rire."
=>
perso c'est ton propos qui me fais particulièrement marré, et pas qu'un peu :D
Je pense que Neige fait partie des intervenants les plus constructifs et les plus calés de PHPCS et que contrairement à d'autres il ne prend pas la grosse tête en descendant les gens.
Mention particulière à "quand on voi la qualité insatisfesante de tes sources" et "quand tu n'arrives pas a la comprendre" ... fallait oser !! :D
Bref, du haut de tes ["même pas"] 10 interventions en ces lieux tu aurais sans doute mieux fait de considérer les remarques de Neigedhiver et de lire quelques unes de ses contributions, ça t'aurait évité de dire des âneries.
Je n'ai fait que réagir aux messages et n'ai pas testé, ni trop regardé la source, mais à vu de nez je ne pourrai tenir meilleurs propos que Neige.
Je teste avant lundi, promis :)
Cordialement,
Kohntark-
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 8 janv. 2010 à 21:15
Non, je n'ai pas testé ta source. Ce n'est d'ailleurs pas en la testant que je peux me rendre compte que je n'arrive pas à lire le code.
Il n'est pas nécessaire de tester une source pour exprimer le fait qu'elle est mal codée.
Si je ne t'apprends rien quant au HTML inclus dans ta classe, pourquoi est-ce que tu le fais quand même ?
Quant à mes sources, je t'en prie, va donc y faire des commentaires. Toutes ne sont pas de qualité, je le reconnais. Ce n'est pas ce que je dirais de la dernière que j'ai partagée et que je mets régulièrement à jour : je t'invite à y jeter un oeil de manière approfondie avant de me dire que ce que je produis n'est pas de qualité.
Maintenant, parlons un peu de mes commentaires. Est-ce de ma faute si de nombreuses personnes partagent des sources d'une qualité plus que déplorable ? Là, je ne parle pas de toi, mais d'une manière générale. Est-ce pour autant que je dois fermer ma gueule et laisser des codes de merde pourrir le site ? Des codes qui seront utilisés par des utilisateurs novices, qui ne sont pas capables d'évaluer la qualité d'une source, et du fait qu'ils utilisent des codes de merde, mal codés, pas sécurisés, ne progresseront jamais. Désolé, mais j'estime de mon devoir, pour que TOUT LE MONDE puisse progresser, de dire quand une source n'est pas bonne : autant pour l'auteur que pour les utilisateurs potentiels.
Je t'ai indiqué une source qui fait de la pagination également, en soulignant ses points forts comparés à la tienne. C'est ce que je peux faire de mieux comme propositions d'améliorations. Si tu refuses d'aller y jeter un oeil pour voir en quoi elle est mieux que la tienne, ce n'est pas mon problème. Si tu préfères t'arrêter au fait que je critique négativement ta source, ce n'est pas mon problème non plus.
Et ne viens pas me dire que mon premier commentaire n'était pas constructif : j'ai souligné les points négatifs et je t'ai proposé des améliorations (via une source de qualité supérieur).
Et j'ai été sympa, j'ai pas commenté ta source d'authentification qui souffre de nombreux défauts (mais si tu y tiens, je peux faire l'effort d'y laisser un commentaire).
mtrix000
Messages postés31Date d'inscriptionmardi 26 août 2008StatutMembreDernière intervention 1 novembre 2012 8 janv. 2010 à 17:54
Merci pour l'info, mais bon chacun son style,
tu l'as pas tester et tu te permet de la critiqué,
je sais que le html dans une class n'é pas apprécié et encore moin la balise font,
a vrai dire tu ne m'apprend rien et c'est a cause des commentaires comme le tien que beaucoup de dévolppeur ne partage pas leur source,
"neigedhiver" tu devrais arrété de faire des commentaire et commencé a partager des sources,
car j'ai plus l'impression que tu n'est la que pour faire fuire les nouveaux, surtout quand on voi la qualité insatisfesante de tes sources, sa me fait assez rire.
Allé la prochaine fois évite de faire des commentaires quand ta pas tester la source et encore moins quand tu n'arrives pas a la comprendre, sa tévitera de salir les pages de cs!!!
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 8 janv. 2010 à 08:48
Salut,
[préambule]
Je vais essayer de ne pas être trop sévère et de choisir correctement les mots que j'utilise...
/préambule
Il y a beaucoup de choses qui ne sont pas très bonnes dans ton code.
Le fait que ta classe affiche du HTML ne me plaît pas du tout : ce n'est pas uniquement un problème de goût personnel, car si elle affiche du HTML, l'utilisateur de ta classe ne peut pas choisir ce qui est affiché, il est obligé de prendre ce qu'on lui donne. Parfois, on peut avoir envie de faire autrement, là, on ne peut pas. Il reste la possibilité de surcharger ta classe, mais vu comment elle est écrite, cela revient à réécrire ton code. En plus, je constate l'utilisation de la balise font dans le code HTML, ce qui est fortement déprécié au profit de feuilles de styles.
Ta classe n'a pas lieu d'être une classe : une simple fonction suffit.
Ton code n'est pas très clair : personnellement, je n'ai pas fait l'effort de chercher à comprendre tout le fonctionnement, chaque ligne de code. Un code propre me parle tout de suite : je n'ai pas besoin de faire d'effort pour comprendre, là, il faudrait que je me mette en situation et que je fasse des simulations mentales pour comprendre beaucoup de choses ($pos - 3 ou $pos - 4, mais beaucoup d'autres lignes aussi).
Le sujet de la pagination fait partie de ceux qui sont récurrents (lister un répertoire, authentification utilisateur, etc) et qu'on trouve en de nombreux exemplaires, de qualité très variable. Par exemple, je t'invite à jeter un oeil à la classe proposée par NainPuissant il y a plus de 3 ans maintenant, en PHP5 : http://www.phpcs.com/code.aspx?ID=40881 Rien qu'un premier coup d'oeil, je vois que le code est clair, correctement documenté, je constate aussi que le HTML produit est entièrement personnalisable, qu'il y a des méthodes spécifiques pour l'affichage, etc...
11 janv. 2010 à 02:59
Je ne vois rien dans ce qui est de la POO ! Il y a simplement une méthode déclaré dans un nom qui renvoi un formatage HTML de balise. J'aurais simplement appelé cela méthode static de pagination.
voici un exemple
<?php
/**
* class dataPager
*
* Description for class dataPager
*
* @author: NASHOUILLE
*/
class DataPager {
private $_fieldindex = 1;
private $_pagesize;
private $_totalrowcount;
//Premiere page
public function firstPage(){
//Si derniere page egale 0
if( $this->lastPage() == 0)
return 0;
return 1;
}
//Page precedente
public function previousPage(){
//Si derniere page egale 0
if( $this->lastPage() == 0)
return 0;
if($this->_fieldindex == 1)
return $this->_fieldindex;
$prev = $this->_fieldindex;
return $prev - 1;
}
//Page suivante
public function nextPage(){
if($this->_fieldindex >= ceil($this->_totalrowcount/$this->_pagesize))
return ceil($this->_totalrowcount/$this->_pagesize);
$next = $this->_fieldindex;
return $next + 1;
}
//Derniere page
public function lastPage(){
return ceil($this->_totalrowcount/$this->_pagesize);
}
//Obtient ou définit le nombre d'enregistrements affichés pour chaque page de données.
public function pageSize($value = ""){
if(strlen(trim($value)) == 0)
return (int)$this->_pagesize;
$this->_pagesize = (int)$value;
}
//Obtient la page en cours affiché dans une page de données.
public function pageField(){
if( $this->lastPage() == 0)
return 0;
return $this->_fieldindex;
}
//Obtient ou definit le nombre total des enregistrements extraits par l'objet
//de source de données sous-jacent référencé par le contrôle lié aux données associé.
public function TotalRowCount($value = ""){
if(strlen(trim($value)) == 0)
return (int)$this->_totalrowcount;
if(!is_numeric($value))
throw new exception("Format incorrect.");
$this->_totalrowcount = (int)$value;
}
//Obtient l'index du premier enregistrement affiché dans une page de données.
public function StartRowIndex(){
//On multiplie page en court par nombre de page moins monbre de page
return $this->_fieldindex * $this->_pagesize - $this->_pagesize;
}
function __construct($value){
if($value > 1)
$this->_fieldindex = $value;
}
}
?>
pour l'utilisation c'est simple
instance du pager
$pager = new DataPager($page);
nombre page
$pager->pageSize(10);
object ou requete pour comptage des ligne
$pager->TotalRowCount($contact->dbCount());
instantation de la class de gestion SQL et utilisation des methodes $pager->StartRowIndex(), $pager->pageSize() dans la clause sql LIMIT
Méthode de pagination
[{$_SERVER['PHP_SELF']}?page= firstPage().">Premier]
[{$_SERVER['PHP_SELF']}?page= previousPage().">Precedent]
nextPage().">Suivant
lastPage().">Dernier
9 janv. 2010 à 00:12
8 janv. 2010 à 23:41
Je déplore qu'une fois de plus les commentaires d'une source partent "en live". Ca relève du systématique et c'est particulièrement gonflant.
Je crois qu'il serait bon d'instaurer, ou plus exactement d'imposer (allo les admins ??) un climat plus fraternel, basé sur le partage de compétences, sur l'esprit communautaire et sur le respect de chacun, débutants comme initiés.
J'en ai franchement ras le bol, comme beaucoup ici, de voir ces "combats", qui dans de nombreux cas n'apportent qu'une mauvaise ambiance qui se fait de plus en plus présente sur le réseau CS.
Ne sommes nous pas ici pour partager et progresser chacun à notre niveau ?
En ce qui concerne ce thread :
Je ne peux que saluer que tu postes une source mtrix000, c'est en accord avec cet esprit de partage.
Là où je n'y suis plus c'est dans ta réponse à Neigedhiver.
Je pense que Neige a, comme à son habitude, apporté des critiques constructives, en argumentant et en donnant des axes d'améliorations.
Considérant cela ta réponse me semble fort déplacée.
Autant je suis d'accord lorsque tu dis que certains commentaires incitent à ne pas poster de sources, autant je ne le suis pas dans le cas présent, ni pour les nombreux commentaires de Neigedhiver que j'ai pu lire.
"tu l'as pas tester et tu te permet de la critiqué"
=> il ne suffit pas qu'une source "fonctionne" pour qu'elle prétende être une bonne source.
""neigedhiver" tu devrais arrété de faire des commentaire et commencé a partager des sources,
car j'ai plus l'impression que tu n'est la que pour faire fuire les nouveaux, surtout quand on voi la qualité insatisfesante de tes sources, sa me fait assez rire."
=>
perso c'est ton propos qui me fais particulièrement marré, et pas qu'un peu :D
Je pense que Neige fait partie des intervenants les plus constructifs et les plus calés de PHPCS et que contrairement à d'autres il ne prend pas la grosse tête en descendant les gens.
Mention particulière à "quand on voi la qualité insatisfesante de tes sources" et "quand tu n'arrives pas a la comprendre" ... fallait oser !! :D
Bref, du haut de tes ["même pas"] 10 interventions en ces lieux tu aurais sans doute mieux fait de considérer les remarques de Neigedhiver et de lire quelques unes de ses contributions, ça t'aurait évité de dire des âneries.
Je n'ai fait que réagir aux messages et n'ai pas testé, ni trop regardé la source, mais à vu de nez je ne pourrai tenir meilleurs propos que Neige.
Je teste avant lundi, promis :)
Cordialement,
Kohntark-
8 janv. 2010 à 21:15
Il n'est pas nécessaire de tester une source pour exprimer le fait qu'elle est mal codée.
Si je ne t'apprends rien quant au HTML inclus dans ta classe, pourquoi est-ce que tu le fais quand même ?
Quant à mes sources, je t'en prie, va donc y faire des commentaires. Toutes ne sont pas de qualité, je le reconnais. Ce n'est pas ce que je dirais de la dernière que j'ai partagée et que je mets régulièrement à jour : je t'invite à y jeter un oeil de manière approfondie avant de me dire que ce que je produis n'est pas de qualité.
Maintenant, parlons un peu de mes commentaires. Est-ce de ma faute si de nombreuses personnes partagent des sources d'une qualité plus que déplorable ? Là, je ne parle pas de toi, mais d'une manière générale. Est-ce pour autant que je dois fermer ma gueule et laisser des codes de merde pourrir le site ? Des codes qui seront utilisés par des utilisateurs novices, qui ne sont pas capables d'évaluer la qualité d'une source, et du fait qu'ils utilisent des codes de merde, mal codés, pas sécurisés, ne progresseront jamais. Désolé, mais j'estime de mon devoir, pour que TOUT LE MONDE puisse progresser, de dire quand une source n'est pas bonne : autant pour l'auteur que pour les utilisateurs potentiels.
Je t'ai indiqué une source qui fait de la pagination également, en soulignant ses points forts comparés à la tienne. C'est ce que je peux faire de mieux comme propositions d'améliorations. Si tu refuses d'aller y jeter un oeil pour voir en quoi elle est mieux que la tienne, ce n'est pas mon problème. Si tu préfères t'arrêter au fait que je critique négativement ta source, ce n'est pas mon problème non plus.
Et ne viens pas me dire que mon premier commentaire n'était pas constructif : j'ai souligné les points négatifs et je t'ai proposé des améliorations (via une source de qualité supérieur).
Et j'ai été sympa, j'ai pas commenté ta source d'authentification qui souffre de nombreux défauts (mais si tu y tiens, je peux faire l'effort d'y laisser un commentaire).
8 janv. 2010 à 17:54
tu l'as pas tester et tu te permet de la critiqué,
je sais que le html dans une class n'é pas apprécié et encore moin la balise font,
a vrai dire tu ne m'apprend rien et c'est a cause des commentaires comme le tien que beaucoup de dévolppeur ne partage pas leur source,
"neigedhiver" tu devrais arrété de faire des commentaire et commencé a partager des sources,
car j'ai plus l'impression que tu n'est la que pour faire fuire les nouveaux, surtout quand on voi la qualité insatisfesante de tes sources, sa me fait assez rire.
Allé la prochaine fois évite de faire des commentaires quand ta pas tester la source et encore moins quand tu n'arrives pas a la comprendre, sa tévitera de salir les pages de cs!!!
8 janv. 2010 à 08:48
[préambule]
Je vais essayer de ne pas être trop sévère et de choisir correctement les mots que j'utilise...
/préambule
Il y a beaucoup de choses qui ne sont pas très bonnes dans ton code.
Le fait que ta classe affiche du HTML ne me plaît pas du tout : ce n'est pas uniquement un problème de goût personnel, car si elle affiche du HTML, l'utilisateur de ta classe ne peut pas choisir ce qui est affiché, il est obligé de prendre ce qu'on lui donne. Parfois, on peut avoir envie de faire autrement, là, on ne peut pas. Il reste la possibilité de surcharger ta classe, mais vu comment elle est écrite, cela revient à réécrire ton code. En plus, je constate l'utilisation de la balise font dans le code HTML, ce qui est fortement déprécié au profit de feuilles de styles.
Ta classe n'a pas lieu d'être une classe : une simple fonction suffit.
Ton code n'est pas très clair : personnellement, je n'ai pas fait l'effort de chercher à comprendre tout le fonctionnement, chaque ligne de code. Un code propre me parle tout de suite : je n'ai pas besoin de faire d'effort pour comprendre, là, il faudrait que je me mette en situation et que je fasse des simulations mentales pour comprendre beaucoup de choses ($pos - 3 ou $pos - 4, mais beaucoup d'autres lignes aussi).
Le sujet de la pagination fait partie de ceux qui sont récurrents (lister un répertoire, authentification utilisateur, etc) et qu'on trouve en de nombreux exemplaires, de qualité très variable. Par exemple, je t'invite à jeter un oeil à la classe proposée par NainPuissant il y a plus de 3 ans maintenant, en PHP5 : http://www.phpcs.com/code.aspx?ID=40881
Rien qu'un premier coup d'oeil, je vois que le code est clair, correctement documenté, je constate aussi que le HTML produit est entièrement personnalisable, qu'il y a des méthodes spécifiques pour l'affichage, etc...