フォーラム投稿ルール

フォーラムに雑談以外でトピックを作る方は以下のテンプレートを利用してください。
---
Joomla!バージョン:
PHPバージョン:
MySQLバージョン:
サーバ情報:
URL(公開可能であれば):http://example.jp
状況:
実際に表示されるエラーログ:
---
回答者がレスがつけやすいよう心がけましょう。

フォーラム投稿について

フォーラムへの投稿に規制を行いました。

1.URIを掲載して説明等を投稿する場合はホスト名にexample.jpを使用して下さい。
2.1投稿中に掲載できる外部URIを1個に制限しています。
3.Joomla!プロジェクト関連のURIは制限ありません。
4.メールアドレスを制限しています。

他に制限を外したいドメインがありましたらこちらへ

Joomla! 日本語フォーラム
ようこそ, ゲストさん
始めに ログイン するか 登録をして下さい.    パスワードを再発行
「最新ニュース」に自動的にNEW表示する方法
(1 閲覧) 1 ゲスト
Go to bottom
トピック: 「最新ニュース」に自動的にNEW表示する方法
#1303
tomotaro
Fresh Boarder
投稿: 2
graphgraph
オフラインのユーザー このユーザーのプロフィールを見るにはここをクリックして下さい。。
「最新ニュース」に自動的にNEW表示する方法 1 Year, 11 月 前 評判: 0
Joomla1.5のバージョンでカスタマイズをしております。
トップページに 「最新ニュース」を表示させておりますが、
モジュールタイプは、「mod_latestnews 」です。
このモジュールを次のようにカスタマイズしております。

1.投稿年月日(投稿日)を表示させる。
2.投稿して3日以内は 記事名の前に 「NEW」画像 を表示させる。


1については、次のサイトを参考にして、完成できました(感謝です)。
⇒ //mtokyo.blog9.fc2.com/blog-entry-195.html

2については、現在 いき詰まっております(ヘルプです )。
次のサイトにある情報をヒントにして、
⇒ //detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1318937658
Joomla!向けにカスタマイズをしておりますが、投稿日時を認識してくれないので、正しく「NEW」画像が表示されません。
そのソースは次のコードのとおりですが、
コード:



<?php 
$before0days = date("Y/m/d", strtotime("-3 days",time()));
if ($before0days < $date->create_date ) 
{print "<img src='./templates/***/shared/images/new.gif' >\n";} 
else 
{print ";\n";} 
?>



上記のコードのなかの
コード:


if ($before0days < $date->create_date ) 


の部分の $date->create_date が間違いなのでしょうか?

何卒、ご教授のほど、よろしくお願いいたします。
 
アクセスIP: アクセスIP:
 
最後に編集: 2010/03/04 15:01 By tomotaro.
  管理者は、ゲストユーザーの投稿を許可していません。ログインして下さい
#1308
hayatos
Senior Boarder
投稿: 50
graphgraph
オフラインのユーザー このユーザーのプロフィールを見るにはここをクリックして下さい。。
Re:「最新ニュース」に自動的にNEW表示する方法 1 Year, 11 月 前 評判: 4
1に記載されているやり方であれば、$item->create_dateでif文の比較ができると思います。tmpl/default.phpの
コード:

<li class="latestnews<?php echo $params->get('moduleclass_sfx'); ?>">
<?php echo $item->create_date."<br /> ".$item->text; ?>
</a>



となっているのを

コード:

<li class="latestnews<?php echo $params->get('moduleclass_sfx'); ?>">
<?php 
$before0days = date("Y/m/d", strtotime("-3 days",time()));
if ($before0days < $item->create_date ) 
{echo '<img src="./templates/***/shared/images/new.gif" >';} 
?>
<a href="<?php echo $item->link; ?>" class="latestnews<?php echo $params->get('moduleclass_sfx'); ?>">
<?php echo $item->create_date."<br /> ".$item->text; ?>
</a>


とすれば、画像が表示される・・・はず。

でも、Joomla!のエクステンションのhttp://extensions.joomla.org/extensions/news-display/latest-newshttp://extensions.joomla.org/extensions/news-display/latest-newsで、デザインも良くて、使い勝手がいいナイスなモジュールを探したほうが良い気もします。。
 
アクセスIP: アクセスIP:
 
