최신글 게시판마다 출력 개수 & 스타일 다르게 하기
본문
<!-- 최신글 시작 { -->
<?php
// 최신글
$sql = " select bo_table
from `{$g5['board_table']}` a left join `{$g5['group_table']}` b on (a.gr_id=b.gr_id)
where a.bo_device <> 'mobile' ";
if(!$is_admin)
$sql .= " and a.bo_use_cert = '' ";
$sql .= " and a.bo_table in ('news', 'notice') ";
$sql .= " order by b.gr_order, a.bo_order ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
?>
<div style="float:left;<?php echo $lt_style ?>" class="lt_wr">
<?php
// 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
// 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
echo latest('theme/basic', 'notice', 2, 24);
?>
</div>
<?php
}
?>
<!-- } 최신글 끝 -->
현재 메인에 공지사항과 news 게시판을 사용중인데요
1. 공지사항은 2개만 노출되고 news는 레이아웃을 바꿔서 세개만 출력되게 하고싶은데
어떻게 해야할까요?
위 소스처럼 echo latest('theme/basic', 'notice', 2, 24); 이렇게 적용을 했더니 공지사항이 두개가 나와버리네요...
2. 클래스명은 bo_table 끌어오면 될거같아서 이것저것 넣어봣는데
출력이 안되고 공백으로 나오고...
3. 공지사항이 먼저 출력되고 news가 그 다음에 나와야 하는데
news 부터 나오는것은 왜 그럴까요...
php 무지랭이라 질문도 엉망진창이네요 ㅠㅠ
!-->
답변 3
<?php
// 최신글
$sql = " select bo_table
from `{$g5['board_table']}` a left join `{$g5['group_table']}` b on (a.gr_id=b.gr_id)
where a.bo_device <> 'mobile' ";
if(!$is_admin)
$sql .= " and a.bo_use_cert = '' ";
$sql .= " and a.bo_table in ('news', 'notice') ";
$sql .= " order by b.gr_order, a.bo_order ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
?>
<div style="float:left;<?php echo $lt_style ?>" class="lt_wr">
<?php
// 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
// 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
echo latest('theme/basic', 'notice', 2, 24);
?>
</div>
<?php
}
?>
위 소스를 보시면 최신글 쿼리에 news 와 notice 를 in 으로 처리하셨으니 아래부분에
<?php
// 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
// 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
echo latest('theme/basic', $row[bo_table], 2, 24);
?>
이렇게 해야 게시판 별로 최신글이 호출됩니다
게시판 별로 출력갯수를 변경하고 싶으시면
<?php
// 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
// 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
if($row[bo_table] == "news") echo latest('theme/basic', 'news', 3, 24);
elseif($row[bo_table] == "notice") echo latest('theme/basic', 'notice', 5, 24);
?>
이런식으로 조건문 처리하시면 됩니다
!-->!-->!-->php 순서대로 처리되기 때문에 출력 순서를 조절하고 싶으시면
위 코드 말고
<div style="float:left;<?php echo $lt_style ?>" class="lt_wr">
<?php
echo latest('theme/basic', 'news', 2, 24);
?>
</div>
<div style="float:left;<?php echo $lt_style ?>" class="lt_wr">
<?php
// 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
// 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
echo latest('theme/basic', 'notice', 2, 24);
?>
</div>
이런식으로 위치에 맞게 따로 따로 호출하시면 됩니다
board 테이블에서 게시판 가져와서 출력하지 마시고
html 코드안에서 하나씩 따로 호출하시면 출력순서 조절 됩니다
!--><!-- 최신글 시작 { --> <?php // 최신글 $sql = " select bo_table from `{$g5['board_table']}` a left join `{$g5['group_table']}` b on (a.gr_id=b.gr_id) where a.bo_device <> 'mobile' "; if(!$is_admin) $sql .= " and a.bo_use_cert = '' "; $sql .= " and a.bo_table in ('news', 'notice') "; $sql .= " order by b.gr_order, a.bo_order "; $result = sql_query($sql); for ($i=0; $row=sql_fetch_array($result); $i++) { ?> <div style="float:left;<?php echo $lt_style ?>" class="lt_wr"> <?php // 이 함수가 바로 최신글을 추출하는 역할을 합니다. // 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수); // 테마의 스킨을 사용하려면 theme/basic 과 같이 지정 echo latest('theme/basic', 'notice', 2, 24); ?> </div> <?php } ?> <!-- } 최신글 끝 -->
이코드를 전부 빼시고
<div style="float:left;<?php echo $lt_style ?>" class="lt_wr"> <?php echo latest('theme/basic', 'news', 2, 24); ?> </div> <div style="float:left;<?php echo $lt_style ?>" class="lt_wr"> <?php // 이 함수가 바로 최신글을 추출하는 역할을 합니다. // 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수); // 테마의 스킨을 사용하려면 theme/basic 과 같이 지정 echo latest('theme/basic', 'notice', 2, 24); ?> </div>
이것만 넣으셔서 처리하셔야 합니다
위쪽에 반복문은 필요 없습니다
!-->
답변을 작성하시기 전에 로그인 해주세요.