Home > Article > Backend Development > Detailed explanation of method examples for secondary development of custom paging functions in PHPCMS
Let me share with you a method for secondary development of custom paging function in PHPCMS V9.
The method is as follows:
First open the file phpcms\libs\functions\global.func.php, find the paging function, copy it, paste it below the default paging function, and rename it, for example, I named it wz_pages ,save.
Open phpcms/libs/classes/template_cache.class.php and find line 207:
$str .= '$pages = pages($'.$op.'_total, $page, $pagesize, $urlrule);';
Add below this line:
$str .= '$wz_pages = wz_pages($'.$op.'_total, $page, $pagesize, $urlrule);';
Save. Finally, if you want to use your custom paging function, just use {$wz_pages} directly in the template. If you want to modify the style in the future, modify it directly:
phpcms\libs\functions\global.func.php The wz_pages function in the file is enough and will not affect the background.
Follow-up optimization:
During use, it was found that SQL paging cannot be used normally, and the following code must be added:
Open phpcms/libs/classes/template_cache.class.php, Find line 178:
$str .= '$r = $get_db->sql_query("'.$sql.'");$s = $get_db->fetch_next();$pages=pages($s[\'count\'], $page, $pagesize, $urlrule);';
and add below it:
$str .= '$r = $get_db->sql_query("'.$sql.'");$s = $get_db->fetch_next();$wz_pages=wz_pages($s[\'count\'], $page, $pagesize, $urlrule);';
In this way, SQL paging becomes normal.
Another follow-up optimization:
A friend mentioned that the above method cannot be used for the collection list paging in the member center.
Because the paging function of the collection list is directly set in other files, it is not feasible to cache the file by modifying the template . The modification method is provided below:
See the specific modifications below:
phpcms\libs\classes\model.class.php Line 61
$this->pages = pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
Change the above line to:
$this->pages = wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
(in the template {$pages} does not need to be changed to {$wz_pages})
The above is the first method.
But if this is the case, the background may also be affected. This place seems to control many places. It can also be modified like this. It is still the same file as above. Do not modify line 61. Add directly below line 61:
$this->wz_pages= wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
Then go to: phpcms\modules\member\index.php line 718 and change the following line
$pages = $this->favorite_db->pages;
is modified to:
$wz_pages = $this->favorite_db->wz_pages;
The {$pages} in the template should be modified to {$wz_pages}. This is taking the collection list as an example, and the others are similar.
The above is the detailed content of Detailed explanation of method examples for secondary development of custom paging functions in PHPCMS. For more information, please follow other related articles on the PHP Chinese website!