0
K2在商品評論中將不需要的文本解析爲網址。K2 Joomla錯誤商品評論的網址
1.使用joomla管理面板創建一個項目,並作爲一個客人輸入了以下文字的註釋 「node.js是一個功能完整的js引擎Enven。雖然這不是一個有效的url,但它已被渲染爲有效。與xxx.xxx任何URL解析URL和甚至像子域的語法iam.not.valid即mail.yahoo.com多麼可笑,這是」
- 在上面coomment的node.js,even.though, valid.url,xxx.xxx iam.not.valid即mail.yahoo.com呈現爲有效的網址。但在這種情況下,只有mail.yahoo.com不是有效的。
K2是使用在$ JHOME /組件/ com_k2 /視圖/項目/ view.html.php線(159-178)
$comments = $model->getItemComments($item->id, $limitstart, $limit, $commentsPublished);
$pattern = "@\b(https?://)?(([0-9a-zA-Z_!~*'().&=+$%-]+:)?[0-9a-zA-Z_!~*'().&=+$%-]+\@)?(([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-zA-Z_!~*'()-]+\.)*([0-9a-zA-Z][0-9a-zA-Z-]{0,61})?[0-9a-zA-Z]\.[a-zA-Z]{2,6})(:[0-9]{1,4})?((/[0-9a-zA-Z_!~*'().;?:\@&=+$,%#-]+)*/?)@";
for ($i = 0; $i < sizeof($comments); $i++) {
$comments[$i]->commentText = nl2br($comments[$i]->commentText);
$comments[$i]->commentText = preg_replace($pattern, '<a target="_blank" rel="nofollow" href="\0">\0</a>', $comments[$i]->commentText);
$comments[$i]->userImage = K2HelperUtilities::getAvatar($comments[$i]->userID, $comments[$i]->commentEmail, $params->get('commenterImgWidth'));
if ($comments[$i]->userID>0) {
$comments[$i]->userLink = K2HelperRoute::getUserRoute($comments[$i]->userID);
}
else {
$comments[$i]->userLink = $comments[$i]->commentURL;
}
if($reportSpammerFlag && $comments[$i]->userID>0) {
$comments[$i]->reportUserLink = JRoute::_('index.php?option=com_k2&view=comments&task=reportSpammer&id='.$comments[$i]->userID.'&format=raw');
}
else {
$comments[$i]->reportUserLink = false;
}
}
有人可以幫上面固定使用下面的代碼片段一些聰明智慧正則表達式?謝謝