최근게시물에서 여분필드 wr_1 ==1 일때만 메인에 노출되기 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

최근게시물에서 여분필드 wr_1 ==1 일때만 메인에 노출되기 정보

최근게시물에서 여분필드 wr_1 ==1 일때만 메인에 노출되기

본문

최근게시물에서 글쓰기 할때 여분필드 wr_1 == 1로 지정된것만 메인으로 노출되는
쿼리문좀 부탁드립니다.

아니면 쿼리문 아니라도 좀 도와주세요.

여분필드 사용않고 공지체크한 글만 메인에 공지할때 어떻게 하는지요..

좀 도와 주세요..
  • 복사

댓글 전체

전체 테이블을 대상으로 최신글을 가져오는 경우
new.php
1. 38행 수정
$sql = " select a.*, b.bo_subject, b.bo_notice, c.gr_subject, c.gr_id
2. 70행 쯤  $datetime2 = "<font color='blue'>".$datetime2; 다음행에 아래 스크립트 추가
  if(strstr($row[bo_notice],$row[wr_id]) ) $list[$i][is_notice]=1;
    else $list[$i][is_notice]=0;

3. new.skin.php 70행 쯤 for문 아래에 다음 추가
  if( !$list[$i][is_notice]) continue;
----------------------------------------------------
이렇게 하면 최신글 중 공지체크한 글만 출력 합니다
latest('basic'.....) 함수를 이용하는 경우
latest/basic/basic.skin.php 14번 행을 수정 하면 됩니다

<? for ($i=0; $i<count($list); $i++) {
    if (! $list[$i]['is_notice']) continue;
?>
균이님 늦게까지 감사합니다.

 new.php 와 스킨의 new.skin.php 를 이용하여 여러게시물을 하나의 최근게시물로 불러오는 작업을하고 있습니다.
근데 특별히 지정한글이 아닌 모든게시물이 메인에 노출되므로 공지, 아니면 여분필드를 이용한 방법을 찾고 있었는데 ..  균이님 방법대로 하면 공지는 잘뿌려지는데 ...

공지체크를 하지 않은글은 안나타나는 대신 한칸이 삭제가 되는 현상이 나타납니다.

그래서 여태껏 고민하고 있습니다.  www.madangsoi.com 의 소식및 공지입니다.
한칸이 당연히 줄어 들 것입니다.
왜냐면 미리 정해진 수만큼만 읽어왔기 때문에 $list엔 그만큼밖에 없는것이죠.
균이님이 알려주신 내용이 최대한 수정을 적게하시라고 알려주신거 같습니다만,
맘에 안드시면
latest함수 자체를 수정하셔야 할것 같습니다.

lib/latest.lib.php 를 열어줍니다.
호출할때 $options 를 받도록 되어있지만, 쓰이지 않는다는것을 알 수 있습니다.
이걸 이용해 봅시다.

주욱 내리시면
    $sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_datetime desc limit 0, $rows ";
//explain($sql);
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++)
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
이부분이 있습니다.

여기를
if($option=="notice"){
$notices = split("\n", trim($board[bo_notice]));
$notices_cnt = count($notices);
$rcnt=0;
for($i=0;$i<$notices_cnt;$i++){
if($rcnt>=$rows) break;
$row = sql_fetch("select * from $tmp_write_table where wr_id='$notices[$i]'");
if($row['wr_id']) {
$list[$rcnt] = get_list($row,$board,$latest_skin_path, $subject_len);
}else continue;
$rcnt++;
}
}else{
    $sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_datetime desc limit 0, $rows ";
//explain($sql);
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++)
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
}

이런식으로 바꿔준후에
latest("스킨","테이블",개수,길이,"notice");
이렇게 불러줍니다.

즉흥적으로 짠거라 잘 안될수도 있습니다. ㅠ
안되면 다시 리플 달아주시면 테스트 해보고 다시 올려드리겠습니다.
메가쵸코님 ... 관심가져주셔서 정말 감사합니다.

근데 new.php 를 이용해서 전체게시판의 최근공지를 new.skin.php에서 불러오고 있습니다.
new.php를 기준으로 설명해주시면 안되나요...

제발 부탁합니다.
$sql_common = " from $g4[board_new_table] a, $g4[board_table] b, $g4[group_table] c
              where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1' ";

이부분을

$sql_common = " from $g4[board_new_table] a, $g4[board_table] b, $g4[group_table] c
              where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1'
  and (b.bo_notice =a.wr_id or b.bo_notice like concat('%', a.wr_id,'%\\n') or b.bo_notice like concat('%\\n',a.wr_id))";

이렇게 해줘보세요.
^_^;

에구

근데 이렇게 하면 new.php는 전부 공지만 나옵니다.
걸러줘야는데.,..
그건 연구해보시길...


개인적으로 제발이란 말 싫어합니다.
걍 별로 같아요...
© SIRSOFT
현재 페이지 제일 처음으로