스킨 수정 도와 주세요.

스킨 수정 도와 주세요.

QA

SIR 제작의뢰 - 견적무료/익명보정/호스팅, DB 이전/단기개발. 이젠 ' 의뢰인'이 원하는 '제작자'에게만 연락처를 알릴 수 있습니다.

스킨 수정 도와 주세요.

본문

안녕하세요?
좀 오래 된 스킨을 다운 받아 사용하려고 하니
오류 메세지 해결과 메모 추가를 하려고 하는데요.
좀 도와 주실 수 있나요?
스킨 게시글은 아래와 같습니다.
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

채택됨

onlymilk47님의 답변

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

{$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;
/**********/
// 출퇴근 날짜 뿌리주기

주소복사
채택됨
답변의 댓글

onlymilk47님의 답변

깨지는 이유는 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>
적용이 안되는 것 같아요.
메모 없어도 걍 넘어가 버리네요.
답변을 작성하시기 전에 로그인 해주세요.
전체 75,436 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT