本帖最后由 soqos 于 2011-8-30 11:34 编辑
官方说文章自动分页无法实现,本人搞了一个晚上,终于成功。 现在拿出来分享,并请官方把自动分页的功能整合到1.5里去,因为,真的很有必要。
演试地址: http://www.haolawyer.com/wk-132877-2.html
第一步,建立一个PAGE.PHP文件,放在\source\function目录下 第二步,把以下代码放在portal_view.php里 - //yehq add
- require_once DISCUZ_ROOT.'./source/function/page.php';
- $content2 = file_get_contents($content['content']);
- $ipage = $_GET["ipage"]? intval($_GET["ipage"]):1;
- $CP = new cutpage();
- $content2 = $CP -> pagestr = $content['content'];
- $content2 = $CP -> cut_str();
- $content2 = $CP -> pagearr[$ipage-1]."<BR>";
- //$content3 = $CP-> show_prv_next();
- $sumpage = $CP-> sum_page;
- $ipage = intval($_GET['ipage']);
- $multi2 = multi2($sumpage, 1, $ipage, "portal.php?mod=view&aid=$aid");
复制代码
第三步,修改template\default\portal\view.htm模版
把 $content['content']) 替换成 $content2
再把<!--{if $multi}--><div class="bm cl">$multi</div><!--{/if}-->替换成 <!--{if $multi}--><div class="bm cl">$multi</div><!--{elseif $sumpage}-->
<div class="bm cl">$multi2</div><!--{/if}-->
大功告成!
演试地址: http://www.haolawyer.com/wk-132877-2.html
大家多多支持!
另外, 官方曾经有人说这种自动分页只能文本有效,其实不尽然,解决方案有几种:
第一种,在编辑里JS文件里加入 - var clearFromWord = function(html) {
- // for Word2000+
- html = html.replace(/<\/?SPAN[^>]*>/gi, "" );
- html = html.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3");
- html = html.replace(/<(\w[^>]*) style="([^"]*)"([^>]*)/gi, "<$1$3");
- html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3");
- html = html.replace(/<\\?\?xml[^>]*>/gi, "");
- html = html.replace(/<\/?\w+:[^>]*>/gi, "");
- // for Word2000
- html = html.replace(/<img+.[^>]*>/gi, "");
- return html;
- };
复制代码
和 - if(pasteData && pasteData.length > 0) {
- var wordPattern = /<\w[^>]* class="?MsoNormal"?/gi;
- if(wordPattern.test(pasteData)) {
- if(confirm("文章有多余代码,可能影响顺利发表,是否确认清除?\r\n\r\n提示:您的文字将完整保留。")) {
- pasteData = clearFromWord(pasteData);
- }
- else {
- pasteData = pasteData.replace(/<img+.[^>]*>/gi, "");
- pasteData = pasteData.replace(/<\/?\w+:imagedata[^>]*>/gi, "");
- pasteData = pasteData.replace(/<\/?\w+:shape[^>]*>/gi, "");
- }
- }
复制代码
以上两个判断,基本上就可以把WORD冗余代码去掉,只保留一些有用的基本HTML符号。把问题解决在源头。
第二种是在数据库里输出时,先过滤,再进行分页。
没有问题是不能解决的,只是官方要不要去做的问题。
PS:本人根本不懂程序,也不懂PHP,原来是用ASP,转成PHP也就这几个月的时间。而这些问题,连我认真看一下DZ的代码都可以修改,为什么官方就是不肯去做呢?
还是那句话,态度决定一切。
这个帖子希望官方能够看到,并完善DZ1.5的分页功能里。
谢谢!本人是新手,没金币,没体力,多多支持。
|