Emlog 文章内容功能三合一
围观: 1155 讨论: 6

  Emlog 文章内容功能三合一[复制链接]

[文章目录]

忙里偷闲
先唠叨几句,
已经好久没更新了
手机弄Emlog后台模板,弄的我眼睛疲劳,
这次弄完就不打算弄后台模板了,
我自己,已经够用了,
不折腾了后台了,太累了,
就在这两天发布,大家请关注吧!
上次群里的人说要这个功能,现在我就发布了
好了言归正传!
我说的文章内容功能三合一就是
1.文章内容添加文章索引,我这里是调用H2的
2.文章内容有含有标签的添加链接
3.文章内容有外链的添加nofollow

关键代码添加到Module.php文件中

 
  1. <?php  
  2. function article_index($content , $domain) {  
  3.             global $CACHE;  
  4.             $tag_cache = $CACHE->readCache('tags');  
  5.             $matches = array();  
  6.             $ul_li = '';  
  7.             $r = "/<h2>([^<]+)<\/h2>/im";  
  8.     if(preg_match_all($r,$content,$matches)) {  
  9.            foreach($matches[1] as $num => $title) {  
  10.            $content = str_replace($matches[0][$num], '<h2 id="title-'.$num.'">'.$title.'</h2>', $content);  
  11.            $ul_li .= '<li><a href="#title-'.$num.'" title="'.$title.'">'.$title."</a></li>\n";  
  12.              }  
  13.  $content = "\n<div id=\"article-index\"> 
  14.  <b>[文章目录]</b> 
  15.  <ul id=\"index-ul\">\n" . $ul_li . "</ul> 
  16.  </div>\n" . $content;  
  17.  }  
  18.  foreach($tag_cache as $value){  
  19.                 $tag_url = Url::tag($value['tagurl']);  
  20.                 $keyword = $value['tagname'];  
  21.                 $cleankeyword = stripslashes($keyword);  
  22.                 $url = "<a href=\"{$tag_url}\" title=\"浏览关于“{$cleankeyword}”的文章\" target=\"_blank\" >{$cleankeyword}</a>";  
  23.                 $regEx = '\'(?!((<.*?)|(<a.*?)))('. $cleankeyword . ')(?!(([^<>]*?)>)|([^>]*?</a>))\'s';  
  24.                 $content = preg_replace($regEx,$url,$content);          
  25. }  
  26. preg_match_all('/href="(.*?)"/', $log_content$matches);  
  27.     if ($matches) {  
  28.         foreach ($matches[1] as $val) {  
  29.             if (strpos($val$domain) === false) {  
  30.                 $log_content = str_replace('href="' . $val . '"', 'href="' . $val . '" rel="external nofollow" ', $log_content);  
  31.             }  
  32.         }  
  33.     }  
  34. preg_match_all('/src="(.*?)"/', $log_content$matches);  
  35.     if ($matches) {  
  36.         foreach ($matches[1] as $val) {  
  37.             if (strpos($val$domain) === false) {  
  38.                 $log_content = str_replace('src="' . $val . '"', 'src="' . $val . '" rel="external nofollow" ', $log_content);  
  39.             }  
  40.         }  
  41.     }  
  42. return $content;  
  43. }  
  44. ?>  

添加Css样式

 
  1.  #article-index {  
  2.  border1px dashed #dedfe1;  
  3.  floatleft;  
  4.  margin: 0 20px 20px 0;  
  5.  padding: 0 6px;  
  6.  width280px;  
  7.  line-height24px;  
  8. }  
  9. #article-index b {  
  10.  border-bottom1px dashed #ddd;  
  11.  displayblock;  
  12.  line-height30px;  
  13.  padding: 0 4px;  
  14. }  
  15. #index-ul {  
  16.  margin5px;  
  17.  line-height: 1.8;  
  18. }  
  19. #index-ul li {  
  20.  backgroundnone repeat scroll 0 0 transparent;  
  21.  list-style-typedecimal;  
  22.  padding4px 10px;  
  23.  border-left1px solid #e2e2e2;  
  24.  border-bottom1px solid #e2e2e2;  
  25. }  
  26. #index-ul li {  
  27.  list-stylecircle outside none;  
  28. }  

最后,打开echo_log.php文件

查找

 
  1. <?php echo $log_content; ?>  

替换(当然你们自己改过,就不是找这个咯)

 
  1. <?php echo article_index($log_content);?>  

完工,祝大家好运,转载请著名地方哦,手机码字不容易啊

 

本文标签:

本文链接: https://crazyus.us/article_directory.html

站长声明: 请尊重版权,转载注明出处,谢谢配合!
[查询收录]

既然来了/ 就点击这里 / 留个言吧

发表评论

取消 回复时邮件通知我
老司机就是老司机,不同凡响,很实用
好多代码
老哥这个很实用!要是可以修正一下,比如代码片段里面的不要加上tag的链接就完美了
@Mrxn:代码片段,还真没考虑到!你不说还真没注意!
@老司机:嗯 可以考虑遇见pre标签内的不执行替换, 我才发现另外一个不算bug的bug,比如文章中有个链接 http://xxx.com/info.php,而系统恰好有PHP标签和info标签的话,就会很尴尬.因为内链替换会把链接加上标签链接...不过这个不好解决(我认为...或许正册匹配到是URL的不替换?) 其实也可以不用解决  也可以当成一种挑战 试试 -_- 嘿嘿  反正pre标签解决了就基本上完美了
@Mrxn:嗯,有空在折腾这功能,不急!而且我的的代码高亮,不好弄!

Sitemap

网站已存活运行:403 天, 执行: 13.80毫秒

Powered By Emlog

© 2017~2019 疯狂老司机™ 本模板还在开发阶段