Nucleus(JP)フォーラム

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

ログインしていません。

#1 2007-11-19 16:15:08

suke
メンバー
From: 徳島
登録日: 2007-11-09
投稿: 31

Re: アイテム追加・更新の両方をまとめた更新履歴を作成したい。(NP_UpdateTime / 【解決済み】)

はじめまして。いつも、制作で行き詰るとこちらのフォーラムに来て解決策を頂いています。
本当、みなさん凄いなとひれ伏すばかりです…。orz
今回は、タイトルに書いたようなことについて、相談させていただきたく思います。よろしくお願い致します。

現在、【NP_UpdateTime(ver. 0.75)】で、更新したアイテムのタイトルや日時を、別ブログに更新履歴として反映させています。
ものすごく助かっています、製作者さまありがとうございます。
けれど、このプラグインですと、『更新されたアイテム』のみを抽出した履歴一覧となってしまい、『新たに追加したアイテム』は履歴一覧に反映されません。
以前に、こちらのフォーラムで同じような質問をされている方がいらっしゃり、そのレスとしてプラグイン内のPHP記述の変更点も提案されていたのですが、
その変更内容で上書きしてもやはり更新されたアイテムしか反映してくれません。 sad

『アイテムを更新した場合でも追加した場合でも、『最新アイテム』扱いとなる』、ようなプラグインは他にないでしょうか?
ご存知の方、教えていただければ幸いです。
自分でカスタマイズ出来たら一番良いんですが、PHPの知識が全くないので…申し訳ないです…。

私の設定の仕方がだめで実は【NP_UpdateTime】でも上記したことが出来るよ!とかだったらどうしよう lol

オフライン

#2 2007-11-20 09:41:15

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

Re: アイテム追加・更新の両方をまとめた更新履歴を作成したい。(NP_UpdateTime / 【解決済み】)

まず、単純に質問ですが。

更新したアイテムは、投稿日時=更新日時としてしまうのはまずいんですよね?
1ヶ月前に追加した記事を更新したら、その更新の日時を「投稿日時」と書き換える機能はNP_UpdateTimeに付いていますが...
新規投稿の記事と最近に更新のあった記事を時系列でピックアップしたいのでしたら、投稿日時=更新日時としてしまう方が何かと都合が良いような気がします~。

その上で、blog記事表示(index表示)上では初回投稿日時順に並べておきたいのでしたら、
NP_Ordered
http://wakka.xiffy.nl/ordered

<%Ordered(item,templatename,itemid)%>
とか書いてやれば良いのではないでしょうか?

************
NP_UpdateTimeのソース眺めましたが、sql文簡単に修正できなかったのでこんな提案してみました 8)


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

オフライン

#3 2007-11-20 11:11:48

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

Re: アイテム追加・更新の両方をまとめた更新履歴を作成したい。(NP_UpdateTime / 【解決済み】)

手が放せない状態なので、ポインタだけ。

suke さんの発言:

以前に、こちらのフォーラムで同じような質問をされている方がいらっしゃり、そのレスとしてプラグイン内のPHP記述の変更点も提案されていたのですが、
その変更内容で上書きしてもやはり更新されたアイテムしか反映してくれません。 sad

こちらの記事ですね。
<!-- l --><a class="postlink-local" href="http://japan.nucleuscms.org/bb/viewtopic.php?p=5658#5658">viewtopic.php?p=5658#5658</a><!-- l -->
この時のNP_UpdateTimeはたぶんver0.7で、お使いの0.75とは違っているのだと思います。
まだ0.7のダウンロードはできるので、0.7と0.75、0.7の改造部分を見比べれば0.75に改造した部分を加える
ことはできるかと思います。

ただし、0.7がダウンロードできるからといって、0.7に改造を加えたのを使用するのはおやめください。
0.7から0.75の間にセキュリティアップデートが入ってますので…。


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

オフライン

#4 2007-11-20 12:01:03

suke
メンバー
From: 徳島
登録日: 2007-11-09
投稿: 31

Re: アイテム追加・更新の両方をまとめた更新履歴を作成したい。(NP_UpdateTime / 【解決済み】)

早速のレス、ありがとうございます!

■nakahara21さん
『投稿日時=更新日時』にする機能、とは『アイテム日時上書き』機能と解釈して大丈夫でしょうか?

その上で、blog記事表示(index表示)上では初回投稿日時順に並べておきたいのでしたら、
NP_Ordered
http://wakka.xiffy.nl/ordered

<%Ordered(item,templatename,itemid)%>
とか書いてやれば良いのではないでしょうか?

先ほど、NP_Orderedをテストしてみたのですが、これって同じブログ内の記事しか引っ張って来れない感じでした…。
(履歴を表示させたいブログには記事が一つもないので、「アイテムがありません」と表示されました)
初回投稿日時順、ということは、更新日時に左右されずの表示という解釈で大丈夫でしょうか?
ただ、今回はindexというブログに、page1、page2、page3、page4という四つの別ブログのアイテムタイトル・日付を
新規・更新ごちゃまぜで更新履歴として表示させたいのです。
NP_UpdateTimeは、<%UpdateTime(個数,all)%>とすると全てのブログから更新記事を引っ張ってきてくれるので、
とても便利なのですが…。

