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

메인메뉴 새글 아이콘 출력 채택완료

Suprussy73 3년 전 조회 2,037

안녕하세요

 

게시판에 새글이 있을 경우 해당 메뉴에 새글 아이콘(icon_new.gif)이 나오게 하려고 합니다.

G5 기준글을 찾기는 했는데 적용이 안되네요...

https://sir.kr/g5_tip/1084" target="_blank">https://sir.kr/g5_tip/1084

 

차이가 있다면

1. 테마를 사용

2. shop.head.php에 적용

 

이 두가지인데 상관이 있는지는 모르겠네요..

제 코드 남겨놓습니다.

 

www/lib/new.icon.lib.php

</p>

<p><?php

function tto_new_icon($bo_table) {

  global $g5;

  $temp = sql_fetch("select bo_new from {$g5['board_table']} where bo_table = '$bo_table'");

  $time_set = date("Y-m-d H:i:s", time() - $temp[bo_new] * 60 * 60);

  $row = sql_fetch("select wr_id as cnt from {$g5['write_prefix']}$bo_table where wr_is_comment = '0' and wr_datetime > '$time_set'");

  if($row[cnt])

echo " new"; // 사용 이미지에 맞게 경로.파일 수정

//echo " <img src='/img/icon_new.gif' alt='' />"; // 사용 이미지에 맞게 경로.파일 수정

}

?></p>

<p>

 

shop.head.php

 

include_once(G5_LIB_PATH.'/new.icon.lib.php'); // 추가

 

</p>

<p><nav id="menu">

        <h2>메인메뉴</h2>

        <ul>

            <?php

            $sql = " select *

                        from {$g5['menu_table']}

                        where me_use = '1'

                          and length(me_code) = '2'

                        order by me_order, me_id ";

            $result = sql_query($sql, false);

            $gnb_zindex = 999; // gnb_1dli z-index 값 설정용

            $menu_datas = array();</p>

<p>            for ($i=0; $row=sql_fetch_array($result); $i++) {

                $menu_datas[$i] = $row;</p>

<p>                $sql2 = " select *

                            from {$g5['menu_table']}

                            where me_use = '1'

                              and length(me_code) = '4'

                              and substring(me_code, 1, 2) = '{$row['me_code']}'

                            order by me_order, me_id ";

                $result2 = sql_query($sql2);

                for ($k=0; $row2=sql_fetch_array($result2); $k++) {

                    $menu_datas[$i]['sub'][$k] = $row2;

                }</p>

<p>            }</p>

<p>            $i = 0;

            foreach( $menu_datas as $row ){

                if( empty($row) ) continue; 

            ?>

            <li class="menu_1dli">

                <a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="menu_1da"><?php echo $row['me_name'] ?> <?php echo tto_new_icon($row2['bo_table']) ?></a>

                <?php

                $k = 0;

                foreach( (array) $row['sub'] as $row2 ){</p>

<p>                    if( empty($row2) ) continue; </p>

<p>                    if($k == 0)

                        echo '<span class="bg"><i class="fa fa-chevron-down"></i></span><ul class="menu_2dul">'.PHP_EOL;

                ?>

            <li class="menu_2dli"><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" class="menu_2da"><?php echo $row2['me_name'] ?></a></li>

            <?php

                $k++;

                }   //end foreach $row2</p>

<p>                if($k > 0)

                    echo '</ul>'.PHP_EOL;

                ?>

            </li>

            <?php

            $i++;

            }   //end foreach $row</p>

<p>            if ($i == 0) {  ?>

            <li class="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 &gt; 환경설정 &gt; 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li>

            <?php } ?>

        </ul></p>

<p>    </nav></p>

<p>

 

아래가 추가된 코드입니다.

<?php echo tto_new_icon($row2['bo_table']) ?>

 

해결될 수 있는 문제면 좋겠네요 ㅠ

 

감사합니다.

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

답변 2개

채택된 답변
+20 포인트
3년 전

menu 테이블에는 bo_table 칼럼 값이 없습니다.

menu 테이블의 me_link 칼럼에만 게시판 URL 인 경우,

"http://~/bbs/board.php?bo_table=notice" 형태로 들어가 있습니다.

me_link 값을 파싱하여 bo_table 값을 추출하여 넘겨주어야 됩니다.

1.

foreach( $menu_datas as $row ){
  if( empty($row) ) continue;
->

foreach( $menu_datas as $row ){
  if( empty($row) ) continue;
  $parts = parse_url($row['me_link']);
  parse_str($parts['query'], $query);


2.

<?php echo tto_new_icon($row2['bo_table']) ?>

->

<?php echo tto_new_icon($query['bo_table']) ?>

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

답변에 대한 댓글 1개

S
Suprussy73
3년 전
잘 되네요!
또 하나 배우고 갑니다.
감사합니다~~

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

독구파랑

$row2 는 for 내부에서만 도는 것 아닌가요?

$row2['bo_table']를 출력해서 정상적으로 출력되는지 확인하십시오
로그인 후 평가할 수 있습니다

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

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

로그인