Everything for Joomla! 1.6
http://joomlamp.com/
  管理者は、ゲストユーザーの投稿を許可していません。ログインして下さい
#1315
tomotaro
Fresh Boarder
投稿: 2
graphgraph
オフラインのユーザー このユーザーのプロフィールを見るにはここをクリックして下さい。。
【解決】Re:「最新ニュース」に自動的にNEW表示する方法 1 Year, 11 月 前 評判: 0
おかげさまで解決できました。情報共有させていただきます。

1に記載されているやり方であれば、$item->create_dateでif文の比較ができると思います。

おっしゃるとおり、$item->create_date で if文の比較ができました。

コードについては、少し修正をして、テストを繰り返し、正しく表示してくれました。

情報共有として、これまでの経過を整理させていただきます。

1.投稿年月日(投稿日)を表示させるには、次のサイトで紹介されている方法をそのまま使います。
http://mtokyo.blog9.fc2.com/blog-entry-195.html

2.投稿して3日以内は 記事名の前に 「NEW」画像 を表示させるには、次のコードを ①で編集した tmpl/default.php に次のコードを追記します。
コード:


<?php 
$before0days = date("Y/m/d", strtotime("-3 days",time()));
if ($before0days < $item->create_date ) 
echo '<img src="./templates/***/shared/images/new.gif" >'; 
?>


【注意】
① 上記のコードの中で "Y/m/d" は基礎ですが、①の作業で
「モジュール管理」-(タイプ)「mod_latestnews」の編集画面にある「パラメータ」Date Formatを変更している場合は、それに合わせて変更します。
(例) Y-m-dに変更している場合は 上記のコードの"Y/m/d"を "Y-m-d"に書き換えてください。

② 上記のコードの中にある 「-3」は投稿して三日以内ですので、1週間以内にする場合は 「-7」に変更してください。

以上で、投稿日とNewの表示が実現できます。



(最後に Newが正しく表示できなかった理由について)

表示されなかった理由は、・・・
コード:


{print "<img src='./templates/sanyo/shared/images/new.gif' >\n";} 
else 
{print ";\n";} 


↑このコードは printとしたことで、投稿して3日以内と3日以上も全て表示されていました。
これを
コード:


echo '<img src="./templates/***/shared/images/new.gif" >'


に修正することで、投稿して3日以内は表示し、3日以上は表示しないという仕組みが実現できました。

おかげさまで本当にありがとうございます。
今後ともご指導のほど、宜しくお願いいたします。
 
アクセスIP: アクセスIP:
  管理者は、ゲストユーザーの投稿を許可していません。ログインして下さい
#1318
hayatos
Senior Boarder
投稿: 50
graphgraph
オフラインのユーザー このユーザーのプロフィールを見るにはここをクリックして下さい。。
Re:【解決】Re:「最新ニュース」に自動的にNEW表示する方法 1 Year, 11 月 前 評判: 4
お役に立てて嬉しいです。お恥ずかしい事に、自分も大したプログラマーでは無いのですが、default.phpからでもパラメーターの値が取れるみたいです。何かを勘違いしていて、default.phpからは取れないものだと思い込んでいました。

コード:

<?php 
$before0days = date("Y/m/d", strtotime("-3 days",time()));
if ($before0days < $item->create_date ) 
echo '<img src="./templates/***/shared/images/new.gif" >'; 
?>



の"Y/m/d"の部分を$params->get('format', 'Y/m/d')と書き換えて

コード:

<?php 
$before0days = date($params->get('format', 'Y/m/d'), strtotime("-3 days",time()));
if ($before0days < $item->create_date ) 
echo '<img src="./templates/***/shared/images/new.gif" >'; 
?>


とすれば、日時の表示方法の整合性が保てます。あと、「何日以内の記事にnewを表示するのか」というのもmod_latestnews.xmlに

コード:


<param name="days" type="text" default="-3 days" label="HOW_MANY_DAYS" description="DESC_DAYS" />


*<params></params>の間ならどこでもいいです。

を加えて、"-3 days"の部分を$params->get('days', '-3 days')と書き換えれば、モジュールの管理画面から値を決めれるようになるはず・・・です。

勉強になりました。。。
 
アクセスIP: アクセスIP:
 
Everything for Joomla! 1.6
http://joomlamp.com/
  管理者は、ゲストユーザーの投稿を許可していません。ログインして下さい
Go to top