あと、更新日時を投稿日時に置き換えてくれるのなら、<%otherblog(ブログ名,テンプレート名,個数)%>でも
新規投稿・更新、両方のデータを引っ張ってきてくれるんじゃ、と思ったのですが、過去の記事を
『アイテム日時上書き』で保存しても順番は変わらずでした。 sad

せっかくご意見いただいたのに、すみません。もう少し頑張ってみます smile


■藤咲さん
そうです、その記事です!
そうか、バージョンが違っていたんですね…そりゃ反映もされないですよね…。orz
いまだにPHPはだめだめなのですが、どうにか頑張ってみます。ありがとうございます!


これからも、何か良いご意見がありましたら、返信いただけたらと思います。お願いします。

オフライン

#5 2007-11-20 12:34:44

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

Re: アイテム追加・更新の両方をまとめた更新履歴を作成したい。(NP_UpdateTime / 【解決済み】)

suke さんの発言:

あと、更新日時を投稿日時に置き換えてくれるのなら、<%otherblog(ブログ名,テンプレート名,個数)%>でも
新規投稿・更新、両方のデータを引っ張ってきてくれるんじゃ、と思ったのですが、過去の記事を
『アイテム日時上書き』で保存しても順番は変わらずでした。 sad

この点気になるのですが、きちんと日付は上書きされてますでしょうか?
以前に0.75で日付上書きができていないという報告がありましたので、気になっています。
sukeさんもできないとなると、0.75の不具合かもしれませんし。
<!-- l --><a class="postlink-local" href="http://japan.nucleuscms.org/bb/viewtopic.php?t=3632&highlight=UPDATETIME">viewtopic.php?t=3632&highlight=UPDATETIME</a><!-- l -->

場合によっては上記にも書かれている別プラグインを使用するのがいいかもしれません。


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

オフライン

#6 2007-11-20 12:45:53

suke
メンバー
From: 徳島
登録日: 2007-11-09
投稿: 31

Re: アイテム追加・更新の両方をまとめた更新履歴を作成したい。(NP_UpdateTime / 【解決済み】)

この点気になるのですが、きちんと日付は上書きされてますでしょうか?
以前に0.75で日付上書きができていないという報告がありましたので、気になっています。
sukeさんもできないとなると、0.75の不具合かもしれませんし。

ものすごい落とし穴があった感じですね、うわぁー…。orz
教えていただいてありがとうございます!そちらのプラグインで試してみようと思います。

オフライン

#7 2007-11-20 16:00:52

shizuki
Administrator
From: 西播磨
登録日: 2006-03-23
投稿: 900
ウェブサイト

Re: アイテム追加・更新の両方をまとめた更新履歴を作成したい。(NP_UpdateTime / 【解決済み】)

ごめんなさい

			$updatetime = '"' . quickQuery($upTimeQue) . '"';
			$tmptime    = '"' . quickQuery($tmpTimeQue) . '"';
			$upQuery    = 'UPDATE ' . sql_table('item')
						. ' SET   itime   = ' . $updatetime
						. ' WHERE inumber = ' . intval($data['itemid']);
			if ($tmptime > $updatetime) {
				$updatetime = $tmptime;
			}

ここを

			$updatetime = quickQuery($upTimeQue);
			$tmptime    = quickQuery($tmpTimeQue);
			if ($tmptime > $updatetime) {
				$updatetime = $tmptime;
			}
			$upQuery    = 'UPDATE ' . sql_table('item')
						. ' SET   itime   = "' . $updatetime . '"'
						. ' WHERE inumber = ' . intval($data['itemid']);

でどうでしょうか
もしかしたら

			if ($tmptime > $updatetime) {
				$updatetime = $tmptime;
			}

の辺りが怪しいかもしれませんが…

それから、http://japan.nucleuscms.org/bb/viewtopi … =5658#5658のjunさんの改造箇所は0.75だと

	function doTemplateVar(&$item)
	{
		setlocale(LC_TIME, $this->getOption('Locale'));
		$query = 'SELECT'
			   . '   r.up_id,'
			   . '   UNIX_TIMESTAMP(r.updatetime) as updatetime,'
			   . '   UNIX_TIMESTAMP(i.itime)      as itemtime '
			   . '   i.inumber '
			   . 'FROM '
			   .     sql_table('item') .           ' as i '
			   . '   left join '
			   .     sql_table('plugin_rectime') . ' as r, '
			   . '   on r.up_id = i.inumber '
			   . 'WHERE'
			   . '     r.up_id = ' . intval($item->itemid);
		$res   = sql_query($query);
		if ($row = mysql_fetch_assoc($res)) {
//			$data['utime'] = date($this->getOption('DateFormat'), $row['updatetime']);
			$data['utime'] = strftime($this->getOption('DateFormat'), $row['updatetime']);
			$up_id = quickQuery('SELECT up_id as result FROM '.sql_table('plugin_rectime').' WHERE up_id = '.$row['inumber']);
			if (!$up_id) {
				echo strftime($this->getOption('DateFormat'), $row['itemtime']);
			} elseif ($row['updatetime'] > $row['itemtime']) {
				echo TEMPLATE::fill($this->getOption('AfterTime'), $data);
			} elseif ($row['updatetime'] < $row['itemtime']) {
				echo TEMPLATE::fill($this->getOption('BeforeTime'), $data);
			}
		}
	}

