관리자가 글쓰기에서 체크한 것만 최신글로 불러오기 정보
관리자가 글쓰기에서 체크한 것만 최신글로 불러오기첨부파일
본문
말그대로 관리자가 글쓰기에서 체크박스를 선택하여 글을 쓰면 최신글로 불러오는 것입니다..
lib폴더에
latest.lib.php 이것을 하나더 다름이름으로 만듭니다.
latest2.lib.php이런식으로 다른이름도 상관없구요 일단 이것을 최신글 들어가는 부분 보통 index.php 상단에
<? include_once("$g4[path]/lib/latest2.lib.php"); ?> 를 넣어 최신글 함수를 불러 옵니다.
일단 게시판 글쓰는 폼 스킨 write.skin.php 에서 아래와 같이 wr_1 ~wr_10 중에 쓰지 않는 필드로
사용 하여 체크할수 잇는 폼을 만듭니다. 저 같은 경우는 갤러리로 사용 햇기 때문에 추천상품 , 인기상품을 체크하여 쓰도록 하였습니다.
<tr>
<td width=120 style='padding-left:20px; height:30px;'><span class='w_text'>· 보기옵션</span></td>
<td>
<input type='checkbox' name='wr_7' value="y" <? if($write[wr_7] == "y") echo "checked"; ?>> 신상품
<input type='checkbox' name='wr_8' value="y" <? if($write[wr_8] == "y") echo "checked"; ?>> 추천상품
</td></tr><? } ?>
그런후에 이제 latest2.lib.php의 함수를 아래와 같이 수정합니다.
저같은 경우는 wr_7,wr_8 두개를 사용하여 인기상품,추천상품 체크한것을 불러오도록 함
중간쯤 보시면 인기순,추천순 쿼리 가 잇을 것입니다.
<?
if (!defined('_GNUBOARD_')) exit;
// 최신글 추출
function latest_gallery($skin_dir="", $bo_table, $rows=10, $subject_len=40, $brch="")
{
global $g4;
if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/basic";
$list = array();
$sql = " select * from $g4[board_table] where bo_table = '$bo_table'";
$board = sql_fetch($sql);
$tmp_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_id desc limit 0, $rows ";
//explain($sql);
if ($brch == "ingi")
$brch = "wr_7"; // 인기순으로 쿼리
elseif ($brch == "chu")
$brch ="wr_8"; // 추천순으로 쿼리
else // 넘어온값이 없거나 그이외 일때
$brch = "wr_id"; // 걍 최근순으로 쿼리
$sql = " select * from $tmp_write_table where $brch='y' order by wr_id desc limit 0, $rows ";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++)
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
?>
자 이제 이함수를 index.php의 최신글에서 호출을 합니다.
호출을 하기위해서
<? include_once("$g4[path]/lib/latest2.lib.php"); ?>
을 반드시 index.php의 php코드부분에 넣으시기 바랍니다.
그리구 아래와 같이 최신글을 추출 함수를 호출합니다..
여기서 맨 마지막에 ingi 인자는 wr_7필드가 y로 저장된 글만 추출합니다.
chu 로 쓰시면 wr_8필드의 데이터 값이 y로 저장된 글만 호출 하게 됩니다.
테스트 해보니 이상 없이 잘 추출이 되더군요 .. 질문은 하지마세요 저도 잘 모르니
이것 저것 찾아서 조합하고 테스트 한것이니 ..ㅋㅋ
<?
// 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 스킨은 입력하지 않을 경우 관리자 > 환경설정의 최신글 스킨경로를 기본 스킨으로 합니다.
// 사용방법
// latest(스킨, 게시판아이디, 출력라인, 글자수,추출하고자하는 변수값);
echo latest_gallery("black_gallery",gallery1,8, 70,ingi);
echo "<p>\n";
?>
lib폴더에
latest.lib.php 이것을 하나더 다름이름으로 만듭니다.
latest2.lib.php이런식으로 다른이름도 상관없구요 일단 이것을 최신글 들어가는 부분 보통 index.php 상단에
<? include_once("$g4[path]/lib/latest2.lib.php"); ?> 를 넣어 최신글 함수를 불러 옵니다.
일단 게시판 글쓰는 폼 스킨 write.skin.php 에서 아래와 같이 wr_1 ~wr_10 중에 쓰지 않는 필드로
사용 하여 체크할수 잇는 폼을 만듭니다. 저 같은 경우는 갤러리로 사용 햇기 때문에 추천상품 , 인기상품을 체크하여 쓰도록 하였습니다.
<tr>
<td width=120 style='padding-left:20px; height:30px;'><span class='w_text'>· 보기옵션</span></td>
<td>
<input type='checkbox' name='wr_7' value="y" <? if($write[wr_7] == "y") echo "checked"; ?>> 신상품
<input type='checkbox' name='wr_8' value="y" <? if($write[wr_8] == "y") echo "checked"; ?>> 추천상품
</td></tr><? } ?>
그런후에 이제 latest2.lib.php의 함수를 아래와 같이 수정합니다.
저같은 경우는 wr_7,wr_8 두개를 사용하여 인기상품,추천상품 체크한것을 불러오도록 함
중간쯤 보시면 인기순,추천순 쿼리 가 잇을 것입니다.
<?
if (!defined('_GNUBOARD_')) exit;
// 최신글 추출
function latest_gallery($skin_dir="", $bo_table, $rows=10, $subject_len=40, $brch="")
{
global $g4;
if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/basic";
$list = array();
$sql = " select * from $g4[board_table] where bo_table = '$bo_table'";
$board = sql_fetch($sql);
$tmp_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_id desc limit 0, $rows ";
//explain($sql);
if ($brch == "ingi")
$brch = "wr_7"; // 인기순으로 쿼리
elseif ($brch == "chu")
$brch ="wr_8"; // 추천순으로 쿼리
else // 넘어온값이 없거나 그이외 일때
$brch = "wr_id"; // 걍 최근순으로 쿼리
$sql = " select * from $tmp_write_table where $brch='y' order by wr_id desc limit 0, $rows ";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++)
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
?>
자 이제 이함수를 index.php의 최신글에서 호출을 합니다.
호출을 하기위해서
<? include_once("$g4[path]/lib/latest2.lib.php"); ?>
을 반드시 index.php의 php코드부분에 넣으시기 바랍니다.
그리구 아래와 같이 최신글을 추출 함수를 호출합니다..
여기서 맨 마지막에 ingi 인자는 wr_7필드가 y로 저장된 글만 추출합니다.
chu 로 쓰시면 wr_8필드의 데이터 값이 y로 저장된 글만 호출 하게 됩니다.
테스트 해보니 이상 없이 잘 추출이 되더군요 .. 질문은 하지마세요 저도 잘 모르니
이것 저것 찾아서 조합하고 테스트 한것이니 ..ㅋㅋ
<?
// 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 스킨은 입력하지 않을 경우 관리자 > 환경설정의 최신글 스킨경로를 기본 스킨으로 합니다.
// 사용방법
// latest(스킨, 게시판아이디, 출력라인, 글자수,추출하고자하는 변수값);
echo latest_gallery("black_gallery",gallery1,8, 70,ingi);
echo "<p>\n";
?>
추천
6
6
댓글 22개
고생하였습니다. ^^
이런거 예전에 제가 팁란을 한참 뒤졌었는데 정말 감사합니다.^^
유용하게 잘 사용하겠습니다.
유용하게 잘 사용하겠습니다.
스크랩 했습니다..///언제가 쓸날을 기다리며.............감사드립니다
잘 보고 배웁니다~
좋은 팁입니다. 감사히 사용하겠습니다.
오오오
좋은팁입니다
좋은팁이네요. 감사합니다
정말 좋은팁였습니다. 감사해요~ ^^;
좋은 정보 감사합니다. ^^
적용이 안되네요 ㅜㅜ
혹시해서 다시 수정모드를 보았더니 체킹 안한 상태로 나오네요.
전 4989 스킨에서 적용해보려하는데,
다들 잘 되시나요 ?
도움 주실분~~~~~
혹시해서 다시 수정모드를 보았더니 체킹 안한 상태로 나오네요.
전 4989 스킨에서 적용해보려하는데,
다들 잘 되시나요 ?
도움 주실분~~~~~
고맙습니다~
아주 좋아요
감사합니다. ^^
dd
아주 좋습니다.. 그런데 한개의 게시판이 아닌 여러 게시판에서 이 방법을 사용하려면 어떻게 해야 될까요?
관리자가 글쓰기에서 체크한 것만 최신글로 불러오기
좋네요.^^ 감사^^
굿
관리자가 글쓰기에서 체크한 것만 최신글로 불러오기
좋은 팁 감사드려요. 잘 사용하고 있습니다~
그누보드5용으로 하나 만들어주세요~