일정관리용 작은 다이어리 아무곳에나 설치... > 그누3 팁자료실

그누3 팁자료실

일정관리용 작은 다이어리 아무곳에나 설치... 정보

그누호환 일정관리용 작은 다이어리 아무곳에나 설치...

본문

사용방법
출력하고 싶은곳에

<? include "month.php";?>하시면 됩니다.
//#####################################################
//##  스킨디렉토리에 일정관리+다이어리 최정(하늘비님 스킨버젼) <---이것과 같이 연동되는겁니다.
//##  연동안할시는 날짜링크를 삭제하시면 됩니다.
//#####################################################
$bo_table = "일정관리스킨게시판명";
$cell_width = 20; // 셀 가로 크기
$cell_height = 20; // 셀 세로 크기
이값을 조정해서 테이블 사이즈를 조절가능합니다.

수정버젼으로 함수방식으로 셀가로,세로를 지정하고
해당 일정관리 쓰기모드와 연동 되도록 수정버젼 만들어서 올리겠습니다.
이후 버젼방식
<? month_d('bo_table명',가로폭,세로폭); ?>


//############################################################
//##
//##  month.php
//##
//############################################################
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
define("_DOCTYPE_", "STYLE");
?>
<!------------------------------------
//####################################
// basic Board Skin : rei
// skin by ⓒⓒⓒ
// msn  : http://ccc.na.ly
//
//####################################
-------------------------------------->
<?
$cell_width = 20; // 셀 가로 크기
$cell_height = 20; // 셀 세로 크기
$limit_year = "1971~2037"; // 한계연도
$ttoday = $nday;
// 주어진 날짜가 없으면 현재날짜 구하기
if(!$nyear) $nyear = date('Y',time());
if(!$nmonth) $nmonth = date('m',time());
if(!$nday) $nday = date('d',time());
$tday = date('d',time());
// 기타 함수 정의
function end_day($year,$month){
    for($i=28;$i<=32;$i++) {
        if(!checkdate($month,$i,$year)) {
            return $i-1;
            break;
        }
    }
}

function conv_year($switch) {
    global $nyear, $nmonth;
    $c_year = $nyear;
    if($switch=="prev") $c_year--;
    else if($switch=="next") $c_year++;
    echo '&nyear='.$c_year.'&nmonth='.sprintf("%02d",$nmonth);
}

function conv_month($switch) {
    global $nyear, $nmonth;
    $c_year = $nyear;
    $c_month = $nmonth;
    if($switch=="prev") {
        if($nmonth <= 1) {$c_year--; $c_month=12;}
        else $c_month--;
    } else if($switch=="next") {
        if($nmonth >= 12) {$c_year++; $c_month=1;}
        else $c_month++;
    } else {
        $c_year=date('Y',time());
        $c_month=date('m',time());
    }
    echo '&nyear='.$c_year.'&nmonth='.sprintf("%02d",$c_month);
}

function conv_week($switch) {
    global $week_first, $week_last ;

    if($switch=="prev") {

        $nyear  =  $c_year    = substr($week_first,0,4);
        $nmonth =  $c_month    = substr($week_first,5,2);
        $nday  =  $c_day      = substr($week_first,8,2);

        if($c_day <= 1 ) {
            if($nmonth <= 1) {$c_year--; $c_month=12;}
            else $c_month--;
            $c_day = end_day($c_year,$c_month);
        } else $c_day--;
    } else if($switch=="next") {

        $nyear  =  $c_year    = substr($week_last,0,4);
        $nmonth =  $c_month    = substr($week_last,5,2);
        $nday  =  $c_day      = substr($week_last,8,2);

        if($c_day >= end_day($nyear,$c_month)) {
            if($nmonth >= 12) {$c_year++; $c_month=1;}
        else $c_month++;
            $c_day=1;
        } else $c_day++;
        } else {
            $c_year=date('Y',time());
            $c_month=date('m',time());
            $c_day=date('d',time());
    }
        echo '&nyear='.$c_year.'&nmonth='.sprintf("%02d",$c_month).'&nday='.sprintf("%02d",$c_day);
}

function conv_day($switch) {
    global $nyear, $nmonth, $nday;
    $c_year = $nyear;
    $c_month = $nmonth;
    $c_day = $nday;
    if($switch=="prev") {
        if($c_day <= 1 ) {
            if($nmonth <= 1) {$c_year--; $c_month=12;}
            else $c_month--;
            $c_day = end_day($c_year,$c_month);
        } else $c_day--;
    } else if($switch=="next") {
        if($c_day >= end_day($nyear,$c_month)) {
            if($nmonth >= 12) {$c_year++; $c_month=1;}
        else $c_month++;
            $c_day=1;
        } else $c_day++;
        } else {
            $c_year=date('Y',time());
            $c_month=date('m',time());
            $c_day=date('d',time());
    }
        echo '&nyear='.$c_year.'&nmonth='.sprintf("%02d",$c_month).'&nday='.sprintf("%02d",$c_day);
}
// 1일의 위치 구하기
$blank_no=date('w', mktime(0,0,0,$nmonth,1,$nyear));

