테스트 사이트 - 개발 중인 베타 버전입니다

최신글 게시판마다 출력 개수 & 스타일 다르게 하기 채택완료

굼떠 4년 전 조회 1,235

</p>

<p><!-- 최신글 시작 { -->

    <?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

    }

    ?>

    <!-- } 최신글 끝 --></p>

<p>

 

현재 메인에 공지사항과 news 게시판을 사용중인데요

1. 공지사항은 2개만 노출되고 news는 레이아웃을 바꿔서 세개만 출력되게 하고싶은데

어떻게 해야할까요? 

 

위 소스처럼 echo latest('theme/basic', 'notice', 2, 24); 이렇게 적용을 했더니 공지사항이 두개가 나와버리네요...

 

2. 클래스명은 bo_table 끌어오면 될거같아서 이것저것 넣어봣는데

출력이 안되고 공백으로 나오고...

 

3. 공지사항이 먼저 출력되고 news가 그 다음에 나와야 하는데

   news 부터 나오는것은 왜 그럴까요...

 

php 무지랭이라 질문도 엉망진창이네요 ㅠㅠ

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트

</p>

<pre>
<code>   <?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
    }
    ?></code></pre>

<p>

 

위 소스를 보시면 최신글 쿼리에 news 와 notice 를 in 으로 처리하셨으니 아래부분에

</p>

<pre>
<code>        <?php
        // 이 함수가 바로 최신글을 추출하는 역할을 합니다.
        // 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
        // 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
        echo latest('theme/basic', $row[bo_table], 2, 24);
        ?></code></pre>

<p>

 

이렇게 해야 게시판 별로 최신글이 호출됩니다 

게시판 별로 출력갯수를 변경하고 싶으시면

</p>

<pre>
<code>        <?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);
        ?></code></pre>

<p>

 

이런식으로 조건문 처리하시면 됩니다

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

굼떠
4년 전
선생님 감사합니다 ㅠㅠ 잘 적용되네여.

궁금한게 있는데 하나만 더 여쭤봐도 될 지



공지사항 뒤에 뉴스가 오게 하고싶은데

저는 왜 뉴스 뒤에 공지사항이 나올까요??

댓글을 작성하려면 로그인이 필요합니다.

</pre>

<pre>
<code><!-- 최신글 시작 { -->
    <?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
    }
    ?>
    <!-- } 최신글 끝 --></code></pre>

<p>

 

이코드를 전부 빼시고

</p>

<pre>
<code>    <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></code></pre>

<p>

이것만 넣으셔서 처리하셔야 합니다

 

위쪽에 반복문은 필요 없습니다

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

굼떠
4년 전
감사합니다 감사합니다!

댓글을 작성하려면 로그인이 필요합니다.

php 순서대로 처리되기 때문에 출력 순서를 조절하고 싶으시면

 

위 코드 말고

 

</p>

<pre>
<code>    <div style="float:left;<?php echo $lt_style ?>" class="lt_wr">
        <?php
        echo latest('theme/basic', 'news', 2, 24);
        ?>
    </div></code></pre>

<pre>
<code>    <div style="float:left;<?php echo $lt_style ?>" class="lt_wr">
        <?php
        // 이 함수가 바로 최신글을 추출하는 역할을 합니다.
        // 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
        // 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
        echo latest('theme/basic', 'notice', 2, 24);
        ?>
    </div></code></pre>

<p>

 

이런식으로 위치에 맞게 따로 따로 호출하시면 됩니다

 

board 테이블에서 게시판 가져와서 출력하지 마시고 

 

html 코드안에서 하나씩 따로 호출하시면 출력순서 조절 됩니다

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

굼떠
4년 전
말씀하신대로 했더니 순서는 확실해졌는데요
http://koreapilatesunion.co.kr/ 하단쪽에 위치한 게시판인데

게시판이 한번 더 반복되서 공지사항 . 뉴스. 공지사항 . 뉴스 이렇게 총 4개가 출력이 되네요ㅜㅜ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인