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

그누보드 테마 제작 29 - 1:1 문의(Q&A) 페이지 개발

by 만수킴 2020. 7. 21.

1:1문의 (FAQ) 페이지의 개발입니다.
개발 전 모습은 아래와 같습니다.

테마 개발 전 1:1 문의 리스트 화면
테마 개발 전 1:1 문의 글작성 화면
테마 개발 전 1:1 답변 글 작성 화면

기본적으로 게시판 UI와 비슷해서,
의외로 쉽게 끝날 수 도 있겠다는 생각이 드네요.
단 답변 등록하는 부분이 다르지만,
글쓰기 페이지의 모습이니까 옮겨놓으면 될 것 같습니다.


1:1 문의는 관리자에 관리 메뉴가 존재합니다.
여기서 설정한 내용을 이용하게 됩니다.
지난 게시판 작업때처럼 모든 설정을 가능하게 해두셔야 합니다.


CRUD
Create 쓰기 페이지 부터 작업 들어갑니다.

시작파일은 /bbs/qawrite.php 파일입니다.
skin 파일을 찾아보는데... 소스가 이상하네요.
Theme 폴더를 전혀 언급하고 있지 않습니다.
그래서 살펴보니...
1:1문의 페이지는 다른 파일과는 구성이 좀 다르네요.
바로 qahead.php과 qatail.php 파일이 존재한다는거죠.
(왜 그런건지 궁금합니다. 혹 아시는 분 있으면 댓글 부탁 드려요.)
qahead.php와 qatail.php에서 하는 일은 
상단 Head와 Tail에 사용할 includ 파일이 설정이 되어 있는지 확인한 후
include 해주는 역할입니다. 
(또, 접속 기기가 모바일인지 PC인지 여부도 확인하네요)

알았으니 되었습니다.
어찌되었건 저희는 그저 skin 파일만 고치면 되니까요.
/theme/mt703/skin/qa/basic/write.skin.php

먼저 스타일을 지워고 작업 들어갑니다. (add_stylesheet 함수에 주석 처리)
checkbox 옆 글자가 이상하게 나와 한참 고생은 했지만, 
그래도 무난히 완료되었네요.

1:1문의 페이지의 글쓰기 기능 테스트


생각보다 빠른 속도는 아니네요.
일단 퇴근이나 하자... 마누라 걱정한다...


앞에서 쓰기 페이지를 만들었으니 답글쓰기부터 완료시킬게요~
하려고 하였으나... qaview.php안에 include 형태로 들어가있네요.
그래서
/bbs/qaview.php 부터 살펴봅니다.
게시글의 보기와 비슷하겠죠 뭐.

그래도 보기는 일단 완료했구요.
보기와 거의 비슷해서, 구조 비교해가면서 복붙하고,
변수명만 바꿔치기 하는 방식으로 했습니다.

완료된 1:1문의 페이지의 보기 영역 UI


작업 전의 문의의 답변글 입력 영역과 연관 질문 영역

이제, 답변 등록 영역을 시작합니다.
파일은 view.answerform.skin.php 입니다.
문의글 쓰기와 비슷한 UI일테니 일사천리로 진행합니다.

1:1문의의 답변 등록 폼이 완료된 모습

이젠 답변 등록된 내용이 보여야겠죠.
파일은 view.answer.skin.php 입니다. 
이건 보기 페이지와 유사할테니... 또 쭉 달려봅니다.

1:1문의 페이지의 답변 영역이 완료된 모습

이제 연관 질문 영역이네요.

제작 전 연관 질문의 모습

연관 질문 역시 기존 게시판의 리스트 형식을 가져와 완료하였습니다.
모바일 화면에서는 제목이 두번째 줄로 내려가도록 하는거요.
그런데, 날짜 부분이 위로 올라간거 보이시죠?
제가 화면 작업시 제일 시간이 오래 걸리는게 저런거에요.
걍 포기하고 넘어가야 시간이 단축될텐데...
저런데서 시간을 너무 허비하더라구요.

1:1문의 페이지의 연관질문 영역이 완료된 모습


이제... 문의글들의 리스트 페이지만 남았습니다.
/bbs/qalist.php 로 페이지 호출이 되고
실제 작업할 파일은 list.skin.php 입니다.
제작 전 화면의 모습은 이렇습니다.

테마 제작 작업 전의 1:1문의의 리스트 페이지

오잉...
게시글의 리스트 영역을 그냥 복붙했는데,
거의 다 된 느낌 인데요? 

게시글의 리스트 영역을 그냥 붙여넣기 했을 뿐인데...

빠진 것은 추가 코딩하고,
필요없는 것은 빼고,
좀 다듬으면 끝나겠습니다.

먼저 $category_option 부터 해야 하네요.
이번에 3번째 정도 하는 작업입니다.
그누보드는 게시판 리스트 등에 들어가는 category들은
모두 /bbs/폴더 안의 파일에서 미리 HTML 문자열로 만들어옵니다.
그럼으로 테마 또는 스킨을 제작할때는 
각 스킨 파일에서 다시 만들어하는 작업이 꼭 필요합니다.

/bbs/qalist.php에서 $category_option을 만드는 부분을 가져와
이전 작업과 같은 방법인
배열로 만들어 for문을 돌려 출력할거에요.

// /bbs/qalist.php에서 $category_option을 만드는 부분
$category_option = '';
if ($qaconfig['qa_category']) {
    $category_href = G5_BBS_URL.'/qalist.php';

    $category_option .= '<li><a href="'.$category_href.'"';
    if ($sca=='')
        $category_option .= ' id="bo_cate_on"';
    $category_option .= '>전체</a></li>';

    $categories = explode('|', $qaconfig['qa_category']); // 구분자가 | 로 되어 있음
    for ($i=0; $i<count($categories); $i++) {
        $category = trim($categories[$i]);
        if ($category=='') continue;
        $category_msg = '';
        $category_option .= '<li><a href="'.($category_href."?sca=".urlencode($category)).'"';
        if ($category==$sca) { // 현재 선택된 카테고리라면
            $category_option .= ' id="bo_cate_on"';
            $category_msg = '<span class="sound_only">열린 분류 </span>';
        }
        $category_option .= '>'.$category_msg.$category.'</a></li>';
    }
}

