プロジェクト

全般

プロフィール

Bug(バグ) #3413

未完了

管理画面のhtml挿入で,テキストモードからプレビューモードに切り替えた後,テキストモードに戻った時に入力内容が消える場合がある

誠二 天重 さんが約11年前に追加. 4年以上前に更新.

ステータス:
Rejected(差し戻し)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2013-09-30
期日:
進捗率:

50%

予定工数:
(合計: 0:00時間)
3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Yes (はい)

説明

概要

管理画面のhtml挿入で,テキストモードで例のようなソースを入力し,プレビューモードに切り替えた後,テキストモードに戻った時に入力内容が消える。


<span><script src="http://hoge.com"></script></span>
<span><a href="/"></a></span>

現象が発生する条件としては,spanタグやdivタグ,pタグなどの中で,プレビュー時に出力内容を持たないようなソースを入力した場合に発生する。

spanではなくdivでくくった場合は,入力内容が

<div>&nbsp;</div>
になる。

再現手順

  1. 管理画面のhtml挿入画面に遷移
  2. テキストモードのhtml挿入テキストエリアに<span><script src="http://hoge.com&quot;&gt;&lt;/script&gt;&lt;/span&gt;と入力する
  3. プレビューモード切替用ラジオボタンにチェックを入れる
  4. テキストモード切替用ラジオボタンにチェックを入れる
    ->手順2の入力内容が消えている
    ※srcで指定するurlが実在しているかどうかは本現象にかかわらない。

子チケット 2 (2件未完了0件完了)

Backport(バックポート) #4390: 管理画面のhtml挿入で,テキストモードからプレビューモードに切り替えた後,テキストモードに戻った時に入力内容が消える場合があるNew(新規)isao sano2013-09-30

操作
Backport(バックポート) #4391: 管理画面のhtml挿入で,テキストモードからプレビューモードに切り替えた後,テキストモードに戻った時に入力内容が消える場合があるNew(新規)isao sano2013-09-30

操作

関連するチケット 5 (4件未完了1件完了)

関連している OpenPNE 3 - Bug(バグ) #2495: HTML挿入で テキストモード→プレビューモード→テキストモード の切り替えを行うとリンクの遷移先の指定が変更されてしまう場合があるWon't fix(対応せず)kaoru n2011-10-14

操作
関連している OpenPNE 3 - Bug(バグ) #2496: HTML挿入で テキストモード→プレビューモード→テキストモード の切り替えを行うと <hr> の color 属性が消えるRejected(差し戻し)isao sano2015-11-06

操作
関連している OpenPNE 3 - Backport(バックポート) #3861: 管理画面のhtml挿入で,テキストモードからプレビューモードに切り替えた後,テキストモードに戻った時に入力内容が消える場合があるRejected(差し戻し)isao sano2015-11-09

操作
関連している OpenPNE 3 - Backport(バックポート) #3862: 管理画面のhtml挿入で,テキストモードからプレビューモードに切り替えた後,テキストモードに戻った時に入力内容が消える場合があるRejected(差し戻し)isao sano2015-11-09

操作
関連している OpenPNE 3 - Task(タスク) #4071: OpenPNEに同梱されている TinyMCE 3.4.4 が IE11 に対応していないため、バージョンアップについて調査するNew(新規)Youichi Kimura2016-12-20

操作

誠二 天重 さんが約11年前に更新

Akihiro KOBAYASHI さんが約10年前に更新

  • 関連している Bug(バグ) #2495: HTML挿入で テキストモード→プレビューモード→テキストモード の切り替えを行うとリンクの遷移先の指定が変更されてしまう場合がある を追加

Akihiro KOBAYASHI さんが約10年前に更新

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

ここら辺を使って調査してみます
http://www.560designs.com/memo/839.html

Akihiro KOBAYASHI さんが約10年前に更新

原因:TinyMCEの自動整形機能によって空タグ,brタグ等が自動削除されるようです.
よって、lib/widget/opWidgetFormRichTextarea.class.phpを
http://www.tinymce.com/wiki.php/Configuration3x
等参考に編集してみます.

Akihiro KOBAYASHI さんが約10年前に更新

