ページ 11

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

Posted: 2015年4月04日(土) 22:25
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/

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

Posted: 2015年4月05日(日) 10:03
by yama
http://150404220911-8775.evo.demo.modx.jp/1.html
修正しました
document.parser.class.inc.zip
manager/includes/
(28.78 KiB) ダウンロード数: 376 回
mutate_tmplvars.dynamic.zip
manager/actions/
(7.52 KiB) ダウンロード数: 362 回

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

Posted: 2015年4月05日(日) 22:23
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;

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

Posted: 2015年4月06日(月) 07:46
by yama
編集画面は添付ファイルが間違っていました。修正ぶんと合わせて添付します

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

Posted: 2015年4月06日(月) 20:55
by masco
yamaさま

ありがとうございます。

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