应天论坛

 找回密码
 参与我们

QQ登录

只需一步,快速开始

搜索
查看: 858|回复: 3

帝国CMS 解决自动分页截断<div>等标签、末页空白问题

[复制链接]

276

主题

303

帖子

3197

积分

管理员

湘南小侠客

Rank: 9Rank: 9Rank: 9

积分
3197

优质服务勋章论坛元老

QQ
发表于 2017-10-9 01:53:57 | 显示全部楼层 |阅读模式
帝国CMS在自动分页时,存在两个问题:

(1)分页符 [!--empirenews.page--]  会截断文中的标签,比如<p>、<div>、<h3>、<strong>等,造成页面排版混乱;

(2)可能在文章末尾加上 [!--empirenews.page--] ,生成一个正文为空的页面,体验非常不好。

解决此问题的方法是要修改自动分页函数。

1、必要修改:

打开 e/class/functions.php 文件,查找 function AutoDoPage 找到函数,将此函数删除或注释掉,用下面的代码替换:

[mw_shl_code=php,true]function AutoDoPage($mybody,$spsize){
  $sptag="[!--empirenews.page--]";
  if(strlen($mybody)<$spsize) return $mybody;
  $bds = explode('>',$mybody);
  $npageBody = "";
  $istable = 0;
  $mybody = "";
  foreach($bds as $i=>$k)
  {
           if($i==0){ $npageBody .= $bds[$i]; continue;}
           $bds[$i] = ">".$bds[$i];
           if(strlen($bds[$i])>6){
                    $tname = substr($bds[$i],1,5);
                    if(strtolower($tname)=='table') $istable++;
                    else if(strtolower($tname)=='/tabl') $istable--;
                    if($istable>0){ $npageBody .= $bds[$i]; continue; }
                    else $npageBody .= $bds[$i];
           }else{
                    $npageBody .= $bds[$i];
           }
           if(strlen($npageBody)>$spsize){
                    $mybody .= $sptag.$npageBody;
                    $npageBody = "";
     }
  }
  if($npageBody!="") $mybody .= $npageBody;
  $mybody=str_replace($sptag.">",">".$sptag,$mybody);
  $mybody=substr($mybody,strlen($sptag));
  return $mybody;
}[/mw_shl_code]

2、不必须修改:

如果不喜欢<p>[!--empirenews.page--]</p>或<div>[!--empirenews.page--]</div>也被截断,可以继续修改:

查找//返回编译,在其上的一个大括号}内插入代码:

[mw_shl_code=php,true]$sptag="[!--empirenews.page--]";
$add[newstext]=str_replace(array("<p>".$sptag."</p>","<div>".$sptag."</div>"),$sptag,$add[newstext]);[/mw_shl_code]

友情提醒:

(1)根据帝国自动分页的算法,不要出现长段落(段落长度大于自动分页的长度设置),否则会截断段落中的各种标签。

(2)完成了第2个修改后,在后台编辑时还会出现<p>[!--empirenews.page--]</p>或<div>[!--empirenews.page--]</div>,但前台生成时不会出现截断。
每次见你穿短裤打领带,还穿个拖鞋,下次再这样穿不要从我家门口过了!
http://gsh.yzqz.cn/CassettePlayer/index.html

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 参与我们

本版积分规则

QQ|Archiver|手机版|小黑屋|应天社区 ( 湘ICP备17015224号 )

GMT+8, 2024-12-22 18:53 , Processed in 0.062500 second(s), 27 queries .

Powered by Discuz!

© 2001-2017 Comsenz Inc.


免责声明:
本站所发布的第三方软件及资源(包括但不仅限于文字/图片/音频/视频等仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢某程序或某个资源,请支持正版软件及版权方利益,注册或购买,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To: admin@yzqz.cn

快速回复 返回顶部 返回列表