Re: ページリストのカスタムテンプレート

2014年8月26日 at 13:54

getCollectionDateLastModifiedが無いというエラーのようですね。

検証していないので動くかわかりませんが・・・
foreach ($cArray as $cobj):このforeach内で
$renewdate = $cobj->getCollectionDateLastModified('Y年m月d日');
と変数に当てはめて <?php echo t($renewdate); ?>で呼び出したらできそうな・・・

自分だったらこんな感じでやると思います。


最後に、view.phpはUTF8で保存してありますか?


■■ 参考コード ■■
<?php
foreach ($cArray as $cobj):
$title = $cobj->getCollectionName();
$renewdate = $cobj->getCollectionDateLastModified('Y年m月d日');
$link = $nh->getLinkToCollection($cobj);
?>

[ 更新日:<?php echo t($renewdate); ?> ] <a href="<?php echo $link; ?>"><?php echo $title; ?></a>

<?php endforeach; ?>

Re: ページリストのカスタムテンプレート

2014年8月26日 at 17:53
aki 様

ご回答ありがとうございます!
丁寧にコードまで表記してくださり感謝です。。。

私、PHPはまったくダメなのですが、
ここかな~という箇所にコピペして、もともとのコード(titleの部分)削除して
実行してみました。

そうしたら、foreachの中にforeachが入っているのでリストに3件あると
3件、3件、3件という表示になってしまいました。(表示自体は出来ました!)

いろいろと削除したり、付け加えたりしてみたのですが、結局うまくいかずです・・・。
公式ページの動画とはバージョンが違うのでうまくいかないのかなぁ・・・。

もう少し粘ってみます、ありがとうございました。
 

Re: ページリストのカスタムテンプレート

2014年8月26日 at 22:38
aki 様

ふと、foreach の外にakiさんのコードを コピペしてみたらうまくいきました!
後は、もともとのコードで不要な箇所を削除して、スタイルを整えました。

バージョン 5.6.3.1 において2014/8/26時点では
「ブロック修正の仕方とカスタムテンプレートの仕組み」の動画のとおり
真似してみても、ページリストのカスタムテンプレートに日付を入れることは
出来ないみたいです。

本当にありがとうございました。
 

Re: ページリストのカスタムテンプレート

2014年8月28日 at 10:40
元々あるforeachの中に、
$title = $cobj->getCollectionName();
$renewdate = $cobj->getCollectionDateLastModified('Y年m月d日');
$link = $nh->getLinkToCollection($cobj);
この3行を追加すればすっきりするかもです。
同じforeachを2度呼び出す必要は無いと思いますので。
$titleはかぶるかもなので、その場合は同じものはいらないのでひとつだけにしましょう。
気が向いたら検証してみるといいと思います。

動画観ていないのでどんな説明変わりませんができたようでよかったです。
 

Re: Re: ページリストのカスタムテンプレート

2015年1月11日 at 14:52
fanta様 aki様
concrete5 も php つい1ヶ月前に始めたばかりの初心者です。
バージョン5.6.3.1です。

ページリストに日付を付けたいと思い、あれこれやっていますがうまくいきません。

fantaさんがうまくできたやり方をやってみたいと思っているのですが、理解できずです。

「foreach の外にakiさんのコードをコピペ」
「もともとのコードで不要な箇所」
の部分です。

「foreach の外」
とは具体的にどこの部分ですか?

akiさんのコードは、
$titlr = $cobj ・・・
$renewdate = $cobj ・・・
$link = $nh ・・・ ($cobj);
の3行のコードだと思います。

「もともとのコードで不要な箇所」
はどのコードですか?

ご教授よろしくお願いします。
 

Re: ページリストのカスタムテンプレート

2015年1月11日 at 18:30
fanta様 aki様

完璧ではありませんが、自己解決しました。

以下、解決方法を書いておきます。

1.
page_list フォルダの view.php 22行目から24行目を見ると以下のように記述しています。

//Other useful page data...

//$date = $page->getCollectionDatePublic(DATE_APP_GENERIC_MDY_FULL);

上記の24行目から // を削除以下のようになります。
$date = $page->getCollectionDatePublic(DATE_APP_GENERIC_MDY_FULL);


2.
54行目から57行目は以下のように記述しています。
<h3 class="ccm-page-list-title">
<a href="<?php echo $url ?>" target="<?php echo $target ?>"><?php echo $title ?></a>
</h3>
<div class="ccm-page-list-description">
この</h3>の次の行に
<div class="published"><?php echo $date ?></div>
を挿入します。

以上で、ページリストに日付(Y年m月d日)が入り、その下にディスクリプションが表示されるようになりました。