ホームページ > バックエンド開発 > PHPチュートリアル > typecho里themes/../index.php的pageNav,如何跟Widget_Archive的pageNav关联?

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

WBOY
リリース: 2016-06-06 20:32:45
オリジナル
1718 人が閲覧しました

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>
ログイン後にコピー
ログイン後にコピー

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

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

<code>pageNav('« 前一页', '后一页 »'); ?>"
</code>
ログイン後にコピー
ログイン後にコピー

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>
ログイン後にコピー
ログイン後にコピー

回复内容:

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>
ログイン後にコピー
ログイン後にコピー

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

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

<code>pageNav('« 前一页', '后一页 »'); ?>"
</code>
ログイン後にコピー
ログイン後にコピー

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>
ログイン後にコピー
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート