ページ 11

内蔵PHxで親リソースのpagetitleを表示させたい

Posted: 2013年1月18日(金) 17:41
by min-o
-----
ご利用のサーバ: さくらインターネット ビジネスプロ
MODXのバージョン:  1.0.6J-r8
PHPのバージョン:   PHP 5.2.17
MySQLのバージョン: 5.5.28-log
ブラウザ: firefox 17(win xp/mac)
-----

いつもお世話になっております。

以下のページを参考に

http://modx.jp/docs/tags/rv/
http://modx.jp/news/148.html
http://forum.modx.jp/viewtopic.php?p=4757

内蔵PHxで親リソースのpagetitleを表示させようとしているのですが、うまくいきません。

[*parent:pagetitle*]
[*parent:getfield=`[*pagetitle*]`*] 
の2つでやってみましたが、どちらも親リソースのidが出力されます。
(テンプレートにかいています)

[*createdby:userinfo=`fullname`*] 
[*createdon:date=`%Y年%m月%d日`*]
[*longtitle:ifempty=`[*pagetitle*]`*]
などはどれも、ちゃんと動いて望みどおりに出力されます。

なにか書き方が違うのでしょうか?
よろしくお願い致します。

Re: 内蔵PHxで親リソースのpagetitleを表示させたい

Posted: 2013年1月18日(金) 17:51
by yama
http://130118174717-1949.evo.demo.modx.jp/manager/
http://130118174717-1949.evo.demo.modx. ... dable.html
上記、同じ1.0.6J-r8で試してみましたがこちらは出力できているみたいです。
何かプラグインなどの影響ということはないでしょうか?

Re: 内蔵PHxで親リソースのpagetitleを表示させたい

Posted: 2013年1月18日(金) 18:02
by min-o
プラグインをすべて停止して、チェックしてみたところ
phx  2.1.5 が問題でした。

プラグインのphxを停止すると
[*parent:pagetitle*] で親のページタイトルが出力されます。

なんでこれだけ、ぶつかるんでしょう…orz
プラグインのphxもたぶん、今後使うので停止は避けたいです。

Re: 内蔵PHxで親リソースのpagetitleを表示させたい

Posted: 2013年1月18日(金) 18:23
by yama
phx.parser.class.inc.phpを見てみると
if ($st!=$et) $template = $this->Parse($template);
という行があるのですが、なんとなく自信なさそうな処理のように見えます。この行を削除するとどうなるでしょう?

Re: 内蔵PHxで親リソースのpagetitleを表示させたい

Posted: 2013年1月21日(月) 10:14
by min-o
返信遅くなり、すいません。
if ($st!=$et) $template = $this->Parse($template);
という行があるのですが、なんとなく自信なさそうな処理のように見えます。この行を削除するとどうなるでしょう?
やってみましたが、かわりませんです…。

Re: 内蔵PHxで親リソースのpagetitleを表示させたい

Posted: 2013年1月21日(月) 10:31
by min-o
yamaさんの作っていただいたデモサイトはすでに消えていたので、
新たにでもサイト作ってみました。

http://130121101608-1949.evo.demo.modx.jp/
http://130121101608-1949.evo.demo.modx.jp/manager/
id modx
pass modx000

デフォルトでは [*parent:pagetitle*] は問題なのですが
phx 2.1.5プラグインを追加すると、やはりparentのidナンバーを出力しています。
※「新サービスのお知らせ (5)」に記述しました。
※if ($st!=$et) $template = $this->Parse($template); は有効のままです。

Re: 内蔵PHxで親リソースのpagetitleを表示させたい

Posted: 2013年1月21日(月) 10:45
by yama

コード: 全て選択

$doc = $modx->getDocumentObject('id',$output);
return $doc['pagetitle'];
上記のようなスニペットを作って、スニペット名「phx:pagetitle」で保存してみてください

Re: 内蔵PHxで親リソースのpagetitleを表示させたい

Posted: 2013年1月21日(月) 11:21
by min-o
ありがとうございます。
スニペットで、無事表示できるようになりました。 :D

今度modxアップデートしたら、他のバージョンでも内蔵phxで試してみます。