스킨 수정 도와 주세요.

스킨 수정 도와 주세요.

QA

스킨 수정 도와 주세요.

답변 2

본문

안녕하세요?
좀 오래 된 스킨을 다운 받아 사용하려고 하니
오류 메세지 해결과 메모 추가를 하려고 하는데요.
좀 도와 주실 수 있나요?
스킨 게시글은 아래와 같습니다.
https://sir.kr/g5_skin/2426
오류 내용은 출근 시각을 클릭하면 Warning: date() expects parameter 2 to be integer, string given in ~~
이 에러가 떠서 달력을 엉망으로 만들고
다시 퇴근시각을 클릭하면 없어집니다.
도움 받을 내용 하나는 출근 클릭시 에러 해결과

해당 일자에 텍스트 메모를 받을 인프트를 넣고 싶습니다.
고수님들께서 좀 도와 주십시오.
소스는 아래와 같습니다.

<br><br>
<?

function insert_0($num) {
 if($num < 10) $num = "0".$num;
 Return $num;
}
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

// --------------------------------------------------------------------------- //
// START : 달력의 디자인 및 해당월, 시작요일 등을 구하는 변수값 선언             //
// --------------------------------------------------------------------------- //

// 국공휴일 설정
$holiday_arr = array("0101", "0301", "0505", "0606", "0815", "1003", "1009", "1225");

//테이블 테두리 칼라
$bordercolordark="#FFF";
$bordercolorlight="black";

//테이블 크기
$cal_width = "100%";
$cal_td_width ="14%";
$cal_td_height_top="5";
$cal_td_height="80";

//오늘날짜 색
$today_color="black";
$today_out_color="#A99B6A";
$today_over_color="#CAA753";

//일요일 색
$sun_color="red";
$sun_bgcolor="#F0EED9";
$sun_out_color="#F5B5B5";
$sun_over_color="#A99B6A";

//토요일 색
$sat_color="#3385D9";
$sat_bgcolor="#F0EED9";
$sat_out_color="#8BB7D1";
$sat_over_color="#A99B6A";

//나머지 날짜 색
$else_td_color="#E0DEC9";
$else_color="#666";
$else_bgcolor="#F0EED9";
$else_out_color="#FDF9ED";
$else_over_color="#A99B6A";

//한달의 총 날짜 계산 함수
function Month_Day_big($i_month,$i_year){
 $day=1;
 while(checkdate($i_month,$day,$i_year)){
  $day++;
 }
 $day--;
 return $day;
}

//오늘 날짜를 년월일별로 구하기
$today=date("Ymd");
$today_year=date("Y");
$today_month=date("m");
$today_day=date("d");

//month와 year의 변수값이 지정되어있지 않으면 오늘로 지정.
if(!$month)$month=(int)$today_month;
if(!$year)$year=$today_year;

//선택한 월의 총 일수를 구함.
$total_day_big=Month_Day_big($month,$year);

//선택한 월의 1일의 요일을 구함. 일요일은 0.
$first_big=date(w,mktime(0,0,0,$month,1,$year));

//지난달과 다음달을 보는 루틴
$year_p=$year-1;
$year_n=$year+1;
if($month==1){
$year_prev=$year_p;
$year_next=$year;
$month_prev=12;
$month_next=$month+1;
}
if($month==12){
$year_prev=$year;
$year_next=$year_n;
$month_prev=$month-1;
$month_next=1;
}
if($month!=1 && $month!=12){
$year_prev=$year;
$year_next=$year;
$month_prev=$month-1;
$month_next=$month+1;
}
$v_day = array("일","월","화","수","목","금","토");
// --------------------------------------------------------------------------- //
// END : 달력의 디자인 및 해당월, 시작요일 등을 구하는 변수값 선언             //
// --------------------------------------------------------------------------- //
?>
<style>
.b_day { font-family:tahoma;font-size:18px;font-style:italic;font-weight:bold;}
.b_day:link, .b_day:active, .b_day:visited { font-family:tahoma;font-size:18px;font-style:italic;font-weight:bold;}
.b_day:hover { font-family:tahoma;font-size:18px;font-style:italic;font-weight:bold;color:;}
.btn_bo_user {float:right;margin:0;padding:0;list-style:none}
.btn_bo_user li {float:left;}
</style>

 

