Nucleus(JP)フォーラム

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

ログインしていません。

#1 2004-08-23 22:32:16

gawa
ゲストユーザー

Re: 何番目のエントリ?

質問させてください。
各エントリに「何番目に登録されたエントリか」を表示させたいのですが、その方法がみつかりません。
最初アイテムIDでやってみたのですが、あれって削除したエントリのIDもそのまま記録してあるんですね。
なのでうまく行きませんでした。

やりたいのは、存在しているエントリの中でそれぞれに番号をふる事です。

もしご存知の方いらっしゃいましたら、ぜひ教えてください。
お願いします。

#2 2004-08-29 17:22:38

yu
メンバー
From: 神奈川
登録日: 2003-11-15
投稿: 718
ウェブサイト

Re: 何番目のエントリ?

遅いレスですが・・・

アイテムIDがだめということであれば、独自にプラグインをつくって実現させる以外はむりだと思います。


Nucleusだとか
http://nucleus.datoka.jp/

オフライン

#3 2004-08-30 08:44:06

nakahara21
メンバー
From: 尼崎
登録日: 2003-11-14
投稿: 1,298
ウェブサイト

Re: 何番目のエントリ?

投稿日時順に記事が表示されるわけですが、投稿日時そのものが変更できるので、例えば100番目に書いた記事を一番古い日付にすると、今までの記事はプラス1番になっちゃいます。

「ページにアクセスした時点での投稿日時の古い順に閲覧可能な記事(削除記事、ドラフト記事、未来日付の記事を除く)の通し番号」を表示させるプラグインを書く事は簡単ですが、上記例示などのケースから、この通し番号は変動してしまうのであまり意味がないと思うのですが。


nakahara21
http://nakahara21.com/
(ただいま調整中です)

オフライン

#4 2004-09-02 04:02:01

gawa
ゲストユーザー

Re: 何番目のエントリ?

返信してくださってありがとうございます。
一度エントリした文章を編集する事は自分はないので、もしこんな機能があればちょっといいなと思っていたのですが。
自分でプラグインを作るほどの力は無いので、今回は諦めようかと思います。

ありがとうございました(^^)

ーーーーーーーーーーーーーーーーー
http://www.canpassnotes.net

#5 2004-09-02 13:53:45

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

Re: 何番目のエントリ?

gawa さんの発言:

一度エントリした文章を編集する事は自分はないので、もしこんな機能があればちょっといいなと思っていたのですが。
自分でプラグインを作るほどの力は無いので、今回は諦めようかと思います。

遅かったかも?練習としてはちょうどいいかなと思って作ってみました。
以下をNP_ItemNumber.phpという名前で保存し、インストールしてください。
【書式】
テンプレートに記述します。
<%ItemNumber(モード,ブログ指定)%>
モード:記事idで見るか、時間で見るかの指定。省略するか、「time」を入力
ブログ指定:どのブログで何番目かを指定。省略すると現在のブログ。「all」で全ブログから、ブログidを指定することも可。複数ブログの場合は/で区切る。

例:オプションなし
<%ItemNumber%>
現在のブログで何番目に投稿された記事かという数字が返ります。
idでソートしますので何番目の投稿かどうかをカウントできると思います。
(ただしドラフトもカウントすると思われます…)

例:時間モード
<%ItemNumber(time)%>
現在のブログで何番目に投稿された記事かという数字が返ります。
こちらは時間で見ますので過去の投稿をすると順番が変わります。

例:全ブログモード
<%ItemNumber(,all)%> (,が入ってることに注意)
すべてのブログで何番目に投稿された記事かという数字が返ります。
(time,all)とすると全ブログから時間モードで何番目かという数字を返します。

例:ブログ指定モード
<%ItemNumber(,1/2)%>
ブログID1と2のブログで何番目に投稿された記事かという数字を返します。
ブログIDが複数のときは例のように/で区切ります。

<?php
// plugin needs to work on Nucleus versions <=2.0 as well
if (!function_exists('sql_table')){
	function sql_table($name) {
		return 'nucleus_' . $name;
	}
}

