「:width」と「:height」で検索して該当行を抜き出してみました。
添付ファイルをご参照ください。
お忙しいところ恐れ入りますが、どうぞよろしくお願いいたします。
テンプレート変数で@SELECTを使用した際の挙動について
-
- メンバー
- 記事: 26
- 登録日時: 2012年9月05日(水) 13:25
Re: テンプレート変数で@SELECTを使用した際の挙動について
- 添付ファイル
-
「width」「height」.zip
- (3.86 KiB) ダウンロード数: 832 回
Re: テンプレート変数で@SELECTを使用した際の挙動について
photoLeft1などの名前のチャンク・テンプレート変数があるようですね。現在は使ってないとのことですが、どこかで呼び出されている気がします。
phx:width・phx:heightスニペットの先頭に上記の行を挿入すると状態は変わるでしょうか?
PHxプラグインでif文を利用していない場合は、コア内蔵のPHx機能を使うほうが副作用が起きにくいです。PHxプラグインを無効にすると自動的にコアの機能が有効になります。
コード: 全て選択
if(empty($output)) return;
PHxプラグインでif文を利用していない場合は、コア内蔵のPHx機能を使うほうが副作用が起きにくいです。PHxプラグインを無効にすると自動的にコアの機能が有効になります。
-
- メンバー
- 記事: 26
- 登録日時: 2012年9月05日(水) 13:25
Re: テンプレート変数で@SELECTを使用した際の挙動について
使っていないつもりでしたが、私の思い違いなのかもしれませんね。yama さんが書きました:現在は使ってないとのことですが、どこかで呼び出されている気がします
現在、本番環境しかなく、再度1.0.7J-r1にして検証、万一トラブルが発生した際の処理をするのには、申し訳ないのですが今日は時間がありません。
後日、本番環境またはテスト環境を作って、1.0.7J-r1にアップデートして、新しいコードを追加して試してみて、結果をご報告します。
ちなみに、現在の1.0.6J-r7に新しいコードを挿入してみましたが、特に変化はないようです。
実は、PHxプラグインでif文を使用しています。以前から、if文を使用するのをやめることも検討しているのですが…。yama さんが書きました:PHxプラグインでif文を利用していない場合は、コア内蔵のPHx機能を使うほうが副作用が起きにくいです。PHxプラグインを無効にすると自動的にコアの機能が有効になります。
Re: テンプレート変数で@SELECTを使用した際の挙動について
phx:width・phx:heightスニペットをリネームして一時的に無効にしてみて、変化があるかどうかでも切り分けできると思います。
それとログの情報をもう少し具体的に出せるように修正を加えてみました。
上記のファイルを解凍してmanager/includes/ディレクトリに上書きしてみて、エラーログの内容を教えていただければ何か分かるかもしれません。
それとログの情報をもう少し具体的に出せるように修正を加えてみました。
上記のファイルを解凍してmanager/includes/ディレクトリに上書きしてみて、エラーログの内容を教えていただければ何か分かるかもしれません。
-
- メンバー
- 記事: 26
- 登録日時: 2012年9月05日(水) 13:25
Re: テンプレート変数で@SELECTを使用した際の挙動について
アドバイスや新しいファイルをいただき、本当にありがとうございます。
ただ今、http://modx.jp/docs/admin/move.html を参考に、本番環境のサーバから別サーバに、ファイル一式やSQLバックアップデータを移して、テスト環境を構築中です。
テスト環境が構築できましたら、これまでいただいたアドバイスやファイルを活かしてテストしてみます。
ただ今、http://modx.jp/docs/admin/move.html を参考に、本番環境のサーバから別サーバに、ファイル一式やSQLバックアップデータを移して、テスト環境を構築中です。
テスト環境が構築できましたら、これまでいただいたアドバイスやファイルを活かしてテストしてみます。
-
- メンバー
- 記事: 26
- 登録日時: 2012年9月05日(水) 13:25
Re: テンプレート変数で@SELECTを使用した際の挙動について
ご報告が遅くなってしまい、申し訳ありません。
下記の条件で、テスト環境を作って試してみました。
また、Evoのバージョンは1.0.8Jにしました。
サーバ:さくらのマネージドサーバ Atomプラン
PHPのバージョン:5.2.17
MySQLのバージョン:5.1.41
ブラウザ:Chrome
テンプレート変数の「入力時のオプション」で、@SELECTを用いて値を取得できなかった件は、
http://forum.modx.jp/viewtopic.php?f=32&t=1045#p5875
のパッチを適用したら、値が取得できるようになりました。
また、
http://forum.modx.jp/viewtopic.php?f=32 ... t=10#p5895
も、manager/includes/ディレクトリに上書きしました。
今回のテスト環境では、
「PHxプラグインを有効(内蔵PHxを無効)」
「phx:width・phx:heightスニペット有効(if(empty($output)) return;を挿入、http://forum.modx.jp/viewtopic.php?f=32 ... t=10#p5893)」
の状態で、一部を除き、問題なくページが表示されるようになりました。
しかし、
http://forum.modx.jp/viewtopic.php?f=32&t=1045#p5886
で触れたように、Dittoの挙動に問題があるようです。
【問題1】
[[Ditto? &parents=`[*parent*]` &hideFolders=`1` &depth=`2` &filter=`hoge1,Yes,2` &extenders=`tagging` &tagData=`hoge2` &tags=`hoge3` &tagDelimiter=`,` &sortDir=`DESC` &sortBy=`hoge4` &tpl=`hoge5` &noResults=`hoge6`]]
上記のスニペットコールを使用して、hoge2の中に値が複数ある場合、意図した数のリソースが取得・表示できないのです。
(例)
リソースA→テンプレート変数hoge2の内容=hoge3→取得・表示できる。
リソースB→テンプレート変数hoge2の内容=hoge3,dataA,dataB,dataC…→取得・取得できない。
また、上記のスニペットコールを複数使用したページでは、以下のようなエラーメッセージがブラウザに出て、ページが表示されません。
Fatal error: Maximum execution time of 30 seconds exceeded in /home/sakurahiroshi/www/assets/snippets/ditto/classes/ditto.class.inc.php on line 824
または、
Fatal error: Maximum execution time of 30 seconds exceeded in /home/sakurahiroshi/www/assets/snippets/ditto/classes/ditto.class.inc.php on line 137
【問題2】
[[Ditto? &parents=`hoge1` &hideFolders=`1` &depth=`4` &extenders=`tagging` &tagData=`hoge2` &tags=`hoge3` &tagDelimiter=`,` &tpl=`hoge4` &noResults=`hoge5`]]
上記のスニペットコールで、1.0.6J-r7までは「hoge2にhoge3を含むリソース」が呼び出されていましたが、「hoge2にhoge3を含まないリソース」が呼び出されてしまいます。
※【問題1】【問題2】とも、管理画面のレポート→イベントログにはレコードはありません。
脆弱性の問題などもあり、お忙しいかと思いますが、対処法などを教えていただけますと、本当にありがたいです。
下記の条件で、テスト環境を作って試してみました。
また、Evoのバージョンは1.0.8Jにしました。
サーバ:さくらのマネージドサーバ Atomプラン
PHPのバージョン:5.2.17
MySQLのバージョン:5.1.41
ブラウザ:Chrome
テンプレート変数の「入力時のオプション」で、@SELECTを用いて値を取得できなかった件は、
http://forum.modx.jp/viewtopic.php?f=32&t=1045#p5875
のパッチを適用したら、値が取得できるようになりました。
また、
http://forum.modx.jp/viewtopic.php?f=32 ... t=10#p5895
も、manager/includes/ディレクトリに上書きしました。
今回のテスト環境では、
「PHxプラグインを有効(内蔵PHxを無効)」
「phx:width・phx:heightスニペット有効(if(empty($output)) return;を挿入、http://forum.modx.jp/viewtopic.php?f=32 ... t=10#p5893)」
の状態で、一部を除き、問題なくページが表示されるようになりました。
しかし、
http://forum.modx.jp/viewtopic.php?f=32&t=1045#p5886
で触れたように、Dittoの挙動に問題があるようです。
【問題1】
[[Ditto? &parents=`[*parent*]` &hideFolders=`1` &depth=`2` &filter=`hoge1,Yes,2` &extenders=`tagging` &tagData=`hoge2` &tags=`hoge3` &tagDelimiter=`,` &sortDir=`DESC` &sortBy=`hoge4` &tpl=`hoge5` &noResults=`hoge6`]]
上記のスニペットコールを使用して、hoge2の中に値が複数ある場合、意図した数のリソースが取得・表示できないのです。
(例)
リソースA→テンプレート変数hoge2の内容=hoge3→取得・表示できる。
リソースB→テンプレート変数hoge2の内容=hoge3,dataA,dataB,dataC…→取得・取得できない。
また、上記のスニペットコールを複数使用したページでは、以下のようなエラーメッセージがブラウザに出て、ページが表示されません。
Fatal error: Maximum execution time of 30 seconds exceeded in /home/sakurahiroshi/www/assets/snippets/ditto/classes/ditto.class.inc.php on line 824
または、
Fatal error: Maximum execution time of 30 seconds exceeded in /home/sakurahiroshi/www/assets/snippets/ditto/classes/ditto.class.inc.php on line 137
【問題2】
[[Ditto? &parents=`hoge1` &hideFolders=`1` &depth=`4` &extenders=`tagging` &tagData=`hoge2` &tags=`hoge3` &tagDelimiter=`,` &tpl=`hoge4` &noResults=`hoge5`]]
上記のスニペットコールで、1.0.6J-r7までは「hoge2にhoge3を含むリソース」が呼び出されていましたが、「hoge2にhoge3を含まないリソース」が呼び出されてしまいます。
※【問題1】【問題2】とも、管理画面のレポート→イベントログにはレコードはありません。
脆弱性の問題などもあり、お忙しいかと思いますが、対処法などを教えていただけますと、本当にありがたいです。
Re: テンプレート変数で@SELECTを使用した際の挙動について
了解です。こちらで同等の状況を作って試してみます。(リソース数はいくつくらい作るとよいでしょうか?)
-
- メンバー
- 記事: 26
- 登録日時: 2012年9月05日(水) 13:25
Re: テンプレート変数で@SELECTを使用した際の挙動について
早速のご対応、本当にありがとうございます。
◆「ブランド紹介ページ」(約200件)と「ショップ紹介ページ」(約1000件?)を掲載。
◆「ショップ紹介ページ」には「取扱ブランド」をテンプレート変数で入力。
◆上記テンプレート変数は「ブランド紹介ページ」のpagetitleを@SELECTで値を取得して、そのショップの「取扱ブランド」にチェックを入れる。
◆複数のブランドを取り扱っているショップが多数存在する。
「あるブランドの取扱ショップを都道府県別に一覧表示する」といった処理を、上記のDittoでおこなっています。
…といったところなのですが、ご参考になるでしょうか?
また、
このページには、都道府県別に計47のDittoスニペットコールを書いています。
また何かご不明な点がございましたら、ご連絡ください。
お手数おかけいたしますが、どうぞよろしくお願いいたします。
当方のサイトを具体的に説明します。yama さんが書きました:(リソース数はいくつくらい作るとよいでしょうか?)
◆「ブランド紹介ページ」(約200件)と「ショップ紹介ページ」(約1000件?)を掲載。
◆「ショップ紹介ページ」には「取扱ブランド」をテンプレート変数で入力。
◆上記テンプレート変数は「ブランド紹介ページ」のpagetitleを@SELECTで値を取得して、そのショップの「取扱ブランド」にチェックを入れる。
◆複数のブランドを取り扱っているショップが多数存在する。
「あるブランドの取扱ショップを都道府県別に一覧表示する」といった処理を、上記のDittoでおこなっています。
…といったところなのですが、ご参考になるでしょうか?
という状況は、「ある県内にあるブランドAの取扱ショップを一覧表示する」ページで発生しています。hirostraydog さんが書きました:リソースA→テンプレート変数hoge2の内容=hoge3→取得・表示できる。
リソースB→テンプレート変数hoge2の内容=hoge3,dataA,dataB,dataC…→取得・取得できない。
また、
という状況は、「ブランドAの取扱ショップを都道府県別に一覧表示する」ページで発生しています。hirostraydog さんが書きました:上記のスニペットコールを複数使用したページでは、以下のようなエラーメッセージがブラウザに出て、ページが表示されません。
このページには、都道府県別に計47のDittoスニペットコールを書いています。
また何かご不明な点がございましたら、ご連絡ください。
お手数おかけいたしますが、どうぞよろしくお願いいたします。