레이아웃 시스템에대해..
레이아웃 시스템을 구축해서.. 폴더별로 여러가지 레이아웃 업로드, 관리자에서 레이아웃선택하게 해주려고하는데요..
인덱스에다가.. 해당레이아웃에 인쿠르드해서 불러와서 보여줄수 있는것 같은데.. 감이안잡히네요..
index.php
echo voyage_basic($config[cf_voyage_basic]);
이런식으로불러와서 헤더,푸터 파일에
include_once("$g4[path]/voyage/basic/$config[cf_voyage_basic]/head.php");
이렇게 해서 불러올수있는것같은데 불러오지 못하네요.
저와 비슷한시스템을 쓰고있는빌더가 그누xe 빌더하고오누리빌더인데..
저도 해당빌더를참고해서 짜봤는데왜저만오류가날까요??
adm 와.lib파일 그리고 bbs? 이세가지 연동시켜줘야 작동이될까요??
아니면 config.php여기에 직접 해당 레이아웃들이모여있는폴더로바로걸어줘야하는건가요??
차근차근 해가면서 빌더를준비하려고 합니다. ( 완성도높이려면..)
인덱스에다가.. 해당레이아웃에 인쿠르드해서 불러와서 보여줄수 있는것 같은데.. 감이안잡히네요..
index.php
echo voyage_basic($config[cf_voyage_basic]);
이런식으로불러와서 헤더,푸터 파일에
include_once("$g4[path]/voyage/basic/$config[cf_voyage_basic]/head.php");
이렇게 해서 불러올수있는것같은데 불러오지 못하네요.
저와 비슷한시스템을 쓰고있는빌더가 그누xe 빌더하고오누리빌더인데..
저도 해당빌더를참고해서 짜봤는데왜저만오류가날까요??
adm 와.lib파일 그리고 bbs? 이세가지 연동시켜줘야 작동이될까요??
아니면 config.php여기에 직접 해당 레이아웃들이모여있는폴더로바로걸어줘야하는건가요??
차근차근 해가면서 빌더를준비하려고 합니다. ( 완성도높이려면..)
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 6개
겸손함이 완벽함을 추고 하시고져..
유비무환? 이시라 사료 됩니다만..^^
많으신 그누 고수님들 께서 답변을 주시리라..^^
include 가 안된다는 것인지? 아니면 헤더가 오류난다는 것인지
오류가 나는 부분을 좀더 오픈해주시면 답변이 가능할꺼같다는 생각이 드네요.^^
Warning: include_once() [function.include]: Failed opening './head.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/mali/public_html/index.php on line 3
Fatal error: Call to undefined function () in /home/mali/public_html/index.php on line 5
이말인즉슨 인덱스를불러오지못하고 해당라인이 오류있다는말인데요.. 뭘빠트린건지..
도통모르겠습니다..
템플릿을 통한 레이아웃 변경 시스템을 만들었습니다.
항해님도 오누리빌더를 참고 하셨다고 하니 제 경우를 참고로 말씀드릴게요.
(그누XE 빌더도 오누리빌더와 방식은 거의 흡사합니다.)
1. 먼저 디비를 생성해야 합니다.템플릿 값을 저장해야 하니까요.
전 cf_template_skin 이라는 필드[varchar (255)]를 g4_config에 추가 했습니다.
2. 그 다음 관리자가 템플릿을 설정해줘야 하므로..관리자 페이지의
config_form.php 파일에 다음과 같이 추가 해줬습니다.
<th>템플릿 스킨</th>
<td><select id="cf_template_skin" name="cf_template_skin" required itemname="템플릿 스킨">
<?
$arr = get_skin_dir("template");
for ($i=0; $i<count($arr); $i++) {
echo "<option value='$arr[$i]'>$arr[$i]</option>\n";
}
?></select>
<script type="text/javascript"> document.getElementById("cf_template_skin").value="<?=$config[cf_template_skin]?>";</script></td>
</tr>
$arr = get_skin_dir("template"); 라인에서 알 수 있다 시피 /skin/template/ 에 템플릿 스킨 파일을 위치시킨것을 알 수 있을 겁니다.
또한 이 부분은 따로 페이지를 만들어도 되고 저처럼 그냥 기존의 config_form 에 넣어도 됩니다.
3. config_form_update.php에 추가
cf_template_skin = '$_POST[cf_template_skin]',
여기까지 하면 일단 관리자가 정한 템플릿 값을 디비에 저장하는데 성공 할 것입니다.
4. /extend/ 디렉토리에 원하는 이름으로 (예:builder.php) 아래와 같은 내용을 넣어서 파일을 하나 만들어 주세요.
<?
$template_skin_path = "$g4[path]/skin/template/$config[cf_template_skin]";
?>
5. 기존의 head.php 파일의 모든 내용은 /skin/template/스킨명/head.php 에 넣으시고
아래처럼 대체 하십시요.
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once("$g4[path]/head.sub.php");
include_once("$g4[path]/lib/latest.lib.php");
include_once("$g4[path]/lib/visit.lib.php");
include_once("$g4[path]/lib/outlogin.lib.php");
include_once("$template_skin_path/head.php"); // 템플릿에 있는 헤드를 불러오라는 얘기입니다.
?>
6.tail.php 파일의 내용도 head.php와 같은 방식으로 템플릿쪽으로 넘겨주면 됩니다.
전 위의 방법으로 템플릿형태를 구성했고 현재까지 잘돌아갑니다.
ps.새해복 많이 받으시고 스킨과 팁 잘쓰고 있습니다. 감사합니다.
특히 우리 이천이지님을 도와주신것 감사합니다 ㅋㅋ.
이천이지행님께 시하님의말씀 많이 듣고있습다. -ㅅ-