プロジェクト

全般

プロフィール

Bug(バグ) #2770

小窓になりうるドメインを入力すると正しくないURLでリンクが生成される

Yuya Watanabe約12年前に追加. 8年以上前に更新.

ステータス:
Fixed(完了)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2012-01-31
期日:
進捗率:

100%

3.6 で発生するか:
Yes (はい)
3.8 で発生するか:
Unknown (未調査)

説明

概要

www.google.co.jpwww.amazon.co.jp など,小窓となりうるリンクが存在する場合に http://www.www.google.co.jphttp://www.www.amazon.co.jp などといったようなリンクが生成される.

!https://redmine.openpne.jp/attachments/397/スクリーンショット.png!

参考: https://redmine.openpne.jp/issues/2323#note-3

確認環境

OpenPNE 3.7.0-dev
OpenPNE 3.6.1
OpenPNE 3.4.19


関連するチケット

関連している OpenPNE 3 - Backport(バックポート) #2829: 小窓になりうるドメインを入力すると正しくないURLでリンクが生成される Fixed(完了) 2012-01-31
関連している OpenPNE 3 - Backport(バックポート) #2872: 小窓になりうるドメインを入力すると正しくないURLでリンクが生成される Fixed(完了) 2012-01-31
関連している OpenPNE 3 - Backport(バックポート) #3105: 小窓になりうるドメインを入力すると正しくないURLでリンクが生成される Fixed(完了) 2012-01-31

関係しているリビジョン

リビジョン d83952de (差分)
Yuya Watanabe約12年前に追加

(fixes #2770) fixed to generate correct link having 'www.' cmd domain

履歴

#1 Yuya Watanabe約12年前に更新

  • 説明 を更新 (diff)

#2 Yuma Sakata約12年前に更新

再現確認できました。

Environment (再現バージョン)

OpenPNE3.4.20
OpenPNE3.6.2

Way to repro (再現手順)

1. 日記作成ページ(/diary/new)にアクセスする
2. 本文に小窓になりうるURL(例:www.google.co.jp) を入力後、Submitする
3. 作成した日記本文を確認する
4. 正しくないURLでリンクが生成される

Way to fix (修正内容)

小窓になりうるURLを入力した場合、正しくないURLでリンクが生成されないように修正お願いします。

#3 Yuya Watanabe約12年前に更新

  • ステータスNew(新規) から Accepted(着手) に変更
  • 担当者Yuya Watanabe にセット

#4 Yuya Watanabe約12年前に更新

原因

下記部分で $url にすでに www が付与されている状態であるにもかかわらず www が更に付与される状態となっている.

lib/helper/opUtilHelper.php 347行目

 334 function op_url_cmd($text)
 335 {
 336   return preg_replace_callback(SF_AUTO_LINK_RE, '_op_url_cmd', $text);
 337 }
 338 
 339 function _op_url_cmd($matches)
 340 {
 341   $url = $matches[2].$matches[3];
 342   $cmd = '';
 343 
 344   if ($matches[2] == 'www.')
 345   {
 346     $cmd .= 'www.';
 347     $url = 'http://www.'.$url;
 348   }

修正内容

347 行目で www が付与される意味はないはずなので,ここで www を付与しないように修正する.

diff --git a/lib/helper/opUtilHelper.php b/lib/helper/opUtilHelper.php
index d918493..5a17e99 100644
--- a/lib/helper/opUtilHelper.php
+++ b/lib/helper/opUtilHelper.php
@@ -344,7 +344,7 @@ function _op_url_cmd($matches)
   if ($matches[2] == 'www.')
   {
     $cmd .= 'www.';
-    $url = 'http://www.'.$url;
+    $url = 'http://'.$url;
   }

   if (preg_match('/([a-zA-Z0-9\-.]+)\/?(?:[a-zA-Z0-9_\-\/.,:;\~\?@&=+$%#!()])*/', $matches[3], $pmatch))

#5 Yuya Watanabe約12年前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

更新履歴 d83952de8411a15b5b7ae4b5313e751743a80492 で適用されました。

#6 Kousuke Ebihara約12年前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

#7 Shouta Kashiwagi約12年前に更新

  • 対象バージョンOpenPNE 3.7.0 から 252 に変更

#8 Yuya Watanabeほぼ12年前に更新

  • 対象バージョン252 から OpenPNE 3.8beta1 に変更

#9 Yuma Sakataほぼ12年前に更新

  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率70 から 100 に変更

テストOKです。

#10 kaoru n8年以上前に更新

  • 3.8 で発生するかUnknown (未調査) にセット

他の形式にエクスポート: Atom PDF