帝国论坛帝国网站管理系统交流区模板/标签/插件共享交流[原创]对分页导航标签[!--title.select--]的改良 【本版专题贴子】  
 1/4     1 2 3 4 ›› ›|
主题:[原创]对分页导航标签[!--title.select--]的改良 [加入收藏夹]   

aulian
用户头衔:举人

精华贴   :1
发贴数   :162
经验值   :843
注册时间:2006-08-21
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
[原创]对分页导航标签[!--title.select--]的改良
本文关键字:分页导航 分页导行 [!--empirenews.page--] [!--title.select--]
首发:aulian(bbs.phome.net)
测试环境:ecms7.0测试版,其它版本未测试

一、什么是分页导航?
  新闻内容很长,拉太长的话访客可能会感觉阅读起来比较累,对一篇新闻适应的分页是比较好的办法。
  所谓分页导航是对每一页起个合适的小标题并显示,有点像图书目录的作用。

二、如何使用分页导航?
  1、对新闻内容的要求:为了能够使用分页导航,需要在新闻合适的位置使用[!--empirenews.page--]标签。

  对于不用分页标题而只是简单分页的情况,可以这样写:
  和高层有过密切接触的伍新木后来得知,国家发改委一主要领导评价以此为主题的申报材料,武汉“申新”主题概念模糊,频频更换核心思想,可谓用心良苦,但还需从国家高度、全局考虑。这位官员还特别强调,“武汉申报不可太着急,肯定要批的。”
  [!--empirenews.page--]
  在第三轮国家综合配套改革试点申请中,一直不见声色的武汉这次高调起来。另外,连续经历过四次“申新”失利,尤其邻市“成渝综改区”获批和“中部办”成立之后,武汉开始变得更加着急。


  对于用分页标题的,可以这样写:
  和高层有过密切接触的伍新木后来得知,国家发改委一主要领导评价以此为主题的申报材料,武汉“申新”主题概念模糊,频频更换核心思想,可谓用心良苦,但还需从国家高度、全局考虑。这位官员还特别强调,“武汉申报不可太着急,肯定要批的。”
  [!--empirenews.page--]武汉着急了[/!--empirenews.page--]
  在第三轮国家综合配套改革试点申请中,一直不见声色的武汉这次高调起来。另外,连续经历过四次“申新”失利,尤其邻市“成渝综改区”获批和“中部办”成立之后,武汉开始变得更加着急。


  2、对模板的要求:需要在模板的适当位置使用[!--title.select--]

三、改进分页导航?
  找到e/class/t_functions.php,150行左右,function sys_ShowTextPage,根据需要用以下代码替换掉官方的代码,重新生成即可看到效果。

沿用官方的下拉列表,另外在标题前加上“第×页”,并且在下拉列表外面写上“文章导航”字样,见图1。


function sys_ShowTextPage($thispagenum,$dolink,$add,$filetype,$n_r){
        global $fun_r;
        if($thispagenum==1)
        {
                return "";
        }
        $page="";
        for($j=1;$j<=$thispagenum;$j++)
        {
                $k=$j-1;
            if($j==1)
                {
                $page.="<a href=\"".$dolink.$add[filename].$filetype."\">".$j."</a>&nbsp;";
                        $title=$add[title];
                        $plink=$add[filename].$filetype;
                }
                else
                {
                        $page.="<a href=\"".$dolink.$add[filename]."_".$j.$filetype."\">".$j."</a>&nbsp;";
                        $plink=$add[filename]."_".$j.$filetype;
                        $ti_r=explode("[/!--empirenews.page--]",$n_r[$k]);
                    if(count($ti_r)>=2&&$ti_r[0])
                        {$title=$ti_r[0];}
                    else
                        {$title=$add[title]."(".$j.")";}
                }
                $titleselect.="<option value=\"".$dolink.$plink."?".$j."\">"."第".$j."页:".$title."</option>";
        }
        $return_r['titleselect']="文章导航:<select name=select onchange=\"self.location.href=this.options[this.selectedIndex].value\">".$titleselect."</select>";
        //去掉最后一个&nbsp;
        $return_r['page']="[prepage]".substr($page,0,strlen($page)-6)."[nextpage]";
        return $return_r;
}



不用下拉列表,导航标题平铺,标题前加上“第×页”,并且在导航前面写上“文章导航”字样,见图2。


function sys_ShowTextPage($thispagenum,$dolink,$add,$filetype,$n_r){
        global $fun_r;
        if($thispagenum==1)
        {
                return "";
        }
        $page="";
        for($j=1;$j<=$thispagenum;$j++)
        {
                $k=$j-1;
            if($j==1)
                {
                $page.="<a href=\"".$dolink.$add[filename].$filetype."\">".$j."</a>&nbsp;";
                        $title=$add[title];
                        $plink=$add[filename].$filetype;
                }
                else
                {
                        $page.="<a href=\"".$dolink.$add[filename]."_".$j.$filetype."\">".$j."</a>&nbsp;";
                        $plink=$add[filename]."_".$j.$filetype;
                        $ti_r=explode("[/!--empirenews.page--]",$n_r[$k]);
                    if(count($ti_r)>=2&&$ti_r[0])
                        {$title=$ti_r[0];}
                    else
                        {$title=$add[title]."(".$j.")";}
                }
                $titleselect.="·<a href=\"".$dolink.$plink."?".$j."\">"."第".$j."页:".$title."</a><br>";
        }
        $return_r['titleselect']="文章导航:<br>".$titleselect;
        //去掉最后一个&nbsp;
        $return_r['page']="[prepage]".substr($page,0,strlen($page)-6)."[nextpage]";
        return $return_r;
}



另附官方原版代码,见图3。


function sys_ShowTextPage($thispagenum,$dolink,$add,$filetype,$n_r){
        global $fun_r;
        if($thispagenum==1)
        {
                return "";
        }
        $page="";
        for($j=1;$j<=$thispagenum;$j++)
        {
                $k=$j-1;
            if($j==1)
                {
                $page.="<a href=\"".$dolink.$add[filename].$filetype."\">".$j."</a>&nbsp;";
                        $title=$add[title];
                        $plink=$add[filename].$filetype;
                }
                else
                {
                        $page.="<a href=\"".$dolink.$add[filename]."_".$j.$filetype."\">".$j."</a>&nbsp;";
                        $plink=$add[filename]."_".$j.$filetype;
                        $ti_r=explode("[/!--empirenews.page--]",$n_r[$k]);
                    if(count($ti_r)>=2&&$ti_r[0])
                        {$title=$ti_r[0];}
                    else
                        {$title=$add[title]."(".$j.")";}
                }
                $titleselect.="<option value=\"".$dolink.$plink."?".$j."\">".$title."</option>";
        }
        $return_r['titleselect']="<select name=select onchange=\"self.location.href=this.options[this.selectedIndex].value\">".$titleselect."</select>";
        //去掉最后一个&nbsp;
        $return_r['page']="[prepage]".substr($page,0,strlen($page)-6)."[nextpage]";
        return $return_r;
}



四、可以将“文章导航”四个字写在模板里吗?
  可以,但是,如果新闻只有一页,没有用到导航标签的话,那么生成的页面依然有这四个字。

五、更上层楼,同一新闻内既有下拉式导航,又有平铺式导航该怎么做?
  希望达到的效果是,在正文上方出现平铺式的导航,在正文下方出现一个下拉列表式的导航,这样的用户体验更加完美,本来想试着用标签配合自定义函数搞出来的,但是没成功,哪位高人如果能指点一下不胜感激。

参考资料:
http://bbs.phome.net/ShowThread/?threadid=41500&forumid=31
http://bbs.phome.net/ShowThread/?threadid=41562&forumid=31

上传以下图片:


[该贴被修改 2 次,最后修改时间 2007-12-11 00:13:16 ]


三种碎片的功能整合
新闻和附件保存路径的问题
増删改刷的API
2007-12-11 00:09:05 已设置保密 顶部 回复 引用 报告 编辑 删除

雨雪天气
用户头衔:进士

精华贴   :0
发贴数   :1111
经验值   :3617
注册时间:2006-11-19
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

顶下 不错的 学习了



很久不更新……

2007-12-11 00:20:04 已设置保密 顶部 回复 引用 报告 编辑 删除

禾火木风
用户头衔:嘉宾

