1.0.19Jベータです

プログラム(機能)関連の開発の話題
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

1.0.19Jベータです

投稿記事 by yama »

1.0.19Jベータです。パーサまわりを修正しました

コード: 全て選択

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

コード: 全て選択

[[snippetA?param="[[snippetB?param='value']]" ]]
本来は、「ここからここまでが値である」ということを明示するためにデリミタ文字を用いますので、上記のように3種類あるデリミタ文字を使い分けて内側・外側を表現するのがスマートです。
添付ファイル
modx-1.0.19J-b1.zip
(1.6 MiB) ダウンロード数: 5900 回
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

1.0.19Jベータです

投稿記事 by yama »

ベータ2です。パース処理を修正・改善しました
添付ファイル
modx-1.0.19J-b2.zip
(1.6 MiB) ダウンロード数: 5962 回
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

1.0.19Jベータです

投稿記事 by yama »

ベータ3です。引き続き、パース処理を修正・改善しました。修正箇所が多いため念入りなテストが必要ですが、多くの不具合が解決できていると思います。
http://forum.modx.jp/viewtopic.php?p=9314#p9314
上記の件も修正しました
添付ファイル
modx-1.0.19J-b3.zip
(1.6 MiB) ダウンロード数: 5870 回
masco
メンバー
メンバー
記事: 143
登録日時: 2014年9月26日(金) 10:43

1.0.19Jベータです

投稿記事 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/
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

1.0.19Jベータです

投稿記事 by yama »

OnParseDocumentイベントは他のイベント名の命名ルールに倣うと「OnBeforeParseDocument」という名前のほうがよいのですが、このイベントはMODXタグのパースを行なう直前に呼び出されます。
masco
メンバー
メンバー
記事: 143
登録日時: 2014年9月26日(金) 10:43

1.0.19Jベータです

投稿記事 by masco »

yamaさま

ありがとうございます。

やりたいことを考えたら
カスタムモディファイアで作成した方が都合が良さそうな気がしました。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

1.0.19Jベータです

投稿記事 by yama »

ベータ4です。引き続き、パーサまわりの修正を行なっています。MODXタグを複雑に書いてもおおかた意図どおりに動作するようになっていると思います。

https://github.com/modxcms/evolution/issues/1143
バンドルされているPHPMailerに脆弱性があるとのことで、最新版に差し替えました。
添付ファイル
modx-1.0.19J-b4.zip
(1.59 MiB) ダウンロード数: 6049 回
ryocka
メンバー
メンバー
記事: 51
登録日時: 2014年4月28日(月) 00:06

1.0.19Jベータです

投稿記事 by ryocka »

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

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

他のブラウザは正常なレイアウトでした。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

1.0.19Jベータです

投稿記事 by yama »

Firefox Developer Editionをインストールして状況を確認しました。
manager/media/script/jquery/ フォルダ内のjqueryのバージョンを現在のv3.1.1からv1系最新のv1.12.4に戻すと解決できるようです。よい方法を考えてみますので、少しお待ち下さい。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

1.0.19Jベータです

投稿記事 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を利用するスニペット側の安全対策が不完全な場合でも、危険とされるメールアドレス文字列をサーバに渡さないようにしてあります。
添付ファイル
modx-1.0.19J-rc1.zip
(1.59 MiB) ダウンロード数: 5764 回
アバター
hisato
メンバー
メンバー
記事: 71
登録日時: 2012年8月18日(土) 20:21

1.0.19Jベータです

投稿記事 by hisato »

eFormのみ?でスニペットコールの中に「//コメント」があるとそれが認識されないようでした。
ご確認よろしくお願い致します。
アバター
hisato
メンバー
メンバー
記事: 71
登録日時: 2012年8月18日(土) 20:21

1.0.19Jベータです

投稿記事 by hisato »

コード: 全て選択

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

コード: 全て選択

[!eForm?
&tpl = `11`
// コメント
&report = `10`
…省略…
!]
これは読み込めずでした。
アバター
hisato
メンバー
メンバー
記事: 71
登録日時: 2012年8月18日(土) 20:21

1.0.19Jベータです

投稿記事 by hisato »

あと、コンテンツの中で

コード: 全て選択

[*content:id(100)*]
などでほかのリソースを参照していると、通常の表示・Ditto等で無限ループしてしまうようです。
ryocka
メンバー
メンバー
記事: 51
登録日時: 2014年4月28日(月) 00:06

1.0.19Jベータです

投稿記事 by ryocka »

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

-----

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

1.0.19Jベータです

投稿記事 by yama »

確認してみましたが、「リソースを表示」の時もダウンロードの扱いになるでしょうか?
ryocka
メンバー
メンバー
記事: 51
登録日時: 2014年4月28日(月) 00:06

1.0.19Jベータです

投稿記事 by ryocka »

こんばんは。
確認してみましたが、「リソースを表示」の時もダウンロードの扱いになるでしょうか?
申し訳ありません。
再度確認したところ、プレビューボタンクリック時のみの現象でした。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

1.0.19Jベータです

投稿記事 by yama »

プレビューボタンクリックはフォームの内容をポストした結果をブラウザに渡しますが、この場合、ブラウザによっては挙動が異なるようです。ブラウザによる挙動に左右されない方法で近い将来解決したいと思います。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

1.0.19Jベータです

投稿記事 by yama »

アバター
hisato
メンバー
メンバー
記事: 71
登録日時: 2012年8月18日(土) 20:21

1.0.19Jベータです

投稿記事 by hisato »

>上記2件
有難うございます~。私の環境でも直っていました!
ryocka
メンバー
メンバー
記事: 51
登録日時: 2014年4月28日(月) 00:06

1.0.19Jベータです

投稿記事 by ryocka »

こんばんは。

コード: 全て選択

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

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

コード: 全て選択

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