게시판 모듈 이외의 메뉴/페이지에서 SEO가 출력안 되는 버그(?) 수정
Web Study/킴스큐 Rb 2014. 9. 15. 19:56 |버그인지는 확실치 않지만 킴스큐 Q&A에 이에 대한 질문을 올렸지만 답변이 달리지
않아서 커스텀으로 직접 SEO가 적용되도록 아래와 같이 수정하였음
1. 증상
- 킴스큐 버전: 1.2.2
- 일단 모든 메뉴, 페이지, 모듈마게시판 모듈이 사용되는 html 페이지의 소스를 까보면 SEO 설정이 정상적으로 되어 있는 것을 확인할 수 있으나 게시판 모듈 이외의 모듈 혹은 페이지가 적용된 메뉴의 html 소스를 까보면 단순히 subject, keywords만 적용이 되어 있음
2. 원인
- 일단 SEO 설정하는 스위치 소스를 보면 아래와 같다.
<meta name="robots" content="ALL" />
<meta name="generator" content="kimsQ-RB <?php echo $d['admin']['version']?>" />
<meta name="author" content="<?php echo $_SERVER['HTTP_HOST']?>" />
<meta name="title" content="<?php echo strip_tags($g['meta_tit'])?>" />
<meta name="subject" content="<?php echo strip_tags($g['meta_sbj'])?>" />
<meta name="keywords" content="<?php echo strip_tags($g['meta_key'])?>" />
<meta name="description" content="<?php echo strip_tags($g['meta_des'])?>" />
<meta name="classification" content="<?php echo strip_tags($g['meta_cla'])?>" />
<meta name="reply-to" content="<?php echo strip_tags($g['meta_rep'])?>" />
<meta name="content-language" content="<?php echo strip_tags($g['meta_lan'])?>" />
<meta name="build" content="<?php echo strip_tags($g['meta_bui'])?>" />
<meta name="copyright" content="Copyrights © <?php echo $date['year']?> <?php echo $_SERVER['HTTP_HOST']?> All Rights Reserved" />
게시판 모듈 소스를(bbs/main.php) 보면 아래와 같이 위의 모든 항목의 SEO애 대해 설정하는 부분이 존재하나 _core를 아무리 뒤져봐도 아래와 같이 SEO 설정하는 부분을 찾지 못하였음.
$_SEO = getDbData($table['s_seo'],'rel=3 and parent='.$B['uid'],'*');
if ($_SEO['uid'])
{
$g['meta_tit'] = $_SEO['title'];
$g['meta_sbj'] = $_SEO['subject'];
$g['meta_key'] = $_SEO['keywords'];
$g['meta_des'] = $_SEO['description'];
$g['meta_cla'] = $_SEO['classification'];
$g['meta_rep'] = $_SEO['replyto'];
$g['meta_lan'] = $_SEO['language'];
$g['meta_bui'] = $_SEO['build'];
}
3. 해결
1) "_core\engine\main.engine.php" 파일에서 70번째 줄의
$_HM = getDbData($table['s_menu'],"id='".$_tmp['id']."' and site=".$s,'*');
의 다음 줄에
$_SEO = getDbData($table['s_seo'],"rel=1 AND parent=".$_HM['uid'],'*');
와 같이 선언해줌. 여기서 rel=1은 메뉴를 의미하고 $_HM['uid']는 메뉴 UID를 의미.
2) 같은 파일에서 129번째 줄에 (if ($_HP['pagetype']==1)조건이 끝난 직후)
아래와 같이 선언해줌.
$_SEO = getDbData($table['s_seo'],"rel=2 AND parent=".$_HP['uid'],'*');
여기서 rel=2은 페이지를 의미하고 $_HP['uid']는 페이지 UID를 의미.
3) 마지막으로 같은 파일의 맨 마지막 부분의 switch 선언하는 부분 바로 위에
아래와 같이 $_SEO 세부값을 적용해준다.
if ($_SEO['uid']) {
$g['meta_tit'] = $_SEO['title'];
$g['meta_sbj'] = $_SEO['subject'];
$g['meta_key'] = $_SEO['keywords'];
$g['meta_des'] = $_SEO['description'];
$g['meta_cla'] = $_SEO['classification'];
$g['meta_rep'] = $_SEO['replyto'];
$g['meta_lan'] = $_SEO['language'];
$g['meta_bui'] = $_SEO['build'];
}
이와 같이 해준 이후로는 모든 페이지에서 설정한 SEO가 정상적으로 출력이 됨.
'Web Study > 킴스큐 Rb' 카테고리의 다른 글
상단 어드민 바를 최고관리자에게만 출력하게 하기 (0) | 2014.09.23 |
---|---|
측면메뉴 목록에서 3차 메뉴 출력 안 되는 현상 관련 (0) | 2014.09.17 |
[버그?]동시에 게시글을 여러 개 열어놨을 때 댓글을 달면 엄한 게시글에 댓글이 달리는 현상 (0) | 2014.08.13 |
소셜 로그인 모듈에서 페이스북 로그인이 갑자기 안 되는 문제 (0) | 2014.08.07 |
MAMP 에서 킴스큐 Rb 설치 참고 (0) | 2013.02.01 |