玩改车
 找回密码
 立即注册

QQ登录

只需一步,快速开始

快捷登录

 QQ账号登录  微博账号登录 

查看: 12433|回复: 13

Discuz!论坛远程链接图片增加Alt属性的方法(最新修改)

[复制链接]
发表于 2011-10-30 22:01:38 | 显示全部楼层 |阅读模式
新方法(2013年7月18日修改):
1、下载simple_html_dom.php,官网地址:http://simplehtmldom.sourceforge.net/
2、将simple_html_dom.php上传到source/module/portal/下
3、修改source/function/function_discuzcode.php文件:
找到如下代码:
  1. $message = preg_replace(array(
  2.                                 "/\[img\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ies",
  3.                                 "/\[img=(\d{1,4})[x|\,](\d{1,4})\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ies"
  4.                         ), $allowimgcode ? array(
  5.                                 "bbcodeurl('\\1', '<img $attrsrc="{url}" onload="thumbImg(this)" alt="" />')",
  6.                                 "parseimg('\\1', '\\2', '\\3', ".intval($lazyload).")"
  7.                         ) : array(
  8.                                 (!defined('IN_MOBILE') ? "bbcodeurl('\\1', '<a href="{url}" target="_blank">{url}</a>')" : "bbcodeurl('\\1', '<a href="{url}" target="_blank">[$viewimg]</a>')"),
  9.                                 (!defined('IN_MOBILE') ? "bbcodeurl('\\3', '<a href="{url}" target="_blank">{url}</a>')" : "bbcodeurl('\\3', '<a href="{url}" target="_blank">[$viewimg]</a>')"),
  10.                         ), $message);
复制代码
在这个代码后面,增加上如下代码:
//处理文章内容中的图片Alt问题;玩改车(wangaiche.com)技术团队,20130718;
//为了避免图片的Alt属性重复,特给图片Alt增加一个编号;
//需要判断一下帖子标题和图片本身是否已经有Alt属性;
//BEGIN
$imgalt = $_G[forum_thread][short_subject];
if ($imgalt) {
    require_once '/source/module/portal/simple_html_dom.php';
    $htmltemp = str_get_html($message);
    $img_index = 1;
    foreach($htmltemp->find('img') as $eimg)
    {
        if (!$eimg->alt) {
            $eimg->alt = $imgalt.'('.$img_index.')';
            $img_index = $img_index + 1;
        }
    }
    $replaced_text = $htmltemp->root->outertext();
    $message = $replaced_text;
}
//END





旧方法(2013年7月18日前):
--------------------------------------------------------------------------------------------------------------------------------------
之前修改source\function\function_discuzcode.php文件来给Discuz! X2远程图片增加Alt的方法并不是很好,所以,我重新修改了一下,既能给图片增加Alt属性,还能避免每一张图片都有相同的Alt文字(标题),以免被搜索引擎认为是堆砌关键字,遭到K站。
具体修改如下:
随便找个function后面,把这个函数的代码增加上:
  1. function str_replace_once($needle, $replace, $haystack) {
  2.         $pos = strpos($haystack, $needle);
  3.         if ($pos === false) {
  4.                 return $haystack;
  5.         }
  6.         return substr_replace($haystack, $replace, $pos, strlen($needle));
  7. }
复制代码
然后,找到如下代码:
  1. $message = preg_replace(array(
  2.                                 "/\[img\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ies",
  3.                                 "/\[img=(\d{1,4})[x|\,](\d{1,4})\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ies"
  4.                         ), $allowimgcode ? array(
  5.                                 "bbcodeurl('\\1', '<img $attrsrc="{url}" onload="thumbImg(this)" alt="" />')",
  6.                                 "parseimg('\\1', '\\2', '\\3', ".intval($lazyload).")"
  7.                         ) : array(
  8.                                 (!defined('IN_MOBILE') ? "bbcodeurl('\\1', '<a href="{url}" target="_blank">{url}</a>')" : "bbcodeurl('\\1', '<a href="{url}" target="_blank">[$viewimg]</a>')"),
  9.                                 (!defined('IN_MOBILE') ? "bbcodeurl('\\3', '<a href="{url}" target="_blank">{url}</a>')" : "bbcodeurl('\\3', '<a href="{url}" target="_blank">[$viewimg]</a>')"),
  10.                         ), $message);
复制代码
在这个代码后面,增加上如下代码:
  1. //Replace alt="" to alt="<forum_thread_short_title>"
  2.                         $imgalt = $_G[forum_thread][short_subject];
  3.                         $message = str_replace_once('alt=""','alt="'.$imgalt.'"',$message);
复制代码
这行做的目的就是把Alt为空的部分,替换成当前帖子的短标题,并且,只处理一次,不会被惩罚。另外,如果想多增加几个Alt信息,继续重复$message = str_replace_once('alt=""','alt="'.$imgalt.'"',$message);这句就可以了,替换成你自己想要的文字。
如果感觉麻烦,就直接下载我修改好的文件即可,下载地址:http://wangaiche.com/downloads/function_discuzcode_new.zip
本文系玩改车(http://wangaiche.com)原创,转载请注明来源,谢谢!

评分

参与人数 1金币 +10 收起 理由
卡卡北 + 10 请问有没有适用于DZX3的方法?

查看全部评分

发表于 2011-12-6 02:16:55 | 显示全部楼层
不错啊! 一个字牛啊!












沈阳化妆学校www.sjsyhz.com.cn
发表于 2011-12-19 12:04:33 | 显示全部楼层
这么好的帖子不顶就太对不起楼主了












led汽车灯www.haolingled.com
发表于 2011-12-23 16:54:22 | 显示全部楼层
一起交流!对这个话题感兴趣的朋友们












网盘也能赚钱。yunfile网赚网盘注册最低50G,下载无独立IP限制,最高150元/1000次下载,20元即可提现,现注册送8元!
发表于 2011-12-26 16:07:26 | 显示全部楼层
还没有机会尝试一下 帮顶












娇韵诗瘦脸霜 121288.com
发表于 2011-12-27 05:18:11 | 显示全部楼层
好多啊,哈哈,谢谢您













优易小说网
发表于 2012-1-6 13:22:26 | 显示全部楼层
行,有意义,我顶 谢谢您了












淘画报 http://www.sharing8.net  淘宝画报 http://www.sharing8.net  服装搭配http://www.sharing8.net  Beautyleg http://www.heisi8.org Beautyleg
发表于 2012-1-12 14:41:21 | 显示全部楼层
真的牛,双手赞成,谢谢了
发表于 2012-1-13 12:56:33 | 显示全部楼层
交流贴,继续努力发好帖












最火网页游戏www.173ux.com
发表于 2012-1-22 11:22:33 | 显示全部楼层
看看..........................












www.soyangs.com最新新闻
北京途宁网络 版权所有© 2011-2021 京ICP备12025735号-24 

京公网安备 11010502030663号

GMT+8, 2024-5-2 20:53 , Processed in 0.076110 second(s), 55 queries .

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