東京の風景。勉強したこと。感じたこと。の雑記帳。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Joomlaのmod_latestnewsを日付表示仕様に変更する.

前回のエントリに続いてJoomlaのメモ.

元々入っていたモジュールのひとつで,
新規エントリのリストを表示してくれるmod_latestnews.
しかし,投稿日は表示してくれない仕様のようだった.
なので,日付対応に変更しました.
せっかくなので日付のフォーマットも管理画面で修正できるようにしました.


まずは管理画面からパラメータを取得するための修正.
modules/mod_latestnews/mod_latestnews.xml
    31                  <param name="secid" type="text" default="" label="Section ID" description="PARAMSECTIONID" />
32 <param name="catid" type="text" default="" label="Category ID" description="PARAMCATEGORYID" />
33 <param name="@spacer" type="spacer" default="" label="" description="" />
34 <param name="moduleclass_sfx" type="text" default="" label="Module Class Suffix" description="PARAMMODULECLASSSUFFIX" />
35 <param name="date_format" type="text" default="Y/m/d" label="Date Format" description="PHP Date Format" />
36 </params>
こうすることで,モジュール設定画面右にあるパラメータ欄に,日付用の項目が追加されます.
mod_latestnews
この項目で日付表示のフォーマットを変更できるようになります.
とりあえず日本的な日付表記でいいので,Y/m/dと入力しました.
日付フォーマットの指定方法はPHPのリファレンスとかに詳しく出ています.


続いて,記事情報を取得する際に日付データも引っ張ってくるように修正します.
modules/mod_latestnews/helper.php
   104                  $lists  = array();
105 foreach ( $rows as $row )
106 {
107 $lists[$i]->link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid));
108 $lists[$i]->text = htmlspecialchars( $row->title );
109 $lists[$i]->create_date = date($params->get(date_format), strtotime($row->created));
110 $i++;
111 }
112
113 return $lists;
109行目を追加しました.
$listsに必要な情報(新規エントリへのリンクとタイトル)を入れて返しているので,作成日をここに便乗させました.
$paramsは管理ページのパラメータの項目で入力されたものが入ってるハッシュです.
追加コードでは,DBから引っ張り出した日付情報を
パラメータで設定された書式の文字列に変換し,$listsに加えています.


最後に,取得した日付を表示する部分の表示の仕方を変更します.
modules/mod_latestnews/tmpl/default.php
     1  <?php // no direct access
2 defined('_JEXEC') or die('Restricted access'); ?>
3 <ul class="latestnews<?php echo $params->get('moduleclass_sfx'); ?>">
4 <?php foreach ($list as $item) : ?>
5 <li class="latestnews<?php echo $params->get('moduleclass_sfx'); ?>">
6 <a href="<?php echo $item->link; ?>" class="latestnews<?php echo $params->get('moduleclass_sfx'); ?>">
7 <?php echo $item->create_date."<br /> ".$item->text; ?>
8 </a>
9 </li>
10 <?php endforeach; ?>
11 </ul>
7行目を変更しました.
これでmod_latestmoduleが出力する内容が,
yyyy/mm/dd
 新着記事のタイトル
といった感じになりました.
表示の仕方は最後に修正したところで好きなように変えられるので,
自分の目的に合うように修正すればOKだと思います.
スポンサーサイト
コメント
コメントの投稿
管理者にだけ表示を許可する
プロフィール

ひかる

  • Author:ひかる
  • SE っぽいバイトで学費を稼ぎつつ,コンピュータの研究をしている大学院生.主に P2P のような分散システムを扱っている.

    最近のマイブームは写真を撮ること.

    眼と頭が悪い.万年金欠.


    本ブログに記載されている情報は,自己責任の下でご利用ください.
    損害等が発生しても当方は一切責任を負いません.
天気予報

-天気予報コム- -FC2-
FC2カウンター
タグcloud
最近の記事
最近のコメント
最近のトラックバック
カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
ブログ内検索
RSSフィード
リンク
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。