본문 바로가기
재밌는 IT 개발/그누보드 테마 제작기(記)

그누보드 테마 제작 33 - 일반 페이지(회사소개/개인정보처리방침/서비스이용약관) 개발

by 만수킴 2020. 7. 25.

드디어 마지막 작업입니다.
(위젯이 일부 남은것 같긴 한데... 애써 무시하고 있습니다.)

일반페이지는 너무 심플해 보여서 바로 진행합니다.

그누보드 기본테마의 일반페이지 모습
제작해야 하는 테마의 일반페이지 모습

 

/bbs/content.php 를 호출하면 나타나는 페이지이고
테마 작업은 /theme/mt703/skin/content/basic/content.skin.php 가 되겠습니다.

어랏...
위 파일을 고쳤는데... 반응이 없습니다...
(아.. 좀.. 날로 먹음 안되나? ㅡㅡ++)

/bbs/content.php 파일을 살펴보아야겠습니다.
아니면 관리자에서 설정하는 곳이 있는지도요.

먼저 /bbs/content.php 부터...

1. get 파라메터로 받아온 co_id 값부터 정규식으로 무언가를 걸러냅니다.

$co_id = preg_replace('/[^a-z0-9_]/i', '', $co_id);

2. $co_seo_title값이 있는지 확인하네요.

if($co_seo_title){
    $co = get_content_by_field($g5['content_table'], 'content', 'co_seo_title', generate_seo_title($co_seo_title));
    $co_id = $co['co_id'];
} else {
    $co = get_content_db($co_id);
}

그런데 그 값은 content.php에는 없습니다.
그렇다면, common.php 에서 설정한다는 말인데... 여기서도 안보입니다.
어드민 폴더를 제외하고...
오직 uri.lib.php의 seo_title_update() 함수에서 값을 할당해줍니다.

        $co = get_content_db($pk_id, true);
        if( ! $co['co_seo_title'] && $co['co_subject'] ){
            $co_seo_title = exist_seo_title_recursive('content', generate_seo_title($co['co_subject']), $db_table, $pk_id);

            $sql = " update `{$db_table}` set co_seo_title = '{$co_seo_title}' where co_id = '{$pk_id}' ";
            sql_query($sql);
        }


잉... 점점 산으로...
아... 어떤 경우에는 파라메터 값으로 받아올 수 도 있겠네요.
"/bbs/content.php?co_id=company&co_seo_title=회사소개
이런 방식으로요.
라고 생각하고 일단 넘어가는게 정신건강에 좋을 듯 합니다.

암튼 결과적으로 어쨌든...
$co 라는 변수에 g5_content 테이블에 있는 정보를 배열로 담습니다.

g5_content에 기본적으로 저장된 내용

// ===== $co 배열 변수에 담긴 내용
co => Array
(
    [co_id] => company
    [co_html] => 1
    [co_subject] => 회사소개
    [co_content] => <p align=center><b>회사소개에 대한 내용을 입력하십시오.</b></p>
    [co_seo_title] => 회사소개
    [co_mobile_content] => 
    [co_skin] => 
    [co_mobile_skin] => 
    [co_tag_filter_use] => 0
    [co_hit] => 0
    [co_include_head] => 
    [co_include_tail] => 
)

잠깐... 스톱... 
아.. 관리자 먼저 볼걸 그랬어요 ㅠㅠ
관리자에서 스킨을 설정하게 되어 있네요.
그걸 설정을 안해서 테마의 content.skin.php를 변경해도 반여이 안되는 것이었습니다.
(하... 어드민을 바로 보았으면 해결되었을것을... 우매함으로 시간을 허비했네요...)

어드민의 내용관리 메뉴에 스킨을 설정하는 항목이 있다!

위의 내용를 설정하고 나니 
바로 페이지에 반영이 되네요. 쩝...

Metronic Admin Template의 형식으로 적용된 화면

이제 내용수정 버튼만 적용하면 됩니다.
관리자한테만 보여야 하는 버튼이죠.
그런데... 
그 버튼 조차 /bbs/content.php에서
걍 에코로 찍어버리네요...

bbs 폴더는 건드리지 않는게 제일 상책이니
그대로 두고 완료할 수 밖에 없겠습니다.

무언가 좀 많은 찜찜함이 남지만,
여운이라 생각하고 지나가겠습니다.

다만,
일반 페이지는 언젠가 좀 분석해 볼 필요가 있겠습니다.
물론 개발자 입장에서요.
사용자는 그냥 어드민에서 작성하기만 하면 됩니다.
sir 사이트의 회사소개처럼 동적인 구현이 필요하게 된다면
그럴때 개발자의 작업이 필요하게 될 것입니다.

댓글