现在由蓝优网给你们分享一下如何实现文章内容三合一功能EMLOG教程,一共有以下这三种功能!
1.文章内容添加文章索引,我这里是调用H2的
2.文章内容有含有标签的添加链接
3.文章内容有外链的添加nofollow
关键代码添加到Module.php文件中
方法很简单一共有三个步骤,现在开始如下教程:
《一》关键代码添加到模板目录module.php文件中
<?php function article_index($content , $domain) { global $CACHE; $tag_cache = $CACHE->readCache('tags'); $matches = array(); $ul_li = ''; $r = "/<h2>([^<]+)<\/h2>/im"; if(preg_match_all($r,$content,$matches)) { foreach($matches[1] as $num => $title) { $content = str_replace($matches[0][$num], '<h2 id="title-'.$num.'">'.$title.'</h2>', $content); $ul_li .= '<li><a href="#title-'.$num.'" title="'.$title.'">'.$title."</a></li>\n"; } $content = "\n<div id=\"article-index\"> <b>[文章目录]</b> <ul id=\"index-ul\">\n" . $ul_li . "</ul> </div>\n" . $content; } foreach($tag_cache as $value){ $tag_url = Url::tag($value['tagurl']); $keyword = $value['tagname']; $cleankeyword = stripslashes($keyword); $url = "<a href=\"{$tag_url}\" title=\"浏览关于“{$cleankeyword}”的文章\" target=\"_blank\" >{$cleankeyword}</a>"; $regEx = '\'(?!((<.*?)|(<a.*?)))('. $cleankeyword . ')(?!(([^<>]*?)>)|([^>]*?</a>))\'s'; $content = preg_replace($regEx,$url,$content); } preg_match_all('/href="(.*?)"/', $log_content, $matches); if ($matches) { foreach ($matches[1] as $val) { if (strpos($val, $domain) === false) { $log_content = str_replace('href="' . $val . '"', 'href="' . $val . '" rel="external nofollow" ', $log_content); } } } preg_match_all('/src="(.*?)"/', $log_content, $matches); if ($matches) { foreach ($matches[1] as $val) { if (strpos($val, $domain) === false) { $log_content = str_replace('src="' . $val . '"', 'src="' . $val . '" rel="external nofollow" ', $log_content); } } } return $content; } ?>
《二》添加Css样式要主要CSS文件中
#article-index { border: 1px dashed #dedfe1; float: left; margin: 0 20px 20px 0; padding: 0 6px; width: 280px; line-height: 24px; } #article-index b { border-bottom: 1px dashed #ddd; display: block; line-height: 30px; padding: 0 4px; } #index-ul { margin: 5px; line-height: 1.8; } #index-ul li { background: none repeat scroll 0 0 transparent; list-style-type: decimal; padding: 4px 10px; border-left: 1px solid #e2e2e2; border-bottom: 1px solid #e2e2e2; } #index-ul li { list-style: circle outside none; }《三》打开echo_log.php文件放置挂载点
查找
<?php echo $log_content; ?>替换(当然你们自己改过,就不是找这个咯)
<?php echo article_index($log_content,$domain);?>如果有已添加压缩代码的朋友也想实现三合一功能,那么直接在echo_log.php文件内直接替换成如下挂载点:
<?php echo article_index(unCompress($log_content),$domain);?>