Attribute Displayer の日付フォーマット

2015年3月29日 at 12:00

無料のアドオン「Attribute Displayer」を使用して、ページ内に日付属性(日付のみ)を表示したいのですが、「日付+時刻」となってしまいます。
(C5バージョン5.6.3.2)

そこで、\packages\attribute_displayer\blocks\attribute_displayerにあるview.phpをカスタマイズして日付のフォーマットを変更したいのですが、うまく表示されません。

タグ:

Re: Attribute Displayer の日付フォーマット

2015年3月29日 at 15:27
take34さん

自分が物凄い勘違いをしているかも知れませんが、
無料のアドオン「Attribute Displayer」をダウンロードしてみましたが、
日付型の項目をAttributeで選択できませんでした。

例えば出力したいAttributeが「Meta Keywords」を選択されていて、
運用上、「Meta Keywords」に日付を設定されているとしたら、
view側では、strtotime()関数などで、文字列を日付型に変換してあげる必要があるのではないでしょうか?

echo date('Y/m/d',strtotime($attribute;))


とすれば、2015/03/29
と表示されるかと思います。(未検証ですが・・・)

concrete5.7になると、標準の「ページ属性表示」ブロックで、日付型の属性として
「ページ作成日」「ページ公開日」「ページ更新日」が選べるので、その場合は、
オプションで日付フォーマットを指定できるようです。
 

Re: Attribute Displayer の日付フォーマット

2015年3月29日 at 15:58
endo様
ありがとうございます。
申し訳ありません、ソースの引用部分の投稿方法が間違っているのか、
後半部分が投稿されていませんでした。
改めて投稿させていただきますので、よろしくお願いいたします。

尚、ご説明が足りないかもしれませんので補足ですが、
「日付属性」とは日付タイプの任意のページ属性という意味です。
これを事前に作成し、コンポーザで使用できるように設定します。
作成したページ内でこの属性を表示したいという事です。

=============================

バージョン5.6.3.2にて、無料のアドオン「Attribute Displayer」を使用してページ内に日付属性(日付のみ)を表示したいのですが、「日付+時刻」表示となってしまいます。

そこで、\packages\attribute_displayer\blocks\attribute_displayerにあるview.phpをカスタマイズしようと思い、いろいろと挑戦しているのですが、うまく表示されません。

<?php
defined('C5_EXECUTE') or die(_("Access Denied."));
?>
<<?php echo $wrap?> class="<?php echo $class?>">
<?php
if(is_a($attribute,'File')){
$f = File::getByID($attribute->fID);
$path = $f->getRelativePath();
echo '<img src="'.$path.'" alt=""/>';

→ }else if(        )){
→ $dh = Loader::helper('date');
→ $acvdate = $dh->formatDate($attribute,true);
→ echo $acvdate;

}else{
echo $attribute;
}
?>
</<?php echo $wrap?>>



たぶんこのような形になる??かと思うのですが、
この矢印の部分にどのように記述すれば良いか、どなたかご教示いただけないでしょうか。
もしくは、参考になる資料等を教えていただければ幸いです。
よろしくお願いいたします。
 

Re: Attribute Displayer の日付フォーマット

2015年3月29日 at 17:26
take34さん

かっこいいソースではありませんが、

<?php
global $c;
$ak = CollectionAttributeKey::getByID($akID);

if(is_a($attribute,'File')){
$f = File::getByID($attribute->fID);
$path = $f->getRelativePath();
echo '<img src="'.$path.'" alt=""/>';
}elseif($ak->akHandle == 'add_date'){
echo date('Y/m/d',strtotime($attribute));
}else{
echo $attribute;
}
?>


$ak->akHandleで比較しているのは、追加したページ属性のハンドル名を指定しています。
controller.php側ともう少しうまく連携できたら、スマートにコードが書けるかも・・・
 

Re: Attribute Displayer の日付フォーマット

2015年3月29日 at 17:57
endo様

ご返信ありがとうございます!
無事表示する事ができました!

助かりました、ありがとうございました!