<!--------------------------------------->
<!--- START : (년월일, 이전달/다음달) --->
<!--------------------------------------->
<div style="margin-bottom:20px;padding:0">
<?php if ($rss_href || $write_href) { ?>
<ul class="btn_bo_user">
 <?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin">관리자</a></li><?php } ?>
</ul>
<?php } ?>
<table cellspacing='5' cellpadding='0' width='<?=$cal_width?>' border='0' align="center">
<tr>
<td width='160' align='left' valign='bottom'></td>
<td align='center' valign='bottom' style="padding-bottom:2px">
 <a href='<?=$PHP_SELF?>?bo_table=<?=$bo_table?>&month=<?=$month_prev?>&year=<?=$year_prev?>' title='<?=$year_prev?>-<?=$month_prev?>' style="font-size:30px;color:#F0EED9;">◀</a> 
 <a href='<?=$PHP_SELF?>?bo_table=<?=$bo_table?>' title='오늘'><span style="font-family:tahoma;font-size:30px;line-height:120%;color:#A99B6A"><?=$year?>년 <b><?=$month?>월</b></span></a>
 <a href='<?=$PHP_SELF?>?bo_table=<?=$bo_table?>&month=<?=$month_next?>&year=<?=$year_next?>' title='<?=$year_next?>-<?=$month_next?>' style="font-size:30px;color:#F0EED9;">▶</a>
</td>
<td width='160' align='right' valign='bottom'></td>
</tr>
</table>
<!------------------------------------->
<!--- END : (년월일, 이전달/다음달) --->
<!------------------------------------->

<!---------------------------------------------------->
<!--- START : 달력리스트 보여주기                  --->
<!---------------------------------------------------->
<table cellspacing=5 cellpadding=0 bordercolorlight='<?=$bordercolorlight?>' bordercolordark='<?=$bordercolordark?>' width='<?=$cal_width?>' border=0  align="center">
<!-- START : 달력 요일 표시 -->
<tr style='font-weight:bold'>
<td align=center height='<?=$cal_td_height_top?>' width='<?=$cal_td_width?>' bgcolor='<?=$sun_bgcolor?>' style='color:<?=$sun_color?>;font-size:14px;font-weight:bold;padding:4px;border:1px solid <?=$else_td_color?>;'><?=$v_day[0]?></td>
<td align=center height='<?=$cal_td_height_top?>' width='<?=$cal_td_width?>' bgcolor='<?=$else_bgcolor?>' style='color:<?=$else_color?>;font-size:14px;font-weight:bold;padding:4px;border:1px solid <?=$else_td_color?>;'><?=$v_day[1]?></td>
<td align=center height='<?=$cal_td_height_top?>' width='<?=$cal_td_width?>' bgcolor='<?=$else_bgcolor?>' style='color:<?=$else_color?>;font-size:14px;font-weight:bold;padding:4px;border:1px solid <?=$else_td_color?>;'><?=$v_day[2]?></td>
<td align=center height='<?=$cal_td_height_top?>' width='<?=$cal_td_width?>' bgcolor='<?=$else_bgcolor?>' style='color:<?=$else_color?>;font-size:14px;font-weight:bold;padding:4px;border:1px solid <?=$else_td_color?>;'><?=$v_day[3]?></td>
<td align=center height='<?=$cal_td_height_top?>' width='<?=$cal_td_width?>' bgcolor='<?=$else_bgcolor?>' style='color:<?=$else_color?>;font-size:14px;font-weight:bold;padding:4px;border:1px solid <?=$else_td_color?>;'><?=$v_day[4]?></td>
<td align=center height='<?=$cal_td_height_top?>' width='<?=$cal_td_width?>' bgcolor='<?=$else_bgcolor?>' style='color:<?=$else_color?>;font-size:14px;font-weight:bold;padding:4px;border:1px solid <?=$else_td_color?>;'><?=$v_day[5]?></td>
<td align=center height='<?=$cal_td_height_top?>' width='<?=$cal_td_width?>' bgcolor='<?=$sat_bgcolor?>' style='color:<?=$sat_color?>;font-size:14px;font-weight:bold;padding:4px;border:1px solid <?=$else_td_color?>;'><?=$v_day[6]?></td>
</tr>
</table>
<!-- END : 달력 요일 표시 -->

<table cellspacing=5 cellpadding=0 bordercolorlight='<?=$bordercolorlight?>' bordercolordark='<?=$bordercolordark?>' width='<?=$cal_width?>' border=0  align="center">
<tr>
<?

//count는 <tr>태그를 넘기기위한 변수. 변수값이 7이되면 <tr>태그를 삽입한다.
$count=0;

