当前位置:Gxlcms > PHP教程 > typecho里themes/../index.php的pageNav,如何跟Widget_Archive的pageNav关联?

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

时间:2021-07-01 10:21:17 帮助过:18人阅读

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

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

require_once $this->_themeDir . $this->_themeFile;

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

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

< "?php $this->pageNav('« 前一页', '后一页 »'); ?>"

Widget_Archive里的pageNav代码:

/**
     * 
输出分页 * * @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 '<' . $template['wrapTag'] . (empty($template['wrapClass']) ? '' : ' class="' . $template['wrapClass'] . '"') . '>'; $nav->render($prev, $next, $splitPage, $splitWord, $template); echo ''; } }

回复内容:

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

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

require_once $this->_themeDir . $this->_themeFile;

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

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

< "?php $this->pageNav('« 前一页', '后一页 »'); ?>"

Widget_Archive里的pageNav代码:

/**
     * 
输出分页 * * @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 '<' . $template['wrapTag'] . (empty($template['wrapClass']) ? '' : ' class="' . $template['wrapClass'] . '"') . '>'; $nav->render($prev, $next, $splitPage, $splitWord, $template); echo ''; } }

人气教程排行