f

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

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]) 으로 변경해야 합니다.
감사합니다. 다른 스킨도 되더군요!^^
이런 스킨까지... 감사합니다
정말 좋은 팁입니다. 감사합니다
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 팁자료실

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

+
제목 글쓴이 날짜 조회
19년 전 조회 3,699
19년 전 조회 3,003
19년 전 조회 3,257
19년 전 조회 3,960
19년 전 조회 4,058
19년 전 조회 3,790
19년 전 조회 3,135
19년 전 조회 5,733
19년 전 조회 5,510
19년 전 조회 4,858
19년 전 조회 4,103
19년 전 조회 3,663
19년 전 조회 5,276
19년 전 조회 3,659
19년 전 조회 3,404
19년 전 조회 3,319
19년 전 조회 4,109
19년 전 조회 3,840
19년 전 조회 4,288
19년 전 조회 3,913
🐛 버그신고