class NP_ItemNumber extends NucleusPlugin {
	function getEventList() { return array(); }
	function getName() { return 'ItemNumber'; }
	function getAuthor() { return 's.fjsk'; }
	function getURL() { return 'http://fjsk.s39.xrea.com/'; }
	function getVersion() { return '0.1'; }
	function getDescription() {
		return 'item Counter. <%ItemNumber(all,11/15)%>';
	}
	function supportsFeature($what) {
		switch($what){
			case 'SqlTablePrefix':
				return 1;
			default:
				return 0;
		}
	}

	function doTemplateVar(&$item, $cmode = "", $countblog = ''){
		global $manager;
		$itemid = $item->itemid;
		$itemtime = date('Y-m-d H:i:s',$item->timestamp);
		$sql = 'select count(*) as cnt from '.sql_table('item').' where';
		if($cmode == 'time'){
			$sql .= ' itime <= "'.$itemtime.'"';
		}else{
			$sql .= ' inumber <= "'.$itemid.'"';
		}
		switch ($countblog){
			case "all" :
				$sql .= '';
				break;
			case "" :
				$sql .= ' and iblog = '.getBlogIDFromItemID($itemid);
				break;
			default :
				$cblogs = explode('/', $countblog);
				if(!$cblogs[1]){
					$sql .= ' and iblog = '.$cblogs[0];
				}else{
					$sql .= ' and (iblog = '.$cblogs[0];
					for($s=1;$s<count($cblogs);$s++){
						$sql .= ' or iblog = '.$cblogs[$s];
					}
					$sql .=')';
				}
			}
		$rs = mysql_query($sql);
		$numarry =mysql_fetch_object($rs);
		$num = $numarry -> cnt;
		echo $num;
	}
}
?>

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

オフライン

#6 2005-06-15 16:30:29

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

Re: 何番目のエントリ?

「現在表示しているカテゴリーの中で、何番目か」を表示したく、改造してみました。
ぱっと見うまくいっているようですので、情報共有の意味で書き込みます。

function doTemplateVar(&$item, $cmode = "", $countblog = ''){
      global $manager;
      $itemid = $item->itemid;
      $catid = $item->catid;

case "" :
            $sql .= ' and iblog = '.getBlogIDFromItemID($itemid);
            $sql .= ' and icat = '.$catid;
            break;

赤字の2箇所を追加しました。
全ブログでの順番を出したい場合は処理不要と考え、手をつけていません。

テスト十分ではないかもしれませんし、マニュアル見ながらで自信も無いため、識者の方アドバイスいただけると幸いです。
#試していただける方で、不具合があればそれもぜひ smile

オフライン

#7 2006-04-02 18:09:34

canpassnotes
メンバー
登録日: 2006-03-30
投稿: 6
ウェブサイト

Re: 何番目のエントリ?

トピックを作成しましたgawaです。

2年ほど前にNucleusでサイトを運営して、1年前からはMovable Typeに移行していたのですが、
今回からまたNucleusでブログ運営を再開しました。

で、久しぶりにこちらのトピックを見てみたら、
なんとプラグインを作成してくださった方がいて本当にビックリしました。
早速使わせていただき、無事に動作する事ができました。

カテゴリ別のアイテム番号表示も素晴らしいですね!
これでNucleusでやりたかった事ができます。本当に嬉しいです!

プラグインを作成・公開してくださった藤咲さん、
さらにカスタマイズしてカテゴリ別表示方法を教えてくださったCha_Cyaさんに本当に感謝します。
ありがとうございました。

Cha_Cyaさんのカスタマイズ方法で、こちらも無事動作しています。
自分のサイト(http://www.canpassnotes.net)のアイテムページ左上に表示させていますので、ぜひご確認してみてください。


ずっとMovable Typeに浮気していましたが、やっぱりNucleusの方が安定&ラクラクですね!

オフライン

#8 2006-04-02 22:37:41

Andy
メンバー
登録日: 2004-03-18
投稿: 1,495
ウェブサイト

Re: 何番目のエントリ?

canpassnotesさん,スキンかっこいいですね!
1年半ぶりのご帰還,ありがとうございます。 big_smile
1年半前と比べるとみなの経験値もずいぶん上がっているし,
プラグインも数え切れないくらいいろいろなものが出ているような気がします。
また,よろしくお願いします。

オフライン

Board footer