//첫번째 주에서 빈칸을 1일전까지 빈칸을 삽입
for($i=0; $i<$first_big; $i++){
echo "<td height='$cal_td_height' width='$cal_td_width'> </td>";
$count++;
}

// --------------------------------------------- //
// START : 날짜를 테이블에 표시                  //
// --------------------------------------------- //
for($day=1;$day<=$total_day_big;$day++) {
 $count++;
 
 //오늘일 경우 셀 디자인 표시
 if($day==$today_day && $month==$today_month && $year==$today_year){
 $m_out_color=$today_out_color;
 $m_over_color=$today_over_color;
 $day_color=$today_color;
 $ck_holiday = 0;
 $ck_today = 1;
 }
 //오늘 아닐경우
 else {
 //일요일
 if ($count==1){
 $m_out_color=$sun_out_color;
 $m_over_color=$sun_over_color;
 $day_color=$sun_color;
 $ck_holiday = 1;
 }
 //토요일
 elseif ($count==7){
 $m_out_color=$sat_out_color;
 $m_over_color=$sat_over_color;
 $day_color=$sat_color;
 $ck_holiday = 0;
 }
 //평일
 else {
 $m_out_color=$else_out_color;
 $m_over_color=$else_over_color;
 $day_color=$else_color;
 $ck_holiday = 0;
 }

 //기타공휴일
 $h_m = sprintf("%02d",$month);
 $h_d = sprintf("%02d",$day);
 $h_day=$h_m.$h_d;
 for($h=0;sizeof($holiday_arr)>$h;$h++){
  //echo $h_day;
  //echo $holiday_arr[$h];
  if($holiday_arr[$h] ==$h_day) {
   $m_out_color=$sun_out_color;
   $m_over_color=$sun_over_color;
   $day_color=$sun_color;
   $ck_holiday = 1;
  }
 }
}

// 일자구분
echo "<td width='$cal_td_width' height='$cal_td_height' align=right valign=top bgcolor='$m_out_color' onMouseOut=this.style.backgroundColor='' onMouseOver=this.style.backgroundColor='$m_over_color' style='word-break:break-all;padding:2px;border:1px solid #F0EED9;'><div style='width:100%;height:100%;background:#FDF9ED'>";

// 본인의 경로에 맞게 수정
echo "<div style='clear:both;padding-top:4px;height:20px;background:#F0EED9;border:0;'>";
//echo "<div style='float:left;padding:2px'>".solar::solar(mktime(0,0,0,$month,$day))."</div>";
echo "<div style='float:right;padding-right:2px;color:$day_color' class=b_day>";
?>

<?if($is_admin){?>
<a onclick="window.open('admin_list.php?bo_table=<?=$bo_table?>&year=<?=$year?>&month=<?=$month?>&day=<?=$day?>','','toolbars=auto,width=500,height=400,left=0,top=0');" style="cursor:pointer;">
<?}?>

<?=$day?></a>

<?
echo "</div>";
echo "</div>";

// 출퇴근 날짜 뿌리주기
/**********/
$query = "SELECT * FROM $write_table WHERE mb_id = '$member[mb_id]' and wr_datetime LIKE '%".$year."-".insert_0($month)."-".insert_0($day)."%' limit 1";
$result = sql_query($query);
$data = sql_fetch_array($result); //or die ("쿼리문 에러!!!");

$attendance = date("H:i",$data[wr_link1]);
$closing = date("H:i",$data[wr_link2]);  

if($ck_today) {
 // 출근시간 버튼
 if($data[wr_link1]){
  //$attendance = date("H:i",$data[wr_link1]);

  //퇴근시간 버튼
   if(!$data[wr_link2]) $closing = "<a href=\"$write_href&close=1&wr_id2=$data[wr_id]\"><img src=$board_skin_url/images/btn_insert.gif style='cursor:hand;' border=0></a>";
   //else $closing = date("H:i",$data[wr_link2]);  
 }else{
  $attendance = "<a href=\"$write_href\"><img src=$board_skin_url/images/btn_insert.gif style='cursor:hand;' border=0></a>";
  $closing = "<img src=$board_skin_url/images/btn_insert.gif style='cursor:hand;' onclick='alert(\"출근시간이 없습니다.\")'>"; 
 }
}


if(!$data[wr_link1] and !$ck_today) echo "<div style='float:left;padding:2px;color:#FF0033'></div>";
else echo "<div style='float:left;padding:2px'>출근 : $attendance<br>퇴근 : $closing ";

if(!$data[wr_link2]) echo ""; else echo "<br>근무시간:<b>$time_diff</b></div>";

$ck_today = 0;


//연간 누적 근무시간구하는 쿼리문
$query2 = "select mb_id = '$member[mb_id]', sum(wr_link1_hit) from $write_table where mb_id = '$member[mb_id]' and wr_datetime LIKE '%".$year."%' limit 1";
$result2 = sql_query($query2);
$data2 = sql_fetch_array($result2); //or die ("쿼리문 에러!!!");


//월 근무일수 구하기
$wday_query = "SELECT COUNT(wr_link1_hit) FROM $write_table where mb_id = '$member[mb_id]' and wr_datetime LIKE '%".$year."-".insert_0($month)."%' limit 1";
//echo $wday_query;
$wday_result = sql_query($wday_query);
$wday_data = sql_fetch_array($wday_result);

//연간 근무일수 구하기
$yday_query = "SELECT COUNT(wr_link1_hit) FROM $write_table where mb_id = '$member[mb_id]' and wr_datetime LIKE '%".$year."%' limit 1";
$yday_result = sql_query($yday_query);
$yday_data = sql_fetch_array($yday_result);

//근무시간구하기
$date2 = $data[wr_link1];

$total_secs=abs($date1-$date2);
$diff_in_days = floor($total_secs / 86400);

$rest_hours = $total_secs % 86400;
$diff_in_hours = floor($rest_hours / 3600);

$rest_mins = $rest_hours % 3600;
$diff_in_mins = floor($rest_mins / 60);
$diff_in_secs = floor($rest_mins % 60);

$time_diff = (int)$diff_in_hours ."시간 ".$diff_in_mins ."분 ";;


//월간 총 근무시간구하는 쿼리문
$query1 = " update $write_table set wr_link1_hit = '$time_diff' where wr_id = '$data[wr_id]' ";
$result1 = sql_query($query1);
$data1 = sql_fetch_array($result1); //or die ("쿼리문 에러!!!");
//echo $query1;

$mon_query = "select mb_id = '$member[mb_id]', sum(wr_link1_hit) from $write_table where mb_id = '$member[mb_id]' and wr_datetime LIKE '%".$year."-".insert_0($month)."%' limit 1";
//echo $mon_query;
$mon_rs = sql_query($mon_query);
$mon_data = sql_fetch_array($mon_rs);

/**********/
// 출퇴근 날짜 뿌리주기


echo "</div></td>";
//마지막주의 경우
if($count==7 && $day == $total_day_big ){
echo"</tr>";
}
//토요일이 되면 줄바꾸기 위한 <tr>태그 삽입
elseif($count==7){
echo "</tr><tr>";
$count=0;
}

}

