Maison >développement back-end >tutoriel php >Explication détaillée de l'utilisation de la fonction de pagination personnalisée phpcms

Explication détaillée de l'utilisation de la fonction de pagination personnalisée phpcms

伊谢尔伦
伊谢尔伦original
2017-06-26 11:16:551852parcourir

Lorsque vous créez un site Web, vous devrez souvent contrôler le style de pagination en fonction des exigences du modèle. À ce stade, de nombreuses personnes modifieront pages() dans le fichier global phpcmslibsfunctionsglobal. func.phpFonction , alors le problème se pose : cette fonction de pagination va également affecter le fond, c'est-à-dire que cette fonction de pagination est partagée par l'ensemble du site.
La solution est fournie ci-dessous : (Vous devez modifier le fichier, pensez à le sauvegarder avant de le modifier) ​​
Ouvrez le fichier
phpcmslibsfunctionsglobal.func.php, trouvez la fonction de pagination, copiez-le, collez-le sous la fonction de pagination par défaut, puis redémarrez. Nommez-le, par exemple, je l'ai nommé wz_pages et enregistrez-le.

Ouvrez
phpcms/libs/classes/template_cache.class.php et recherchez la ligne 207 de
$str .= '$pages = pages($'.$op.'_total, $page, $pagesize, $urlrule);';
Ajoutez
$str en dessous de cette ligne.= '$wz_pages = wz_pages($'. $op. '_total, $page, $pagesize, $urlrule);';
Enregistrer.

Enfin, si vous souhaitez utiliser votre fonction de pagination personnalisée, utilisez simplement {$wz_pages} directement dans le modèle

Si vous souhaitez modifier le style à l'avenir, modifiez-le directement <.> La fonction wz_pages dans le fichier phpcmslibsfunctionsglobal.func.php est suffisante et n'affectera pas l'arrière-plan

Optimisation ultérieure :

Lors de l'utilisation, il a été constaté que la pagination SQL ne pouvait pas être utilisée normalement. , et il doit être réutilisé. Ajoutez le code suivant

Ouvrez
phpcms/libs/classes/template_cache.class.php et recherchez la ligne 178 de
$str .= '$r = $. get_db->sql_query("'. $sql.'");$s = $get_db->fetch_next();$pages=pages($s['count'], $page, $pagesize, $urlrule) ;';
Sous lui Ajouté :
$str .= '$r = $get_db->sql_query("'.$sql.'");$s = $get_db->fetch_next(); $wz_pages=wz_pages($s[ 'count'], $page, $pagesize, $urlrule);';

De cette façon, la pagination SQL est également normale Hehe, vous êtes invités à voter pour les briques. ou pas, vous devez supporter~~

Autre optimisation de suivi :

Un ami a mentionné que la méthode ci-dessus ne peut pas être utilisée pour la pagination de la liste de collecte dans le centre des membres.
Étant donné que la fonction de pagination de la liste de collection est directement déterminée dans d'autres fichiers, il n'est pas possible de mettre en cache le
fichier en modifiant le modèle La méthode de modification est fournie ci-dessous :
Plus précisément , c'est
phpcmslibsclassesmodel. class.php Ligne 61
$this->pages = pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
Remplacez la ligne ci-dessus par :
$this->pages = wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
({$pages} dans le modèle n'a pas besoin d'être modifié par { $wz_pages})
Ce qui précède est la première méthode.
Mais si tel est le cas, l'arrière-plan peut également être affecté. Cet endroit semble contrôler de nombreux endroits.
Vous pouvez également le modifier de cette manière. Il s'agit toujours du même fichier que ci-dessus. 61. Ajoutez directement sous la ligne 61 :
$this->wz_pages= wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
Allez vers : phpcms
modulesmemberindex.php ligne 718Remplacez $pages = $this->favorite_db->pages;
par :
$wz_pages = $this->favorite_db-> ;wz_pages;
{$pages} dans le modèle doit être remplacé par {$wz_pages}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn