モディファイアを使用した場合に子テンプレートが使用できない

質問全般・改善要望
返信する
masco
メンバー
メンバー
記事: 143
登録日時: 2014年9月26日(金) 10:43

モディファイアを使用した場合に子テンプレートが使用できない

投稿記事 by masco »

----------------
1.0.14J-r9
php 5.5.19
mysql 5.0.95
apache 2.2
----------------

親テンプレートを適用したときに
親テンプレートを[*content*]であれば問題なく利用できますが、
[*content:モディファイア*]にすると子テンプレートの[*content*]以外の変数が反映されなくなります。
また、管理画面の子テンプレートの編集画面で親テンプレート内容が表示されないようです。

作成テンプレート
親テスト
子テスト

テンプレート「子テスト」を使用
http://150404220911-8775.evo.demo.modx.jp/1.html

管理画面
http://150404220911-8775.evo.demo.modx.jp/manager/
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: モディファイアを使用した場合に子テンプレートが使用できない

投稿記事 by yama »

http://150404220911-8775.evo.demo.modx.jp/1.html
修正しました
document.parser.class.inc.zip
manager/includes/
(28.78 KiB) ダウンロード数: 373 回
mutate_tmplvars.dynamic.zip
manager/actions/
(7.52 KiB) ダウンロード数: 358 回
masco
メンバー
メンバー
記事: 143
登録日時: 2014年9月26日(金) 10:43

Re: モディファイアを使用した場合に子テンプレートが使用できない

投稿記事 by masco »

yamaさま

ありがとうございます。

ファイルを上書きしたところ
変数は表示されて機能するようになりましたが、
管理画面側の子テンプレートの編集画面はそのまま変化なしで、
親テンプレートに記入している内容が表示されていません。
(デモサイトで再現できませんでした)

また、今度は[*content*]にモディファイアを使用していない親テンプレートにした場合、
その子テンプレートがうまく機能しませんでした。
(デモサイトで再現できました)
http://150404220911-8775.evo.demo.modx.jp/1.html

管理画面
http://150404220911-8775.evo.demo.modx.jp/manager/



別件でnl2brモディファイアですが、オプションが機能しませんでした。
下記コメントアウトしたら機能しましたので、そのあたりでうまく動かないように思います。

変更前

コード: 全て選択

case 'nl2br':
				if($opt!=='')
				{
					$opt = strtolower($opt);
					if($opt==='false') $opt = false;
					elseif($opt==0)    $opt = false;
					else               $opt = true;
				}
            	elseif($modx->config['mce_element_format']==='html'){
            	                       $opt = false;}
				else{                   $opt = true;}
            	$value = nl2br($value,$opt);
            	break;
		case 'nl2br':
				if($opt!=='false') $opt = true;
				else               $opt = false;
				$value = nl2br($value, $opt);
				break;
変更後

コード: 全て選択

case 'nl2br':
	//			if($opt!=='')
	//			{
	//				$opt = strtolower($opt);
	//				if($opt==='false') $opt = false;
	//				elseif($opt==0)    $opt = false;
	//				else               $opt = true;
	//			}
            //	elseif($modx->config['mce_element_format']==='html'){
            //	                       $opt = false;}
		//		else{                   $opt = true;}
            //	$value = nl2br($value,$opt);
            //	break;
			//	case 'nl2br':
				if($opt!=='false') $opt = true;
				else               $opt = false;
				$value = nl2br($value, $opt);
				break;
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: モディファイアを使用した場合に子テンプレートが使用できない

投稿記事 by yama »

編集画面は添付ファイルが間違っていました。修正ぶんと合わせて添付します
添付ファイル
mutate_templates.dynamic.zip
(4.29 KiB) ダウンロード数: 361 回
document.parser.class.inc.zip
(28.78 KiB) ダウンロード数: 353 回
phx.parser.class.inc.zip
(8 KiB) ダウンロード数: 360 回
masco
メンバー
メンバー
記事: 143
登録日時: 2014年9月26日(金) 10:43

Re: モディファイアを使用した場合に子テンプレートが使用できない

投稿記事 by masco »

yamaさま

ありがとうございます。

問題はすべて解決しました。
返信する