E-PARLOR : Document

HomePage :: Blog :: Gallery :: Library :: Forum :: Categories :: Index
Document
 

MyNETSの祝日表示対応

簡単な改造ですので、実装されている方も多いと思いますが、 OpenPNEからの移行する方も多いと思いますので、c_holidayテーブルを拡張する形で進めてみます。

形式は、UNIXのXで動作するカレンダーソフトと同様のフォーマット(.hol)とします。

OpenPNEの祝日対応・状況

OpenPNE2.6以降では、カレンダーの祝日表示対応があります。 ただし、OpenPNE祝日対応用のc_holidayテーブルは年項目がありませんので、翌年のカレンダーでも本年の祝日が表示されるというバグがあります。※この既知のバグは、修正要望は多数見ましたが取り入れられないようです。(2.6,2.8,2.10安定版で確認)

サンプル画面

h_homeページ h_calendarページ

MyNETSのカレンダーを祝日表示対応

  • カレンダーテーブルから祝日データの取得

/webapp/lib/db/read/etc.php

 ファイルの最後に、下記関数を追加。
/**
* カレンダーの祝日を取得する
*/
function db_c_holiday_list4date($y, $m, $d)
{
  $sql = 'SELECT name FROM c_holiday WHERE year = ? AND month = ? AND day = ?';
  $params = array(intval($y), intval($m), intval($d));
  return db_get_col($sql, $params);
}
  • h_calendar データセット

/webapp/modules/pc/page/h_calendar.php

 84行の次に挿入、
c_holiday_list4date($year, $month, $day),
  • h_home データセット

/webapp/modules/pc/page/h_home.php

 181行の次に挿入、
'holiday' => db_c_holiday_list4date($y, $m, $d),
  • h_calendar.tpl 表示

/webapp/modules/pc/templates/h_calendar.tpl

 86~91行を、下記に置換
({foreach from=$week item=item name=week})
<td style="height:65px;padding:2px;" align="left" valign="top" class="bg_0({if $item.now})9({else})2({/if})({if $smarty.foreach.week.first || $item.holiday}) c_02({elseif $smarty.foreach.week.last}) c_03({/if})">
次に、({* 誕生日 *})ブロックの上部に、 ---> 祝日名表示
({* 祝日 *})
({if $item.holiday})
({foreach from=$item.holiday item=item_holiday})
  <span class=" c_02">({$item_holiday})</span><br>
({/foreach})
({/if})
  • h_home.tpl(myschedule.tpl) 表示

/webapp/modules/pc/templates/new_templates/myschedule.tpl

 41行を入替
<td style="width:({if $smarty.foreach.calendar.last})64({else})60({/if})px;({if !  $smarty.foreach.calendar.last})border-right:none;({/if})" align="left" valign="top" class="border_01 bg_0({if $item.now})9({else})2({/if})({if $item.dayofweek == "日" || $item.holiday}) c_02({elseif $item.dayofweek == "土"}) c_03({/if}) padding_s">
48行の次に挿入、
({* 祝日 *})
({foreach from=$item.holiday item=item_holiday})
({$item_holiday})<br>
({/foreach})

テーブル作成

  • OpenPNE2.6以降からMyNETSに乗り換えされた方は、c_holidayテーブルを削除後に下記のSQLを実行してください。

CREATE TABLE `c_holiday` ( `c_holiday_id` int(11) NOT NULL auto_increment, `month` int(11) NOT NULL default ‘0’, `day` int(11) NOT NULL default ‘0’, `year` int(11) NOT NULL default ‘0’, `name` text NOT NULL, PRIMARY KEY (`c_holiday_id`) ) TYPE=MyISAM AUTO_INCREMENT=20 ;