精华贴   :11
发贴数   :5478
经验值   :14179
注册时间:2006-03-02
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

不错,谢谢分享



梦想设计 成就你的设计梦想
2007-12-11 09:30:48 已设置保密 顶部 回复 引用 报告 编辑 删除

rayyang
用户头衔:进士

精华贴   :0
发贴数   :661
经验值   :2131
注册时间:2007-06-30
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

不错,谢谢分享




2007-12-11 13:20:53 已设置保密 顶部 回复 引用 报告 编辑 删除

疯伟
用户头衔:书生

精华贴   :0
发贴数   :1
经验值   :15
注册时间:2007-07-16
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

满不错的...



http://www.admin186.com
2007-12-12 00:03:40 已设置保密 顶部 回复 引用 报告 编辑 删除

298610601
用户头衔:进士

精华贴   :0
发贴数   :425
经验值   :2479
注册时间:2007-05-18
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

要是在同一个页面实现图1和图2的效果呢?

[该贴被修改 1 次,最后修改时间 2008-02-28 16:37:22 ]


武汉网络营销 www.creatdo.com 海贼王漫画 www.zmanhua.com
2008-02-28 16:36:57 已设置保密 顶部 回复 引用 报告 编辑 删除

luring
用户头衔:探花

精华贴   :3
发贴数   :2303
经验值   :7179
注册时间:2007-02-12
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

加精



1
2008-02-28 16:55:06 已设置保密 顶部 回复 引用 报告 编辑 删除

连长
用户头衔:举人

精华贴   :0
发贴数   :218
经验值   :1189
注册时间:2007-07-27
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]
如何改成一排显示两个?
如何改成一排显示两个?像下图中的那样

不用下拉列表,导航标题平铺,标题前加上“第×页”,并且在导航前面写上“文章导航”字样,见图2。

--------------------------------------------------------------------------------

function sys_ShowTextPage($thispagenum,$dolink,$add,$filetype,$n_r){
        global $fun_r;
        if($thispagenum==1)
        {
                return "";
        }
        $page="";
        for($j=1;$j<=$thispagenum;$j++)
        {
                $k=$j-1;
            if($j==1)
                {
                $page.="<a href=\"".$dolink.$add[filename].$filetype."\">".$j."</a>&nbsp;";
                        $title=$add[title];
                        $plink=$add[filename].$filetype;
                }
                else
                {
                        $page.="<a href=\"".$dolink.$add[filename]."_".$j.$filetype."\">".$j."</a>&nbsp;";
                        $plink=$add[filename]."_".$j.$filetype;
                        $ti_r=explode("[/!--empirenews.page--]",$n_r[$k]);
                    if(count($ti_r)>=2&&$ti_r[0])
                        {$title=$ti_r[0];}
                    else
                        {$title=$add[title]."(".$j.")";}
                }
                $titleselect.="·<a href=\"".$dolink.$plink."?".$j."\">"."第".$j."页:".$title."</a><br>";
        }
        $return_r['titleselect']="文章导航:<br>".$titleselect;
        //去掉最后一个&nbsp;
        $return_r['page']="[prepage]".substr($page,0,strlen($page)-6)."[nextpage]";
        return $return_r;
}

--------------------------------------------------------------------------------


上传以下图片:





2008-03-03 14:06:00 已设置保密 顶部 回复 引用 报告 编辑 删除

zpl280
用户头衔:书生

精华贴   :0
发贴数   :123
经验值   :262
注册时间:2007-07-24
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

我差点看晕了。哈哈。。



1000MB空间,250M MYSQL只需35/月付 350元/年,合租空间1G起/支持月/年付,买得放心!www.zdiis.com
2008-03-03 14:17:27 已设置保密 顶部 回复 引用 报告 编辑 删除

连长
用户头衔:举人

精华贴   :0
发贴数   :218
经验值   :1189
注册时间:2007-07-27
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 10 楼]

原帖由 zpl280 于 2008-03-03 14:17:27 发表
我差点看晕了。哈哈。。



这里全是PHP函数,看不懂。想要实现我上面请问的样式怎么办?谢谢




2008-03-03 14:20:02 已设置保密 顶部 回复 引用 报告 编辑 删除
 1/4     1 2 3 4 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1