になります

オフライン

#8 2007-11-20 19:28:30

suke
メンバー
From: 徳島
登録日: 2007-11-09
投稿: 31

Re: アイテム追加・更新の両方をまとめた更新履歴を作成したい。(NP_UpdateTime / 【解決済み】)

ソース修正までしていただき、ありがとうございます!
ただ、教えていただいたソースに書き換えてみたのですが、やはり『アイテム日時上書き』で保存しても
リストの並び順は変わらず、また初回投稿時では<%UpdateTime(個数,all)%>で生成したリストにも
反映されませんでした。
『更新日時を記録する』だと、更新する度に最新のものが一番上にくるのですが、管理画面で見たときの
時間は上書きされていませんでした。
<%otherblog(…)%>でも、アイテム日時上書きにしても表示が入れ替わることはありませんでした。

一つ目の修正箇所のみ、二つ目の修正箇所のみ、両方修正、いずれも同じ結果でした。

あと、教えていただいたNP_UpdateToNowですが、ダウンロードページが白紙になっててダウンロード
出来ませんでした… :cry:

なんかもう…お手数おかけして申し訳ないです…。

オフライン

#9 2007-11-21 09:23:10

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

Re: アイテム追加・更新の両方をまとめた更新履歴を作成したい。(NP_UpdateTime / 【解決済み】)

とりあえず中間報告。
v0.75(+改変なし)試してみました。確かに挙動がヘン。
「アイテム日時として上書きする」にチェックを入れた場合....
*アイテム日時を上書きしない
*テンプレ内の<%UpdateTime%>は何も吐かない
*更新があったアイテムとしてスキン内の<%UpdateTime%>に捕捉される
ってな具合でした。

ちょっと調べてみます。
(このプラグイン、私史上最高に頭を使ったsqlクエリなんで自信ないけどorz)


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

オフライン

#10 2007-11-21 09:51:50

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

Re: アイテム追加・更新の両方をまとめた更新履歴を作成したい。(NP_UpdateTime / 【解決済み】)

修正しました。
「アイテム日時として上書きする」をチェックした場合、投稿日時を上書きし、上書き直前の投稿日時を1世代のみ記録します。


Attachments:
zip NP_UpdateTime080.zip, Size: 4.73 KiB, Downloads: 818

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

オフライン

#11 2007-11-21 10:02:43

suke
メンバー
From: 徳島
登録日: 2007-11-09
投稿: 31

Re: アイテム追加・更新の両方をまとめた更新履歴を作成したい。(NP_UpdateTime / 【解決済み】)

あ、ありがとうございます!
バージョンアップ版で「アイテム日時上書き」で保存した場合、<%otherblog(…)%>で新規投稿アイテムを含め、
ちゃんと表示の入れ替わりが出来てました!

nakahara21さん、藤咲さん、shizukiさん、本当にお世話になりました。
ありがとうございました!!

オフライン

#12 2007-11-21 10:37:39

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

Re: アイテム追加・更新の両方をまとめた更新履歴を作成したい。(NP_UpdateTime / 【解決済み】)

これだけで解決でしょうか?
いや、それに超した事はないんですが。
初回投稿日時順で並べ替える必要はなかったんですね wink

>shizukiさん
紛らわしいコード書いててごめんなさいでした。
sql文を作成してからsql_query実行するまでの間に$updatetimeの上書きなんてやっているもんだから....
いつもいつもフォローありがとうございます。

ついでにwikiも久しぶりに編集してみました。
http://japan.nucleuscms.org/wiki/plugins:updatetime


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

オフライン

#13 2007-11-21 10:47:23

suke
メンバー
From: 徳島
登録日: 2007-11-09
投稿: 31

Re: アイテム追加・更新の両方をまとめた更新履歴を作成したい。(NP_UpdateTime / 【解決済み】)

あの後、<%otherblog(…)%>では、一つの別ブログの新着情報しか表示できなかったので、
【NP_Headlines】というプラグインと併用して、全ての別ブログから新着情報(新規・更新含め)を
引っ張ってくるようにしました。

NP_Headlines :
http://japan.nucleuscms.org/wiki/plugins:headlines

サイト形式でNucleusを使われる場合に、必要になってくるかもしれない更新履歴なので
今回のことが制作のお手伝いになれれば幸いです。

レスをくださったみなさま、本当にありがとうございました!!

**************
これで次の作業に移れる…! big_smile

オフライン

#14 2007-11-21 11:00:46

shizuki
Administrator
From: 西播磨
登録日: 2006-03-23
投稿: 900
ウェブサイト

Re: アイテム追加・更新の両方をまとめた更新履歴を作成したい。(NP_UpdateTime / 【解決済み】)

あ、一歩遅かった big_smile

オフライン

Board footer