//월,년 총 근무시간
echo "<table><tr><td style='font-size:10pt;'>";
  echo $member[mb_name]."님 ".$year."년 ".$month."월 근무일수 : ".$wday_data[0]."일";
  echo "<br>";
  echo $member[mb_name]."님 ".$year."년 ".$month."월 근무시간 : ".$mon_data[1]."시간 ";
  if($mon_data[1]>226) echo "(초과근무 : ".($mon_data[1]-226)."시간)"; else echo "(초과근무: -시간)";
  echo "<br>";
  echo $member[mb_name]."님 ".$year."년간 누적 근무일수:".$yday_data[0]."일";
  echo "<br>";
  echo $member[mb_name]."님 ".$year."년간 누적 근무시간 :".$data2[1]."시간";
echo "</td></tr></table>";
// --------------------------------------------- //
// END : 날짜를 테이블에 표시                    //
// --------------------------------------------- //
?>
<?
// 선택한 월의 마지막날 이후의 빈 셀 삽입
for($day++; $total_day_big < $day && $count<7; ){
echo "<td height='$cal_td_height' width='$cal_td_width' bgcolor='white'> </td>";
$count++;
}
echo "</table>";

 

 

?>
</div>
</div>
<br><br>

이 질문에 댓글 쓰기 :

답변 2

하단에 보시면 아래 부분이 있습니다 

{$memo}를 추가하셔야 합니다 

아래 내용으로 교체하시면 됩니다

 

if(!$data[wr_link1] and !$ck_today) echo "<div style='float:left;padding:2px;color:#FF0033'></div>";
else echo "<div style='float:left;padding:2px'>출근 : $attendance<br>퇴근 : $closing {$memo}";

if(!$data[wr_link2]) echo ""; else echo "<br>근무시간:<br><b>$time_diff</b></div>";

