Method for secondary development of custom paging functions in PHPCMS V9

黄舟
Release: 2023-03-04 13:10:01
Original
1920 people have browsed it

When you build a website, the paging style may often have to be controlled according to the requirements of the template. At this time, many people will modify the pages() function in the global file phpcms\libs\functions\global.func.php. , so the problem arises: this paging function will also affect the background, that is to say, this paging function is shared by the entire site. The following provides a solution: (This requires modifying the file, remember to back up before modifying)
Open the file phpcms\libs\functions\global.func.php, find the paging function, copy it, paste it below the default paging function, and re- Name it, for example, I named it wz_pages, and save it.
Open phpcms/libs/classes/template_cache.class.php and find line 207:

$str .= '$pages = pages($'.$op.'_total, $page, $pagesize, $urlrule);';
Copy after login

Add below this line:

$str .= '$wz_pages = wz_pages($'.$op.'_total, $page, $pagesize, $urlrule);';
Copy after login

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 this 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 and find line 178:

$str .= '$r = $get_db->sql_query("'.$sql.'");$s = $get_db->fetch_next();$pages=pages($s[\'count\'], $page, $pagesize, $urlrule);';
Copy after login

Add below it:

$str .= '$r = $get_db->sql_query("'.$sql.'");$s = $get_db->fetch_next();$wz_pages=wz_pages($s[\'count\'], $page, $pagesize, $urlrule);';
Copy after login

In this way, SQL paging is also normal.
Another follow-up optimization:
A friend mentioned that the above method cannot be used for the collection list pagination in the member center.
Because the paging function of the collection list is directly set in other files, it is not feasible to modify the template cache file. 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);
Copy after login

Change the above line to:

$this->pages = wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
Copy after login

({$pages} in the template does not need to be changed For {$wz_pages})
The above is the first method.



But in this case, the background may also be affected. This place seems to be controlled In many places, you can also modify it in this way. It is 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);
Copy after login

Then go to: phpcms\modules\member\index.php line 718 and change the following line

$pages = $this->favorite_db->pages;
Copy after login


Modify to:

$wz_pages = $this->favorite_db->wz_pages;
Copy after login

## {$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 content of the method of secondary development of custom paging functions in PHPCMS V9. For more related content, please pay attention to the PHP Chinese website (m.sbmmt.com)!

Related articles:

How to set SEO settings for the title of PHPCMS V9

Detailed explanation of the idea of adding secondary navigation to PHPCMS V9

Solutions to various problems in secondary development and use of phpcms v9

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!