ようこそゲストさん! >>  ユーザ名 パスワード   新規登録パスワード忘れtwitterでつぶやく
  [フォーラム] [ニュース] [ブログ] [リンク集] [XOOPS関連RSS] [うさぎの辞典] [ダウンロード] [このサイトについて]
Login by facebook
Login by twitter
検索
マンガ
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

新規登録
twitter
XOOPS Cubeを使おう♪
インストール編
タイトルとテーマを変更しよう
ユーザー情報を変えよう
モジュールを使おうpico編
モジュールを使おう d3pipes編
モジュールを使おう bulletin編
モジュールアップデートをしよう
HDをアップデートする
ユーザーさんマニュアル
インストール編 旧
携帯サイト
うさぎにもできるXOOPS Cube入門♪ 携帯サイト うさぎにもできるXOOPS Cube入門♪ 携帯サイト
Go iPhone!

bulletin2の新着にマークをつける方法

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-10-11 8:02 | 最終変更

spaceship  一人前
  投稿数: 78
こんにちは。spaceshipです。

TOPページに「カテゴリ別最新ニュース」を5件表示しているのですが、
これらにさらにここ2週間以内に投稿されたニュースは「NEW」とか「新着」とかの
マークをつけて目立たせたいのですが、可能でしょうか?

最新ニュースなのに新着?と変に事情が重複してしましますが
見る側からの希望がありなんとかできれば。

現在使っているモジュールは、Bulletin2 v2.16です。
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-10-20 13:57

sato  管理人
  投稿数: 10
spaceshipさん、こんにちは

「NEW」とか「新着」とかのマークを付けるには、xugj_dateというsmartyプラグインを入れるのが簡単です。

xugj_dateは以下に記載されています。インストール(?)方法や使い方も書いてあります。
http://www.xugj.org/modules/d3forum/index.php?topic_id=127

「カテゴリ別最新ニュース」のテンプレートは、bulletin_block_category_new.htmlなので、ALTSYS(あるいはファイルを直接)で、このファイルを以下のように変更します。

...
  <{if $topic.stories}>

          <ul class="bulletin_block_category_new">
            <{foreach item=story from=$topic.stories}>
              <li><{$story.date|xugj_date:"":"新着":""}><a href="<{$block.mydirurl}>/index.php?page=article&amp;storyid=<{$story.id}>"><{$story.title}></a>
              <{if strstr( $block.type , "counter" )}>
                (<{$story.hits}>)
              <{else}>
                (<{$story.date}>)
              <{/if}>
              </li>
            <{/foreach}>
          </ul>

  <{/if}>
...

<{$story.date|xugj_date:"":"新着":""}>
が増えた部分です。それ以外は変更していません。

これで、新着のものに「新着」と表示されるようになりますが、このままだと24時間以内のもの、になってしまいます。
2週間以内を「新着」と表示する場合は、xugj_dateを以下のように変更します。

...
	if( $new1_string ) {
		if( $utime > $unow - 14 * 86400 ) {
			$new_marks = '<span class="new1">' . $new1_string . '</span>' ;
		} else if( $new2_string ) {
...

1が14になりました。これで、14*86400秒=2週間以内のものが「新着」表記になります。

あとはお好みで、「新着」を「NEW」に変更したり、文字色を変更したりして装飾してください。

xugj_dateは便利なので、他のモジュールでも使えると思います
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-10-21 21:37

spaceship  一人前
  投稿数: 78
spaceshipです。

ありがとうございます。
まずは、新着 の文字がでるようになりました。

もう少し欲をいってよろしいでしょうか?

・イメージを利用する場合は、”新着”のかわりに、””で囲まれた中にイメージファイルのURLを書けばいいのかと思うのですが、イメージファイルはどこに置けばいいでしょうか?

・文字の色を変える場合ですが・・・・、たぶんCSSをさわるのだと思うのですが、どこを触るのか、教えていただけませんでしょうか?
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-10-24 17:01

spaceship  一人前
  投稿数: 78
spaceshipです。こんにちは。

イメージファイル(NEWマーク)を付けることができました。
以下の方法です。

new.gifを以下に置いたとして、

http://xxxxx/images/icons/new.gif
  ( http://xxxxx/ はルートパスです)

...
  <{if $topic.stories}>

          <ul class="bulletin_block_category_new">
            <{foreach item=story from=$topic.stories}>
              <li><{$story.date|xugj_date:"":"<img=\"http://xxxxx/images/icons/new.gif\"> alt=\"new\">":""}><a href="<{$block.mydirurl}>/index.php?page=article&amp;storyid=<{$story.id}>"><{$story.title}></a>
              <{if strstr( $block.type , "counter" )}>
                (<{$story.hits}>)
              <{else}>
                (<{$story.date}>)
              <{/if}>
              </li>
            <{/foreach}>
          </ul>

  <{/if}>
...

"新着" 

"<img=\"http://xxxxx/images/icons/new.gif\"> alt=\"new\">"
に置き換えました。

ただイメージのURLの指定がいまいちすっきりしていません。
Rootパスの指定方法はフルパスで全部書いています(省略した書き方が分かりませんでした)。

すっきりする方法があれば、教えていただけませんでしょうか?
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-11-4 9:59

sato  管理人
  投稿数: 10
こんにちは、satoです

# "<img=\"http://xxxxx/images/icons/new.gif\"> alt=\"new\">"
# は、正確には"<img src=\"〜ですかね?

テンプレート内では、$xoops_urlという変数に、現在のXOOPS_URLの値が入っていますので、

"<img src=\"<{$xoops_url}>/images/icons/new.gif\"> alt=\"new\">"

のように記述すると、少しは簡潔になると思います。

…と言いたいのですが、ここの記述はxugj_dateに渡すパラメータ内で、ここでさらにsmartyの呼び出しを使うことはできないので、そのまま書くとパースエラーになってしまいます

これを回避するには、<{}>ではなく、``で囲むとうまくいきます。

"<img src=\"`$xoops_url`/images/icons/new.gif\"> alt=\"new\">"

まとめると、
<{$story.date|xugj_date:"":"<img src=\"`$xoops_url`/images/icons/new.gif\"> alt=\"new\">":""}>

のようになります。

``(「`」は「SHIFT+@」で入力できます)で囲む方法は、smartyのタグ内でsmartyの変数を使いたい場合に使う方法です。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009-11-4 16:16

spaceship  一人前
  投稿数: 78
satoさん

spaceshipです。こんにちは。

それです。それがしかったんです。
ご教示いただいた内容でうまくいきました。
ありがとうございます。(スッキリしました)

  条件検索へ


Powered by XOOPS CUBE LEGACY 2.1.X and RYUS