f

Photofly 님의 달력형 일정관리스킨에 양음력기념일 자동출력하기

· 2006-09-10 (일) 01:06:02 · 5023 · 7
1. 붙임파일 moonday.php와 anniversary.cgi 파일을 스킨디렉토리에 업로드한다.

* anniversary.cgi 파일은 기념일등을 입력하는 파일로서 입력방법은
s|03|01|삼일절|h| 와 같이
s(양력) 또는 l(음력) | 03(월) | 01(일) | 삼일절(출력할 기념일명) | h(공휴일) 또는 공란 |

2. 스킨디렉토리의 list.skin.php 를 열어 맨 윗부분 <? 의 아래에 다음의 내용을 추가한다.

include("$board_skin_path/moonday.php");

function printann($yy,$mm,$dd)
{
global $board_skin_path;

$year = $yy;
$month = $mm;
$day = $dd;

$myarray1 = soltolun($year,$month,$day);

$file_name="anniversary.cgi";
$farray=file($board_skin_path."/".$file_name);

$ann ="";

for($i=0; $i<count($farray); $i++)
{
$part = explode("|",$farray[$i]);

if($part[0]==s)
{
if($month==$part[1] && $day==$part[2])
{
$ann=$part[3];
}
}

else
{
if($myarray1[month]==$part[1] && $myarray1[day]==$part[2] && $myarray1[leap] !="*")
{
$ann=$part[3];
}
}
}
return $ann;
}

3. 스킨디렉토리의 list.skin.php 아랫부분의 날짜를 출력하는 부분을 아래와 같이 변경한다.

<변경전>
if ($write_href) {
// $write_href (글쓰기 권한)이 있으면
// 날짜에 누르면 글씨쓰기가 가능한 링크를 넣어서 출력하기
$f_date = $year.sprintf("%02d",$month).sprintf("%02d",$cday);
echo " <a href='$write_href&f_date=$f_date&t_date=$f_date'>$daytext</a>\n";
}

<변경후>
if ($write_href) {
// $write_href (글쓰기 권한)이 있으면
// 날짜에 누르면 글씨쓰기가 가능한 링크를 넣어서 출력하기
$f_date = $year.sprintf("%02d",$month).sprintf("%02d",$cday);
echo " <a href='$write_href&f_date=$f_date&t_date=$f_date'>$daytext</a>\n";

// 음력출력
$myarray = soltolun($year,$month,$cday);
echo("(".$myarray[month].".".$myarray[day].")");

// 기념일(anniversary.cgi) 출력
$ann = printann($year,$month,$cday);
echo($ann);
}

첨부파일

moonday.php (9.9 KB) 81회 2006-09-10 01:06
anniversary.cgi (324 bytes) 34회 2006-09-10 01:06
|

댓글 7개

공휴일을 빨간 글씨로 표시하려면

1) 추가한 함수 function printann($yy,$mm,$dd) 를 아래와 같이 변경하고

function printann($yy,$mm,$dd) // 기념일 출력, 공휴일 체크
{
global $board_skin_path;
$year = $yy;
$month = $mm;
$day = $dd;
$myarray1 = soltolun($year,$month,$day);
$file_name="anniversary.cgi";
$farray=file($board_skin_path."/".$file_name);
$ann ="";

for($i=0; $i<count($farray); $i++)
{
$part = explode("|",$farray[$i]);
if($part[0]==s)
{
if($month==$part[1] && $day==$part[2])
{
$ann[0]=$part[3];
$ann[1]=$part[4];
}
}
else
{
if($myarray1[month]==$part[1] && $myarray1[day]==$part[2] && $myarray1[leap] !="*")
{
$ann[0]=$part[3];
$ann[1]=$part[4];
}
}
}
return $ann;
}

2) 기존 list.skin.php 내용중

if ($iz%7 == 1) $daytext = "<font color=red>$daytext</font>"; // 일요일
if ($iz%7 == 0) $daytext = "<font color=orange>$daytext</font>"; // 토요일

의 내용 아래에 다음의 내용을 추가한 후

$ann = printann($year,$month,$cday);
if($ann[1]==h) $daytext = "<font color=red>$daytext</font>"; // 공휴일

3. 아랫부분에 추가하였던 $ann = printann($year,$month,$cday); 을 삭제합니다.
위처럼 적용했더니 . 기념일 글자가 array로 표시됩니다.

제가 무식해서 .
// 기념일(anniversary.cgi) 출력
echo($ann); 을 echo($ann[0]) 으로 변경해야 합니다.
2006-09-13 (수) 01:59:50
감사합니다. 다른 스킨도 되더군요!^^
이런 스킨까지... 감사합니다
월척이네요
2007-01-03 (수) 11:56:32
정말 좋은 팁입니다. 감사합니다
댓글을 작성하시려면 로그인이 필요합니다.

그누4 팁자료실

3,309건

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요. 나누면 즐거움이 커집니다.

+
제목 글쓴이 날짜 조회
06-09-12 조회 5,901
06-09-11 조회 5,691
06-09-10 조회 5,024
06-09-09 조회 4,259
06-09-09 조회 3,827
06-09-09 조회 5,446
06-09-08 조회 3,825
06-09-06 조회 3,561
06-09-06 조회 3,470
06-09-06 조회 4,265
06-09-05 조회 4,013
06-09-04 조회 4,469
06-09-04 조회 4,075
06-09-04 조회 4,486
06-09-03 조회 3,219
06-09-02 조회 2,915
06-09-01 조회 6,260
06-09-01 조회 3,908
06-08-30 조회 4,286
06-08-30 조회 2,743