Nucleusでは普通、今日の日付までの記事しか表示できません。
そこで、Nucleusでスケジュール管理用に先々の予定なども書き込み、表示させるようにしたかったので、いろいろ調べてみました。同じ様なことを考える人がやっぱりいるんですね。
NucleusJPフォーラムの中にありました。
http://japan.nucleuscms.org/bb/viewtopic.php?t=144
ここにコアファイルを改造する方法が詳しく解説されています。
1)Nucleusのコアファイル「BLOG.php」の変更
BLOG.php(v3.31SP1)
以下の3ヶ所を//でコメントアウト
function getSqlSearch内 491行目// . ' and i.itime<=' . mysqldate($this->getCorrectTime()) function getSqlBlog内 534行目 . ' and i.idraft=0'; // exclude drafts 536行目// . ' and i.itime<=' . mysqldate($this->getCorrectTime()); ※行の終了";"がコメントアウトではずれてしまうので「. ' and i.idraft=0」の後ろに";"を入れます function showArchiveList内 566行目// . ' and itime <=' . mysqldate($this->getCorrectTime()) // don't show future items!
2)「globalfunctions.php」、「COMMENTS.php」の各ファイルのそれぞれの0,0 の部分を、1,1に変更
globalfunctions.php(v3.31SP1)
function selector内 771行目 if (!$manager->existsItem($itemid,1,1))
COMMENTS.php(v3.31SP1)
function isValidComment内 287行目 $item =& $manager->getItem($this->itemid,1,1);
3)プラグインを使用する場合はそのプラグインも変更
私は「NP_ShowBlogs」を使ってるのでこちらも変更します
http://japan.nucleuscms.org/bb/viewtopic.php?t=604
ここに変更方法が書かれてます。
NP_ShowBlogs
下記の2ヶ所(記事数カウントする部分と、記事を抽出する部分と)をコメントアウトして未来制限を解除します。
340行目// $where .= ' AND i.itime <= ' . mysqldate($b->getCorrectTime()); 404行目// . ' AND i.itime <= ' . mysqldate($b->getCorrectTime())
4)未来投稿記事をカレンダーで表示できるように変更
NP_Calender-0.84k(表示幅設定機能付き)ここに変更方法が書かれてます
NP_Calendar.php
209行目 if ($category != 0) { 210行目 $res = sql_query('SELECT DAYOFMONTH(itime) as day FROM '.sql_table('item').' WHERE icat='.$category.' and MONTH(itime)='.$month.' and YEAR(itime)='.$year .' and iblog=' . $blogid . ' and idraft=0 and UNIX_TIMESTAMP(itime)<'.$timeNow.' GROUP BY day'); 211行目 } else { 212行目 $res = sql_query('SELECT DAYOFMONTH(itime) as day FROM '.sql_table('item').' WHERE MONTH(itime)='.$month.' and YEAR(itime)='.$year .' and iblog=' . $blogid . ' and idraft=0 and UNIX_TIMESTAMP(itime)<'.$timeNow.' GROUP BY day'); 213行目 } ↓ 209行目 if ($category != 0) { 210行目 $res = sql_query('SELECT DAYOFMONTH(itime) as day FROM '.sql_table('item').' WHERE icat='.$category.' and MONTH(itime)='.$month.' and YEAR(itime)='.$year .' and iblog=' . $blogid . ' and idraft=0 GROUP BY day'); 211行目 } else { 212行目 $res = sql_query('SELECT DAYOFMONTH(itime) as day FROM '.sql_table('item').' WHERE MONTH(itime)='.$month.' and YEAR(itime)='.$year .' and iblog=' . $blogid . ' and idraft=0 GROUP BY day'); 213行目 }
226行目 if ($next_month > $currentdate['mon'] && $year == $currentdate['year']) { 227行目 $future = false; 228行目 } else { 229行目 $future = true; 230行目 } ↓ 226行目 if ($next_month > $currentdate['mon'] && $year == $currentdate['year']) { 227行目 $future = true; 228行目 } else { 229行目 $future = true; 230行目 }
※おまけ
日付表示に曜日を付け加えて、更に曜日を日本語で表示するように変更
Nucleusの管理画面で「テンプレート編集」(日付と時刻)の中から
日付フォーマットを編集 %d/%m ↓ %m/%d(%a) 更にLocaleも編集 en ↓ japanese