head.php 에 포인트 점수와 쪽지 표시를 하려고 합니다. > 그누4 질문답변

그누4 질문답변

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

head.php 에 포인트 점수와 쪽지 표시를 하려고 합니다. 정보

head.php 에 포인트 점수와 쪽지 표시를 하려고 합니다.

본문

로그인 하고 나면 본래 outlogin.skin2.php 에 표시되는
포인터 점수와 쪽지 갯수를
head.php 에 표시하려고 합니다.
sir.co.kr 에서처럼요.

그런데

포인트 점수 <?=$point?>
쪽지 숫자 <?=$memo_not_read?>

이렇게 그대로 옮겨 썼는데 표시되지 않더라구요.
좀전에 닉네임 표시할 때도 똑같은 경우가 있었는데
답변대로 하니까 되더라구요.
outlogin.skin2.php 에 적혀 있는 것과 다르더라구요.

왜 그런지도 알려주시면 감사하겠습니다.


  • 복사

댓글 전체

G4/lib/outlogin.lib.php
--------------------------------------------------------------
<?
if (!defined('_GNUBOARD_')) exit;

// 외부로그인
function outlogin($skin_dir="basic")
{
    global $config, $member, $g4, $urlencode, $is_admin;

    $nick  = cut_str($member['mb_nick'], $config['cf_cut_name']);
    $point = number_format($member['mb_point']);
    // 읽지 않은 쪽지가 있다면
    $sql = " select count(*) as cnt
              from {$g4['memo_table']}
              where me_recv_mb_id = '{$member['mb_id']}'
                and me_read_datetime = '0000-00-00 00:00:00' ";
    $row = sql_fetch($sql);
    $memo_not_read = $row['cnt'];

    $outlogin_skin_path = "$g4[path]/skin/outlogin/$skin_dir";

    $is_auth = false;
    $sql = " select count(*) as cnt from $g4[auth_table] where mb_id = '$member[mb_id]' ";
    $row = sql_fetch($sql);
    if ($row['cnt'])
        $is_auth = true;

    ob_start();
    if ($member['mb_id'])
        include_once ("$outlogin_skin_path/outlogin.skin.2.php");
    else
        include_once ("$outlogin_skin_path/outlogin.skin.1.php"); // 로그인 전이라면
    $content = ob_get_contents();
    ob_end_clean();

    return $content;
}
?>
-----------------------------------------------------------------
outlogin.lib.php...
는 아웃로그인에 전용으로 적용되는 변수들을 일반적으로 정의한 라이브러리 파일로서 표시할 파일상단에
 include_once("$g4[path]/lib/outlogin.lib.php");
와 같은 식으로 불러들입니다...

위 파일의 내용중 관련내용을 언급하자면...
------------------------------------------------------------------
    $nick  = cut_str($member['mb_nick'], $config['cf_cut_name']); //아웃로그인상의 닉네임표시
    $point = number_format($member['mb_point']); //아웃로그인상의 포인트표시
   
    // 아웃로그인 상에 읽지 않은 쪽지가 있다면 갯수표시
    $sql = " select count(*) as cnt
              from {$g4['memo_table']}
              where me_recv_mb_id = '{$member['mb_id']}'
                and me_read_datetime = '0000-00-00 00:00:00' ";
    $row = sql_fetch($sql);
    $memo_not_read = $row['cnt'];

    $outlogin_skin_path = "$g4[path]/skin/outlogin/$skin_dir"; //라이브러리 파일이 적용될 스킨의 경로

    if ($member['mb_id'])
        include_once ("$outlogin_skin_path/outlogin.skin.2.php"); // 로그인 이후 인클루드
    else
        include_once ("$outlogin_skin_path/outlogin.skin.1.php"); // 로그인 이전 인클루드
---------------------------------------------------------------
대충감이 오셨겠지만  $nick,$point와 같은 아웃로그인 전용변수들은 인덱스나 임의생성페이지에서 안먹히는게 정상입니다...
스킨을 벗어난 곳에서 굳이 표시하고자 한다면...

* 포인트의 경우
<?= number_format($member['mb_point'])?>
혹은 그냥 <?=$member['mb_point']?>
차이는 천단위로  ,가 찍히느냐 안찍히느냐...

* 쪽지의 경우
<?
    $sql = " select count(*) as cnt
              from {$g4['memo_table']}
              where me_recv_mb_id = '{$member['mb_id']}'
                and me_read_datetime = '0000-00-00 00:00:00' ";
    $row = sql_fetch($sql);
    $memo_not_read = $row['cnt'];
echo " $memo_not_read ";
?>

등과같은 변수를 써야 함

정리해 본다면 회원권한(=로그인 상태인지 아닌지)에 따라 표시유무를 달리하기 위하여
한줄로 표시의 예...
-------------------------------------------------------
<? if (!$member[mb_id]) { ?>
*로그인안한 상태의 내용 혹은 공백
<? } else { ?>
<a href="javascript:win_point();">*포인트 : <?= number_format($member['mb_point'])?>점</a>&nbsp;
<a href="javascript:win_memo();">*안읽은 쪽지 : <?
    $sql = " select count(*) as cnt
              from {$g4['memo_table']}
              where me_recv_mb_id = '{$member['mb_id']}'
                and me_read_datetime = '0000-00-00 00:00:00' ";
    $row = sql_fetch($sql);
    $memo_not_read = $row['cnt'];
echo " $memo_not_read ";
?>개</a>
<? } ?>
-------------------------------------------------------
덧붙여 멤버테이블과 관련한 변수들은 아래링크 참고...
http://www.sir.co.kr/bbs/board.php?bo_table=g4_dic&wr_id=108

그러나 언급한 위 방법보다는 아무래도 스킨모듈에 따라 스킨을 제작하는 게 더 용이하고 직관적이리라 봅니다..
© SIRSOFT
현재 페이지 제일 처음으로