プロジェクト

全般

プロフィール

Backport(バックポート) #1452

壊れたopタグの後ろに改行が含まれると意図しないタグが作成される

Shinichi Urabe13年以上前に追加. 13年以上前に更新.

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

100%


説明

現象

<op:b>てててて<op:b
<op:u>てててて<op:u
<op:s>てててて<op:s
<op:i>てててて<op:i
<op:font size="5">てててて<<op:font
<op:font size="1">てててて</oont>
<op:font color="#FF0000">ててててp:font>
てててて

 ↓ HTML タグに置換後
<span class="op_b">てててて<span class="op_b&lt;br">
<span class="op_u">てててて<span class="op_u&lt;br">

<span class="op_s">てててて<span class="op_s&lt;br">
<span class="op_i">てててて<span class="op_i&lt;br">
<span class="op_font" style="font-size:large">てててて&lt;<span class="op_font&lt;br">
<span class="op_font" style="font-size:xx-small">てててて&lt;/oont&gt;<br />
<span class="op_font" style="color:#FF0000;">ててててp:font&gt;<br />
てててて</span></span></span></span></span></span></span></span></span></span></span></span>

原因

バグが発生した原因を記入

修正内容

正規表現を op: の後を 文字数字ハイフンとし 属性の中は 開始タグ以外の文字列とマッチするように修正

正しい結果:パターン

<op:[改行] → そのまま表示される

<op:i color="[改行]#333333"> → そのまま表示される

<op:<op>aa> → そのまま表示される

<op:i<op:i> → <op:i のみ表示される

<op:font color="<op:s>"> → <op:font color=""> 最後の "> に打ち消し線 


関連するチケット

関連している OpenPNE 3 - Bug(バグ) #1451: 壊れたopタグの後ろに改行が含まれると意図しないタグが作成される Fixed(完了) 2010-07-29
関連している OpenPNE 3 - Backport(バックポート) #1439: #975の修正で正規表現のマッチングが不十分である Fixed(完了) 2010-07-27

関係しているリビジョン

リビジョン b5f95163 (差分)
Shinichi Urabe13年以上前に追加

ignore html tag in toHtml() replace method (fixes #1452, BP from ##1451)

リビジョン 4eecc88f (差分)
Shinichi Urabe13年以上前に追加

Fixed regular expression to exclude a string containing the configuration of the tag (fixes #1452, BP from #1451)

リビジョン ee682d4c (差分)
Shinichi Urabe13年以上前に追加

Fixed regular expression (fixes #1452, BP from #1451)

リビジョン bf92c6ae (差分)
Shinichi Urabe13年以上前に追加

add unit test for opWidgetFormRichTextareaOpenPNETest::toHtml() (fixes #1452, BP from #1451)

リビジョン 18ef45f2 (差分)
Shinichi Urabe13年以上前に追加

Remove unnecessary Meta-character (fixes #1452, BP from #1451)

履歴

#1 Shinichi Urabe13年以上前に更新

  • 担当者Shinichi Urabe にセット

#2 Shinichi Urabe13年以上前に更新

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

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

#3 Rimpei Ogawa13年以上前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更
<op:i<op:i>
  ↓
<span class="op_i&lt;op_i"></span>
となってしまいます。

#4 Shinichi Urabe13年以上前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

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

#5 Rimpei Ogawa13年以上前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

[^(?:<.?>)][^] 内の文字を除外しているだけです。 : が含まれているので op:i に引っかからずたまたま上手くいっているだけです。

修正前が上手くいっていないのは $string&lt;op:i&lt;op:i&gt; だからです。

#6 Shinichi Urabe13年以上前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

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

#7 Shinichi Urabe13年以上前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

ユニットテストがない

#8 Shinichi Urabe13年以上前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

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

#9 Rimpei Ogawa13年以上前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

以下の部分が不要ではないかと思います。

  • op:\w+??
  • (op:\w+?)? の最後の ?
  • (?:(?!&lt;|<).)*? の最後の ?

#10 Shinichi Urabe13年以上前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

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

#11 Rimpei Ogawa13年以上前に更新

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

#12 Mutsumi Imamura13年以上前に更新

確認しました。テストOKです。

#13 Mutsumi Imamura13年以上前に更新

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

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