공지만 배열다르게 가능한가요? > 그누4 질문답변

그누4 질문답변

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

공지만 배열다르게 가능한가요? 정보

공지만 배열다르게 가능한가요?

본문

북마크 게시판을 만들어서 사용하고 있는데
컴 접속시 한줄에 2칸씩 보이도록

<?
$userAgent = $_SERVER['HTTP_USER_AGENT'];
if(preg_match("/iPad/", $userAgent) == false && preg_match("/iPhone|iPod|BlackBerry|Android|Windows CE|LG|MOT|SAMSUNG|SonyEricsson|Windows Phone/", $userAgent) != false) {
$i_count = 1 ; //모바일 접속시 한줄에 들어갈 게시글 수
}else{
$i_count = 2 ; //컴 접속시 한줄에 들어갈 게시글 수
}
?>

<?
for ($i=0; $i<count($list); $i++) {
include "$board_skin_path/inc.list.skin.php";
if ($i>0 && $i%$i_count==0) { echo "</tr><tr>"; }
?>


이런식으로 사용하고 있습니다
그런데 컴접속시에도 공지로 체크한 경우에는 한줄에 한개만 나오게 할 수 있을까요?
그냥 쉽게 생각해서


<?
$userAgent = $_SERVER['HTTP_USER_AGENT'];
if(preg_match("/iPad/", $userAgent) == false && preg_match("/iPhone|iPod|BlackBerry|Android|Windows CE|LG|MOT|SAMSUNG|SonyEricsson|Windows Phone/", $userAgent) != false) {
$i_count = 1 ; //모바일 접속시 한줄에 들어갈 게시글 수
}else{
  if ($list[$i][is_notice]) {
  $i_count = 1 ;
  } else {
  $i_count = 2 ; //컴 접속시 한줄에 들어갈 게시글 수
  }
}
?>


이렇게 해봤는데 안되네요..ㅠㅠ
  • 복사

댓글 전체

그렇게 넣어서 될 리도 없지만 공지와 공지 아닌글이 가로 한줄에 나와야할 셀 갯수가 다른데
위 코드에서 조절한다고 될 문제도 아닙니다
inc.list.skin.php에서 공지이면 td에 colspan 넣어서 한줄로 출력 되도록 만들어야 합니다
균이님 우선 답변해주셔서 너무 감사드립니다
그런데 워낙 생초짜인지라 감이 잘 안 잡힙니다.. 부담이 안되신다면 조금만 더 구체적으로 알려주실 수 있을까요?

리스트부분은
    <table cellspacing="0" cellpadding="0" class="board_list">
<tr>
    <?
    for ($i=0; $i<count($list); $i++) {
include "$board_skin_path/inc.list.skin.php";
if ($i>0 && $i%$i_count==0) { echo "</tr><tr>"; }
    ?>

<?
            if ($list[$i][is_notice]) {
echo "<td>링크이미지</td>";
echo "<td>";
if ($is_checkbox) {
echo "<input type=checkbox name=chk_wr_id[] value='{$list[$i][wr_id]}'>";
}
echo "공지링크설명";
echo "{$l_edit}";
echo "</td>";
            } else {
echo "<td>링크이미지</td>";
echo "<td>";
if ($is_checkbox) {
echo "<input type=checkbox name=chk_wr_id[] value='{$list[$i][wr_id]}'>";
}
if ($is_category && $list[$i][ca_name]) {
echo "<a href='{$list[$i][ca_name_href]}'>{$list[$i][ca_name]}</a> ";
}
echo "링크설명";
echo "{$l_edit}";
echo "{$l_delete}";
echo "</td>";
    } ?>
    <? } // end for ?>
</tr>
    </table>
대략 이렇습니다. inc.list.skin.php에는 버튼에 대한 정의만 되어있구요. inc.list.skin.php에서 뭘 어떻게 해야할까요..?
inc.list.skin.php에 무슨 버튼을  for문에 넣어서 계속출력하는 형태인지 모르겟네요
각 게시물의 수정 삭제버튼 링크인가보군요
어쨌던 아래처럼 해보세요

    <table cellspacing="0" cellpadding="0" class="board_list">
<?
 if($i_count == 2) $colspan2 ="colspan='3'";
 $noticenum =0;

for ($i=0; $i<count($list); $i++) {  if (!$list[$i][is_notice]) break;
include "$board_skin_path/inc.list.skin.php";
echo "<tr><td>링크이미지</td>";
echo "<td $colspan2>";
if ($is_checkbox) echo "<input type=checkbox name=chk_wr_id[] value='{$list[$i][wr_id]}'>";
echo "공지링크설명";
echo "{$l_edit}";
echo "</td></tr>";
$noticenum++;
}
?>
<tr>
    <?
 for ($i=$noticenum; $i<count($list); $i++) { 
include "$board_skin_path/inc.list.skin.php";
if ($i>0 && $i%$i_count==0) { echo "</tr><tr>"; }

echo "<td>링크이미지</td>";
echo "<td>";
if ($is_checkbox) {
echo "<input type=checkbox name=chk_wr_id[] value='{$list[$i][wr_id]}'>";
}
if ($is_category && $list[$i][ca_name]) {
echo "<a href='{$list[$i][ca_name_href]}'>{$list[$i][ca_name]}</a> ";
}
echo "링크설명";
echo "{$l_edit}";
echo "{$l_delete}";
echo "</td>";
} // end for ?>

</tr>
    </table>
번거로우실텐데도 매번 이렇게 답변해주셔서 정말 너무 감사드립니다. 쉬운 일이 아닐텐데 대단하세요. 항상 많이 배워갑니다.
말씀해주신대로 해봤는데 첫줄에서 공지수만큼 아래로 내려갑니다.
[공지]
[글][빈칸]
[글][글]
숫자를 바꿔서 3칸도 해봤는데 이런경우
[공지]
[글][글][빈칸]
[글][글][글]
이런식으로요.

$i=$noticenum 이라서 아 이런거구나! 싶었는데.. 애써 알려주신게 안되니까 왠지 제가 죄송합니다.. 다시 여쭤보기가 민망하네요...ㅠㅠ
아 그렇게되겠네요. 테스트해가며 수정해볼 수가 없으니..아래처럼 고치세요
 for ($i=$noticenum, $k=0; $i<count($list); $i++,$k++) { 
include "$board_skin_path/inc.list.skin.php";
if ($k>0 && $k%$i_count==0) { echo "</tr><tr>"; }
아 우와 진짜 되네요ㅠㅠ
아는만큼 보인다는걸 여기서 또 실감하게 되네요 거의 다 알려주셨는데도 응용을 못하고 이렇게 또 도움을 받습니다 에휴 요 까막눈을 어째야할까요.. 정말 너무 감사드립니다. 정말 너무 너무 기쁘네요~
© SIRSOFT
현재 페이지 제일 처음으로