Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2004-09-10 14:57:26

cha_cya
メンバー
From: 東京
登録日: 2004-08-25
投稿: 745

Re: NP_Calendarとは違うのですがカレンダー表示

カレンダー表示を添付画像のような形で表示できるプラグインを探しております。
(存在しているのかも分かりません)
ご存知の方いらっしゃいますか? sad


Attachments:
gif calendar.gif, Size: 839 B, Downloads: 16,295

オフライン

#2 2004-09-10 17:53:58

cat
Administrator
登録日: 2003-11-14
投稿: 291

Re: NP_Calendarとは違うのですがカレンダー表示

昔作ったような…。というわけで漁ってみました。
とりあえず使いたいなら使ってみてください。
#Felさんがもっといいやつを出してくれるハズ…(期待)

NP_Calendar2.phpで保存して nucleus/pluginsフォルダにアップロードしてください。
使い方は、表示したい場所で <%Calendar2%> です。

<?php
// プラグインがNucleusバージョン2.0以下と互換性を持つために必要
if (!function_exists('sql_table')){
	function sql_table($name) {
		return 'nucleus_' . $name;
	}
}

class NP_Calendar2 extends NucleusPlugin {

	// プラグインの名前
	function getName() {
		return 'Calendar2'; 
	}
	
	// プラグインの作者
	function getAuthor()  { 
		return 'mas'; 
	}
	
	// プラグインのサイトURL
	// mailto:foo@bar.com の形式も可
	function getURL() 
	{
		return 'http://neconnect.net'; 
	}
	
	// プラグインのバージョン
	function getVersion() {
		return '0.21'; 
	}
	
	// インストール済みのプラグインリストに表示される説明文
	function getDescription() { 
		return 'Nucleus Calendar like tDiary\'s one.';
	}

	function supportsFeature($what) {
		switch($what){
			case 'SqlTablePrefix':
				return 1;
			default:
				return 0;
		}
	}

	function doSkinVar($mode = 'month', $limit = 0) {
		global $manager, $blog, $CONF, $catid;
		
		if ($blog) { 
			$b =& $blog; 
		} else { 
			$b =& $manager->getBlog($CONF['DefaultBlog']); 
		} 
		$blogid = $b->getID();
		
		if ($catid) {
			$this->linkparams = array('catid' => $catid);
		}
		
		$homeURL = $CONF['IndexURL'];
		$blogURL = createBlogidLink($blogid, $linkparams);
		
		$data['blogid'] = $blogid;
		
		$now = time();
		$query = 'SELECT UNIX_TIMESTAMP(itime) as itime, SUBSTRING(itime,1,4) AS Year, SUBSTRING(itime,6,2) AS Month, SUBSTRING(itime,9,2) as Day FROM '.sql_table('item')
		. ' WHERE iblog=' . $blogid
		. ' and UNIX_TIMESTAMP(itime)<=' . $now	// don't show future items!
		. ' and idraft=0'; // don't show draft items
		
		if ($catid)
			$query .= ' and icat=' . intval($catid);
		
		$query .= ' GROUP BY Year, Month';
		if ($mode == 'day')
			$query .= ', Day';
		
		$query .= ' ORDER BY itime ASC';	//昇順
		
		if ($limit > 0) 
			$query .= ' LIMIT ' . $limit;
		
		$res = sql_query($query);
		$num_row = mysql_num_rows($res);
		
		$preYear = Null;

		// セパレータ
		$sep = "|";
		
		if ($num_row > 0)
			echo "<div class=\"calendar\">\n";

		while ($current = mysql_fetch_object($res)) {
			if ($mode == 'day') {
				$archivedate = date('Y-m-d',$current->itime);
				$archive['day'] = date('d',$current->itime);
			} else {
				$archivedate = date('Y-m',$current->itime);
			}
			$data['month'] = date('m',$current->itime);
			$data['year'] = date('Y',$current->itime);
			$data['archivelink'] = createArchiveLink($blogid,$archivedate,$linkparams);
			
			// 出力
			
			if ($data['year'] == $preYear) {
				echo "<a href=\"".$data['archivelink']."\">".$data['month']."</a>".$sep;
			} else {
				if ($preYear != Null) {
					echo "</div>"."\n";
				}
				echo "<div class=\"year\">";
				echo $data['year'].$sep."<a href=\"".$data['archivelink']."\">".$data['month']."</a>".$sep;
			}
			
			$preYear = $data['year'];
		}
		if ($num_row > 0 )
			echo "</div>\n"."</div>\n";

		mysql_free_result($res);
		
	}
	
}
?>

