그누보드가 아닌 php파일에서 최신글 추출 팁 정보
그누호환 그누보드가 아닌 php파일에서 최신글 추출 팁본문
안녕하세요 prosper입니다.
최신글을
http://localhost/gnu3/
또는
http://localhost/gnu3/?doc=main.php
또는
http://localhost/gnu3/index.php?doc=main.php (3가지 모두 같은말임 _0_ )
로 뽑는것이 아니라
http://localhost/index.php
로 외부의 php 파일에 의해서 최신글을 뽑는 것을 나타내었습니다.
이소스를 다음 파일 이름으로 저장하시고 인터넷 익스플로어에서
http://localhost/index.php 를 불러보시면 최신글이 나타납니다.
또한 latest()함수의 원형을 보시고 사용법은 다른 최신글 추출글 팁을 참고 하시기 바랍니다.
latest($skin_dir='', $bo_table, $rows=5, $len=40);
=> latest('스킨디렉토리', 게시판이름, 출력할게시물수, 제목길이);
=====================================index.php 소스=====================================
<?PHP
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
define("_GNUBOARD_", TRUE);
// gnu3 디렉토리에 설치 되어있다고 가정
include './gnu3/config.php';
// gnu3 디렉토리 내의 lib 디렉토리를 지정
$tmp = dir("./gnu3/lib");
while ($entry = $tmp->read()) {
// 3.24 수정
if ($entry{0} == ".") continue; // 첫문자가 "."이면 무시한다
include "./gnu3/lib/" . $entry;
}
// DB연결을 위해 dbconfig.php를 인클루드 시킴
include "./gnu3/dbconfig.php";
// DB연결자
$connect = @mysql_connect($cfg[mysql_host], $cfg[mysql_user], $cfg[mysql_pass]);
$select_db = @mysql_select_db($cfg[mysql_db], $connect);
?>
<!-- 최신글 추출 -->
<?latest('notice', '_notice', 5, 50); ?>
<!-- 최신글 추출 -->
======================================================================================
<!-- 2005.05.21 추가 -->
/***
* ps. 디렉토리 에서 상위에서 호출시 발생하는 오류가 있습니다.
* 따라서 gnu3버전의 lib 디렉토리내의 latest_new() 함수를 다음과 같이 추가하여 사용하시기 바랍니다.
**/
////////////////////////////////////////////////
// 사용방법
// <!-- 기존과 동일한 디렉토리일때 -->
// <?latest_new('notice', '_notice', 5, 50, 0); ?>
//
// <!-- 최상위 디렉토리일때 -->
// <?latest_new('notice', '_notice', 5, 50, 1); ?>
//
////////////////////////////////////////////////
===================================== lib/latest.lib.php ================================================
// 최신글 추출
function latest_new($skin_dir='', $bo_table, $rows=5, $len=40, $dir_type=0)
{
global $latest_skin, $cfg;
$tmp_latest_skin = $latest_skin;
// 스킨디렉토리값이 넘어왔다면
if ($skin_dir) {
if ($dir_type == 0) { // 불러오는 디렉토리가 bbs 안일때
$latest_skin = "./skin/latest/$skin_dir";
}else { // 불러오는 디렉토리가 최상위 디렉토리일때
$latest_skin = "./bbs/skin/latest/$skin_dir";
}
}
$sql = " select * from $cfg[table_board] where bo_table = '$bo_table' ";
$bo = sql_fetch($sql);
$bo_subject = $bo[bo_subject];
$sql = " select *
from {$cfg[write_table_prefix]}{$bo_table}
where wr_comment = 0
order by wr_id desc limit 0, $rows ";
$result = sql_query($sql);
for ($i=0; $row = mysql_fetch_array($result); $i++) {
$list[$i] = $row;
if ($dir_type == 0) { // 불러오는 디렉토리가 bbs 안일때
$list[$i][href] = "./?doc=board.php&bo_table=$bo_table&wr_id=$row[wr_id]";
}else { // 불러오는 디렉토리가 최상위 디렉토리일때
$list[$i][href] = "./bbs/?doc=board.php&bo_table=$bo_table&wr_id=$row[wr_id]";
}
// 코멘트 카운트
$list[$i][commentcnt] = "";
if ($row[wr_commentcnt] > 0) {
$list[$i][commentcnt] = "($row[wr_commentcnt])";
}
$list[$i][name] = gblayer($row[mb_id], cut_str($row[wr_name],10), $row[wr_email], $row[wr_homepage]);
$list[$i][subject] = conv_subject($row[wr_subject], $len,"…");
$list[$i][content] = get_text($row[wr_content]);
$list[$i][date] = substr($row[wr_datetime],2,8);
$list[$i][icon_new] = "";
if ($row[wr_datetime] >= date("Y-m-d H:i:s", time() - $bo[bo_new] * 3600)) {
$list[$i][icon_new] = "<img src='$latest_skin/icon_new.gif' align=absmiddle> ";
}
for ($k=1; $k<=$cfg[file_count]; $k++) {
if (@preg_match($cfg[image_extension], $row["wr_file".$k])) {
if ($dir_type == 0) { // 불러오는 디렉토리가 bbs 안일때
$list[$i]["file_image".$k] = "./data/file/$bo_table/" . $row["wr_file".$k];
}else { // 불러오는 디렉토리가 최상위 디렉토리일때
$list[$i]["file_image".$k] = "./bbs/data/file/$bo_table/" . $row["wr_file".$k];
}
}
}
for ($k=1; $k<=$cfg[link_count]; $k++) {
if ($row["wr_link".$k]) {
$link[$i]["link".$k] = set_http(get_text(cut_str($row["wr_link".$k], 255)));
if ($dir_type == 0) { // 불러오는 디렉토리가 bbs 안일때
$link[$i]["link_href".$k] = "./?doc=link.php&$qstr&wr_id=$row[wr_id]&index=$k";
}else { // 불러오는 디렉토리가 최상위 디렉토리일때
$link[$i]["link_href".$k] = "./bbs/?doc=link.php&$qstr&wr_id=$row[wr_id]&index=$k";
}
}
}
}
mysql_free_result($result);
include "$latest_skin/latest.skin.php";
$latest_skin = $tmp_latest_skin;
}
======================================================================================================
최신글을
http://localhost/gnu3/
또는
http://localhost/gnu3/?doc=main.php
또는
http://localhost/gnu3/index.php?doc=main.php (3가지 모두 같은말임 _0_ )
로 뽑는것이 아니라
http://localhost/index.php
로 외부의 php 파일에 의해서 최신글을 뽑는 것을 나타내었습니다.
이소스를 다음 파일 이름으로 저장하시고 인터넷 익스플로어에서
http://localhost/index.php 를 불러보시면 최신글이 나타납니다.
또한 latest()함수의 원형을 보시고 사용법은 다른 최신글 추출글 팁을 참고 하시기 바랍니다.
latest($skin_dir='', $bo_table, $rows=5, $len=40);
=> latest('스킨디렉토리', 게시판이름, 출력할게시물수, 제목길이);
=====================================index.php 소스=====================================
<?PHP
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
define("_GNUBOARD_", TRUE);
// gnu3 디렉토리에 설치 되어있다고 가정
include './gnu3/config.php';
// gnu3 디렉토리 내의 lib 디렉토리를 지정
$tmp = dir("./gnu3/lib");
while ($entry = $tmp->read()) {
// 3.24 수정
if ($entry{0} == ".") continue; // 첫문자가 "."이면 무시한다
include "./gnu3/lib/" . $entry;
}
// DB연결을 위해 dbconfig.php를 인클루드 시킴
include "./gnu3/dbconfig.php";
// DB연결자
$connect = @mysql_connect($cfg[mysql_host], $cfg[mysql_user], $cfg[mysql_pass]);
$select_db = @mysql_select_db($cfg[mysql_db], $connect);
?>
<!-- 최신글 추출 -->
<?latest('notice', '_notice', 5, 50); ?>
<!-- 최신글 추출 -->
======================================================================================
<!-- 2005.05.21 추가 -->
/***
* ps. 디렉토리 에서 상위에서 호출시 발생하는 오류가 있습니다.
* 따라서 gnu3버전의 lib 디렉토리내의 latest_new() 함수를 다음과 같이 추가하여 사용하시기 바랍니다.
**/
////////////////////////////////////////////////
// 사용방법
// <!-- 기존과 동일한 디렉토리일때 -->
// <?latest_new('notice', '_notice', 5, 50, 0); ?>
//
// <!-- 최상위 디렉토리일때 -->
// <?latest_new('notice', '_notice', 5, 50, 1); ?>
//
////////////////////////////////////////////////
===================================== lib/latest.lib.php ================================================
// 최신글 추출
function latest_new($skin_dir='', $bo_table, $rows=5, $len=40, $dir_type=0)
{
global $latest_skin, $cfg;
$tmp_latest_skin = $latest_skin;
// 스킨디렉토리값이 넘어왔다면
if ($skin_dir) {
if ($dir_type == 0) { // 불러오는 디렉토리가 bbs 안일때
$latest_skin = "./skin/latest/$skin_dir";
}else { // 불러오는 디렉토리가 최상위 디렉토리일때
$latest_skin = "./bbs/skin/latest/$skin_dir";
}
}
$sql = " select * from $cfg[table_board] where bo_table = '$bo_table' ";
$bo = sql_fetch($sql);
$bo_subject = $bo[bo_subject];
$sql = " select *
from {$cfg[write_table_prefix]}{$bo_table}
where wr_comment = 0
order by wr_id desc limit 0, $rows ";
$result = sql_query($sql);
for ($i=0; $row = mysql_fetch_array($result); $i++) {
$list[$i] = $row;
if ($dir_type == 0) { // 불러오는 디렉토리가 bbs 안일때
$list[$i][href] = "./?doc=board.php&bo_table=$bo_table&wr_id=$row[wr_id]";
}else { // 불러오는 디렉토리가 최상위 디렉토리일때
$list[$i][href] = "./bbs/?doc=board.php&bo_table=$bo_table&wr_id=$row[wr_id]";
}
// 코멘트 카운트
$list[$i][commentcnt] = "";
if ($row[wr_commentcnt] > 0) {
$list[$i][commentcnt] = "($row[wr_commentcnt])";
}
$list[$i][name] = gblayer($row[mb_id], cut_str($row[wr_name],10), $row[wr_email], $row[wr_homepage]);
$list[$i][subject] = conv_subject($row[wr_subject], $len,"…");
$list[$i][content] = get_text($row[wr_content]);
$list[$i][date] = substr($row[wr_datetime],2,8);
$list[$i][icon_new] = "";
if ($row[wr_datetime] >= date("Y-m-d H:i:s", time() - $bo[bo_new] * 3600)) {
$list[$i][icon_new] = "<img src='$latest_skin/icon_new.gif' align=absmiddle> ";
}
for ($k=1; $k<=$cfg[file_count]; $k++) {
if (@preg_match($cfg[image_extension], $row["wr_file".$k])) {
if ($dir_type == 0) { // 불러오는 디렉토리가 bbs 안일때
$list[$i]["file_image".$k] = "./data/file/$bo_table/" . $row["wr_file".$k];
}else { // 불러오는 디렉토리가 최상위 디렉토리일때
$list[$i]["file_image".$k] = "./bbs/data/file/$bo_table/" . $row["wr_file".$k];
}
}
}
for ($k=1; $k<=$cfg[link_count]; $k++) {
if ($row["wr_link".$k]) {
$link[$i]["link".$k] = set_http(get_text(cut_str($row["wr_link".$k], 255)));
if ($dir_type == 0) { // 불러오는 디렉토리가 bbs 안일때
$link[$i]["link_href".$k] = "./?doc=link.php&$qstr&wr_id=$row[wr_id]&index=$k";
}else { // 불러오는 디렉토리가 최상위 디렉토리일때
$link[$i]["link_href".$k] = "./bbs/?doc=link.php&$qstr&wr_id=$row[wr_id]&index=$k";
}
}
}
}
mysql_free_result($result);
include "$latest_skin/latest.skin.php";
$latest_skin = $tmp_latest_skin;
}
======================================================================================================
추천
0
0
댓글 전체
좋은 팁이네요..
감사 합니다.
감사 합니다.
멋진 팁입니다 잘쓰겠습니다...
이제 설날 연휴도 오늘이면 끝나고 또 열심히 살어야겠지요..
매일 매일 즐겁게 보내고 건강하십시오.
이제 설날 연휴도 오늘이면 끝나고 또 열심히 살어야겠지요..
매일 매일 즐겁게 보내고 건강하십시오.
수고하셔네요.. 내공이 장난이 아니네요 ^_^
여러 유저들께서 필요로 했던 내용이었는데 깔끔하니 올려주셨네요^^;
게시물 상단부에 언급하셨듯이, 최신글을 전체적으로 추출하는 루틴은
그누보드 기본설치시 생성되는 main.php파일을 참조하면 되겠군요.
수고하셨습니다.
자주 들러서 유용한 팁을 많이 선보여 주시길 기대합니다*^^*
게시물 상단부에 언급하셨듯이, 최신글을 전체적으로 추출하는 루틴은
그누보드 기본설치시 생성되는 main.php파일을 참조하면 되겠군요.
수고하셨습니다.
자주 들러서 유용한 팁을 많이 선보여 주시길 기대합니다*^^*
Fatal error: Cannot redeclare alert() in /home/www/shop/lib/error.lib.php on line 11
이게 뭔 뜻예요?
위에처럼 경로랑 모두 맞춰봤는데 요렇게 떠버리는군요 ..아아...
이게 뭔 뜻예요?
위에처럼 경로랑 모두 맞춰봤는데 요렇게 떠버리는군요 ..아아...