여분의 필드(wr_xx) 내용을 적고,,,게시글마다 별도의 메타태그로 사용할 수 있을지?

여분의 필드(wr_xx) 내용을 적고,,,게시글마다 별도의 메타태그로 사용할 수 있을지?

QA

여분의 필드(wr_xx) 내용을 적고,,,게시글마다 별도의 메타태그로 사용할 수 있을지?

답변 3

본문

 

그누보드 head에 메타태그를 넣으면

사이트 전체에 메타태그가 생성됩니다. 

 

각각의 게시글마다 내용이 다르기 때문에 이에 대한 헤시태그 처럼

여분의 필드에 넣으면 이 부분이 메타태그에 포함될 수 있도록 할 수 있는건지?

 

그누보드의 Q&A 태크라는 부분과 동일할듯합니다. 

 

 

이 질문에 댓글 쓰기 :

답변 3

예를 들어볼게요

lib/common.lib.php파일하단에 함수를 만들어줍니다.


// 게시판 테이블 정보를 얻는다.
function get_board_meta($fields='*',$bo_table)
{
    global $g5;
	
	$bo_table = 'g5_write_'.$bo_table;
	$row = sql_fetch(" select $fields from {$bo_table} ");
    return $row[$fields];
}

 

이렇게 함수를 추가하시고

head.sub.php파일을 열어주시고

작당한 위치에

$test = get_board_meta('wr_1',$bo_table);

echo $test;

이렇게 한번 해보세요

그러면 wr_1필드의 값이 뿌려와질겁니다.

해당함수에 wr_2라고하면 wr_2필드의 값이 뿌려와지겠죠

값이 뿌려졌으면 메타태그로만들어서 적용만 시키시면 될듯하네요

상세히 설명해주셔서 감사드립니다.

한가지 죄송합니다...
함수에서 정보를 잘 못 불러오는거 같아서..


/lib/common.php 파일 맨 하단에  get_board_meta 함수추가

/theme/basic/head.sub.php

24라인쯤에 함수 호출하는 부분을 넣었구요

if (strstr($g5['lo_url'], '/'.G5_ADMIN_DIR.'/') || $is_admin == 'super') $g5['lo_url'] = '';

$test = get_board_meta('wr_1',$bo_table);

/*
// 만료된 페이지로 사용하시는 경우


echo %test;  출력을 하면 null상태라서요..(db 내용을 보니..wr_id에 따라 각각 다른값이라서..)
각각의 보드의 게시글마다 wr_id값이 있는데...이 부분을 $row로 설정한거 같은데요

함수 사용 시 $row 어떻게 사용하면 될까요?

해당 소스는 참고하시라고 임의로 만들어본거구요
함수를 보시다시피
wr_1필드,$bo_table(게시판명) 이렇게 두개의 인자값을 함수로 넘겨주고있습니다.
받아주는 함수에서도 마찬가지로 2개를 받아주고있죠
function get_board_meta($fields='*',$bo_table)

여기에 해당글의 wr_id를 넘기고싶으시면 인자값에 추가하시면됩니다.
그리고 아래의 쿼리문을 알맞게 수정을 하셔야하겠지요

$test = get_board_meta('wr_1',$bo_table,$wr_id);
echo $test;

function get_board_meta($fields='*',$bo_table,$wr_id)
{
    global $g5;

$bo_table = 'g5_write_'.$bo_table;
$row = sql_fetch(" select $fields from {$bo_table} where wr_id = {$wr_id} ");
    return $row[$fields];
}

메타태그면 head부분에 적용이 되어야하는데

게시판 필드에다가 넣으면

head아래 content부분에 메타태그가 출력이 되겠네요

head부분에

if($bo_table) //게시판이라면

이라는 조건을 주어서

head부분에서 쿼리를 돌려서 해당 wr_xxx의 값을 불러오면 될듯하네요

사용하는데에는 지장이없을것같습니다.

보들이윤 

 

아래 코드 부분은 스킨(view.skin.php)입니다.  게시글의 head부분은 스킨에서 처리하지 않는거 같구요

/bbs/view.php에서 처리해야 하는건지요? 

 

예시로 참고할 만한 코드가 있을까요?

 

번거롭겠지만, 부탁드립니다.

 


<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
 
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
?>
 
<script src="<?php echo G5_JS_URL; ?>/viewimageresize.js"></script>
 
<!-- 게시물 읽기 시작 { -->
<div id="bo_v_table"><?php echo $board['bo_subject']; ?></div>
 
<article id="bo_v" style="width:<?php echo $width; ?>">
    <header>
        <h1 id="bo_v_title">
            <?php
            if ($category_name) echo $view['ca_name'].' | '; // 분류 출력 끝
            echo cut_str(get_text($view['wr_subject']), 70); // 글제목 출력
            ?>
        </h1>
    </header>
 
    <section id="bo_v_info">
        <h2>페이지 정보</h2>
        작성자 <strong><?php echo $view['name'] ?><?php if ($is_ip_view) { echo " ($ip)"; } ?></strong>
        <span class="sound_only">작성일</span><strong><?php echo date("y-m-d H:i", strtotime($view['wr_datetime'])) ?></strong>
        조회<strong><?php echo number_format($view['wr_hit']) ?>회</strong>
        댓글<strong><?php echo number_format($view['wr_comment']) ?>건</strong>
    </section>
 
    <?php
    if ($view['file']['count']) {
        $cnt = 0;
        for ($i=0; $i<count($view['file']); $i++) {
            if (isset($view['file'][$i]['source']) && $view['file'][$i]['source'] && !$view['file'][$i]['view'])
                $cnt++;
        }
    }
     ?>
...
 

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 1,178
© SIRSOFT
현재 페이지 제일 처음으로