게시판 여분필드 체크 시 최신 고정 채택완료
안녕하세요
본 글 제목과 동일한 제목으로 이전에 글을 올렸습니다.
https://sir.kr/qa/483405?&vpage=1#answer_483501" target="_blank">https://sir.kr/qa/483405?&vpage=1#answer_483501
위 글을 통해 이전 문제는 해결 했고 추가 질문이 있어서 다시 한번 글 남깁니다.
/bbs/list.php 파일에서,
</p>
<p>if(!$sst)
$sst = "wr_num, wr_reply";</p>
<p>===>수정</p>
<p>if(!$sst){</p>
<p> if($bo_table=='해당게시판ID') $sst = "wr_1 desc, wr_num, wr_reply";
else $sst = "wr_num, wr_reply";</p>
<p>}</p>
<p>
위와 같이 수정하니 맨 앞으로 고정은 되는데,
1순위 : wr_1 체크 한 게시물
2순위 : 날짜
이렇게 정렬이 되는 것 같습니다.
wr_1이 중복으로 체크가 되었을 경우 나중에 등록된 게시물이 위로 올라오고 있는 상태입니다.
wr_1이 체크된 게시물이 여러개일 경우 나중에 체크한 게시물이 더 최신으로 오게 하는 방법이 있을까요?
해결에 더 필요한 정보가 있다면 말씀해주세요
감사합니다.
답변 4개
나중에 체크한 글이 먼저 나오게 하려면,
나중에 체크한 글의 wr_1 에 이전보다 더 높은 값을 저장해야 됩니다.
ex.
첫번째 '공지' 체크 : wr_1 값에 '1' 저장
두번째 '공지' 체크 : wr_1 값에 '2' 저장
세번째 '공지' 체크 : wr_1 값에 '3' 저장
=> order by wr_1 desc 에 의해, 세번째/두번째/첫번째 글 순으로 나옴.
그래서 이 방법을 사용하는 경우..
이전에 wr_1 값중 가장 높은 값을 찾은 후 +1 을 하여 저장하는 방법이 있습니다.
또는..
wr_1 에 현재시각 정보를 저장하는 방법이 있습니다. 나중에 체크한 것에 높은 값이 들어감
첫번째 '공지' 체크 : wr_1 값에 '20221217183005' 저장 (22년 12월 17일 18시 30분 5초)
두번째 '공지' 체크 : wr_1 값에 '20221218184005' 저장 (22년 12월 18일 18시 40분 5초)
세번째 '공지' 체크 : wr_1 값에 '20221217185005' 저장
* write_update.head.skin.php
if ($w == '' && $wr_1)
$wr_1 = date('YmdHis');
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
나중에 체크한다는말은 수정할때 체크한다는거잖아요?
그러면 수정할때 write_update.skin.php 생성해서 wr_datetime를 G5_TIME_YMDHIS현시점으로 업데이트해버리면됩니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
기본 순서는 desc 와 asc 가 있습니다.
질문자님은 나중에 체크한 게시물이 더 최신으로 오게 하고싶으신거자나요
그러면 나중에 체크한게 몬지를 구분해야됩니다.
기본 보드라면 wr_last가 최신 저장 시간입니다.
댓글이나 수정이 들어가면 wr_last가 변경되기 때문에
wr_2 를 미사용중이시라면 wr_1을 체크하실때 wr_2에는 저장시간을 넣어주시는 소스를 추가하시고
wr_1 desc, wr_2 desc (늦게 누를수록 최신시간이 저장되겠죠?) 를 넣어주시면 될거 같네요
답변에 대한 댓글 3개
[code]
if ($is_admin) {
$main_checked = ($write['wr_1']) ? ' checked' : '';
$option .= "\n".'<label class="checkbox-inline"><input type="checkbox" id="wr_1" name="wr_1" value="1" '.$main_checked.'> 메인글</label>';
$option_ctn++;
}
[/code]
이렇게 되어있는데 추가 설명 가능할까요?ㅠ
wr_1 에 데이터가 있으면 옵션 체크되어라
wr_1은 관리자만 보인다
$option_ctn 의 갯수 증가를 하나 증가해라
결국 관리자라면 옵션 선택에 wr_1 체크 기능을 노출하라는 것이거든요
관리자가 아니라면 wr_1 체크기능이 미노출되는 것이지요,
이거에 단점은 관리자 말고 다른이의 글작성 시 관리자가 이글 수정 시 체크를 한 후
본래 글쓴이가 수정하게 되면 wr_1값이 없기에 wr_1 값이 사라질 수 있습니다.
관리자가 글작성시에만 wr_1이 활성화 된다고 보시면 될듯합니다.
제 위 댓글에 더 설명을 붙이자면
관리자라면 노출 체크시간이 들어가야됩니다.
wr_2 항목을 사용 안하실때 예를 들어봅니다.
if($is_admin){
echo '<input type="text" name="wr_2" id="wr_2" value="'.$write[wr_2].'" > ';
} else {
echo '<input type="hidden" name="wr_2" id="wr_2" value="'.$write[wr_2].'" >';
}
관리자일떄 wr_2 에 값을 넣고
관리자가 아니라면 wr_2 값은 히든으로 안보이게 한다
위 내용은 예제로 넣어봤고요, 참고해서 응용해보세요
추가로 wr_2에 datepicker 기능 넣으시면 달력 선택 기능이 추가되실꺼에요
방법은 여러가지일텐데 제가 생각한 방법 남겨봅니다.
마르스컴퍼니 님의 글도 하나의 좋은 방법이네요
글 작성시나 수정시에 wr_1 에 값이 들어가있으면
저장할때 wr_1값을 지금 시간으로 저장하라
제가 볼때 단점은... 기존에 등록된 체크글의 글 상세내용만 수정 했는데
저장하시게 되면 wr_1이 최신일자로 업데이트 되기에
기존의 순서가 바뀌게 되는 부분이 발생될 수 있습니다.
크게 수정할게 없으시다면 ,,, 수정하는데 순서를 맨앞으로 보내도 된다 하시면
위방법도 아주 좋은 방법입니다.
확인하고 가장 좋은 방법으로 적용해보겠습니다.
좋은 하루 되세요!
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
덕분에 잘 해결했습니다!