?>
<table border=0 align=center cellpadding=0 cellspacing=1 bgcolor=#cccccc>
  <col style='padding:3px' bgcolor=#FFFFFF width=12 span=7>
  <tr bgcolor=#E7E7E7 align=center>
    <td><font color=red>일</font>
    <td>월
    <td>화
    <td>수
    <td>목
    <td>금
    <td><font color=blue>토</font>
  <tr height=<?=$cell_height?> valign=top>
    <?
              $colcnt=0; // 칸 카운터
              $rowcnt=2; // 줄 카운터
              $tmp_sum_day=end_day($nyear,$nmonth)+$blank_no; // 전체 루프 회수
              $org_date=date('Ymd',time()); // 오늘 날짜
              for($i=1;$i<=$tmp_sum_day;$i++) {
                      $nday=$i-$blank_no;
                      $colcnt++;
                      if($nday>0) {
                            // 주말, 평일 색상지정
                            switch(($blank_no+$nday)%7) {
                                    case 0 : $tmp_nday = "<font color=blue>".$nday."</font>"; break; // 토요일
                                    case 1 : $tmp_nday = "<font color=red>".$nday."</font>"; break; // 일요일
                                    default : $tmp_nday = $nday; break; // 평일
                            }
                            $now_date=$nyear*10000+$nmonth*100+$nday;
                            if($org_date==$now_date) $tmp_nday="<b>".$tmp_nday."</b>"; // 오늘날짜 진하게
                           
                            echo "<td width=$cell_width onMouseOver=\"this.style.backgroundColor='orange';\" onMouseOut=\"this.style.backgroundColor='#FFFFFF';\">"."<a      href='?doc=bbs/gnuboard.php&w=&bo_table=$bo_table&nyear=$nyear&nmonth=$nmonth&nday=$nday&mode=day'>".$tmp_nday."</a>\n"; // 날짜 출력
                      } else echo "<td width=$cell_width bgcolor=#DCDCDC> "; // 공란 출력
                          if(!($colcnt%7)&&($colcnt < $tmp_sum_day)) { // 줄 바꿈
                                echo "\n<tr height=$cell_height valign=top>";
                          $rowcnt++;
                      }
       
              }
              // 줄과 칸 마무리 부분
              $td_tail = $colcnt%7;
              $tr_tail = $rowcnt%7;
       
              // 줄마무리
              if($tr_tail) {
                      if($td_tail) {
                            for($i=$td_tail;$i<7;$i++) echo "<td width=$cell_width bgcolor=#DCDCDC> ";
                            $td_tail=0;
                      }
                      if($tr_tail) {
                            echo"\n<tr height=$cell_height valign=top>";
                            $tr_tail=0;
                      }
              }
              // 칸마무리
              if(!$tr_tail) {
                      for($i=$td_tail;$i<2;$i++) echo "<td bgcolor=#DCDCDC> ";
                      echo "<td colspan=5 valign=middle style='padding:0px'>\n";
              }
       
              // 한계연도 처리 부분
              $limit_year=split('~',$limit_year);
              if($nyear <= $limit_year[0]){$hide_lyear_start="<!--";$hide_lyear_end="-->";if($nmonth <= 1) {$hide_lmonth_start="<!--";$hide_lmonth_end="-->";}}
              if($nyear >= $limit_year[1]){$hide_gyear_start="<!--";$hide_gyear_end="-->";if($nmonth >= 12) {$hide_gmonth_start="<!--";$hide_gmonth_end="-->";}}
       
              ?>
</table>
추천
0
  • 복사

댓글 전체

일단 소스 넘 감사합니다
잘 사용하고 있는데요,....
날짜를 누르면 해당 일정관리 게시판으로 가는데요
날짜 누르면 그 날짜의 내용이 보여지게 하려면 어떻게 해야 하나요
저만 안되는건가요??? 참고로 저는 하늘비님 스킨이 아니라
다른 일정관리 게시판입니다
bo_table = "일정관리스킨게시판명";  ---> 요것이.. 답사 겔러리랑 쫑 나네요.. --;
다른 방법을 찾아 봤지만.. 제 실력으론.. ^^;

다른 스킨하고는 괜찮은데.. 답사 겔러리 하고만 쫑 나네요..
음 좋군요....
근데 이것을 투명으로 하면 마우스오버에서만 날자칸의 색이 변하게 하려면 어떻게 해야 하는가요?
소스에서 마우스아웃을 지우면 마우스오버색이 그대로 남는군요.
<?
$bo_table = "일정관리스킨게시판명";  ----->요부분을 넣으시면 됩니다...^^(상단에 있죠)
$cell_width = 20; // 셀 가로 크기
$cell_height = 20; // 셀 세로 크기
방금 적용시켜 봤습니다....
좋은 소스입니다............... 차후 수정버젼이 더욱 기대되는군요............
감사합니다.............^^
© SIRSOFT
현재 페이지 제일 처음으로