한 개의 그누보드로 여러 개의 홈페이지를 세팅할 수 있는 방법이 있을까요?
본문
안녕하세요.
제가 그누보드5를 이용하여 샘플용 홈페이지를 많이 만드는데,
기존에는 한 개의 계정에
도메인/폴더명1
도메인/폴더명2
...
도메인/폴더명10
이런 식으로 폴더마다 그누보드를 다 세팅해서 작업했습니다.
테이블명은 g5폴더명_ 이런 식으로 입력했고요.
그런데
이렇게 하다 보니 용량 사용이 꽤 늘어나고 작업 방법도 비효율적이라는 생각이 들더라고요.
샘플의 특성상,
홈페이지 구조가 모두 동일합니다.
생성되는 게시판도 동일하고, 게시판 내 데이터도 동일하고,
내용 관리로 생성하는 페이지 역시 동일합니다.
단지 디자인만 달라지니 theme안의 내용만 서로 달라지게 됩니다.
css, head, index, tail, 이미지...
그래서
한 개의 그누보드에 theme 별로 다른 홈페이지가 보이게 할 수 있는 방법이 없을까 생각을 해보게 되었습니다.
혹시 방법이 있을까요?
답변 5
구조랑 틀이 비슷하고 db데이터 구조가 비슷하다면 기능 커스텀해서 구현해야 하는거라 순정으로는 불가한 부분입니다.
/1, /2, ~
common.php
// 테마경로
if(defined('_THEME_PREVIEW_') && _THEME_PREVIEW_ === true)
$config['cf_theme'] = isset($_GET['theme']) ? trim($_GET['theme']) : '';
if ($_SERVER['REQUEST_URI'] == '/1/') $config['cf_theme'] = 'basic1';
else if ($_SERVER['REQUEST_URI'] == '/2/') $config['cf_theme'] = 'basic2';
/1/index.php, /2/index.php
<?php
function find_common_php() {
$current_dir = dirname(__FILE__);
$parent_dir = "../";
$count = 0;
while (!file_exists($current_dir . "/common.php")) {
$current_dir = dirname($current_dir);
$count++;
if ($current_dir === '/' || $current_dir === '.') {
break;
}
}
return $count;
}
$up_count = find_common_php();
$include_path = str_repeat('../', $up_count) . 'common.php';
include_once($include_path);
define('_INDEX_', true);
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if(defined('G5_THEME_PATH')) {
require_once(G5_THEME_PATH.'/index.php');
return;
}
if (G5_IS_MOBILE) {
include_once(G5_MOBILE_PATH.'/index.php');
return;
}
include_once(G5_PATH.'/head.php');
이렇게 하시면 테마가 각각 적용 됩니다.
!-->!-->상단과 하단 프레임만 어느정도 맞춰서...
구성은 아이프레임으로 최대한 맞춰보면 어떨가 합니다. 그럼 말씀대로 한개의 그누보드에서
여러사이트를 바라보도록 구성이 가능할듯합니다.
다만..아이프레임을 사용안하고 구성을 한다면 여러가지 제약이 생겨 쉽지 않을것으로 생각됩니다.
제 생각으로는 샘플용이기에 디비쪽은 하나로 통일해서 사용하면 될거 같아서요
구분을 서브도메인을 써보는건 어떨까요?
서브도메인 명으로 구분하여 테마명 매칭해서 하시면
테마가 없는 서브도메인일 경우 기본테마로 보내시고
DB 계정만 공유해도
훨씬 펀하실 겁니다.