Nucleus(JP)フォーラム Forum Index

Find on the forum:
OR  AND    » Advanced Search

未返信の記事を表示全てのフォーラムを既読にする

新しいトピックを投稿 トピックに返信
投稿者 メッセージ
cha_cya



登録日: 2004.08.25
記事: 735
所在地: 東京

記事 日時: 2004.09.10 (金) 14:57   記事の件名: NP_Calendarとは違うのですがカレンダー表示
引用付きで返信

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



calendar.gif
 説明:
はてなダイアリーで見かけました
 ファイルサイズ:  839 バイト
 閲覧済み:  14206 回

calendar.gif


トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信
mas
モデレーター
モデレーター


登録日: 2003.11.14
記事: 292
所在地: 埼玉

記事 日時: 2004.09.10 (金) 17:53   記事の件名:
引用付きで返信

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

NP_Calendar2.phpで保存して nucleus/pluginsフォルダにアップロードしてください。
使い方は、表示したい場所で <%Calendar2%> です。
Code:
<?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サーバだとエラー出るみたい(汗

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信 投稿者のウェブサイトに移動
mas
モデレーター
モデレーター


登録日: 2003.11.14
記事: 292
所在地: 埼玉

記事 日時: 2004.09.10 (金) 18:12   記事の件名:
引用付きで返信

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

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

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信 投稿者のウェブサイトに移動
藤咲
モデレーター
モデレーター


登録日: 2003.11.17
記事: 1169
所在地: 広島

記事 日時: 2004.09.10 (金) 18:14   記事の件名: エラー?
引用付きで返信

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

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

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

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信 投稿者のウェブサイトに移動
cha_cya



登録日: 2004.08.25
記事: 735
所在地: 東京

記事 日時: 2004.09.11 (土) 21:09   記事の件名:
引用付きで返信

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

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信
cha_cya



登録日: 2004.08.25
記事: 735
所在地: 東京

記事 日時: 2004.09.14 (火) 10:15   記事の件名: 設置完了!
引用付きで返信

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

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信
文月十日



登録日: 2006.01.22
記事: 8
所在地: 東京

記事 日時: 2006.01.25 (水) 13:05   記事の件名: 年で逆順は可能でしょうか?
引用付きで返信

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

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

Quote:
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 |


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

Quote:
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 |


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

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

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信 投稿者のウェブサイトに移動
cha_cya



登録日: 2004.08.25
記事: 735
所在地: 東京

記事 日時: 2006.01.25 (水) 13:17   記事の件名:
引用付きで返信

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

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

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信
文月十日



登録日: 2006.01.22
記事: 8
所在地: 東京

記事 日時: 2006.01.25 (水) 13:29   記事の件名:
引用付きで返信

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

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

Quote:
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 |

という風になりました。

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

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

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信 投稿者のウェブサイトに移動
cha_cya



登録日: 2004.08.25
記事: 735
所在地: 東京

記事 日時: 2006.01.25 (水) 15:34   記事の件名:
引用付きで返信

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

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

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信
alzenma



登録日: 2005.06.27
記事: 27
所在地: Tokyo

記事 日時: 2006.01.25 (水) 15:41   記事の件名:
引用付きで返信

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

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

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

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信 投稿者のウェブサイトに移動 MSNM
文月十日



登録日: 2006.01.22
記事: 8
所在地: 東京

記事 日時: 2006.01.25 (水) 19:43   記事の件名: まさしくこれです!
引用付きで返信

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

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

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信 投稿者のウェブサイトに移動
naha



登録日: 2004.10.31
記事: 66

記事 日時: 2010.03.11 (木) 14:04   記事の件名: 管理操作履歴でエラー?が出ている
引用付きで返信

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

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

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

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

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

トップに戻る

ユーザーのプロフィールを表示 プライベートメッセージを送信
新しいトピックを投稿 トピックに返信
特定期間内の記事を表示:   

Page 1 of 1

All times are GMT + 9 Hours

移動先:  

新規投稿: 不可
返信投稿: 不可
記事編集: 不可
記事削除: 不可
投票参加: 不可
ファイル添付不可
ダウンロード:

Powered by phpBB © 2001, 2002 phpBB Group