MODX1.0.12J-r1でルート直下のリソースがプレビュー表示できない。  【解決済み】

質問全般・改善要望
返信する
ethmo
メンバー
メンバー
記事: 17
登録日時: 2010年1月03日(日) 15:13

MODX1.0.12J-r1でルート直下のリソースがプレビュー表示できない。

投稿記事 by ethmo »

-----
ご利用のサーバ:MAC OSXサーバー
MODXのバージョン:1.0.12J-r1
PHPのバージョン:5.3.26
MySQLのバージョン:5.0.8
ブラウザ:Safari
-----

こんにちは、いつも参考にさせていただいております。

MODX1.0.12J-r1で、ルート直下のリソースがプレビュー表示できない現象が出て困っております。

ルート直下で、
「コンテナとして扱う」をチェックしたリソース、及び、
サブリソースを持たないウェブページの両方とも、プレビューで表示されません。
直接URLを指定しても、404 Not Foundになります。

ただし、コンテナの下のサブリソースは表示されます。
(ルート直下に404 Not Fondページを作っても、認識されなかったので、コンテナの下に入れて使っている状況です。)

サイトはフレンドリーURLを使用しています。
(現象が出てから、フレンドリーURLの使用を一旦止めてみましたが、id指定でも同じ現象でした。)

作り始めの内は表示されていた気がしたので、
同じサーバー条件下で、テストサイトを立ち上げて、似たような感じでページを作っていった所、
リソース数(10)ぐらいでは、こうした現象は出ず、普通に使えています。

現象の出たサイトは、二つあるのですが、リソース数はそれぞれ(37)と(57)です。
リソース数の問題なのでしょうか?

後は、ウェブリンクを多用しているのも特徴です。
ウェブリンク(alias)
 |--サブリソース(index.html)
 |--サブリソース2(xxxxx.html)

ウェブリンク(alias2)
 |--サブリソース(index.html)
 |--サブリソース2(yyyyy.html)

※このような構造を10コ以上使用。

このような使い方がいけないのでしょうか?


また、問題のサイトは、wayfinderを使っているので、
一応、下記のパッチも当ててみましたが、表示されない現象は変わりませんでした。
http://forum.modx.jp/viewtopic.php?f=7&t=1245#p6971

テストの方は、まだwayfainderはどこにも使っていません。

プログラム寄りの知識があまりないので、的外れな試し方、使い方をしているのかもしれません。

良いアドバイスがあれば、お聞かせください。

尚、両方ともプロトタイプ作成用に使っているので、運用上の問題はほとんどなく、
そういうものだと諦めて、コンテナかウェブリンク扱いで、
サブリソースだけを使用するようにしてもなんとかなりますが、
今後も同じような現象が出るかもしれないので、
できれば出ない方が作り易いので、解決してゆけたらと考えています。

どうぞよろしくお願いいたします。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: MODX1.0.12J-r1でルート直下のリソースがプレビュー表示できない。

投稿記事 by yama »

https://github.com/modxcms-jp/evolution ... stable.zip
上記の1.0.12J-r2リリース候補でアップデートしてみると改善されるでしょうか?
ethmo
メンバー
メンバー
記事: 17
登録日時: 2010年1月03日(日) 15:13

Re: MODX1.0.12J-r1でルート直下のリソースがプレビュー表示できない。

投稿記事 by ethmo »

yamaさん、ご返信いただきありがとうございました。
yama さんが書きました:https://github.com/modxcms-jp/evolution ... stable.zip
上記の1.0.12J-r2リリース候補でアップデートしてみると改善されるでしょうか?
さっそくアップデートしてみたのですが、変化なしでしたので、
もう一度、自分の作ったリソースや設定と小一時間にらめっこしてみました。

そうしましたら原因がわかりました…
…結論からいうと、自分のうっかりミスでした。
お騒がせしてすみません(><)

実はリソースの中で、HOMEだけが表示されていたのですが、
そのことをすっかり見落としておりました。

HOMEとそれ以外では唯一テンプレートだけが違っていたので、
テンプレートの中の違う部分を確かめていった所、
[*parent:pagetitle*]という指定があり、
これを削除したらルート直下でもプレビュー表示されるようになりました。
よくよく考えてみれば、ルート直下のリソースには親はないので、
parentがあると駄目…ということなんですよね。

激しくうっかりしておりました。
お恥ずかしい限りです。

この質問は、「トラブル全般・設定・操作方法に関する質問」に移動すべきでしょうか?
あまりバージョンには関係ないですよね?
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: MODX1.0.12J-r1でルート直下のリソースがプレビュー表示できない。

投稿記事 by yama »

http://140318123228-954.evo.demo.modx.j ... frame=main
試してみました。たしかにNot foundになりますね。もし修正できそうであれば修正してみます。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: MODX1.0.12J-r1でルート直下のリソースがプレビュー表示できない。  【解決済み】

投稿記事 by yama »

manager/includes/extenders/phx.parser.class.inc.php
上記のファイルをテキストエディタで開いて、

コード: 全て選択

if(preg_match('@^[0-9]+$@',$target)) $mode='id';
上記の記述を探してみてください。

コード: 全て選択

if(preg_match('@^[1-9][0-9]*$@',$target)) $mode='id';
このように書き換えます。
こうすると、親の情報が存在しない場合のエラーを回避し、代わりに自分自身の情報を返すようになります。
この対応で特に問題なければ次のリリースに含めます。
ethmo
メンバー
メンバー
記事: 17
登録日時: 2010年1月03日(日) 15:13

Re: MODX1.0.12J-r1でルート直下のリソースがプレビュー表示できない。

投稿記事 by ethmo »

yamaさん、ありがとうございます!

コードを書き換えたところ、プレビュー表示されるようになりました。
大変たすかりました。

ところで、
[*parent:pagetitle*]で親のリソースが存在しない場合は自分自身の情報を返すようになるとのことですが、
コード書き換え後は、ホーム(id=1)のpagetitleが表示されています。
本来は、表示しているリソースのpagetitleが返されるはずですか?
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: MODX1.0.12J-r1でルート直下のリソースがプレビュー表示できない。

投稿記事 by yama »

もしかするとエイリアス名が「1」になっているパターンですね。後ほど再修正します
返信する