unixtimeウィジットのテンプレート変数dateをグレゴリオ暦変換、どうしてますか? 【解決済み】
unixtimeウィジットのテンプレート変数dateをグレゴリオ暦変換、どうしてますか? 【解決済み】
こんにちは。
いつもお世話になっております。
以下を参考に
----
[解決]テンプレート変数で、カレンダーからUnixtimeを入力する方法
http://modxcms.com/forums/index.php?topic=32784.0
----
ウィジットUnixtimeのテンプレート変数dateを
Dittoのソートキーやフィルターに使ってみました。
これ自体はうまくいったのですが、単純に変数dateをグレゴリオ暦に変換してページに表示、というのでつまずきました。
DateTimeJPで可能と思ったのですが
DateTimeJPのtypeに使えるのは、「createdon」「pub_date」「editedon」だけなのですね。
Unixtimeにしてあっても、テンプレート変数を設定したら、エラーになってしまいました。
結局
[!Ditto? &documents=`[*id*]` &dateSource=`tvDateUnixtime` &dateFormat=`%Y年%m月%d日`!]
として、dittoを使って表示しましたが、
みなさんどうしてますか?
うまい方法があれば教えてください
--------------
[サーバ]
サーバ環境:サクラインターネット ビジネスプロ
ネットワーク:インターネット
Apache バージョン :Apache/1.3.42 (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8e
PHP Version 5.2.13
データベースのバージョン: 5.1.42
[modx]
modx 1.0.2J
Csv2Doc version 0.9.3b2
[クライアント]
Firefox3
---------------
いつもお世話になっております。
以下を参考に
----
[解決]テンプレート変数で、カレンダーからUnixtimeを入力する方法
http://modxcms.com/forums/index.php?topic=32784.0
----
ウィジットUnixtimeのテンプレート変数dateを
Dittoのソートキーやフィルターに使ってみました。
これ自体はうまくいったのですが、単純に変数dateをグレゴリオ暦に変換してページに表示、というのでつまずきました。
DateTimeJPで可能と思ったのですが
DateTimeJPのtypeに使えるのは、「createdon」「pub_date」「editedon」だけなのですね。
Unixtimeにしてあっても、テンプレート変数を設定したら、エラーになってしまいました。
結局
[!Ditto? &documents=`[*id*]` &dateSource=`tvDateUnixtime` &dateFormat=`%Y年%m月%d日`!]
として、dittoを使って表示しましたが、
みなさんどうしてますか?
うまい方法があれば教えてください
--------------
[サーバ]
サーバ環境:サクラインターネット ビジネスプロ
ネットワーク:インターネット
Apache バージョン :Apache/1.3.42 (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8e
PHP Version 5.2.13
データベースのバージョン: 5.1.42
[modx]
modx 1.0.2J
Csv2Doc version 0.9.3b2
[クライアント]
Firefox3
---------------
Re: unixtimeウィジットのテンプレート変数dateをグレゴリオ暦変換、どうしてますか?
コード: 全て選択
return $modx->documentObject['テンプレート変数名'][1];
(この場合は秒単位まで出力されちゃいますが・・)
Re: unixtimeウィジットのテンプレート変数dateをグレゴリオ暦変換、どうしてますか?
[*tvDateUnixtime:date=`%Y年%m月%d日`*]
これでいけます。Phxプラグインの機能ですが、Dittoが入ってれば
いけたような気がします。
書き方は、phpのstrftimeと同じです。
って質問の回答になってますか?
これでいけます。Phxプラグインの機能ですが、Dittoが入ってれば
いけたような気がします。
書き方は、phpのstrftimeと同じです。
って質問の回答になってますか?
Re: unixtimeウィジットのテンプレート変数dateをグレゴリオ暦変換、どうしてますか?
私は、以下のような感じでDateTimeJPを拡張して使わせてもらってます。
#作者のZeRoさんに確認取ってないです > すみませんZeRoさん、許して!
テンプレート変数が使えるようにするついでに、
Unixtimeでも、文字列でも、だいたいどっちでも使えるようにしています。
#作者のZeRoさんに確認取ってないです > すみませんZeRoさん、許して!
テンプレート変数が使えるようにするついでに、
Unixtimeでも、文字列でも、だいたいどっちでも使えるようにしています。
コード: 全て選択
//<?php
/**
* DateTimeJP
*
* ドキュメント(テンプレート)に、ドキュメントの作成日、公開日、更新日を挿入
*
* @category snippet
* @internal @modx_category hikidas extend
*/
/**
* DateTimeJP
* Created by: w.ZeRo http://www.petit-power.com/
* Date: 2007.02.04
*/
// increase TemplateVar 2009-11-27 by ikeda
$date_type = isset($type) ? $type:"createdon";
//$timestamp = $modx->documentObject[$date_type];
$timestamp = $modx->getTemplateVar($date_type); // ikeda
if (empty($timestamp))
{ $timestamp = $modx->documentObject['createdon'];
} else {
$timestamp = $timestamp['value'];
if (! is_numeric($timestamp)) {
$timestamp = strtotime($timestamp);
}
}
if(!isset($format))
{ $format = "%Y-%m-%d %H:%M:%S";
}
return strftime($format, $timestamp);
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
http://d.hatena.ne.jp/hikidas_ikeda/
Re: unixtimeウィジットのテンプレート変数dateをグレゴリオ暦変換、どうしてますか?
レスが遅くなってすいません。
いろいろやり方ありますね。
DateTimeJPはとても便利なので、今後の汎用性も考えて
kazuike さんの拡張版をつかわせていただきました。
ありがとうございます。
いろいろやり方ありますね。
DateTimeJPはとても便利なので、今後の汎用性も考えて
kazuike さんの拡張版をつかわせていただきました。
ありがとうございます。
Re: unixtimeウィジットのテンプレート変数dateをグレゴリオ暦変換、どうしてますか?
ひさびさに投稿だったりしますが・・・名前が出てたので顔出しついでにせっかく使ってくださっているようなので
Hikidasさんのとマージしちゃえ大作戦(ほんの20分)をやってみました。
ヘッダは適当ですが、要はtypeの変数にTV変数だったら"tv_XXX"って先頭にtv_を付ければtv_を除いた後ろの変数名をテンプレート変数名として利用し、そうでなければドキュメント変数名としてdocuumentObjectから値を取得します。
本当に動くかどうかは
テストしてなかったりしますが・・・、誰か試してくださいな。
Hikidasさんのとマージしちゃえ大作戦(ほんの20分)をやってみました。
ヘッダは適当ですが、要はtypeの変数にTV変数だったら"tv_XXX"って先頭にtv_を付ければtv_を除いた後ろの変数名をテンプレート変数名として利用し、そうでなければドキュメント変数名としてdocuumentObjectから値を取得します。
本当に動くかどうかは
テストしてなかったりしますが・・・、誰か試してくださいな。
コード: 全て選択
//<?php
/**
* DateTimeJP
*
* ドキュメント(テンプレート)に、ドキュメントの作成日、公開日、更新日を挿入
*
* @category snippet
* @internal @modx_category hikidas extend 2009-11-27
* merge doc and template ver 2010-07-22
*/
/**
* DateTimeJP
* Created by: w.ZeRo http://www.petit-power.com/
* Date: 2007.02.04
*/
// increase TemplateVar 2009-11-27 by ikeda
// merge document ver and template ver 2010-07-22 by ZeRo
$date_type = isset($type) ? $type:"createdon";
if (strncmp("tv_",$data_type,3)) {
$date_type =substr($date_type,3);
$timestamp = $modx->getTemplateVar($date_type); // ikeda
} else {
$timestamp = $modx->documentObject[$date_type];
}
if (empty($timestamp)) {
$timestamp = $modx->documentObject['createdon'];
} else {
$timestamp = $timestamp['value'];
}
if (! is_numeric($timestamp)) {
$timestamp = strtotime($timestamp);
}
if(!isset($format)) {
$format = "%Y-%m-%d %H:%M:%S";
}
return strftime($format, $timestamp);
え?
Re: unixtimeウィジットのテンプレート変数dateをグレゴリオ暦変換、どうしてますか?
ZeRoさん
ありがとうございます。
同じく、テストしてないですが…
取り急ぎ、ツッコミだけ。
$timestamp = documentObject[$date_type];
のときも、
$timestamp['value'];
を取ろうとしちゃうような気がします。
ありがとうございます。
同じく、テストしてないですが…
取り急ぎ、ツッコミだけ。
$timestamp = documentObject[$date_type];
のときも、
$timestamp['value'];
を取ろうとしちゃうような気がします。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
http://d.hatena.ne.jp/hikidas_ikeda/
Re: unixtimeウィジットのテンプレート変数dateをグレゴリオ暦変換、どうしてますか?
あっ
TV処理になっていたのを見逃してましたねぇ
ということで、修正してみました。
すっかり忘れてるって感じですね
TV処理になっていたのを見逃してましたねぇ
ということで、修正してみました。
コード: 全て選択
//<?php
/**
* DateTimeJP
*
* ドキュメント(テンプレート)に、ドキュメントの作成日、公開日、更新日を挿入
*
* @category snippet
* @internal @modx_category hikidas extend 2009-11-27
* merge doc and template ver 2010-07-23
*/
/**
* DateTimeJP
* Created by: w.ZeRo http://www.petit-power.com/
* Date: 2007.02.04
*/
// increase TemplateVar 2009-11-27 by ikeda
// merge document ver and template ver 2010-07-23 by ZeRo
//
$date_type = isset($type) ? $type:"createdon";
if (strncmp("tv_",$data_type,3)) {
$date_type =substr($date_type,3);
$timestamp = $modx->getTemplateVar($date_type); // ikeda
if (is_array($timestamp))
$timestamp = $timestamp['value'];
} else {
$timestamp = $modx->documentObject[$date_type];
}
if (empty($timestamp)) {
$timestamp = $modx->documentObject['createdon'];
}
if (! is_numeric($timestamp)) {
$timestamp = strtotime($timestamp);
}
if(!isset($format)) {
$format = "%Y-%m-%d %H:%M:%S";
}
return strftime($format, $timestamp);
え?
Re: unixtimeウィジットのテンプレート変数dateをグレゴリオ暦変換、どうしてますか?
http://code.google.com/p/modx-ja/downloads/detail?name=datetime001.zip
DateTimeスニペットを新しく作りました。&typeというパラメータ名が分かりにくい気がしたので&src に変更してます。
(※いちおう今までどおり&typeも使えるようにしてあります)
日付データ型のリソース変数には全て対応しています。
日付データ型のテンプレート変数を指定する際に「tv」を付けなくてもいいようにしました。
ソースを見ると分かると思いますが、全体的に単純な処理に書き換えています。
http://code.google.com/p/modx-ja/downlo ... =youbi.zip
上記は類似スニペット。曜日を出力します。datetimeスニペットで曜日を正しく出力できない場合はこれを使ってください。
追記
http://modxcms.com/forums/index.php/top ... #msg340786
文字化け対応版を本家フォーラムに投稿しました。一部を書き換えることで曜日出力にも対応します。(Sunday→日曜など)
本家版にいつの間にか備わってたサーバオフセット考慮や&shiftパラメータにも対応しました。
&shiftパラメータは秒数指定で、&shift=60*60*24*3みたいな指定(3日)もできると思います
DateTimeスニペットを新しく作りました。&typeというパラメータ名が分かりにくい気がしたので&src に変更してます。
(※いちおう今までどおり&typeも使えるようにしてあります)
日付データ型のリソース変数には全て対応しています。
日付データ型のテンプレート変数を指定する際に「tv」を付けなくてもいいようにしました。
ソースを見ると分かると思いますが、全体的に単純な処理に書き換えています。
http://code.google.com/p/modx-ja/downlo ... =youbi.zip
上記は類似スニペット。曜日を出力します。datetimeスニペットで曜日を正しく出力できない場合はこれを使ってください。
追記
http://modxcms.com/forums/index.php/top ... #msg340786
文字化け対応版を本家フォーラムに投稿しました。一部を書き換えることで曜日出力にも対応します。(Sunday→日曜など)
本家版にいつの間にか備わってたサーバオフセット考慮や&shiftパラメータにも対応しました。
&shiftパラメータは秒数指定で、&shift=60*60*24*3みたいな指定(3日)もできると思います
Re: unixtimeウィジットのテンプレート変数dateをグレゴリオ暦変換、どうしてますか?
http://code.google.com/p/modx-ja/downlo ... mat002.zip
新しく作ったものをこちらにアップしておきます
引数を柔軟に指定できるようにしたので、通販サイトなどで「2日後のxx曜日にお届けします」みたいな使い方もできます
新しく作ったものをこちらにアップしておきます
引数を柔軟に指定できるようにしたので、通販サイトなどで「2日後のxx曜日にお届けします」みたいな使い方もできます