lib/widget/opWidgetFormRichTextarea.class.phpにおいて
protected $tinyMCEConfigs = array( ...内に

'valid_elements' => 'script[src]',

を追加したところ、
<span><script src="http://hoge.com&quot;&gt;&lt;/script&gt;&lt;/span>

<script src="http://hoge.com&quot; type="text/javascript"></script>
と変換され、値が残るようになりました

これは属性値srcがある場合のみ値が保持されるためです

これに基づいて
'valid_elements' => '*[*]',
と変更する事で対処してみて、どのようになるか検証します

引き続き調査します

Akihiro KOBAYASHI さんが約10年前に更新

  • 3.8 で発生するかUnknown (未調査) から Yes (はい) に変更

Akihiro KOBAYASHI さんが約10年前に更新

  • 関連している Bug(バグ) #2496: HTML挿入で テキストモード→プレビューモード→テキストモード の切り替えを行うと <hr> の color 属性が消える を追加

Akihiro KOBAYASHI さんが約10年前に更新

  • 対象バージョンOpenPNE 3.9.0-old にセット

lib/widget/opWidgetFormRichTextarea.class.php内に
tinymce.init{
...
'valid_elements' => '*[*]',
'extended_valid_elements' => '*[*]',
'convert_fonts_to_spans' => false,
'force_p_newlines' => false,
'forced_root_block' => '',
'remove_linebreaks' => false,
'preformatted' => true,
'apply_source_formatting' => false

を追加することで

<span><script src="http://hoge.com&quot;&gt;&lt;/script&gt;&lt;/span>
<span><a href="/"></a></span>

の入力内容の保持に成功しました
ただ、

<div><script src="http://hoge.com&quot;&gt;&lt;/script&gt;&lt;/div>
<div><a href="/"></a></div>

とした際に、

<div></div><div></div>

となり、div内の内容がすべて消えてしまうので、まだ調査が必要です

Akihiro KOBAYASHI さんが約10年前に更新

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

プルリクエストしました
https://github.com/openpne/OpenPNE3/pull/234

原因
tinymceの自動整形機能により、勝手にタグを削除してしまったりしている

対策
tinymceの設定を以下のように変更
valid_children' => 'div[*], ',
'valid_elements' => '
[*]',
'extended_valid_elements' => '*[*]',
'convert_fonts_to_spans' => false,
'force_p_newlines' => false,
'forced_root_block' => '',
'remove_linebreaks' => false,
'preformatted' => true,
'apply_source_formatting' => false,

valid_childrenについては*[*]では対応できなかったものがあったため(<div><script src="http://hoge.com&quot;&gt;&lt;/script&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="/"></a></div> → <div></div<div></div)になってしまう)、特別にdiv[*]と明記して対処した

kaoru n さんが9年以上前に更新

  • 担当者 を削除 (Akihiro KOBAYASHI)

isao sano さんが約9年前に更新

  • 関連している Backport(バックポート) #3861: 管理画面のhtml挿入で,テキストモードからプレビューモードに切り替えた後,テキストモードに戻った時に入力内容が消える場合がある を追加

isao sano さんが約9年前に更新

  • 関連している Backport(バックポート) #3862: 管理画面のhtml挿入で,テキストモードからプレビューモードに切り替えた後,テキストモードに戻った時に入力内容が消える場合がある を追加

kaoru n さんが約8年前に更新

  • 担当者isao sano にセット

Youichi Kimura さんが約8年前に更新

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

'valid_elements' => '*[*]' について、同じ変更が含まれている #2496 が影響範囲の大きさなどの理由で差し戻しとなっているため解決するまで当チケットも差し戻しの状態にします。

kaoru n さんがほぼ8年前に更新

  • 関連している Task(タスク) #4071: OpenPNEに同梱されている TinyMCE 3.4.4 が IE11 に対応していないため、バージョンアップについて調査する を追加

isao sano さんが7年以上前に更新

対象バージョン変更のため、修正内容の確認を行います。

isao sano さんが7年以上前に更新

  • 対象バージョンOpenPNE 3.9.0-old から OpenPNE 3.9.0 に変更

kaoru n さんがほぼ5年前に更新

  • 対象バージョンOpenPNE 3.9.0 から OpenPNE 3.10.x に変更

kaoru n さんが4年以上前に更新

  • 対象バージョンOpenPNE 3.10.x から OpenPNE 3.11.x に変更

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