한개의 게시판으로 다양한 출력형태 구현하기
1. 게시판 list.skin.php 에 아래 코드 적용
--------------------------------------
if($board[bo_10]){
include_once("$board_skin_path/list/$board[bo_10]");
//웹페이지인경우
if($board[bo_10] == 'page.skin.php'){
if($admin_href)
include_once("$board_skin_path/adm.skin.php");
}
}
else
include_once("$board_skin_path/list/basic.skin.php");
2. 스킨 디렉토리에 list 폴더 생성
예) g4/skin/board/basic/list
--> list 폴더에 목록에서 출력할 형태의 소스를 넣는다.
3. 관리자 board_form.php 에 여분필드 10을 아래와 같이 수정
----------------------------------------------------------
<tr class='ht'>
<td><input type=checkbox name=chk_10 value=1></td>
<td>여분필드 설정</td>
<td>
<?
if($board[bo_skin] == 'basic'){
$set_file = $board[bo_skin]."/list";
?>
<select name=bo_10 required itemname="출력형태">
<?
$arr = get_file_dir($set_file);
for ($i=0; $i<count($arr); $i++) {
echo "<option value='$arr[$i]'>$arr[$i]</option>\n";
}
?></select>
<script language="JavaScript">document.fboardform.bo_10.value="<?=$board[bo_10]?>";</script>
<?}
else{
?><input type=text class=ed style='width:80%;' name='bo_10' value='<?=get_text($board["bo_10"])?>' title='여분필드 10 설정값'><?}
?>
</td>
</tr>
<tr><td colspan=3 class='line2'></td></tr>
<? for ($i=1; $i<=9; $i++) { ?>
<tr class='ht'>
<td><input type=checkbox name=chk_<?=$i?> value=1></td>
<td><input type=text class=ed name='bo_<?=$i?>_subj' value='<?=get_text($board["bo_{$i}_subj"])?>' title='여분필드 <?=$i?> 제목' style='text-align:right;font-weight:bold;'></td>
<td><input type=text class=ed style='width:80%;' name='bo_<?=$i?>' value='<?=get_text($board["bo_$i"])?>' title='여분필드 <?=$i?> 설정값'></td>
</tr>
<? } ?>
-----------------------------------------------------------
4. amin.lib.php 에 아래코드 추가
-------------------------------
// 스킨경로를 얻는다
function get_file_dir($skin, $len='')
{
global $g4;
$result_array = array();
$dirname = "$g4[path]/skin/board/$skin/";
$handle = opendir($dirname);
$i=0;
while ($file = readdir($handle))
{
if($file == "."||$file == "..") continue;
if (!(is_dir($dirname.$file))){
if (!(preg_match("/\.(bak)$/i", $file)))
$result_array[] = $file;
}
$i++;
}
closedir($handle);
sort($result_array);
return $result_array;
}
----------------------------------------------------
5. 응용하기
기존 공개된 스킨들의 list.skin.php 파일들을 list 폴더에 파일명을 변형하여 세팅합니다.
예) list.skin.php ---> list/web.skin.php
** if (!(preg_match("/\.(bak)$/i", $file)))
==>> 소스중에 이부분을 넣는 이유는 원본파일을 새로작성할 경우 bak 파일이 생성되어 검색이 되기때문에 예외를 시켜주어야 합니다.
댓글 9개
게시판 목록
그누4 팁자료실
나누면 즐거움이 커집니다.
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 3309 | 3년 전 | 1798 | ||
| 3308 | 11년 전 | 2087 | ||
| 3307 |
uPAmJ903
|
6년 전 | 4742 | |
| 3306 |
바른사나이
|
6년 전 | 3269 | |
| 3305 | 6년 전 | 12297 | ||
| 3304 | 7년 전 | 3699 | ||
| 3303 | 7년 전 | 3736 | ||
| 3302 |
지리산초보
|
7년 전 | 13588 | |
| 3301 |
sozet
|
8년 전 | 4897 | |
| 3300 |
sozet
|
8년 전 | 5962 | |
| 3299 |
sozet
|
8년 전 | 10855 | |
| 3298 | 8년 전 | 4008 | ||
| 3297 |
또치하우스
|
8년 전 | 4433 | |
| 3296 | 8년 전 | 11961 | ||
| 3295 |
또치하우스
|
8년 전 | 14978 | |
| 3294 | 8년 전 | 6016 | ||
| 3293 | 8년 전 | 5583 | ||
| 3292 |
|
9년 전 | 5309 | |
| 3291 | 9년 전 | 13673 | ||
| 3290 | 9년 전 | 5042 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기