エントリ作成時刻の取得方法


投稿ツリー


前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 | 投稿日時 2010/8/22 18:08 | 最終変更
OhYeah  半人前   投稿数: 24

ついでに、もうひとつ質問です。
新着一覧のライトなテンプレートを作ってみました。できれば、作成日だけでなく時刻まで表示させたいのですが、可能でしょうか?
ちなみに、カテゴリーをクリックすると、カテゴリー別一覧に飛ぶようにしてあります。タグでも同じことができるようにすれば、もっと便利かな…。

1
2
3
4
5
6
7
8
9
<ul style="list-style-type:disc;">
<{foreach item=entry from=$block.entry}>
	<li><{* 日付 *}><{$entry.year}>-<{$entry.month}>-<{$entry.day}> {* ここに時刻を入れたい *}
	<{* 投稿者 *}><{$entry.uname}> 
	<{* カテゴリー *}><{if $entry.cname|count_characters>0}>[<a href="/modules/<{$block.mydirname}>/index.php?req_uid=<{$entry.uid}>&amp;mode=category&amp;cid=<{$entry.cid}>"><{$entry.cname}></a>]<{/if}> 
	<{* タイトル *}><a href="<{$entry.url}>"<{if $entry.other>0}> target="_blank"<{/if}>><{if $entry.other>0}><img src="<{$xoops_url}>/modules/<{$block.mydirname}>/images/door_out.gif" border=0 style="vertical-align:middle;" /><{/if}><{$entry.title}></a> 
 	<{* コメント *}><{d3comment mode="count" var="comcount" mydirname=$block.mydirname id=$entry.bid class="d3diaryD3commentContent"}><{if $comcount}><a href="/modules/<{$block.mydirname}>/index.php?page=detail&amp;bid=<{$entry.bid}>#comment" title="<{$block.lang.exist_comments}>"><img src="<{$xoops_url}>/modules/<{$block.mydirname}>/images/comments.png" border=0 style="vertical-align:middle;" title="<{$block.lang.exist_comments}>" alt="<{$block.lang.exist_comments}>" /> (<{$comcount}>)</a><{/if}></li>
<{/foreach}>
</ul>
投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/8/22 20:09 | 最終変更
なーお  長老   投稿数: 1785

OhYeahさん、こんにちは。

ブロックオプションでカスタムテンプレートを指定して使うのですね。 なるほど。

ご質問の件は、(trust側)/blocks/b_diarylist.phpの

1
2
3
4
5
$entry[$i]['year']   = d3diary_MyformatTimestamp($entry[$i]['tstamp'], "Y");
$entry[$i]['month']   = d3diary_MyformatTimestamp($entry[$i]['tstamp'], "m");
$entry[$i]['day']   = d3diary_MyformatTimestamp($entry[$i]['tstamp'], "d");
$entry[$i]['time']   = d3diary_MyformatTimestamp($entry[$i]['tstamp'], "H:i"); ←この行を追記
$entry[$i]['uid']=intval($dbdat['uid']);

で、いかがでしょうか。
次の開発バージョンでは、予めアサインするようにしますね。 :-)

投票数:1 平均点:10.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/8/22 22:24 | 最終変更
OhYeah  半人前   投稿数: 24

ありがとうございます。そこだけではダメで、もう1か所追加したら表示されるようになりました。
なーおさんに教えていただいた行が必要かどうかは確認していません。しかし、そちらはデータベースから直接エントリを読んでるので、そちらだけで設定すればいけそうなもんなんですが…。

1
2
3
4
5
				$entry[$j]['month']   = d3diary_MyformatTimestamp($tstamp, "m");
				$entry[$j]['day']   = d3diary_MyformatTimestamp($tstamp, "d");
				$entry[$j]['time']   = d3diary_MyformatTimestamp($tstamp, "H:i"); // この行追加
				$mytstamp[$j] = $tstamp;
				$req_uid = $entry[$j]['uid']=intval($dbdat['uid']);

ブロックテンプレートだと、$smarty.const._MD_CATEGORY とかも使えないんですね。$smarty も b_diarylist.php で指定しておかなければならないんでしょうか?

投票数:1 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - | 投稿日時 2010/8/22 22:40
OhYeah  半人前   投稿数: 24
引用:
タグでも同じことができるようにすれば、もっと便利かな…。

タグは別テーブルで管理されてるので、一覧にタグも表示させるとなると、b_diarylist.php が結構複雑になりそうですね(^^;。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/8/22 23:04
なーお  長老   投稿数: 1785

OhYeahさん、こんにちは。

引用:
ありがとうございます。そこだけではダメで、もう1か所追加したら表示されるようになりました。

おっと、そうでした。 ご指摘感謝します。

引用:
ブロックテンプレートだと、$smarty.const._MD_CATEGORY とかも使えないんですね。$smarty も b_diarylist.php で指定しておかなければならないんでしょうか?

これは、言語変数のことでしょうか? ブロックは「main.php」ではなく、「blocks_common.php」と「blocks_each.php」に記述しています。 (XOOPSのシステム上、分けなければならないので。)

それとも、カテゴリリストをアサインしてほしい、ということでしょうか? 用途が良く分かりません。

それから、別コメントへの返信になりますが、
引用:
>タグでも同じことができるようにすれば、もっと便利かな…。

タグは別テーブルで管理されてるので、一覧にタグも表示させるとなると、b_diarylist.php が結構複雑になりそうですね(^^;。

別テーブルですし、1つ記事に対してマルチで付くので、既存のSQLクエリに割り込ませんのは辛いですね。 別クエリを発行する必要があります。

いずれにしても、本日の開発日記にかきましたように、処理を大幅に見直している途中ですので、それに合わせて検討してみます。 :-)

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010/8/22 23:57
OhYeah  半人前   投稿数: 24
引用:
それとも、カテゴリリストをアサインしてほしい、ということでしょうか? 用途が良く分かりません。

いや、テンプレート中で _MD_CATEGORY 定数の値そのものを参照したいという意味です。下記のような感じで、アンカーバブルに「カテゴリー」とか表示させられるかなと思ったんですが、ダメでした。

1
	<{* カテゴリー *}><{if $entry.cname|count_characters>0}>[<a href="/modules/<{$block.mydirname}>/index.php?req_uid=<{$entry.uid}>&amp;mode=category&amp;cid=<{$entry.cid}>" title="<{$smarty.const._MD_CATEGORY}>" alt="<{$smarty.const._MD_CATEGORY}>"><{$entry.cname}></a>]<{/if}>
投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010/8/23 0:50
なーお  長老   投稿数: 1785

OhYeahさん

引用:
いや、テンプレート中で _MD_CATEGORY 定数の値そのものを参照したいという意味です。下記のような感じで、アンカーバブルに「カテゴリー」とか表示させられるかなと思ったんですが、ダメでした。

それでしたら、テンプレートに直書きで大丈夫ですね。 ・・元も子もないお返事ですが。 :roll:

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/8/23 1:02
OhYeah  半人前   投稿数: 24

カスタムテンプレートですし、今のところ言語切換をする予定もないので、おっしゃるとおり直書きで全く問題は無いんですけどね。
ただ、そのうち EUC-JP から UTF-8 に切り替えたいなとは思っているので、言語定数を参照するようにしておけば、いちいちテンプレートを書き換えなくてもすむなと考えた次第です。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010/8/29 1:36
OhYeah  半人前   投稿数: 24

year, month, day, time を個別にアサインするより、d3blog のようにブロックオプションで日付フォーマットを指定するようにして、テンプレート側では単に $entry.date でフォーマットされた日付を取得できた方がエレガントかも…。これなら、テンプレートをいじらなくても、ブロックオプションで「(Y/m/d)」とか「Y-m-d H:i」とか指定するだけで、好きなフォーマットで表示できるようになります。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/8/29 6:53 | 最終変更
なーお  長老   投稿数: 1785

OhYeahさん、こんにちは。

引用:
OhYeahさんは書きました:
year, month, day, time を個別にアサインするより、d3blog のようにブロックオプションで日付フォーマットを指定するようにして、テンプレート側では単に $entry.date でフォーマットされた日付を取得できた方がエレガントかも…。これなら、テンプレートをいじらなくても、ブロックオプションで「(Y/m/d)」とか「Y-m-d H:i」とか指定するだけで、好きなフォーマットで表示できるようになります。

OhYeahさんのご意見は、最近の私の作業内容とほとんど同期していますね。 :-D  既に現行開発作業版にて、日記詳細ページを除いて、この形式もアサインするように移行中です。 コメントクリック時の飛び先も、最新コメント位置にジャンプするように修正済みです。

オプションでの指定は後回しなるかもしれません。

また、別件ですがxoops_breadcrumbsも組込み作業中です。 カテゴリとタグの両指定での抽出を可能として、breadcrumbsが有効に活用できるようにしてみました。 塩ビ管SPの会のサイトでは、diarylist,indexページに組込み済み、最新の動作状況をご確認いただけます。 ;-)

投票数:0 平均点:0.00
返信する

このトピックに投稿する

題名
ゲスト名
投稿本文
  条件検索へ