테마 내 서브페이지 제작시 이렇게 해도 될까요?

테마 내 서브페이지 제작시 이렇게 해도 될까요?

QA

테마 내 서브페이지 제작시 이렇게 해도 될까요?

본문

현재 테마에 등록되어 있는 모든 테마들이 index하나만 있고 서브페이지가 없는 것 같아 혼자 고민해보다 이렇게 생각해봤는데 맞는지 몰라 고수님들께 질문 드립니다.

 

그누의 테마 구조가 루트의 index.php에서 


if(defined('G5_THEME_PATH')) {
    require_once(G5_THEME_PATH.'/index.php');
    return;
}

이 부분처럼 테마를 사용하고 있다면 테마 폴더의 index.php를 불러오고 return하는 형식인 것 같습니다. 

일단 여기까지는 제 생각이 맞겠지요?

 

그런데 그다음 테마 폴더에 서브페이지(예를 들어 sub.php라고 하겠습니다)를 만들어 테마폴더의 index.php에 링크를 만들어 sub.php를 걸어놓으면 열리지가 않고 루트의 index.php를 불러오는 것 같더라구요.

 

그래서 질답 검색을 해보니 작은별님께서


<?php
include_once('./_common.php');
include_once(G5_THEME_PATH.'/head.php');
?>
내용
내용
<?php 
include_once(G5_THEME_PATH.'/tail.php');
?>

이 방법을 제시해주셨더라구요.

일단 시간이 급한 관계로 이 방법을 적용해서 서브페이지를 잘 사용하였습니다.

 

그런데 위 방법은 주소창에 도메인/theme/해당테마/서브페이지 

이런 형식으로 주소가 표시되는 문제가 발생하더군요.

 

그래서 나름 테마를 사용하면서 서브페이지를 주소창에 문제 없이 불러오고 나중에 그누 업데이트시에 지장을 받지 않는 방법을 생각해보니 

루트에서 index.php가 테마파일을 불러오는 방식처럼 

테마에서 불러오는 서브페이지와 같은 이름의 파일을 루트에 만들고

그 파일의 앞부분에


if(defined('G5_THEME_PATH')) {
    require_once(G5_THEME_PATH.'/sub.php');
    return;
}

이렇게 하면 되지 않을까 생각해봤습니다.

 

즉 index.php가 하듯이 서브페이지도 테마의 각 파일을 불러오고 return하는 방식이죠.

테마 폴더의 서브페이지는 서브의 index.php처럼 head,tail을 맞추면 될 것 같구요.

이렇게 하면 주소창에서도 정삭적으로 도메인/서브페이지.php 라고 표시될 것 같네요.

또한 업데이트 시에도 원본파일을 건드린게 없으니 덮어쓰기에도 지장이 없을 것 같습니다.

 

여기까지는 제 생각인데 이렇게 하는 방식이 그누 테마를 사용하는데 있어 바르게 사용한 것인지

혹 다른 문제가 발생하지는 않는지 모르겠습니다.

테스트 서버에 테스트 하기 전에 잘못된 점이 있으면 그 부분부터 수정하고 적용해보고 싶어

아직 테스트하지는 않았습니다.

 

고수님들께서 이 방법의 오류나 문제점을 지적해주세요~

미리 감사합니다 ^^

이 질문에 댓글 쓰기 :

답변 1

<?php
2include_once('./_common.php');
3include_once(G5_THEME_PATH.'/head.php');
4?>
5내용
6내용
7<?php 
8include_once(G5_THEME_PATH.'/tail.php');
9?>
이 방법을 사용하시되.. 저장되는 문서의 경로를   그누보드가 깔린 root에 저장해보세요..

아~ 굳이 조건문을 이용하지 않고 이렇게 하는 것이 더 좋을 수 있겠군요.
이렇게 하면 테마 폴더 안에 같은 이름의 파일을 만들지 않고도 가능한 방법이 되겠네요.
한번 테스트해보겠습니다~
답변 감사드립니다 ^^

답변을 작성하시기 전에 로그인 해주세요.
전체 476
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT