MODx1.0.6J-r5以降でのAjaxSearchに関して
Posted: 2012年12月01日(土) 10:41
お世話になっております。
下記動作環境にてアップデートを行ったサイトで、
スニペットが正常に動作しませんでした。
どなたか、回避方法や対処方法をご存知の方が居ましたら、教えて頂けないでしょうか。
よろしくお願い致します。
-----------------------------------
■動作環境
サーバー:HP ML115
OS:FreeBSD8.3
MODxバージョン:1.0.6J-r4 → 1.0.6J-r8
PHPバージョン:5.2.17
MySQLバージョン:5.1.66
Apacheバージョン:2.2.23
確認ブラウザ:IE9, FireFox16
-----------------------------------
■動作しなかったスニペット
AjaxSearch 1.8.4~1.9.2c
-----------------------------------
■スニペット パラメーター変更部分
デフォルト : $cfg['parents'] = isset($parents) ? $parents : (isset($__parents) ? $__parents : $dcfg['parents']);
: $cfg['language'] = isset($language) ? $language : (isset($__language) ? $__language : $dcfg['language']);
変更後 : $cfg['parents'] ="111";
: $cfg['language'] = english;
-----------------------------------
■スニペット実行時のエラー内容
Undefined index: a
≪ MODX Parse Error ≫
MODX encountered the following error while attempting to parse the requested resource:
≪ PHP Parse Error ≫
PHP error debug
Error : Invalid argument supplied for foreach()
ErrorType[num] : WARNING[2]
File : /public_html/assets/snippets/ajaxSearch/classes/ajaxSearchResults.class.inc.php
Line : 823
Source : foreach ($modx->documentMap as $null => $document) {
Basic info
REQUEST_URI : /e_search_result.html
Resource : [428]Search result
Current Snippet : e_AjaxSearch
Referer : http://hostname/e_search_result.html
User Agent : Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0
IP : ***.***.***.***
Parser timing
MySQL : 0.0197 s (17 Requests)
PHP : 0.1224 s
Total : 0.1421 s
Backtrace
1 executeParser() index.php on line 135
2 prepareResponse() manager/includes/document.parser.class.inc.php on line 286
3 outputContent() manager/includes/document.parser.class.inc.php on line 405
4 parseDocumentSource() manager/includes/document.parser.class.inc.php on line 436
5 evalSnippets() manager/includes/document.parser.class.inc.php on line 1956
6 _get_snip_result() manager/includes/document.parser.class.inc.php on line 1587
7 evalSnippet() manager/includes/document.parser.class.inc.php on line 1671
8 eval() manager/includes/document.parser.class.inc.php on line 1518
9 run() manager/includes/document.parser.class.inc.php(1518) : eval()'d code on line 462
10 run() assets/snippets/ajaxSearch/classes/ajaxSearch.class.inc.php on line 101
11 getSearchResults() assets/snippets/ajaxSearch/classes/ajaxSearchCtrl.class.inc.php on line 70
12 _doBeforeSearchFilter() assets/snippets/ajaxSearch/classes/ajaxSearchResults.class.inc.php on line 98
13 _getChildIds() assets/snippets/ajaxSearch/classes/ajaxSearchResults.class.inc.php on line 675
-----------------------------------
■エラー発生条件
キーワードを入力した状態でAjaxSearchにて検索を行うとエラーが発生。
MODxバージョン 1.0.6J-r6以降
(1.0.6J-r6, r-8 で動作テストを行いました。)
(1.0.6J-r4で動作を確認した所発生しませんでした。)
&parentsパラメーターを指定時に発生。
-----------------------------------
日本語サイトと英語サイトでAjaxSearchを分けて使用していたのですが、
英語サイト側のAjaxSearchのみ、検索範囲を英語用リソースに絞る為に&parentsパラメータを指定しておりました。
パラメーターを変更していたのが英語サイトのみで殆ど影響は無かった反面、
アクセスが少なくアップデートしてしばらく経ってから気が付きました。
リリースノートを辿ってみると、
MODx-1.0.5J-r2で同梱の拡張機能から削除されており、大分前から使用は推奨されていなかったんですね;;
下記動作環境にてアップデートを行ったサイトで、
スニペットが正常に動作しませんでした。
どなたか、回避方法や対処方法をご存知の方が居ましたら、教えて頂けないでしょうか。
よろしくお願い致します。
-----------------------------------
■動作環境
サーバー:HP ML115
OS:FreeBSD8.3
MODxバージョン:1.0.6J-r4 → 1.0.6J-r8
PHPバージョン:5.2.17
MySQLバージョン:5.1.66
Apacheバージョン:2.2.23
確認ブラウザ:IE9, FireFox16
-----------------------------------
■動作しなかったスニペット
AjaxSearch 1.8.4~1.9.2c
-----------------------------------
■スニペット パラメーター変更部分
デフォルト : $cfg['parents'] = isset($parents) ? $parents : (isset($__parents) ? $__parents : $dcfg['parents']);
: $cfg['language'] = isset($language) ? $language : (isset($__language) ? $__language : $dcfg['language']);
変更後 : $cfg['parents'] ="111";
: $cfg['language'] = english;
-----------------------------------
■スニペット実行時のエラー内容
Undefined index: a
≪ MODX Parse Error ≫
MODX encountered the following error while attempting to parse the requested resource:
≪ PHP Parse Error ≫
PHP error debug
Error : Invalid argument supplied for foreach()
ErrorType[num] : WARNING[2]
File : /public_html/assets/snippets/ajaxSearch/classes/ajaxSearchResults.class.inc.php
Line : 823
Source : foreach ($modx->documentMap as $null => $document) {
Basic info
REQUEST_URI : /e_search_result.html
Resource : [428]Search result
Current Snippet : e_AjaxSearch
Referer : http://hostname/e_search_result.html
User Agent : Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0
IP : ***.***.***.***
Parser timing
MySQL : 0.0197 s (17 Requests)
PHP : 0.1224 s
Total : 0.1421 s
Backtrace
1 executeParser() index.php on line 135
2 prepareResponse() manager/includes/document.parser.class.inc.php on line 286
3 outputContent() manager/includes/document.parser.class.inc.php on line 405
4 parseDocumentSource() manager/includes/document.parser.class.inc.php on line 436
5 evalSnippets() manager/includes/document.parser.class.inc.php on line 1956
6 _get_snip_result() manager/includes/document.parser.class.inc.php on line 1587
7 evalSnippet() manager/includes/document.parser.class.inc.php on line 1671
8 eval() manager/includes/document.parser.class.inc.php on line 1518
9 run() manager/includes/document.parser.class.inc.php(1518) : eval()'d code on line 462
10 run() assets/snippets/ajaxSearch/classes/ajaxSearch.class.inc.php on line 101
11 getSearchResults() assets/snippets/ajaxSearch/classes/ajaxSearchCtrl.class.inc.php on line 70
12 _doBeforeSearchFilter() assets/snippets/ajaxSearch/classes/ajaxSearchResults.class.inc.php on line 98
13 _getChildIds() assets/snippets/ajaxSearch/classes/ajaxSearchResults.class.inc.php on line 675
-----------------------------------
■エラー発生条件
キーワードを入力した状態でAjaxSearchにて検索を行うとエラーが発生。
MODxバージョン 1.0.6J-r6以降
(1.0.6J-r6, r-8 で動作テストを行いました。)
(1.0.6J-r4で動作を確認した所発生しませんでした。)
&parentsパラメーターを指定時に発生。
-----------------------------------
日本語サイトと英語サイトでAjaxSearchを分けて使用していたのですが、
英語サイト側のAjaxSearchのみ、検索範囲を英語用リソースに絞る為に&parentsパラメータを指定しておりました。
パラメーターを変更していたのが英語サイトのみで殆ど影響は無かった反面、
アクセスが少なくアップデートしてしばらく経ってから気が付きました。
リリースノートを辿ってみると、
MODx-1.0.5J-r2で同梱の拡張機能から削除されており、大分前から使用は推奨されていなかったんですね;;