$ck_today = 0;
/**********/
// 출퇴근 날짜 뿌리주기

깨지는 이유는 wr_link2 가 null 이기 때문입니다 


$attendance = date("H:i",$data[wr_link1]);
$closing = date("H:i",$data[wr_link2]); 
 
//근무시간구하기
$date1 = $data[wr_link2]; 
$date2 = $data[wr_link1]; 

여기부분을

 


$attendance = date("H:i",$data[wr_link1]);
$data[wr_link2]=intval($data[wr_link2]); //추가를 하시면됩니다 
$closing = date("H:i",$data[wr_link2]); 
//근무시간구하기
$date1 = $data[wr_link2]; 
$date2 = $data[wr_link1]; 

 

메모추가부분은 

280라인에 추가부분을 추가하시고요 


if($ck_today) {
    // 출근시간 버튼
    if($data[wr_link1]){
        //$attendance = date("H:i",$data[wr_link1]);
        //퇴근시간 버튼
            if(!$data[wr_link2]) $closing = "<a href=\"$write_href&close=1&wr_id2=$data[wr_id]\"><img src=$board_skin_url/images/btn_insert.gif style='cursor:hand;' border=0></a>";
            //else $closing = date("H:i",$data[wr_link2]);
            //================================
            //여기부분 추가 
            $wr_3=str_replace("'", "", $data[wr_3]);
            $wr_3_view=(($wr_3)?"<br>":"").$wr_3;
            $memo= "<br><a href=\"javascript:memo_write('{$write_href}&close=2&wr_id2=$data[wr_id]', '".$wr_3."');\">[메모등록]</a>{$wr_3_view}";
            //================================
    }else{
        $attendance = "<a href=\"$write_href\"><img src=$board_skin_url/images/btn_insert.gif style='cursor:hand;' border=0></a>";
        $closing = "<img src=$board_skin_url/images/btn_insert.gif style='cursor:hand;' onclick='alert(\"출근시간이 없습니다.\")'>";    
    }
}

 

제일 하단에 아래를 넣어주시고요 


<script type="text/javascript">
<!--
    function memo_write(href, msg){
        var inputString = prompt('메모를 입력하세요', msg);
        inputUri = encodeURI(inputString);
        location.href=href+"&wr_3="+inputUri;
    }
//-->
</script>

 

write.skin 을 아래와 같이 변경하시면 됩니다 


<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
if($_GET['close']==2){//메모추가
    if($wr_3){
        $wr_3=urldecode($wr_3);
    }
    $sql = " update $write_table
                set wr_3 = '{$wr_3}'
                where wr_id = '$_GET[wr_id2]' ";
}
else if($_GET['close']){
    $sql = " update $write_table
                set wr_link2 = UNIX_TIMESTAMP()
                where wr_id = '$_GET[wr_id2]' ";
}
else{
    $sql = " insert into $write_table
                set wr_link1 = UNIX_TIMESTAMP(),
                    mb_id = '$member[mb_id]',
                    wr_password = '$g5[his]',
                    wr_name = '$member[mb_name]',
                    wr_datetime = '".G5_TIME_YMDHIS."',
                    wr_last = '".G5_TIME_YMDHIS."',
                    wr_ip = '$_SERVER[REMOTE_ADDR]'";
}
sql_query($sql);
//echo $sql ;
//exit;
goto_url(G5_URL."/bbs/board.php?bo_table=".$bo_table);
?>

 

 

출근시간 클릭해도 깨지는 것 없이 깔끔하게 처리 되니 너무 좋네요.
그런데 부탁드린 [메모등록] 무슨 이유인지
 화면에 출력이 안되요.
242757204_1547398653.4208.png

http://bbmask.net/bbs/board.php?bo_table=attendance

여기 이고요.
임시 권한 ID : test pass : test
입니다.
기왕 주신 기능기부 다시 한번 더 살펴 주시면 고맙겠습니다.

하나만 더 사정해 봅니다.
[메모등록]를 한 회원만 포인트를 주려고 합니다.
한번 만 더 만져 주시면 감사하겠습니다.

그리고
<script type="text/javascript">
<!--
    function memo_write(href, msg){
        var inputString = prompt('메모를 입력하세요', msg);
        inputUri = encodeURI(inputString);
        location.href=href+"&wr_3="+inputUri;
    }
//-->
</script>
적용이 안되는 것 같아요.
메모 없어도 걍 넘어가 버리네요.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 123,134
© SIRSOFT
현재 페이지 제일 처음으로