ページ 11

1.0.19J モディファイアの入れ子について

Posted: 2017年2月13日(月) 21:30
by ifactory
お世話になっております。
現在1.0.17Jで稼働しているサイトのコピーを、1.0.19Jにバージョンアップしてテストいるのですが、

[*template:is=`3`:then=`[*longtitle:ifempty=`[*pagetitle*]`*]`*]
これまでこのような書き方で1.0.17Jまでは動いていたのですが、
1.0.19Jになって、処理されなくなりました。
([*template:is=`3`:then=`AAA`*] 入れ子でない場合は問題ありません)

[*template:is(3):then(`[*longtitle:ifempty([*pagetitle*])*]`)*]
()で書き直すとうまくいったのですが、かなりあちこちで多用しているので、
そのままでいけたら有り難いと思っております。

もう1点なのですが、Jot 1.1.5 を使っているのですが、
1.0.19Jにして、投稿すると正常に投稿はされるのですが、投稿時に送信されるメールが来なくなってしまいました。

イベントログに、

ソース phpmailer
Invalid address: (punyEncode) 【メールアドレス】【サイト名】

となっています。

他の方のトピックを見て、試しに1.0.17Jの
class.phpmailer.php
class.smtp.php
をコピーしてみた所、とりあえずメールが来るようになりました。


以上、どうぞよろしくお願いいたします。

1.0.19J モディファイアの入れ子について

Posted: 2017年2月16日(木) 16:23
by ifactory
フォーラム内を見返したところ、yama様が書き込んでおられる箇所がありました。
修正する方向で、進めていきたいと思います。
よく見ておらず申し訳ありませんでした。

yama さんが書きました:1.0.19Jベータです。パーサまわりを修正しました

コード: 全て選択

[[snippetA?param=`[[snippetB?param=`value`]]` ]]
スニペットコールをネストさせる際、上記のようにデリミタ文字(ここではバッククオート)がネスト表現になっていない場合に意図どおりに出力されない問題を解決しました。

コード: 全て選択

[[snippetA?param="[[snippetB?param='value']]" ]]
本来は、「ここからここまでが値である」ということを明示するためにデリミタ文字を用いますので、上記のように3種類あるデリミタ文字を使い分けて内側・外側を表現するのがスマートです。