phxの日付形式について

質問全般・改善要望
yoshida
メンバー
メンバー
記事: 45
登録日時: 2013年10月01日(火) 20:12

phxの日付形式について

投稿記事 by yoshida »

-----
MODXのバージョン:1.0.14J-r4
PHPのバージョン:PHP 5.4.29
MySQLのバージョン:MySQL 5.5
ブラウザ:IE FireFox クローム Opera
-----

お世話になります。

[*createdon:date=`%Y年%m月%d日`*]
という形式で日付を表示させようと、テンプレートに記述したところ

1970年1月1日となってしまいます。
これは、バグなのでしょうか?
それとも、ほかに記述すべきものがあるのでしょうか?

ご指導・ご鞭撻いただけると
助かります。

よろしくお願いいたします。
失礼いたします。
mune3001
メンバー
メンバー
記事: 63
登録日時: 2010年5月08日(土) 16:58

Re: phxの日付形式について

投稿記事 by mune3001 »

おそらくcreatedonなどの出力形式が変更になったのでうまくphxで出力されないと思います。

<?
return strftime($options, strtotime($output));
?>


phx:mydate
としてスニペットに登録し

[*createdon:mydate=`%Y年%m月%d日`*]

で動くと思います
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: phxの日付形式について

投稿記事 by yama »

変更になったのはデフォルトの書式なので、PHxなどを通す場合は期待どおりの値が得られるはずと思います。
PHxプラグインをインストールしていますでしょうか?インストールしていないのに1970年1月1日と表示されている場合はバグの可能性があります。
yoshida
メンバー
メンバー
記事: 45
登録日時: 2013年10月01日(火) 20:12

Re: phxの日付形式について

投稿記事 by yoshida »

mune3001様

ありがとうございました!
無事、正常に出力されました。
yoshida
メンバー
メンバー
記事: 45
登録日時: 2013年10月01日(火) 20:12

Re: phxの日付形式について

投稿記事 by yoshida »

yama様

ご返信ありがとうございました。

PHXプラグインはインストールしているはずなのですが
何故か、1970年1月1日になってしまいました。

うまくインストロールできていないのかもしれません。

<?php
return strftime($options, strtotime($output));
?>
をスニペットとし、
[*createdon:mydate=`%Y年%m月%d日`*]
で無事出力できました。

お手数おかけしました。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: phxの日付形式について

投稿記事 by yama »

PHxプラグインをインストールしているのが原因だと思います。PHxプラグインの使用を前提とするとシステム本体の最適化・改善が難しいため、基本的には非推奨としています。もしよければ、PHxプラグインを無効にして各部が正常に動作するか確認していただいてよいでしょうか?他の箇所などでも問題があれば修正します。
yoshida
メンバー
メンバー
記事: 45
登録日時: 2013年10月01日(火) 20:12

Re: phxの日付形式について

投稿記事 by yoshida »

yama様

ご返信ありがとうございます。
試にPHXプラグインを停止すると、無事に最初の記述でも
正常に日付が出力されました。

ただ1点お尋ねしたいのですが、

その他のPHXプラグインで出力していたヶ所が
出力しなくなることはありますでしょうか?

MODx本体に備わっているphxと
インストールするphxプラグインとでは、記述の仕方が異なる点や、機能的な違いはありますでしょうか。

先ほどの、プラグイン停止の際
[+phx:if=`[[UltimateParent]]`:eq=`1`:then=`class="here"`+]
で動いていたものが、動かなくなり

以下のように修正すると動くようになりました。
[*phx:if=`[[UltimateParent]]`:eq=`1`:then=`class="here"`*]

テンプレートパーツとしてしようしております
チャンクに記述ておりました。

ご指導いただけると助かります。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: phxの日付形式について

投稿記事 by yama »

yoshida さんが書きました:その他のPHXプラグインで出力していたヶ所が
出力しなくなることはありますでしょうか?
基本的にはそのようなことがないようになっていますが、PHxプラグインとは処理の流れが基本的に違うため、まだ完全にPHxプラグインの動作をカバーできてないかもしれません。もし気付いた点があれば、連絡いただければできるだけ早く対応します。
yoshida さんが書きました:MODx本体に備わっているphxと
インストールするphxプラグインとでは、記述の仕方が異なる点や、機能的な違いはありますでしょうか。
基本的には同じですが、内蔵の機能のほうが、使えるモディファイアが多く、負荷が軽く、他プラグインと併用した時の副作用がないなどの特長があります。また、カスタムモディファイアをチャンクでHTMLだけで簡単に作ることができます。モディファイアを作る時、プリフィックス文字列として「phx:」をモディファイア名に含める必要がないため、モディファイアとして作ったものをスニペットとして動作させることができるという特長もあります。

http://chibinowa.net/modx/features/modifier.html
具体的なことは上記サイトに書いてあります。zenhan・hanzen・str_replace・replace_to・「 . 」・id・time・googlemapなどは内蔵PHx機能で使えるモディファイアです。
yoshida さんが書きました:先ほどの、プラグイン停止の際
[+phx:if=`[[UltimateParent]]`:eq=`1`:then=`class="here"`+]
で動いていたものが、動かなくなり