INSERT INTO `c_holiday` (`month`, `day`, `year`, `name` ) VALUES (1,1,2001,’元日’), (1,8,2001,’成人の日’), (2,11,2001,’建国記念の日’), (2,12,2001,’振替休日’), (3,20,2001,’春分の日’), (4,29,2001,’みどりの日’), (4,30,2001,’振替休日’), (5,3,2001,’憲法記念日’), (5,4,2001,’国民の休日’), (5,5,2001,’こどもの日’), (7,20,2001,’海の日’), (9,15,2001,’敬老の日’), (9,23,2001,’秋分の日’), (9,24,2001,’振替休日’), (10,8,2001,’体育の日’), (11,3,2001,’文化の日’), (11,23,2001,’勤労感謝の日’), (12,23,2001,’天皇誕生日’), (12,24,2001,’振替休日’), (1,1,2002,’元日’), (1,14,2002,’成人の日’), (2,11,2002,’建国記念の日’), (3,21,2002,’春分の日’), (4,29,2002,’みどりの日’), (5,3,2002,’憲法記念日’), (5,4,2002,’国民の休日’), (5,5,2002,’こどもの日’), (5,6,2002,’振替休日’), (7,20,2002,’海の日’), (9,15,2002,’敬老の日’), (9,16,2002,’振替休日’), (9,23,2002,’秋分の日’), (10,14,2002,’体育の日’), (11,3,2002,’文化の日’), (11,4,2002,’振替休日’), (11,23,2002,’勤労感謝の日’), (12,23,2002,’天皇誕生日’), (1,1,2003,’元日’), (1,13,2003,’成人の日’), (2,11,2003,’建国記念の日’), (3,21,2003,’春分の日’), (4,29,2003,’みどりの日’), (5,3,2003,’憲法記念日’), (#05,04,2003,’国民の休日’), (5,5,2003,’こどもの日’), (7,21,2003,’海の日’), (9,15,2003,’敬老の日’), (9,23,2003,’秋分の日’), (10,13,2003,’体育の日’), (11,3,2003,’文化の日’), (11,23,2003,’勤労感謝の日’), (11,24,2003,’振替休日’), (12,23,2003,’天皇誕生日’), (1,1,2004,’元日’), (1,12,2004,’成人の日’), (2,11,2004,’建国記念の日’), (3,20,2004,’春分の日’), (4,29,2004,’みどりの日’), (5,3,2004,’憲法記念日’), (5,4,2004,’国民の休日’), (5,5,2004,’こどもの日’), (7,19,2004,’海の日’), (9,20,2004,’敬老の日’), (9,23,2004,’秋分の日’), (10,11,2004,’体育の日’), (11,3,2004,’文化の日’), (11,23,2004,’勤労感謝の日’), (12,23,2004,’天皇誕生日’), (1,1,2005,’元日’), (1,10,2005,’成人の日’), (2,11,2005,’建国記念の日’), (3,20,2005,’春分の日’), (3,21,2005,’振替休日’), (4,29,2005,’みどりの日’), (5,3,2005,’憲法記念日’), (5,4,2005,’国民の休日’), (5,5,2005,’こどもの日’), (7,18,2005,’海の日’), (9,19,2005,’敬老の日’), (9,23,2005,’秋分の日’), (10,10,2005,’体育の日’), (11,3,2005,’文化の日’), (11,23,2005,’勤労感謝の日’), (12,23,2005,’天皇誕生日’), (1,1,2006,’元日’), (1,2,2006,’振替休日’), (1,9,2006,’成人の日’), (2,11,2006,’建国記念の日’), (3,21,2006,’春分の日’), (4,29,2006,’みどりの日’), (5,3,2006,’憲法記念日’), (5,4,2006,’国民の休日’), (5,5,2006,’こどもの日’), (7,17,2006,’海の日’), (9,18,2006,’敬老の日’), (9,23,2006,’秋分の日’), (10,9,2006,’体育の日’), (11,3,2006,’文化の日’), (11,23,2006,’勤労感謝の日’), (12,23,2006,’天皇誕生日’), (1,1,2007,’元日’), (1,8,2007,’成人の日’), (2,11,2007,’建国記念の日’), (2,12,2007,’振替休日’), (3,21,2007,’春分の日’), (4,29,2007,’昭和の日’), (4,30,2007,’振替休日’), (5,3,2007,’憲法記念日’), (5,4,2007,’みどりの日’), (5,5,2007,’こどもの日’), (7,16,2007,’海の日’), (9,17,2007,’敬老の日’), (9,23,2007,’秋分の日’), (9,24,2007,’振替休日’), (10,8,2007,’体育の日’), (11,3,2007,’文化の日’), (11,23,2007,’勤労感謝の日’), (12,23,2007,’天皇誕生日’), (12,24,2007,’振替休日’), (1,1,2008,’元日’), (1,14,2008,’成人の日’), (2,11,2008,’建国記念の日’), (3,20,2008,’春分の日’), (4,29,2008,’昭和の日’), (5,3,2008,’憲法記念日’), (5,4,2008,’みどりの日’), (5,5,2008,’こどもの日’), (5,6,2008,’休日’), (7,21,2008,’海の日’), (9,15,2008,’敬老の日’), (9,23,2008,’秋分の日’), (10,13,2008,’体育の日’), (11,3,2008,’文化の日’), (11,23,2008,’勤労感謝の日’), (11,24,2008,’振替休日’), (12,23,2008,’天皇誕生日’), (1,1,2009,’元日’), (1,12,2009,’成人の日’), (2,11,2009,’建国記念の日’), (3,20,2009,’春分の日’), (4,29,2009,’昭和の日’), (5,3,2009,’憲法記念日’), (5,4,2009,’みどりの日’), (5,5,2009,’こどもの日’), (5,6,2009,’振替休日’), (7,20,2009,’海の日’), (9,21,2009,’敬老の日’), (9,22,2009,’国民の休日’), (9,23,2009,’秋分の日’), (10,12,2009,’体育の日’), (11,3,2009,’文化の日’), (11,23,2009,’勤労感謝の日’), (12,23,2009,’天皇誕生日’);

 
mynets/calendar.txt · 最終更新: 2008/02/05 14:27 by admin
 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki