그누보드5에 배추빌더의 로고플래너를 달았는데 루트에 설치하지 않고 짧은주소 사용 시 딱 한가지 문제가 있습니다.
본문
안녕하세요.
그누보드5 최신 버전에 배추빌더의 플러그인 로고플래너를 달았습니다.
plugin 폴더에 기존 배추빌더 plugin에 있던 logo-planner를 넣고,
extend에 기존 배추빌더의 extend에 있던 mw.g5.adapter.extend.php와 mw.logo.planner.extend.php를 넣었더니 정상적으로 작동하네요.
(그누보드를 루트에 설치했을 경우에는 모두 정상 작동합니다.)
그런데,
제가 그누보드를 루트에 설치하지 않고 루트/폴더 에 설치했습니다.
이 상태로도 로고플래너가 정상 작동합니다.
단, 이 상태에서 짧은주소를 사용했더니 문제가 발생하네요.
(루트에 설치 시에는 짧은주소 사용해도 문제없습니다.)
메인페이지 및 내용관리로 작성한 페이지, 게시판 글쓰기, 게시물 보기에서는
로고플래너로 올린 로고가 정상적으로 보여지는데,
딱 한 곳...
모든 게시판의 리스트에서만 로고플래너로 올린 로고가 깨져버립니다.
게시판 리스트에서만 로고의 경로가 루트/폴더가 아닌 루트로만 되어버립니다.
아마도
extend/mw.g5.adapter.extend.php
의
$g4['path'] = '';
$script_name = substr($_SERVER['SCRIPT_FILENAME'], strpos($_SERVER['SCRIPT_FILENAME'], G5_PATH));
$dir = dirname(str_replace(G5_PATH, '', $script_name));
if ($dir == '/' or $dir == '\\')
$g4['path'] = './';
else
for ($i=0, $m=substr_count($dir, '/'); $i<$m; ++$i) {
$g4['path'] .= '../';
}
이 부분을 수정해 줘야 할듯한데, 제 실력으로는 아무리 해봐도 되지를 않네요.
혹시 이 플러그인 그누보드를 루트/폴더에 설치하고 짧은주소 사용하면서도 사용하려면 어디를 손봐야 할까요?
지금 테스트로 사용 중이라서 루트/폴더에 설치한 거고 나중에 실사용할 때는 루트에 설치할 거라서 실 사용사에는 문제없어 보이지만,
그래도 혹시 루트/폴더에 설치해도 사용 가능한 방법이 있다면 알고 싶습니다.
의뢰를 할만한 사안이 아니라면 아시는 분 좀 알려주시면 정말 감사하겠습니다.
이 파일 전체 소스는 아래와 같습니다.
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if (!defined("G5_PATH")) return;
function get_g4_skin_path($dir, $skin)
{
global $g4;
global $config;
$cf_theme = trim($config['cf_theme']);
$theme_path = $g4['path'].'/'.G5_THEME_DIR.'/'.$cf_theme;
if (preg_match('#^theme/(.+)$#', $skin, $match)) {
if (G5_IS_MOBILE) {
$skin_path = $theme_path.'/'.G5_MOBILE_DIR.'/'.G5_SKIN_DIR.'/'.$dir.'/'.$match[1];
if (!is_dir($skin_path))
$skin_path = $theme_path.'/'.G5_SKIN_DIR.'/'.$dir.'/'.$match[1];
}
else {
$skin_path = $theme_path.'/'.G5_SKIN_DIR.'/'.$dir.'/'.$match[1];
}
}
else {
if (G5_IS_MOBILE) {
$skin_path = $g4['mobile_skin_path'].'/'.$dir.'/'.$skin;
}
else {
$skin_path = $g4['skin_path'].'/'.$dir.'/'.$skin;
}
}
return $skin_path;
}
$g4 = $g5;
$g4['path'] = '';
$script_name = substr($_SERVER['SCRIPT_FILENAME'], strpos($_SERVER['SCRIPT_FILENAME'], G5_PATH));
$dir = dirname(str_replace(G5_PATH, '', $script_name));
if ($dir == '/' or $dir == '\\')
$g4['path'] = './';
else
for ($i=0, $m=substr_count($dir, '/'); $i<$m; ++$i) {
$g4['path'] .= '../';
}
$g4['table_prefix'] = G5_TABLE_PREFIX;
$g4['cookie_domain'] = G5_COOKIE_DOMAIN;
$g4['path'] = substr($g4['path'], 0, strlen($g4['path'])-1);
$g4['url'] = G5_URL;
$g4['skin_path'] = $g4['path'].'/'.G5_SKIN_DIR;
$g4['mobile_skin_path'] = $g4['path'].'/'.G5_MOBILE_DIR.'/'.G5_SKIN_DIR;
$g4['bbs'] = G5_BBS_DIR;
$g4['bbs_path'] = $g4['path'].'/'.G5_BBS_DIR;
$g4['server_time'] = time();
$g4['time_ymd'] = date("Y-m-d", $g4['server_time']);
$g4['time_his'] = date("H:i:s", $g4['server_time']);
$g4['time_ymdhis'] = date("Y-m-d H:i:s", $g4['server_time']);
$g4['charset'] = "utf-8";
$g4['admin'] = G5_ADMIN_DIR;
$g4['admin_path'] = $g4['path'].'/'.G5_ADMIN_DIR;
$g4['link_count'] = G5_LINK_COUNT;
if (G5_IS_MOBILE) {
$board_skin_path = get_g4_skin_path('board', $board['bo_mobile_skin']);
$member_skin_path = get_g4_skin_path('member', $config['cf_mobile_member_skin']);
$new_skin_path = get_g4_skin_path('new', $config['cf_mobile_new_skin']);
$search_skin_path = get_g4_skin_path('search', $config['cf_mobile_search_skin']);
$connect_skin_path = get_g4_skin_path('connect', $config['cf_mobile_connect_skin']);
$faq_skin_path = get_g4_skin_path('faq', $config['cf_mobile_faq_skin']);
}
else {
$board_skin_path = get_g4_skin_path('board', $board['bo_skin']);
$member_skin_path = get_g4_skin_path('member', $config['cf_member_skin']);
$new_skin_path = get_g4_skin_path('new', $config['cf_new_skin']);
$search_skin_path = get_g4_skin_path('search', $config['cf_search_skin']);
$connect_skin_path = get_g4_skin_path('connect', $config['cf_connect_skin']);
$faq_skin_path = get_g4_skin_path('faq', $config['cf_faq_skin']);
}
$g4['bbs_img_path'] = $board_skin_path."/bbs-img";
define('_G4_ALPHAUPPER_', G5_ALPHAUPPER);
define('_G4_ALPHALOWER_', G5_ALPHALOWER);
define('_G4_ALPHABETIC_', G5_ALPHABETIC);
define('_G4_NUMERIC_', G5_NUMERIC);
define('_G4_HANGUL_', G5_HANGUL);
define('_G4_SPACE_', G5_SPACE);
define('_G4_SPECIAL_', G5_SPECIAL);
답변 2
윈도우에서 라라곤 사용하면 개발황경도 디렉토리안해도 됩니다. 항상 모든 것은 실서버와 같은 환경구축이 에러를 줄입니다.
그래서 요즘은 도커를 많이 사용하는 것 같습니다.
윈도우에서 라라곤 사용하면 개발황경도 디렉토리안해도 됩니다. 항상 모든 것은 실서버와 같은 환경구축이 에러를 줄입니다.
그래서 요즘은 도커를 많이 사용하는 것 같습니다.