追記
Windowsサーバだとエラー出るみたい(汗

オフライン

#3 2004-09-10 18:12:36

cat
Administrator
登録日: 2003-11-14
投稿: 291

Re: NP_Calendarとは違うのですがカレンダー表示

mas さんの発言:

昔作ったような…。というわけで漁ってみました。

このコード、作成途中だったみたい :oops:
一応使えますが、完成してるやつがないかどうか探してみます。
#それよりもむしろFelさんの登場を待ちます^^;

オフライン

#4 2004-09-10 18:14:21

藤咲
Administrator
From: 広島
登録日: 2003-11-17
投稿: 1,210
ウェブサイト

Re: NP_Calendarとは違うのですがカレンダー表示

mas さんの発言:

追記
Windowsサーバだとエラー出るみたい(汗

気になったので試してみましたが、ちょっと見ではエラーはなさそうでしたよ?


藤咲
備忘録とかもろもろ
http://fjsk.tk/

オフライン

#5 2004-09-11 21:09:35

cha_cya
メンバー
From: 東京
登録日: 2004-08-25
投稿: 745

Re: NP_Calendarとは違うのですがカレンダー表示

ありがとうございます!
設置は明日か明後日になりそうですが、また報告しに来ますね big_smile

オフライン

#6 2004-09-14 10:15:45

cha_cya
メンバー
From: 東京
登録日: 2004-08-25
投稿: 745

Re: NP_Calendarとは違うのですがカレンダー表示

無事動作しています big_smile
過去の日付で投稿しての改行表示も思った通りになっております。
ありがとうございましたー

オフライン

#7 2006-01-25 13:05:35

文月十日
メンバー
From: 東京
登録日: 2006-01-22
投稿: 8
ウェブサイト

Re: NP_Calendarとは違うのですがカレンダー表示

素敵なプラグインですね。アーカイブの一覧では場所もとらないので、是非使わせていただきたいと思います。

ですが一つ、疑問というか要望があります。現在は、

2004 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 |

と表示されますが、これを、

2006 | 01 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2004 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |

と表示させたいのです。アーカイブという概念からすると逆順はあまり好ましくないのかもしれませんが、そのほうが使いいいように感じるのですが、どうでしょう。

こうするためには、ソースの改造が必要になりますか? それともオプションかなにかで変更できるのでしょうか?

オフライン

#8 2006-01-25 13:17:09

cha_cya
メンバー
From: 東京
登録日: 2004-08-25
投稿: 745

Re: NP_Calendarとは違うのですがカレンダー表示

$query .= ' ORDER BY itime ASC';   //昇順

$query .= ' ORDER BY itime DESC';   //降順
にしてはどうでしょうか(未確認)

オフライン

#9 2006-01-25 13:29:39

文月十日
メンバー
From: 東京
登録日: 2006-01-22
投稿: 8
ウェブサイト

Re: NP_Calendarとは違うのですがカレンダー表示

cha_cyaさま、ご助言ありがとうございます。

ソースに「昇順」とわかりやすく書いてくださっているのですから、確かにここを変えるということに、もっと早く気づかないといけませんでした。ということで試してみたところ……

2006 | 01 |
2005 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 |
2004 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 |

という風になりました。

確かに年が逆順になったのはこちの希望通りなのですが、月が逆順なのは、ちょっと使い辛いかもしれません。

ただ、以前のものよりはずっといいので、さっそくこれで運用させていただくことにします。重ね重ね、ありがとうございました。

オフライン

#10 2006-01-25 15:34:43

cha_cya
メンバー
From: 東京
登録日: 2004-08-25
投稿: 745

Re: NP_Calendarとは違うのですがカレンダー表示

であれば、
$query .= ' ORDER BY Year DESC, itime ASC';
でいけるかな、と思います。
$query .= ' ORDER BY Year DESC, Month ASC';
でもいいかも。

追記
okそうでした。
記事2つしかない環境でのテストだけど・・。

オフライン

#11 2006-01-25 15:41:04

alzenma
メンバー
From: Tokyo
登録日: 2005-06-27
投稿: 27
ウェブサイト

Re: NP_Calendarとは違うのですがカレンダー表示

後者オススメです。(主観入りまくり)

cha_cya さんの発言:

$query .= ' ORDER BY Year DESC, Month ASC';

ちょうど自分も試すことできましたー。
しっかり動作してるようです。

オフライン

#12 2006-01-25 19:43:54

文月十日
メンバー
From: 東京
登録日: 2006-01-22
投稿: 8
ウェブサイト

Re: NP_Calendarとは違うのですがカレンダー表示

cha_cya さま、ありがとうございました! これが欲しかったのです。

何度も書き込んでいただいて、ありがとうございました m(_ _)m。

オフライン

#13 2010-03-11 14:04:52

naha
メンバー
登録日: 2004-10-31
投稿: 68

Re: NP_Calendarとは違うのですがカレンダー表示

コアver3.41でこちらのプラグインを使わせていただいております。

管理操作履歴に
プラグイン「NP_Calendar2」を読み込めませんでした(ファイルが見つかりません)
と表示が出ているのですが、これはどういったエラーなのでしょうか?
自分が<%Calendar2%>と書いたページにアクセスしてもカレンダーは表示されるし
管理操作履歴にも何も残らないのですが、
誰かがアクセスすると残るような感じです。(誰もがそうなのかはわかりません…)

すみません、よろしくお願いいたします。

[追記]
誰かがアクセスするとログが残るという状態ではないようです。
(忍者のアクセス解析サービスで見る限りなので正しいかどうかは不明ですが…)
なお、ファイルNP_Calendar2.phpは確かにプラグインフォルダに存在します。

[追記2]
同じデータベースとURLを見ている別のディレクトリに置いたNucleusシステムが影響しておりました。
昔設置した物なのですがすっかり忘れていました。すみません…
ご迷惑をおかけしました。

オフライン

Board footer