mm_ddMultipleFieldsで設定したTextarea内の改行が保存されません&RichTextは使用できますか?  【解決済み】

質問全般・改善要望
返信する
ryocka
メンバー
メンバー
記事: 51
登録日時: 2014年4月28日(月) 00:06

mm_ddMultipleFieldsで設定したTextarea内の改行が保存されません&RichTextは使用できますか?

投稿記事 by ryocka »

MODX : 1.0.16J
サーバ : XAMPP 5.6.24
PHP : 5.6.24
DB : MariaDB 10.1.16

デモサイト
http://160922144345-9412.evo.demo.modx.jp/manager/


こんにちは、件名に記載の通りです。

・mm_ddMultipleFieldsで設定したTextareaタイプの入力エリアに、改行を含んだ文字列を入力し、更新すると
 改行のみ保存されないようです(改行以外の文字は保存されています)。
 通常のテンプレート変数のTextareaと同じような使い方はできないのでしょうか?

http://code.divandesign.biz/modx/mm_ddmultiplefields のcolumnsにrichtextが含まれているので
 使用できるかなと試してみましたが、
 複数カラムの組み合わせでの使用・単独カラムでの可変件数 いずれもできませんでした。
 実際のところ、カラムでのRichTextの利用には対応しているのでしょうか?

よろしくお願いいたします。
noka
メンバー
メンバー
記事: 94
登録日時: 2013年6月19日(水) 10:02

mm_ddMultipleFieldsで設定したTextarea内の改行が保存されません&RichTextは使用できますか?  【解決済み】

投稿記事 by noka »

こんにちは。

textareaについては,
http://forum.modx.jp/viewtopic.php?t=1507
でも指摘のあっていた分ですね。

私もtextareaの改行を保存したいことがあって,対応をいずれキチンと検討したいと思っていましたが,よい機会ですので便乗させていただきます。
もともとtextタイプのテンプレート変数のみが扱われているのが原因のようでしたので,
textarea(複数行)のテンプレート変数も受けれいるようにすることで,自然と改行コードもDBに保存されるのかな,と思います。
#そうすることで生まれる新たな不具合等もあるのかもしれないのですけれども。

で,
きちんとロジックを把握しないまま,とりあえず変更してみたらうまく動く気がする,程度の話で恐縮ですが,
以前私的に対応した際の変更点を参考までに共有してみます。

assets/plugins/managermanager/widgets/ddmultiplefields/ddmultiplefields.php
の86行目くらいに,

コード: 全て選択

		$tvsTemp = tplUseTvs($page_template, $tvs, 'text');
		if ($tvsTemp){
			foreach($tvsTemp as $v){
				$v['type'] = 'text';
				array_push($tvsMas,$v);
			}
		}
		//----------ここから
		$tvsTemp = tplUseTvs($page_template, $tvs, 'textarea');
		if ($tvsTemp){
			foreach($tvsTemp as $v){
				$v['type'] = 'textarea';
				array_push($tvsMas,$v);
			}
		}
		//--------ここまで追加
		if (count($tvsMas) == 0){

ご参考まで。
ryocka
メンバー
メンバー
記事: 51
登録日時: 2014年4月28日(月) 00:06

mm_ddMultipleFieldsで設定したTextarea内の改行が保存されません&RichTextは使用できますか?

投稿記事 by ryocka »

こんにちは。
ご返答誠にありがとうございました。
過去の投稿をしっかり調べておらず、申し訳ありませんでした。
手元のローカル環境でご提示のコードを書き足して確かめてみましたら、改行が加わるようになりました。

※解決済みとさせていただきます。


------ キリトリセン ------


RichTextの方も、開発元の新しいバージョンのアーカイブ中にrichtextフォルダ(ウィジェット一式らしきファイル)が
含まれていましたので、多分対応しているのでしょうね。

とりあえず、ddmultiplefields.php / richtxt/index.phpを見て、『…こんな感じかな……???』と

○ddmultiplefieldsをフォルダごと最新版に入れ替え
○jquery-ui-1.10.3.min.js / modx.ddtools.class.phpをしかるべき場所に設置
○$richtextIncludeDirectoryを dirname() と __FILE__ を使った書き方に変更

…した上で、TVのカスタムフォームの@INCLUDEで、richtxt/index.php の呼び出しを試みましたが、警告やエラーが
出てきましたので、こちらの方はひとまずあきらめることにしました(私には設置が難しそうでしたので)。
根本的にやり方が間違っている気もします。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

mm_ddMultipleFieldsで設定したTextarea内の改行が保存されません&RichTextは使用できますか?

投稿記事 by yama »

少し省略した書き方でまとめてみました。動作するでしょうか?
添付ファイル
ddmultiplefields.zip
(6.78 KiB) ダウンロード数: 610 回
noka
メンバー
メンバー
記事: 94
登録日時: 2013年6月19日(水) 10:02

mm_ddMultipleFieldsで設定したTextarea内の改行が保存されません&RichTextは使用できますか?

投稿記事 by noka »

yama さま

いつもありがとうございます。
textarea対応,とりあえず試した感じでは,問題なく動作しているようです。
#テンプレート変数自体のタイプを複数行(textarea)にするのを忘れそうですけれども。

とりいそぎ。
ryocka
メンバー
メンバー
記事: 51
登録日時: 2014年4月28日(月) 00:06

mm_ddMultipleFieldsで設定したTextarea内の改行が保存されません&RichTextは使用できますか?

投稿記事 by ryocka »

こちらも、簡単なチェックにて動作を確認しております。
ありがとうございました。
返信する