以下のように修正すると動くようになりました。
[*phx:if=`[[UltimateParent]]`:eq=`1`:then=`class="here"`*]
こちらは修正します。Dittoなどで使われているのでしょうか?
http://mng.demo.modx.jp/pack_list/Evolu ... 4j-r3.html
もしよければ上記でサンプルを作っていただけたら、そのデータを使って調整してみます。
yoshida
メンバー
メンバー
記事: 45
登録日時: 2013年10月01日(火) 20:12

Re: phxの日付形式について

投稿記事 by yoshida »

yama様

ご返信ありがとうございます。

サンプルサイトに
phxの記述のサンプルを作成いたしました。
ご確認いただけますでしょうか。

・スニペットに「UltimateParent」を追加

・チャンク「sample_phx」を作成
└チャンクの記述内容[+phx:if=`[[UltimateParent]]`:eq=`1`:then=`IDが1の時出力`+]
 ([*phx:if=`[[UltimateParent]]`:eq=`1`:then=`IDが1の時出力`*]だと正常に出力される状態です)


・ツリーのHOME(1)に、{{sample_phx}}で呼び出すようにしております。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: phxの日付形式について

投稿記事 by yama »

ありがとうございます、URLを教えていただけますでしょうか?
yoshida
メンバー
メンバー
記事: 45
登録日時: 2013年10月01日(火) 20:12

Re: phxの日付形式について

投稿記事 by yoshida »

yama様

下記がサンプルサイトの情報になります。

ベースパッケージ
1.0.14j-r3
トップページ
http://141015141238-18053.evo.demo.modx.jp/
管理画面
http://141015141238-18053.evo.demo.modx.jp/manager/
MODX管理者ユーザ
modx
MODX管理者パスワード
modx

以上
ご確認いただけますでしょうか。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: phxの日付形式について

投稿記事 by yama »

確認しました、後ほど修正パッチを作成します
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: phxの日付形式について

投稿記事 by yama »

すみません、最新の1.0.14J-r5にアップデートしていただくことはできますでしょうか?1.0.14J-r5で修正パッチを作成します。

http://modx.jp/docs/update.html
アップデート方法は上記のとおりです
yoshida
メンバー
メンバー
記事: 45
登録日時: 2013年10月01日(火) 20:12

Re: phxの日付形式について

投稿記事 by yoshida »

yama様

お世話になっております。

最新にアップデートしたのですが
ページに

Parse error: syntax error, unexpected ')' in /home/sites/heteml/users42/d/a/v/site/web/manager/includes/extenders/phx.parser.class.inc.php(115) : eval()'d code on line 1

というエラーが出てきてしまっております
これは、何を修正すれば
治りますでしょうか?
yoshida
メンバー
メンバー
記事: 45
登録日時: 2013年10月01日(火) 20:12

Re: phxの日付形式について

投稿記事 by yoshida »

追記です。

yama様

お世話になります。

先ほどの、アップデート後の不具合に
追記という形でご報告させてください。

ページによっては
" />`:else=``*]
という謎の文字列が、body直下に現れます。

こちらも合わせt解決方法を
ご指導いただけると助かります。
yoshida
メンバー
メンバー
記事: 45
登録日時: 2013年10月01日(火) 20:12

Re: phxの日付形式について

投稿記事 by yoshida »

追記2

yama様

先ほどの状態で
インストール版のPHXを復活させると
エラー表示は消えました。

その代り、日付表示の不具合は
1970年1月1日になり
元の状態になってしまいました。

以上
ご確認いただけますでしょうか。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: phxの日付形式について

投稿記事 by yama »

yoshida さんが書きました:Parse error: syntax error, unexpected ')' in /home/sites/heteml/users42/d/a/v/site/web/manager/includes/extenders/phx.parser.class.inc.php(115) : eval()'d code on line 1
yoshida さんが書きました:ページによっては
" />`:else=``*]
という謎の文字列が、body直下に現れます。
どちらも同じ部分が絡んでるみたいです。phx.parser.class.inc.php(115) とあるので115行目を見てみたら、else=xxxの処理をしている部分でした。
この部分、実際にどのようなPHx式を書いてますか? できるだけ早く修正します。
yoshida
メンバー
メンバー
記事: 45
登録日時: 2013年10月01日(火) 20:12

Re: phxの日付形式について

投稿記事 by yoshida »

yama様

お世話になっております。

記述は

[*phx:if=`[*id*]`:eq=`1`:then=``:else=` second`*]
[*phx:if=`[*id*]`:eq=`1`:then=`{{top_news}}`:else=`{{pankuzu}}`*]

の様にしております。

以上
ご確認いただけますでしょうか。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: phxの日付形式について

投稿記事 by yama »

http://141015141238-18053.evo.demo.modx.jp/
こちらで試してみましたが、再現できませんでした。さらに詳細を確認して、再現できますでしょうか?難しそうであればデバッグ用の処理を作って、修正に必要な情報を書き出せるようにしてみます。
上記のサイトは、最初の修正は適用してみました。
yoshida
メンバー
メンバー
記事: 45
登録日時: 2013年10月01日(火) 20:12

Re: phxの日付形式について

投稿記事 by yoshida »

yama様

お世話になっております。
他には

[*phx:if=`[[UltimateParent]]`:eq=`1`:then=`class="here"`*]
の記述くらいですので。
私の方では、わからないので

修正に必要な情報を書き出せるようにしていただけると助かります。
返信する