// list.skin.php에서 $category_option 관련 배열을 만드는 부분
// Category 영역의 Html이 바뀌었기에, 테마에서 새로 만들어준다. by tank. at 200710.
$arr_category_button_html = array();
if ( $qaconfig['qa_category'] ) {
    $category_href = G5_BBS_URL.'/qalist.php';

    $tmpHtml = '<button type="button" onclick="location.href=\''.$category_href.'\';"';
    if ($sca=='')
        $tmpHtml .= ' id="bo_cate_on" class="btn btn-primary mr-3"';
    else
        $tmpHtml .= ' class="btn btn-outline-secondary mr-3"';
    $tmpHtml .= '>전체</button>';
    array_push($arr_category_button_html, $tmpHtml);

    $categories = explode('|', $qaconfig['qa_category']); // 구분자가 | 로 되어 있음
    for ($i=0; $i<count($categories); $i++) {
        $category = trim($categories[$i]);
        if ($category=='') continue;
        $tmpHtml = '<button type="button" onclick="location.href=\''.(get_pretty_url($bo_table,'','sca='.urlencode($category))).'\';"';
        $category_msg = '';
        if ($category==$sca) { // 현재 선택된 카테고리라면
            $tmpHtml .= ' id="bo_cate_on" class="btn btn-primary mr-3"';
            $category_msg = '<span class="sound_only">열린 분류 </span>';
        } else {
            $tmpHtml .= ' class="btn btn-outline-secondary mr-3"';
        }
        $tmpHtml .= '>'.$category_msg.$category.'</button>';
        array_push($arr_category_button_html, $tmpHtml);
    }
}                                           //tLog("arr_category_button_html", $arr_category_button_html);

완료된 화면입니다.

검색을 제외하고 완료된 1:1문의의 리스트 화면


엄청 더운 토요일 오전이네요.
하루 지나고 다시 작업 들어갑니다.
오늘은 1:1문의의 검색 작업만 완료하면 되겠습니다.

완료된 1:1문의의 검색 완료 화면

역시 이미 게시판 리스트에서 했던 작업이라 금방 끝나네요.
게시판 리스트에서 만들었단 모달 소스를 그대로 옮기고,
모달을 띄우기 위한 Function 역시 그대로 옮기고,
1:1문의에는 제목, 본문, 작성자 등의 Select가 없으니
해당 부분을 지우기만 하면 됩니다.

완료된 화면과 소스입니다.
소스가 5개나 되네요.
좀 길어지겠어요.

1:1 문의 리스트 화면
1:1 문의 보기 화면
1:1 문의 보기 화면
1:1 문의 보기 화면
1:1 문의 글 작성, 수정 및 추가질문 작성 화면
1:1 문의 답변 등록 화면
1:1 문의 게시글 검색 화면

작업이 완료된 소스입니다.

/theme/mt703/skin/qa/basic/list.skin.php

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 6;

if ($is_checkbox) $colspan++;

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
//add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
?>

<?php include G5_THEME_PARTIALS_PATH ."/_subheader/subheader-v1.php"; ?>

<?php                                           //tLog("category_option", $category_option);
// Category 영역의 Html이 바뀌었기에, 테마에서 새로 만들어준다. by tank. at 200710.
$arr_category_button_html = array();
if ( $qaconfig['qa_category'] ) {
    $category_href = G5_BBS_URL.'/qalist.php';

    $tmpHtml = '<button type="button" onclick="location.href=\''.$category_href.'\';"';
    if ($sca=='')
        $tmpHtml .= ' id="bo_cate_on" class="btn btn-primary mr-3"';
    else
        $tmpHtml .= ' class="btn btn-outline-secondary mr-3"';
    $tmpHtml .= '>전체</button>';
    array_push($arr_category_button_html, $tmpHtml);

    $categories = explode('|', $qaconfig['qa_category']); // 구분자가 | 로 되어 있음
    for ($i=0; $i<count($categories); $i++) {
        $category = trim($categories[$i]);
        if ($category=='') continue;
        $tmpHtml = '<button type="button" onclick="location.href=\''.(get_pretty_url($bo_table,'','sca='.urlencode($category))).'\';"';
        $category_msg = '';
        if ($category==$sca) { // 현재 선택된 카테고리라면
            $tmpHtml .= ' id="bo_cate_on" class="btn btn-primary mr-3"';
            $category_msg = '<span class="sound_only">열린 분류 </span>';
        } else {
            $tmpHtml .= ' class="btn btn-outline-secondary mr-3"';
        }
        $tmpHtml .= '>'.$category_msg.$category.'</button>';
        array_push($arr_category_button_html, $tmpHtml);
    }
}                                           //tLog("arr_category_button_html", $arr_category_button_html);
?>

