Heim > Backend-Entwicklung > PHP-Tutorial > typecho里themes/../index.php的pageNav,如何跟Widget_Archive的pageNav关联?

typecho里themes/../index.php的pageNav,如何跟Widget_Archive的pageNav关联?

WBOY
Freigeben: 2016-06-06 20:32:45
Original
1718 Leute haben es durchsucht

user/themes/default文件夹里的index.php,有this->pageNav,而Widget_Archive里也有pageNav,当index.php里执行this->pageNav时,会执行Widget_Archive里的pageNav

请问,为什么会这样执行呢? 我在Widget_Archive里只看到有:

<code>require_once $this->_themeDir . $this->_themeFile;
</code>
Nach dem Login kopieren
Nach dem Login kopieren

这样一句话。难道是require进来了,就能在前台的index.php文件里,执行后台的pageNav函数?

user/themes/default/index.php里的pageNav代码:

<code>pageNav('« 前一页', '后一页 »'); ?>"
</code>
Nach dem Login kopieren
Nach dem Login kopieren

Widget_Archive里的pageNav代码:

<code>/**
     * 输出分页
     *
     * @access public
     * @param string $prev 上一页文字
     * @param string $next 下一页文字
     * @param int $splitPage 分割范围
     * @param string $splitWord 分割字符
     * @param string $template 展现配置信息
     * @return void
     */
public function pageNav($prev = '«', $next = '»', $splitPage = 3, $splitWord = '...', $template = '')
    {
        if ($this->have()) {
            $hasNav = false;
            $default = array(
                'wrapTag'       =>  'ol',
                'wrapClass'     =>  'page-navigator'
            );

            if (is_string($template)) {
                parse_str($template, $config);
            } else {
                $config = $template;
            }

            $template = array_merge($default, $config);

            $total = $this->getTotal();
            $this->pluginHandle()->trigger($hasNav)->pageNav($this->_currentPage, $total, 
                $this->parameter->pageSize, $prev, $next, $splitPage, $splitWord);

           if (!$hasNav && $total > $this->parameter->pageSize) {
                $query = Typecho_Router::url($this->parameter->type .
                (false === strpos($this->parameter->type, '_page') ? '_page' : NULL),
                $this->_pageRow, $this->options->index);

                /** 使用盒状分页 */
                $nav = new Typecho_Widget_Helper_PageNavigator_Box($total, 
                    $this->_currentPage, $this->parameter->pageSize, $query);

                echo '';
                $nav->render($prev, $next, $splitPage, $splitWord, $template);
                echo '' . $template['wrapTag'] . '>';
            }
        }
</code>
Nach dem Login kopieren
Nach dem Login kopieren

回复内容:

user/themes/default文件夹里的index.php,有this->pageNav,而Widget_Archive里也有pageNav,当index.php里执行this->pageNav时,会执行Widget_Archive里的pageNav

请问,为什么会这样执行呢? 我在Widget_Archive里只看到有:

<code>require_once $this->_themeDir . $this->_themeFile;
</code>
Nach dem Login kopieren
Nach dem Login kopieren

这样一句话。难道是require进来了,就能在前台的index.php文件里,执行后台的pageNav函数?

user/themes/default/index.php里的pageNav代码:

<code>pageNav('« 前一页', '后一页 »'); ?>"
</code>
Nach dem Login kopieren
Nach dem Login kopieren

Widget_Archive里的pageNav代码:

<code>/**
     * 输出分页
     *
     * @access public
     * @param string $prev 上一页文字
     * @param string $next 下一页文字
     * @param int $splitPage 分割范围
     * @param string $splitWord 分割字符
     * @param string $template 展现配置信息
     * @return void
     */
public function pageNav($prev = '«', $next = '»', $splitPage = 3, $splitWord = '...', $template = '')
    {
        if ($this->have()) {
            $hasNav = false;
            $default = array(
                'wrapTag'       =>  'ol',
                'wrapClass'     =>  'page-navigator'
            );

            if (is_string($template)) {
                parse_str($template, $config);
            } else {
                $config = $template;
            }

            $template = array_merge($default, $config);

            $total = $this->getTotal();
            $this->pluginHandle()->trigger($hasNav)->pageNav($this->_currentPage, $total, 
                $this->parameter->pageSize, $prev, $next, $splitPage, $splitWord);

           if (!$hasNav && $total > $this->parameter->pageSize) {
                $query = Typecho_Router::url($this->parameter->type .
                (false === strpos($this->parameter->type, '_page') ? '_page' : NULL),
                $this->_pageRow, $this->options->index);

                /** 使用盒状分页 */
                $nav = new Typecho_Widget_Helper_PageNavigator_Box($total, 
                    $this->_currentPage, $this->parameter->pageSize, $query);

                echo '';
                $nav->render($prev, $next, $splitPage, $splitWord, $template);
                echo '' . $template['wrapTag'] . '>';
            }
        }
</code>
Nach dem Login kopieren
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage