ページ 12

1.0.19Jベータです

Posted: 2016年12月21日(水) 08:34
by yama
1.0.19Jベータです。パーサまわりを修正しました

コード: 全て選択

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

コード: 全て選択

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

1.0.19Jベータです

Posted: 2016年12月23日(金) 11:32
by yama
ベータ2です。パース処理を修正・改善しました

1.0.19Jベータです

Posted: 2016年12月24日(土) 17:20
by yama
ベータ3です。引き続き、パース処理を修正・改善しました。修正箇所が多いため念入りなテストが必要ですが、多くの不具合が解決できていると思います。
http://forum.modx.jp/viewtopic.php?p=9314#p9314
上記の件も修正しました

1.0.19Jベータです

Posted: 2016年12月26日(月) 16:17
by masco
こんにちは

ベータ3試しています。
不具合報告ではなくて質問なのですが、
OnParseDocumentのイベントは、モディファイアが処理される前でしょうか?

$modx->documentOutputの値に含まれる、特定の文字列を置換するプラグインを作成しています。

チャンク「text2link」

コード: 全て選択

@テスト,16
プラグイン「text2link」
システムイベント「OnParseDocument」

コード: 全て選択

$set = $modx->getChunk('text2link');

if($set){
    $arry = explode (PHP_EOL,$set );
        foreach($arry as $s){
        $s = explode (',',$s);
        $search[] = $s[0];
        $s[1] = str_replace(array("\r\n","\n","\r"), '', $s[1]);
            if(ctype_digit($s[1])){
            $url = $modx->makeUrl($s[1]);
            $title = $modx->getField('pagetitle',$s[1]);
            $replace[] = '<a href="'.$url.'">'.$title.'</a>';
            }else{
            $replace[] = $s[1];
            }
        }
$modx->documentOutput = str_replace($search,$replace,$modx->documentOutput);
}
例えば
本文の頭の方に「@文字列」を記述して、下記のタグが展開されると以下のようになってしまいます。
<meta name="description" content="[*content:summary*]" />

本文

コード: 全て選択

@テスト

<div class="row">
[[Ditto?
&display=3
・・・

結果

コード: 全て選択

理想
<meta name="description" content="テスト 拡張性豊かなデザインワーク 自由自在なデザインワーク コアが直接出力するhtmlコードがほとんどないMODXは、Ajaxテクニックを自由自在に扱うことができます。" />

現実
<meta name="description" content="<a href="http://161226155939-4773.evo.demo.modx.jp/1.html">テスト</a> 拡張性豊かなデザインワーク 自由自在なデザインワーク コアが直接出力するhtmlコードがほとんどないMODXは、Ajaxテクニックを自由自在に扱うことができます。" />

http://161226155939-4773.evo.demo.modx.jp/manager/
http://161226155939-4773.evo.demo.modx.jp/

1.0.19Jベータです

Posted: 2016年12月26日(月) 17:06
by yama
OnParseDocumentイベントは他のイベント名の命名ルールに倣うと「OnBeforeParseDocument」という名前のほうがよいのですが、このイベントはMODXタグのパースを行なう直前に呼び出されます。

1.0.19Jベータです

Posted: 2016年12月26日(月) 20:51
by masco
yamaさま

ありがとうございます。

やりたいことを考えたら
カスタムモディファイアで作成した方が都合が良さそうな気がしました。

1.0.19Jベータです

Posted: 2016年12月27日(火) 15:26
by yama
ベータ4です。引き続き、パーサまわりの修正を行なっています。MODXタグを複雑に書いてもおおかた意図どおりに動作するようになっていると思います。

https://github.com/modxcms/evolution/issues/1143
バンドルされているPHPMailerに脆弱性があるとのことで、最新版に差し替えました。

1.0.19Jベータです

Posted: 2016年12月28日(水) 00:58
by ryocka
こんばんは。
http://forum.modx.jp/viewtopic.php?p=9314#p9314
の件、ご対応ありがとうございました。
1.0.19J-b4.zip の上書きインストールにて動作確認いたしました。

Firefox Developer Editionのみ、やはりレイアウト崩れが発生しました。
(今回もアドオンは全て無効状態で確認しています)
ログイン後最初にリソースを開いた時のみ一見レイアウトが正常なのも同様でした。

他のブラウザは正常なレイアウトでした。

1.0.19Jベータです

Posted: 2017年1月05日(木) 22:08
by yama
Firefox Developer Editionをインストールして状況を確認しました。
manager/media/script/jquery/ フォルダ内のjqueryのバージョンを現在のv3.1.1からv1系最新のv1.12.4に戻すと解決できるようです。よい方法を考えてみますので、少しお待ち下さい。

1.0.19Jベータです

Posted: 2017年1月07日(土) 18:31
by yama
RC1です。特に問題なければ正式リリースとします。

コード: 全て選択

// OnManagerPageInit
$modx->config['mgr_jquery_path']='//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js';
Firefox Developer Editionでレイアウトが崩れる件は、上記のようなプラグインを作ってOnManagerPageInitイベントにフックすることで対応できるようにしました。過渡的な問題だと思いますので、Firefoxが修正されるのを待ってもよいかもしれません。

その他、PHPMailerの問題に対応しました。Evoでは影響を受けないことが分かっていますが、「問題がある」とされているバージョンのPHPMailerをそのままにしておくと誤解を招く可能性があるので、いちおう最新に差し替えました。また念のために、MODxMailer側でも対応を行ない、MODxMailerを利用するスニペット側の安全対策が不完全な場合でも、危険とされるメールアドレス文字列をサーバに渡さないようにしてあります。

1.0.19Jベータです

Posted: 2017年1月08日(日) 21:24
by hisato
eFormのみ?でスニペットコールの中に「//コメント」があるとそれが認識されないようでした。
ご確認よろしくお願い致します。

1.0.19Jベータです

Posted: 2017年1月08日(日) 21:27
by hisato

コード: 全て選択

[!eForm?
&tpl = `11` // コメント
&report = `10`
…省略…
!]
これはOK

コード: 全て選択

[!eForm?
&tpl = `11`
// コメント
&report = `10`
…省略…
!]
これは読み込めずでした。

1.0.19Jベータです

Posted: 2017年1月08日(日) 21:51
by hisato
あと、コンテンツの中で

コード: 全て選択

[*content:id(100)*]
などでほかのリソースを参照していると、通常の表示・Ditto等で無限ループしてしまうようです。

1.0.19Jベータです

Posted: 2017年1月11日(水) 00:04
by ryocka
こんばんは。
Firefox Developer Editionでレイアウトが崩れる件は、上記のようなプラグインを作ってOnManagerPageInitイベントにフックすることで対応できるようにしました。
↑にてレイアウト崩れが解消しました。
しばらく様子を見ることにします。ありがとうございました。

-----

以下は1.0.19J-rc1で動作確認時の現象です。
  • コンテントタイプ…application/atom+xml/application/rss+xml
  • リソースの出力…ブラウザ内に通常表示
に設定したリソースが、「プレビュー」ボタンクリック時/「リソースを表示」メニューの選択時に
“ファイルとしてダウンロード”の扱いになります。
(リンクをたどるかURLに直アクセスした場合は正常な表示です)

1.0.19Jベータです

Posted: 2017年1月11日(水) 09:36
by yama
確認してみましたが、「リソースを表示」の時もダウンロードの扱いになるでしょうか?

1.0.19Jベータです

Posted: 2017年1月11日(水) 18:23
by ryocka
こんばんは。
確認してみましたが、「リソースを表示」の時もダウンロードの扱いになるでしょうか?
申し訳ありません。
再度確認したところ、プレビューボタンクリック時のみの現象でした。

1.0.19Jベータです

Posted: 2017年1月11日(水) 18:30
by yama
プレビューボタンクリックはフォームの内容をポストした結果をブラウザに渡しますが、この場合、ブラウザによっては挙動が異なるようです。ブラウザによる挙動に左右されない方法で近い将来解決したいと思います。

1.0.19Jベータです

Posted: 2017年1月11日(水) 18:32
by yama

1.0.19Jベータです

Posted: 2017年1月11日(水) 21:04
by hisato
>上記2件
有難うございます~。私の環境でも直っていました!

1.0.19Jベータです

Posted: 2017年1月12日(木) 03:04
by ryocka
こんばんは。

コード: 全て選択

data-width="[+width:ifempty(`500`)+]"
という内容を記載したチャンクがあるとします。

そのチャンクをwidthパラメータの指定なしで呼び出した場合、結果が

コード: 全て選択

data-width=""
となり、ifemptyモディファイヤ処理が行われていないようです。