그누보드5에 배추빌더의 로고플래너를 달았는데 루트에 설치하지 않고 짧은주소 사용 시 딱 한가지 문제가 있습니다. 채택완료
안녕하세요. 그누보드5 최신 버전에 배추빌더의 플러그인 로고플래너를 달았습니다.
plugin 폴더에 기존 배추빌더 plugin에 있던 logo-planner를 넣고, extend에 기존 배추빌더의 extend에 있던 mw.g5.adapter.extend.php와 mw.logo.planner.extend.php를 넣었더니 정상적으로 작동하네요. (그누보드를 루트에 설치했을 경우에는 모두 정상 작동합니다.)
그런데, 제가 그누보드를 루트에 설치하지 않고 루트/폴더 에 설치했습니다. 이 상태로도 로고플래너가 정상 작동합니다.
단, 이 상태에서 짧은주소를 사용했더니 문제가 발생하네요. (루트에 설치 시에는 짧은주소 사용해도 문제없습니다.)
메인페이지 및 내용관리로 작성한 페이지, 게시판 글쓰기, 게시물 보기에서는 로고플래너로 올린 로고가 정상적으로 보여지는데,
딱 한 곳... 모든 게시판의 리스트에서만 로고플래너로 올린 로고가 깨져버립니다. 게시판 리스트에서만 로고의 경로가 루트/폴더가 아닌 루트로만 되어버립니다.
아마도 extend/mw.g5.adapter.extend.php 의
</p>
<p>$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'] .= '../';
}</p>
<p>
혹시 이 플러그인 그누보드를 루트/폴더에 설치하고 짧은주소 사용하면서도 사용하려면 어디를 손봐야 할까요? 지금 테스트로 사용 중이라서 루트/폴더에 설치한 거고 나중에 실사용할 때는 루트에 설치할 거라서 실 사용사에는 문제없어 보이지만,
그래도 혹시 루트/폴더에 설치해도 사용 가능한 방법이 있다면 알고 싶습니다. 의뢰를 할만한 사안이 아니라면 아시는 분 좀 알려주시면 정말 감사하겠습니다.
이 파일 전체 소스는 아래와 같습니다.
</p>
<p><?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가</p>
<p>if (!defined("G5_PATH")) return;</p>
<p>function get_g4_skin_path($dir, $skin)
{
global $g4;
global $config;</p>
<p> $cf_theme = trim($config['cf_theme']);
$theme_path = $g4['path'].'/'.G5_THEME_DIR.'/'.$cf_theme;</p>
<p> 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;
}</p>
<p>$g4 = $g5;</p>
<p>$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'] .= '../';
}</p>
<p>$g4['table_prefix'] = G5_TABLE_PREFIX;
$g4['cookie_domain'] = G5_COOKIE_DOMAIN;
$g4['path'] = substr($g4['path'], 0, strlen($g4['path'])-1);</p>
<p>$g4['url'] = G5_URL;</p>
<p>$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;</p>
<p>$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";</p>
<p>$g4['admin'] = G5_ADMIN_DIR;
$g4['admin_path'] = $g4['path'].'/'.G5_ADMIN_DIR;
$g4['link_count'] = G5_LINK_COUNT;</p>
<p>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']);
}</p>
<p>$g4['bbs_img_path'] = $board_skin_path."/bbs-img";</p>
<p>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);</p>
<p>
답변 2개
윈도우에서 라라곤 사용하면 개발황경도 디렉토리안해도 됩니다. 항상 모든 것은 실서버와 같은 환경구축이 에러를 줄입니다.
그래서 요즘은 도커를 많이 사용하는 것 같습니다.
답변에 대한 댓글 2개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
제가 집에서 테스트용으로는 윈도우에 라라곤 사용하는데,
이때도 여러개의 샘플 및 테스트를 하느라 폴더를 사용하고 있어서 이런 불편함(?)이 있네요.
웹상에서도 한개의 도메인에 십여개 정도의 샘플을 넣기도 하고요.
혹시라도 소스의 수정으로 가능할까해서 문의드렸었습니다.
도커가 정확히 무엇인지는 모르겠는데, 한번 알아보겠습니다.