<!-- 게시물 읽기 시작 { -->
<div class="d-flex flex-column-fluid">
    <!--begin::Container-->
    <div class="container">






<div class="d-flex flex-row mt-5">
    <!--begin::List-->
    <div class="flex-row-fluid d-block" id="kt_inbox_list">

        <form name="fqalist" id="fqalist" action="./qadelete.php" onsubmit="return fqalist_submit(this);" method="post">
        <input type="hidden" name="stx" value="<?php echo $stx; ?>">
        <input type="hidden" name="sca" value="<?php echo $sca; ?>">
        <input type="hidden" name="page" value="<?php echo $page; ?>">


        <!--begin::Card-->
        <div class="card card-custom card-stretch" style="width:<?php //echo $width; /* 반응형임으로 주석 처리. by tank. at 200706. */ ?>">
            <!--begin::Header-->
            <div class="card-header row row-marginless align-items-center flex-wrap pt-5 pb-0 h-auto">

                <!-- 게시판 카테고리 시작 { -->
                <?php if ( $qaconfig['qa_category'] ) { ?>
                <!--begin::Category-->
                <div class="col-12 col-sm-12 align-items-start bo_cate">
                    <?php
                    for ( $i=0; $i<count($arr_category_button_html); $i++ )
                        echo $arr_category_button_html[$i];
                    ?>
                </div>
                <!--end::Category-->
                <?php } ?>
                <!-- } 게시판 카테고리 끝 -->

                <!-- 게시판 페이지 정보 및 버튼 시작 { -->
                <!--begin::페이지-->
                <div id="bo_btn_top" class="col-6 col-sm-6 col-xxl-4 order-2 order-xxl-1 d-flex flex-wrap align-items-center">
                    <div id="bo_list_total">
                        <span class="text-muted font-weight-bold">Total <?php echo number_format($total_count) ?>건 <?php echo $page ?> 페이지</span>
                    </div>
                </div>
                <!--end::페이지-->

                <?php if ($admin_href || $write_href) { ?>
                <!--begin::버튼-->
                <div class="col-6 col-sm-6 col-xxl-4 order-2 order-xxl-3 d-flex align-items-center justify-content-sm-end text-right my-2 btn_bo_user">
                    <!--begin::Arrow Buttons-->
                    <?php if ($admin_href) { ?>
                    <span onclick="location.href='<?php echo $admin_href ?>';" class="btn btn-default btn-icon btn-sm btn-danger mr-2" data-toggle="tooltip" title="관리자">
                        <i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span>
                    </span>
                    <?php } ?>
                    <span onclick="openBoardSearchModal();" class="btn btn-default btn-icon btn-sm mr-2" data-toggle="tooltip" title="검색">
                        <i class="fa fa-search"></i><span class="sound_only">게시판 검색</span>
                    </span>
                    <?php if ($write_href) { ?>
                    <span onclick="location.href='<?php echo $write_href ?>';" class="btn btn-default btn-icon btn-sm mr-2" data-toggle="tooltip" title="글쓰기">
                        <i class="fa fa-pencil"></i><span class="sound_only">문의등록</span>
                    </span>
                    <?php } ?>
                    <!--end::Arrow Buttons-->
                </div>
                <!--end::버튼-->
                <?php } ?>
            </div>
            <!--end::Header-->
            <!-- } 게시판 페이지 정보 및 버튼 끝 -->

            <!--begin::Body-->
            <div class="card-body table-responsive px-0 pt-1 px-2">
                <div class="list border-bottom border-mute px-2 ">
                    <!--begin::Item Title-->
                    <div class="row row-marginless align-items-center flex-wrap bg-gradient-light px-2 py-2 h-auto">
                        <!--begin::체크박스/NO-->
                        <div class="col-lg-2 col-md-2 col-sm-2 col-4 order-lg-1 order-md-1 order-sm-1 order-1 d-flex flex-wrap align-items-left">
                            <?php if ($is_checkbox) { ?>
                            <!--begin::Checkboxr-->
                            <div class="d-flex align-items-center">
                                <div class="d-flex align-items-center mr-3" data-inbox="actions">
                                    <label class="checkbox checkbox-single checkbox-primary flex-shrink-0 mr-3">
                                        <input type="checkbox" id="chkall" onclick="if (this.checked) all_checked(true); else all_checked(false);" />
                                        <span></span>
                                        <b class="sound_only">현재 페이지 게시물  전체선택</b>
                                    </label>
                                </div>
                            </div>
                            <!--end::Checkboxr-->
                            <?php } ?>
                                <!--begin::NO-->
                            <div class="d-flex align-items-center">
                                <span class="font-weight-bolder font-size-lg text-dark text-center w-50px mr-2">번호</span>
                            </div>
                                <!--end::NO-->
                        </div>
                        <!--end::체크박스/NO-->
                        <!--begin::글쓴이~날짜-->
                        <div class="col-lg-4 col-md-4 col-sm-4 col-8 order-lg-3 order-md-3 order-sm-3 order-2 d-flex justify-content-end my-2">
                            <div class="d-flex align-items-left">
                                <!--begin::Writer-->
                                <div class="font-weight-bolder text-dark text-left mr-3 ">글쓴이</div>
                                <!--end::Writer-->
                            </div>
                            <div class="d-flex align-items-center">
                                <!--begin::Datetime-->
                                <div class="font-weight-bolder text-dark text-center mr-3 ">등록일</a></div>
                                <!--end::Datetime-->
                            </div>
                            <div class="d-flex align-items-center">
                                <!--begin::상태-->
                                <div class="font-weight-bolder text-dark text-center mr-3 ">상태</a></div>
                                <!--end::상태-->
                            </div>
                        </div>
                        <!--end::글쓴이~날짜-->
                        <!--begin::제목-->
                        <div class="col-lg-6 offset-lg-0 col-md-6 offset-md-0 col-sm-6 offset-sm-0 col-11 offset-1 order-lg-2 order-md-2 order-sm-2 order-3 font-weight-bolder text-dark text-center">
                            <span class="flex-grow-1 font-weight-bolder font-size-lg text-dark text-left mr-2">제목</span>
                        </div>
                        <!--end::제목-->
                    </div>
                    <!--end::Item Title-->
                    <!--begin::Items-->
                </div>
                <div class="list border-bottom border-mute px-2 ">
<?php                                                           //tLog("게시글 리스트", $list);
for ($i=0; $i<count($list); $i++) {
    if ($i%2==0) $bg_class = "bg-light";
    else $bg_class = "";
?>
                    <!--begin::Item-->
                    <div class="row row-marginless align-items-center flex-wrap border border-light px-2 py-2 h-auto bg-gradient-light <?php echo $bg_class; ?> <?php if ($list[$i]['is_notice']) echo "bg-light-danger"; ?>">
                        <!--begin::체크박스/NO-->
                        <div class="col-lg-2 col-md-2 col-sm-2 col-4 order-lg-1 order-md-1 order-sm-1 order-1 d-flex flex-wrap align-items-left">

    <?php if ($is_checkbox) { ?>
                            <!--begin::Checkboxr-->
                            <div class="d-flex align-items-center">
                                <div class="d-flex align-items-center mr-3" data-inbox="actions">
                                    <label for="chk_qa_id<?php echo $i ?>" class="checkbox checkbox-single checkbox-primary flex-shrink-0 mr-3">
                                        <input type="checkbox" name="chk_qa_id[]" value="<?php echo $list[$i]['qa_id'] ?>" id="chk_qa_id<?php echo $i ?>" />
                                        <span></span>
                                        <b class="sound_only"><?php echo $list[$i]['subject'] ?></b>
                                    </label>
                                </div>
                            </div>
                            <!--end::Checkboxr-->
    <?php } ?>
                            <div class="d-flex align-items-center"><span class="font-size-lg text-dark text-center w-50px mr-2"><?php echo $list[$i]['num']; ?></span></div>
                        </div>
                        <!--end::체크박스/NO-->

                        <!--begin::글쓴이~날짜-->
                        <div class="col-lg-4 col-md-4 col-sm-4 col-8 order-lg-3 order-md-3 order-sm-3 order-2 d-flex justify-content-end my-2">
                            <!--begin::Writer-->
                                <div class="font-weight-bolder text-dark text-left mr-3"><?php echo $list[$i]['name'] ?></div>
                            <!--end::Writer-->
                            <!--begin::Datetime-->
                                <div class="font-weight-bolder text-dark text-center mr-3 "><?php echo $list[$i]['date'] ?></div>
                            <!--end::Datetime-->
                            <!--begin::상태-->
                                <div class="font-weight-bolder text-dark text-center mr-3 ">
                                    <?php if ( $list[$i]['qa_status'] ) { ?>
                                    <a href="javascript:;" class="btn btn-success btn-sm mr-3"><i class="fa fa-check-circle"></i> 답변 완료</a>
                                    <?php } else { ?>
                                    <a href="javascript:;" class="btn btn-secondary btn-sm mr-3"><i class="fa fa-times-circle"></i> 답변 대기</a>
                                    <?php } ?>
                                </div>
                            <!--end::상태-->
                        </div>
                        <!--end::글쓴이~날짜-->

                        <!--begin::카테고리/제목-->
                        <div class="col-lg-6 offset-lg-0 col-md-6 offset-md-0 col-sm-6 offset-sm-0 col-11 offset-1 order-lg-2 order-md-2 order-sm-2 order-3 font-weight-bolder text-dark">
                            <div class="flex-grow-1 font-weight-bolder font-size-lg text-dark text-left mr-2" style="padding-left:<?php echo $list[$i]['reply'] ? (strlen($list[$i]['wr_reply'])*25) : '0'; ?>px;">

                                <a href="<?php echo $list[$i]['ca_name_href'] ?>" class="btn btn-sm btn-light-primary font-weight-bold font-size-lg text-dark pt-2 pb-1 mr-1"><?php echo $list[$i]['category']; ?></a>

                                <a href="<?php echo $list[$i]['view_href'] ?>" class="font-weight-bolder font-size-lg text-dark mr-2">
                                    <?php echo search_font_mt703($stx, $list[$i]['subject']); ?>
                                </a>
                                <?php
                                if (isset($list[$i]['icon_file'])) echo '<i class="fa fas fa-download fa-spin fa-fw text-warning"></i>';
                                ?>
                            </div>
                        </div>
                        <!--end::카테고리/제목-->
                    </div>
                    <!--end::Item-->
<?php } ?>
<?php if (count($list) == 0) { ?>
                    <!--begin::Item-->
                    <div class="row row-marginless align-items-center flex-wrap bg-gradient-light px-2 py-2 h-auto">
                        <!--begin::Item-->
                        <div class="d-flex align-items-start list-item card-spacer-x align-middle px-2 py-3">
                            <span class="font-weight-bolder font-size-lg text-center w-100 mr-2"> 게시물이 없습니다. </span>
                        </div>
                        <!--end::Item-->
                    </div>
                    <!--end::Item-->
<?php } ?>
                <!--end::Items-->
                </div>
            </div>
            <!--end::Body-->
            <div class="card-footer row row-marginless align-items-center flex-wrap pt-0 pb-5 h-auto">
                <!-- 게시판 페이지 정보 및 버튼 시작 { -->
                <!--begin::Pagination-->
                <div class="col-12 col-sm-6 col-xxl-4 order-2 order-xxl-1 d-flex flex-wrap align-items-center">
                    <?php echo preg_replace('/(\.php)(&amp;|&)/i', '$1?', get_paging_mt703(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, './qalist.php'.$qstr.'&amp;page=')); ?>
                </div>
                <!--end::Pagination-->

                <?php if ($admin_href || $write_href) { ?>
                <!--begin::버튼-->
                <div class="col-12 col-sm-6 col-xxl-4 order-2 order-xxl-3 d-flex align-items-center justify-content-sm-end text-right my-2 btn_bo_user">
                    <!--begin::Arrow Buttons-->
                    <?php if ($admin_href) { ?>
                    <span onclick="location.href='<?php echo $admin_href ?>';" class="btn btn-default btn-icon btn-sm btn-danger mr-2" data-toggle="tooltip" title="관리자">
                        <i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span>
                    </span>
                    <?php } ?>
                    <?php if ($is_checkbox) { ?>
                    <span onclick="javascript:fboardlist_onsubmit_mng('선택삭제');" class="btn btn-default btn-icon btn-sm  mr-2" data-toggle="tooltip" title="선택삭제">
                        <i class="fa fa-trash-o"></i><span class="sound_only">선택 삭제</span>
                    </span>
                    <?php } ?>
                    <span onclick="openBoardSearchModal();" class="btn btn-default btn-icon btn-sm mr-2" data-toggle="tooltip" title="검색">
                        <i class="fa fa-search"></i><span class="sound_only">게시판 검색</span>
                    </span>
                    <?php if ($write_href) { ?>
                    <span onclick="location.href='<?php echo $write_href ?>';" class="btn btn-default btn-icon btn-sm mr-2" data-toggle="tooltip" title="글쓰기">
                        <i class="fa fa-pencil"></i><span class="sound_only">문의등록</span>
                    </span>
                    <?php } ?>
                    <!--end::Arrow Buttons-->
                </div>
                <!--end::버튼-->
                <?php } ?>
            </div>
        </div>
        </form>
        <!--end::Card-->
    </div>
    <!--end::List-->
</div>

    <!-- 게시판 검색 시작 { -->
<button type="button" class="btn btn-primary mr-2 d-none" data-toggle="modal" data-target="#boardSearchModal">Board Search Modal</button>
<!--begin::Search Modal-->
<div class="modal fade" id="boardSearchModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalSizeDefault" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered" role="document" style="width:280px;">
        <div class="modal-content">
            <form name="fsearch" method="get">
                <input type="hidden" name="sca" value="<?php echo $sca ?>">

                <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLabel">검색</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <i aria-hidden="true" class="ki ki-close"></i>
                    </button>
                </div>

                <div class="modal-body">
                        <div class="d-flex align-items-center">
                            <fieldset class="bo_sch">
                                <h3 class="sound_only">게시물 검색</h3>
                                <label for="sfl" class="sound_only">검색대상</label>
                                <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
                                <input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" required id="stx" class="form-control" size="25" maxlength="20" placeholder=" 검색어를 입력해주세요">
                            </fieldset>
                            <div class="bo_sch_bg"></div>
                        </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-light-primary font-weight-bold" data-dismiss="modal">닫기</button>
                    <button type="submit" value="검색" class="btn btn-primary font-weight-bold">검색</button>
                </div>
            </form>
        </div>
    </div>
</div>
<!--end::Search Modal-->
<script type="text/javascript">
function openBoardSearchModal() {
    $("button[data-target='#boardSearchModal']").click();
}
</script>
<!-- } 게시판 검색 끝 -->







    </div>
    <!--end::Container-->
</div>
<!-- 게시판 목록 끝 -->


<?php if($is_checkbox) { ?>
<noscript>
<p>자바스크립트를 사용하지 않는 경우<br>별도의 확인 절차 없이 바로 선택삭제 처리하므로 주의하시기 바랍니다.</p>
</noscript>
<?php } ?>

<?php if ($is_checkbox) { ?>
<script>
function all_checked(sw) {
    var f = document.fqalist;

    for (var i=0; i<f.length; i++) {
        if (f.elements[i].name == "chk_qa_id[]")
            f.elements[i].checked = sw;
    }
}

function fqalist_submit(f) {
    var chk_count = 0;

    for (var i=0; i<f.length; i++) {
        if (f.elements[i].name == "chk_qa_id[]" && f.elements[i].checked)
            chk_count++;
    }

    if (!chk_count) {
        alert(document.pressed + "할 게시물을 하나 이상 선택하세요.");
        return false;
    }

    if(document.pressed == "선택삭제") {
        if (!confirm("선택한 게시물을 정말 삭제하시겠습니까?\n\n한번 삭제한 자료는 복구할 수 없습니다"))
            return false;
    }

    return true;
}
</script>
<?php } ?>
<!-- } 게시판 목록 끝 -->

/theme/mt703/skin/qa/basic/view.answer.skin.php

<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>

<h2 class="sound_only">답변등록</h2>
<!--begin::Card-->
<div class="card card-custom mb-7">
    <!--begin::header-->
    <div class="card-header align-items-center flex-wrap justify-content-between py-5 h-auto">
        <!--end::Header-Title-->
        <div class="d-block align-items-left mt-2 w-100">
            <span class="label label-light-primary font-weight-bold label-inline font-size-h4 py-4 mr-3 align-middle">답변</span>
            <span class="font-weight-bold font-size-h3 mr-3"><?php echo $view['qa_subject']; // 글제목 출력 ?></span>
        </div>
        <!--end::Header-Title-->

        <!--begin::Header-Left-->
        <div class="d-flex align-items-center">
            <div class=" ">
                <span class="sound_only">작성일</span><span class="mr-2"><i class="fa fa-clock-o" aria-hidden="true"></i>  <?php echo $view['datetime']; ?></span>
            </div>
        </div>
        <!--end::Header-Left-->
        <?php if ( $answer_update_href || $answer_delete_href ){ ?>
        <!--begin::Header-Right-->
        <div class="d-flex align-items-center justify-content-end text-right">
            <?php if ($answer_update_href) { ?><a href="<?php echo $answer_update_href ?>" class="btn btn-clean btn-icon btn-sm mr-2" data-toggle="tooltip" title="수정"><i class="fa fa-pencil-square-o"></i></a><?php } ?>
            <?php if ($answer_delete_href) { ?><a href="<?php echo $answer_delete_href ?>" onclick="del(this.href); return false;" class="btn btn-clean btn-icon btn-sm mr-2" data-toggle="tooltip" title="삭제"><i class="fa fa-trash-o"></i></a><?php } ?>
        </div>
        <?php } ?>
        <!--end::Header-Right-->
    </div>
    <!--end::header-->
    <!--begin::Body-->
    <div class="card-body p-0 pt-5 px-7">
        <div id="ans_con">
            <?php echo get_view_thumbnail(conv_content($answer['qa_content'], $answer['qa_html']), $qaconfig['qa_image_width']); ?>
        </div>
    </div>
    <!--end::Body-->
    <!--begin::footer-->
    <div class="card-footer px-0 py-3">
        <div class="row">
            <div class="col-4 offset-4">
                <a href="<?php echo $rewrite_href; ?>" class="btn btn-lg btn-primary font-size-lg font-weight-bold w-100 add_qa" title="추가 질문">추가 질문</a>
            </div>
        </div>
    </div>
    <!--end::footer-->
</div>
<!--end::Card-->

/theme/mt703/skin/qa/basic/view.answerform.skin.php

<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>

<?php
if( $is_admin ) { // 관리자이면 답변등록
?>
<!--begin::Card-->
<div class="card card-custom mb-7">
    <form name="fanswer" method="post" action="./qawrite_update.php" onsubmit="return fwrite_submit(this);" autocomplete="off">
    <input type="hidden" name="qa_id" value="<?php echo $view['qa_id']; ?>">
    <input type="hidden" name="w" value="a">
    <input type="hidden" name="sca" value="<?php echo $sca ?>">
    <input type="hidden" name="stx" value="<?php echo $stx; ?>">
    <input type="hidden" name="page" value="<?php echo $page; ?>">

    <!--begin::header-->
    <div class="card-header align-items-center flex-wrap justify-content-between h-auto">
        <h5>답변등록</h5>
    </div>
    <!--end::header-->
    <!--begin::Body-->
    <div class="card-body py-2">
        <div class="form-group row">
            <div class="col-12">
                <?php
                $option = '';
                $option_hidden = '';
                $option = '';

                if ($is_dhtml_editor) {
                    $option_hidden .= '<input type="hidden" name="qa_html" value="1">';
                } else {
                    $option .= "\n".'<input type="checkbox" id="qa_html" name="qa_html" onclick="html_auto_br(this);" value="'.$html_value.'" '.$html_checked.'>'."\n".'<label for="qa_html">html</label>';
                }

                echo $option_hidden;
                ?>
            </div>
            <div class="col-12 mb-3">
                <label for="qa_subject" class="sound_only">제목</label>
                <input type="text" name="qa_subject" value="" id="qa_subject" required class="form-control frm_input required full_input" maxlength="255" placeholder="제목">
            </div>
            <div class="col-12">
                <label for="qa_content" class="sound_only">내용<strong>필수</strong></label>
                <span class="wr_content">
                    <?php echo $editor_html; // 에디터 사용시는 에디터로, 아니면 textarea 로 노출 ?>
                </span>
            </div>
        </div>
    </div>
    <!--end::Body-->
    <!--begin::footer-->
    <div class="card-footer py-2">
        <div class="row">
            <div class="col-6">
                <button type="submit" id="btn_submit" accesskey="s" class="btn btn-primary mr-2">답변 등록</button>
            </div>
        </div>
    </div>
    <!--end::footer-->
    </form>
    <script>
    function html_auto_br(obj)
    {
        if (obj.checked) {
            result = confirm("자동 줄바꿈을 하시겠습니까?\n\n자동 줄바꿈은 게시물 내용중 줄바뀐 곳을<br>태그로 변환하는 기능입니다.");
            if (result)
                obj.value = "2";
            else
                obj.value = "1";
        }
        else
            obj.value = "";
    }

    function fwrite_submit(f)
    {
        <?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함   ?>

        var subject = "";
        var content = "";
        $.ajax({
            url: g5_bbs_url+"/ajax.filter.php",
            type: "POST",
            data: {
                "subject": f.qa_subject.value,
                "content": f.qa_content.value
            },
            dataType: "json",
            async: false,
            cache: false,
            success: function(data, textStatus) {
                subject = data.subject;
                content = data.content;
            }
        });

        if (subject) {
            alert("제목에 금지단어('"+subject+"')가 포함되어있습니다");
            f.qa_subject.focus();
            return false;
        }

        if (content) {
            alert("내용에 금지단어('"+content+"')가 포함되어있습니다");
            if (typeof(ed_qa_content) != "undefined")
                ed_qa_content.returnFalse();
            else
                f.qa_content.focus();
            return false;
        }

        document.getElementById("btn_submit").disabled = "disabled";

        return true;
    }
    </script>
</div>
<!--end::Card-->
<?php
} else {
?>
    <div class="alert alert-custom alert-notice alert-light-dark fade show mb-5" role="alert">
        <div class="alert-icon">
            <i class="flaticon-warning"></i>
        </div>
        <div class="alert-text" id="ans_msg">고객님의 문의에 대한 답변을 준비 중입니다.</div>
    </div>
<?php
}
?>

/theme/mt703/skin/qa/basic/view.skin.php

<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
//add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
?>
<?php include G5_THEME_PARTIALS_PATH ."/_subheader/subheader-v1.php"; ?>

<script src="<?php echo G5_JS_URL; ?>/viewimageresize.js"></script>




<!-- 1:1문의 읽기 시작 { -->
<div class="d-flex flex-column-fluid">
    <!--begin::Container-->
    <div class="container">





<div class="d-flex flex-row mt-5">
    <!--begin::View-->
    <div class="flex-row-fluid mr-lg-6 d-block" id="kt_inbox_view">
        <!--begin::Card-->
        <div class="card card-custom mb-7">
            <!--begin::Header-->
            <div class="card-header align-items-center flex-wrap justify-content-between py-5 h-auto" style="<?php echo $width ? "width:".$width : ""; ?>">
                <!--begin::Header-Category & Title-->
                <div class="d-block align-items-left mt-2 w-100">
                    <span class="label label-light-primary font-weight-bold label-inline font-size-h4 py-4 mr-3 align-middle"><?php echo $view['category'] ;?></span>
                    <span class="font-weight-bold font-size-h3 mr-3"><?php echo $view['subject']; // 글제목 출력 ?></span>
                </div>
                <!--end::Header-Category & Title-->

                <!--begin::Header-Left-->
                <div class="d-flex align-items-center">
                    <div class=" ">
                        <h2 class="sound_only">페이지 정보</h2>
                        <span class="sound_only">작성자</span><span class="mr-2"><?php echo $view['name'] ?></span>
                        <span class="sound_only">작성일</span><span class="mr-2"><i class="fa fa-clock-o" aria-hidden="true"></i>  <?php echo $view['datetime']; ?></span>
                        <?php if($view['email'] || $view['hp']) { ?>
                            <?php if($view['email']) { ?>
                            <span class="sound_only">이메일</span><span class="mr-2"><i class="fa fa-envelope-o" aria-hidden="true"></i>  <?php echo $view['email']; ?></span>
                            <?php } ?>
                            <?php if($view['hp']) { ?>
                            <span class="sound_only">이메일</span><span class="mr-2"><i class="fa fa-phone" aria-hidden="true"></i>  <?php echo $view['hp']; ?></span>
                            <?php } ?>
                        <?php } ?>
                    </div>
                </div>
                <!--end::Header-Left-->
                <!--begin::Header-Right-->
                <div class="d-flex align-items-center justify-content-end text-right">
                <?php
                ob_start();
                ?>
                    <a href="<?php echo $list_href ?>" class="btn btn-clean btn-icon btn-sm mr-2" data-toggle="tooltip" title="목록"><i class="fa fa-list"></i></a>
                    <?php if ($write_href) { ?><a href="<?php echo $write_href ?>" class="btn btn-clean btn-icon btn-sm mr-2" data-toggle="tooltip" title="글쓰기"><i class="fa fa-pencil"></i></a><?php } ?>
                    <?php if ($update_href || $delete_href) { ?>
                        <?php if ($update_href) { ?><a href="<?php echo $update_href ?>" class="btn btn-clean btn-icon btn-sm mr-2" data-toggle="tooltip" title="수정"><i class="fa fa-pencil-square-o"></i></a><?php } ?>
                        <?php if ($delete_href) { ?><a href="<?php echo $delete_href ?>" onclick="del(this.href); return false;" class="btn btn-clean btn-icon btn-sm mr-2" data-toggle="tooltip" title="삭제"><i class="fa fa-trash-o"></i></a><?php } ?>
                    <?php } ?>
                <?php
                $link_buttons = ob_get_contents();
                ob_end_flush();
                ?>
                </div>
                <!--end::Header-Right-->
            </div>
            <!--end::Header-->
            <!--begin::Body-->
            <div class="card-body p-0 pt-5">
                <!--begin::Content-->
                <div class="mb-3 px-7">
                    <?php
                    // 파일 출력
                    if($view['img_count']) {
                        echo '<div id="bo_v_img">';
                        for ($i=0; $i<=count($view['img_count']); $i++) {
                            echo get_view_thumbnail($view['img_file'][$i], $qaconfig['qa_image_width']);
                        }
                        echo "</div>\n";
                     }
                     ?>

                    <div id="bo_v_con"><?php echo get_view_thumbnail($view['content'], $qaconfig['qa_image_width']); ?></div>

                    <?php if( !$view['qa_type'] ) { ?>
                    <div id="bo_v_addq" class="d-flex justify-content-end"><a href="<?php echo $rewrite_href; ?>" class="btn btn-secondary mb-2 btn_b01">추가질문</a></div>
                    <?php } ?>

                    <?php
                    if($view['download_count']) {                                         //tLog("view", $view);
                    ?>
                    <!-- 첨부파일 시작 { -->
                    <h2 class="sound_only">첨부파일</h2>
                    <?php
                            // 가변 파일
                        for ($i=0; $i<count($view['download_count']); $i++) {
                    ?>
                        <div class="alert alert-custom alert alert-shadow fade show gutter-b <?php echo ($i==count($view['link'])) ? "" : "mb-1" ;?>" role="alert">
                            <div class="alert-icon">
                                <span class="svg-icon svg-icon-primary svg-icon-2x"><!--begin::Svg Icon | path:/var/www/metronic/themes/metronic/theme/html/demo1/dist/../src/media/svg/icons/Files/Downloads-folder.svg--><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="24px" viewBox="0 0 24 24" version="1.1">
                                    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
                                        <rect x="0" y="0" width="24" height="24"/>
                                        <path d="M3.5,21 L20.5,21 C21.3284271,21 22,20.3284271 22,19.5 L22,8.5 C22,7.67157288 21.3284271,7 20.5,7 L10,7 L7.43933983,4.43933983 C7.15803526,4.15803526 6.77650439,4 6.37867966,4 L3.5,4 C2.67157288,4 2,4.67157288 2,5.5 L2,19.5 C2,20.3284271 2.67157288,21 3.5,21 Z" fill="#000000" opacity="0.3"/>
                                        <path d="M14.8875071,12.8306874 L12.9310336,12.8306874 L12.9310336,10.8230161 C12.9310336,10.5468737 12.707176,10.3230161 12.4310336,10.3230161 L11.4077349,10.3230161 C11.1315925,10.3230161 10.9077349,10.5468737 10.9077349,10.8230161 L10.9077349,12.8306874 L8.9512614,12.8306874 C8.67511903,12.8306874 8.4512614,13.054545 8.4512614,13.3306874 C8.4512614,13.448999 8.49321518,13.5634776 8.56966458,13.6537723 L11.5377874,17.1594334 C11.7162223,17.3701835 12.0317191,17.3963802 12.2424692,17.2179453 C12.2635563,17.2000915 12.2831273,17.1805206 12.3009811,17.1594334 L15.2691039,13.6537723 C15.4475388,13.4430222 15.4213421,13.1275254 15.210592,12.9490905 C15.1202973,12.8726411 15.0058187,12.8306874 14.8875071,12.8306874 Z" fill="#000000"/>
                                    </g>
                                </svg><!--end::Svg Icon--></span>
                            </div>
                            <div class="alert-text text-truncate" data-toggle="tooltip" title="<?php echo $view['download_source'][$i]; ?>">
                                <a href="<?php echo $view['download_href'][$i];  ?>" target="_blank" class="text-dark text-hover-primary">
                                    <strong><?php echo $view['download_source'][$i]; ?></strong>
                                </a>
                            </div>
                        </div>
                    <?php
                        }
                    }
                    ?>
                </div>
                <!--end::Content-->
            </div>
            <!--end::Body-->
            <!--begin::footer-->
            <div class="card-footer px-0 py-3">
                <?php if ($prev_href || $next_href) { ?>
                    <div class="d-flex justify-content-between mx-7">
                    <?php if ($prev_href) { ?>
                        <a href="<?php echo $prev_href ?>" class="btn btn-outline-secondary"><i class="fa fa-chevron-left"></i> 이전글</a>
                    <?php } ?>
                    <?php if ($next_href) { ?>
                        <a href="<?php echo $next_href ?>" class="btn btn-outline-secondary">다음글 <i class="fa fa-chevron-right"></i></a>
                    <?php } ?>
                    </div>
                <?php } ?>
            </div>
            <!--end::footer-->
        </div>
        <!--end::Card-->


        <?php
        // 질문글에서 답변이 있으면 답변 출력, 답변이 없고 관리자이면 답변등록폼 출력
        if(!$view['qa_type']) {
            if($view['qa_status'] && $answer['qa_id'])
                include_once($qa_skin_path.'/view.answer.skin.php');
            else
                include_once($qa_skin_path.'/view.answerform.skin.php');
        }
        ?>

        <!--begin::Card-->
        <div class="card card-custom mb-7">
            <div class="card-header align-items-center flex-wrap justify-content-between py-5 h-auto">
                <h5>연관질문</h5>
            </div>
            <!--begin::Body-->
            <div class="card-body p-0">

                <div class="list border-bottom border-mute px-2 ">
                    <?php
                    for($i=0; $i<$view['rel_count']; $i++) {
                    ?>
                        <!--begin::Item-->
                        <div class="row row-marginless align-items-center flex-wrap border border-light px-2 py-2 h-auto bg-gradient-light <?php echo $bg_class; ?> <?php if ($list[$i]['is_notice']) echo "bg-light-danger"; ?>">
                            <!--begin::체크박스/NO-->
                            <div class="col-lg-2 col-md-2 col-sm-2 col-4 order-lg-1 order-md-1 order-sm-1 order-1 d-flex flex-wrap align-items-left">
                                <div class="d-flex align-items-center"><span class="font-weight-bolder font-size-lg text-danger text-center w-50px mr-2">
                                    <?php echo get_text($rel_list[$i]['category']); ?></span>
                                </div>
                            </div>
                            <!--end::체크박스/NO-->

                            <!--begin::글쓴이~날짜-->
                            <div class="col-lg-4 col-md-4 col-sm-4 col-8 order-lg-3 order-md-3 order-sm-3 order-2 d-flex justify-content-end my-2">

                                <!--begin::Datetime-->
                                <span class="font-weight-bolder text-dark text-center align-middle mr-7 "><?php echo $rel_list[$i]['date']; ?></span>
                                <!--end::Datetime-->

                                <div class="font-weight-bolder text-dark text-center mr-3 ">
                                    <?php if ( $rel_list[$i]['qa_status'] ) { ?>
                                    <a href="javascript:;" class="btn btn-success btn-sm mr-3"><i class="fa fa-check-circle"></i> 답변 완료</a>
                                    <?php } else { ?>
                                    <a href="javascript:;" class="btn btn-secondary btn-sm mr-3"><i class="fa fa-times-circle"></i> 답변 대기</a>
                                    <?php } ?>
                                </div>
                            </div>
                            <!--end::글쓴이~날짜-->

                            <!--begin::카테고리/제목-->
                            <div class="col-lg-6 offset-lg-0 col-md-6 offset-md-0 col-sm-6 offset-sm-0 col-11 offset-1 order-lg-2 order-md-2 order-sm-2 order-3 font-weight-bolder text-dark">
                                <a href="<?php echo $rel_list[$i]['view_href']; ?>" class="bo_tit">
                                    <?php echo $rel_list[$i]['subject']; ?>
                                </a>
                            </div>
                            <!--end::카테고리/제목-->
                        </div>
                        <!--end::Item-->
                    <?php
                    }
                    ?>
                </div>
            </div>
            <!--end::Body-->
        </div>
        <!--end::Card-->

    </div>
    <!--end::View-->
</div>




    </div>
    <!--end::Container-->
</div>
<!-- } 1:1문의 읽기 끝 -->


<script>
$(function() {
    $("a.view_image").click(function() {
        window.open(this.href, "large_image", "location=yes,links=no,toolbar=no,top=10,left=10,width=10,height=10,resizable=yes,scrollbars=no,status=no");
        return false;
    });

    // 이미지 리사이즈
    $("#bo_v_atc").viewimageresize();
});
</script>

/theme/mt703/skin/qa/basic/write.skin.php

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
//add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
?>
<?php include G5_THEME_PARTIALS_PATH ."/_subheader/subheader-v1.php"; ?>

<!-- 1:1문의 작성/수정 시작 { -->
<div class="d-flex flex-column-fluid">
    <!--begin::Container-->
    <div class="container">



<!--begin::Card-->
<div class="card card-custom gutter-b example example-compact mt-5">
    <h5 class="sound_only">1:1문의 작성</h5>
    <!--begin::Form-->
    <form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
    <input type="hidden" name="w" value="<?php echo $w ?>">
    <input type="hidden" name="qa_id" value="<?php echo $qa_id ?>">
    <input type="hidden" name="sca" value="<?php echo $sca ?>">
    <input type="hidden" name="stx" value="<?php echo $stx ?>">
    <input type="hidden" name="page" value="<?php echo $page ?>">
        <div class="card-body">

            <?php
            $option = '';
            $option_hidden = '';
            $option = '';

            if ($is_dhtml_editor) {
                $option_hidden .= '<input type="hidden" name="qa_html" value="1">';
            } else {
                $option .= PHP_EOL.'<div class="col-lg-2 col-6 my-auto">'.PHP_EOL.'<div class="checkbox-single">'.PHP_EOL.'<label class="checkbox">'.PHP_EOL.'<input type="checkbox" id="qa_html" name="qa_html" onclick="html_auto_br(this);" value="'.$html_value.'" '.$notice_checked.' /> 공지<span></span></label>'.PHP_EOL.'</div>'.PHP_EOL.'</div>';
            }
            echo $option_hidden;
            ?>

            <div class="form-group row">
                <?php if ($category_option) { ?>
                <div class="col-sm-6 col-12">
                    <label for="qa_category" class="sound_only">분류<strong>필수</strong></label>
                    <select class="form-control" name="qa_category" id="qa_category" required>
                        <option value="">분류를 선택하세요.</option>
                        <?php echo $category_option ?>
                    </select>
                </div>
                <?php } ?>
                <?php if ($option) { echo $option; } ?>
            </div>

            <div class="form-group row">
                <?php if ( $is_email ) { ?>
                <div class="col-6">
                    <label for="qa_email" class="sound_only">이메일</label>
                    <input type="text" name="qa_email" value="<?php echo get_text($write['qa_email']); ?>" id="qa_email" <?php echo $req_email; ?> class="form-control <?php echo $req_email.' '; ?> email" maxlength="100" placeholder="이메일">
                    <div class="form-check ml-1 mt-1">
                        <input type="checkbox" id="qa_email_recv" name="qa_email_recv" value="1" <?php if($write['qa_email_recv']) echo 'checked="checked"'; ?> class="form-check-input" />
                        <label class="form-check-label text-primary" for="qa_email_recv"> 답변메일받기</label>
                    </div>
                </div>
                <?php } ?>
                <?php if ( $is_hp ) { ?>
                <div class="col-6">
                    <label for="qa_hp" class="sound_only">휴대폰</label>
                    <input type="text" name="qa_hp" value="<?php echo get_text($write['qa_hp']); ?>" id="qa_hp" <?php echo $req_hp; ?> class="form-control <?php echo $req_hp.' '; ?>" placeholder="휴대폰">
                    <?php if($qaconfig['qa_use_sms']) { ?>
                    <div class="form-check ml-1 mt-1">
                        <input type="checkbox" id="qa_sms_recv" name="qa_sms_recv" value="1" <?php if($write['qa_sms_recv']) echo 'checked="checked"'; ?> class="form-check-input" />
                        <label class="form-check-label text-primary" for="qa_sms_recv"> 답변등록 SMS알림 수신</label>
                    </div>
                    <?php } ?>
                </div>
                <?php } ?>
                <?php if ($option) { echo $option; } ?>
            </div>

            <div class="form-group row">
                <label for="qa_subject" class="sound_only">제목<strong class="sound_only">필수</strong></label>
                <input type="text" name="qa_subject" value="<?php echo get_text($write['qa_subject']); ?>" id="qa_subject" required class="form-control mx-4 required" maxlength="255" placeholder="제목">
            </div>

            <div class="form-group row">
                <div class="col-lg-12 <?php echo $is_dhtml_editor ? $config['cf_editor'] : ''; ?>">
                    <label for="qa_content" class="sound_only">내용<strong class="sound_only">필수</strong></label>
                    <?php echo $editor_html; // 에디터 사용시는 에디터로, 아니면 textarea 로 노출 ?>
                </div>
            </div>
            <?php if ( $option ) { echo $option; } ?>

            <div class="form-group row">
                <div class="col-<?php echo ($w == 'u' && $write['qa_file1']) ? "9" : "12"; ?>">
                    <div class="input-group">
                        <div class="input-group-prepend"><span class="input-group-text"><i class="fa fa-download"></i></span><span class="sound_only"> 파일 #1</span></label></div>
                        <div class="custom-file">
                            <input type="file" name="bf_file[1]" id="bf_file_1" title="파일첨부 1 : 용량 <?php echo $upload_max_filesize ?> 이하만 업로드 가능" class="custom-file-input">
                            <label class="custom-file-label" for="bf_file_1">선택된 파일 없음</label>
                        </div>
                    </div>
                </div>
                <?php if ($w == 'u' && $write['qa_file1']) { ?>
                <div class="col-3 my-auto" style="max-width:100%;">
                    <div class="checkbox-single">
                        <label class="checkbox">
                            <input type="checkbox" id="bf_file_del1" name="bf_file_del1[1]" value="1" />
                            <?php echo $write['qa_source1'];  ?> 파일 삭제<span></span>
                        </label>
                    </div>
                </div>
                <?php } ?>
            </div>

            <div class="form-group row">
                <div class="col-<?php echo ($w == 'u' && $write['qa_file2']) ? "9" : "12"; ?>">
                    <div class="input-group">
                        <div class="input-group-prepend"><span class="input-group-text"><i class="fa fa-download"></i></span><span class="sound_only"> 파일 #2</span></label></div>
                        <div class="custom-file">
                            <input type="file" name="bf_file[2]" id="bf_file_2" title="파일첨부 2 : 용량 <?php echo $upload_max_filesize ?> 이하만 업로드 가능" class="custom-file-input">
                            <label class="custom-file-label" for="bf_file_2">선택된 파일 없음</label>
                        </div>
                    </div>
                </div>
                <?php if ($w == 'u' && $write['qa_file2']) { ?>
                <div class="col-3 my-auto" style="max-width:100%;">
                    <div class="checkbox-single">
                        <label class="checkbox">
                            <input type="checkbox" id="bf_file_del2" name="bf_file_del1[2]" value="1" />
                            <?php echo $write['qa_source2'];  ?> 파일 삭제<span></span>
                        </label>
                    </div>
                </div>
                <?php } ?>
            </div>

            <!-- end: Example Code-->
        </div>
        <div class="card-footer">
            <div class="row">
                <div class="col-lg-6">
                    <button type="submit" id="btn_submit" accesskey="s" class="btn btn-primary mr-2">작성 완료</button>
                    <a href="<?php echo get_pretty_url($bo_table); ?>" class="btn btn-secondary">취소</a>
                </div>
                <!-- div class="col-lg-6 text-right">
                    <button type="reset" class="btn btn-danger">Delete</button>
                </div -->
            </div>
        </div>
    </form>
    <!--end::Form-->
</div>
<!--end::Card-->




    </div>
    <!--end::Container-->
</div>
<!-- 1:1문의 작성/수정 끝 { -->


    <script>
    function html_auto_br(obj)
    {
        if (obj.checked) {
            result = confirm("자동 줄바꿈을 하시겠습니까?\n\n자동 줄바꿈은 게시물 내용중 줄바뀐 곳을<br>태그로 변환하는 기능입니다.");
            if (result)
                obj.value = "2";
            else
                obj.value = "1";
        }
        else
            obj.value = "";
    }

    function fwrite_submit(f)
    {
        <?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함   ?>

        var subject = "";
        var content = "";
        $.ajax({
            url: g5_bbs_url+"/ajax.filter.php",
            type: "POST",
            data: {
                "subject": f.qa_subject.value,
                "content": f.qa_content.value
            },
            dataType: "json",
            async: false,
            cache: false,
            success: function(data, textStatus) {
                subject = data.subject;
                content = data.content;
            }
        });

        if (subject) {
            alert("제목에 금지단어('"+subject+"')가 포함되어있습니다");
            f.qa_subject.focus();
            return false;
        }

        if (content) {
            alert("내용에 금지단어('"+content+"')가 포함되어있습니다");
            if (typeof(ed_qa_content) != "undefined")
                ed_qa_content.returnFalse();
            else
                f.qa_content.focus();
            return false;
        }

        <?php if ($is_hp) { ?>
        var hp = f.qa_hp.value.replace(/[0-9\-]/g, "");
        if(hp.length > 0) {
            alert("휴대폰번호는 숫자, - 으로만 입력해 주십시오.");
            return false;
        }
        <?php } ?>

        document.getElementById("btn_submit").disabled = "disabled";

        return true;
    }
    </script>
</section>
<!-- } 게시물 작성/수정 끝 -->

 

 

 

댓글