<?php // (2021.8.4, 차재복, Cha Jae Bok, http://www.ktword.co.kr)
//** 용어해설 편집 **//
# 세션 설정
// 세션 스타트 (매 웹페이지 마다 필요)
session_start();
// 세션 변수에 따른 사용자 타입 설정 ('일반사용자' or '테스트편집자' or '종합관리자')
$_SESSION['user_type'] = ( empty($_SESSION['user_name']) ? '일반사용자' : $_SESSION['user_name'] );
# db 연결 및 html 헤더부 (db 접속, title 선언, utf-8 선언, 모바일 셋팅)
include_once "../base_utils/config.php";
# 전달 매개변수
// 용어해설 번호
$no = $_REQUEST['no'];
if ( isset($_REQUEST[no]) and !empty($no) and !is_numeric($no) or $no<0 ) exit; // 해킹방지 (수치>0)
// 머리글,바닥글 표출 유무
$bare = $_REQUEST[bare];
# php 함수 include
include "./edit_display.php";
include "../edit/edit_utils.php";
include "../search/srch_utils.php";
# css 스타일링
if (empty($bare)) echo "<link rel='stylesheet' href='./edit.css' type='text/css'>";
# 자바스크립트 전역변수 처리
// (PHP => Javascript : 인수 전달) user_type 등을 자바스크립트 전역변수로 전달
$global = ( isset($_SESSION['user_name']) ? 1 : 0 );
echo "<script>";
echo "var globals = { 'user_type' : {$global}, 'edit_win' : '{$edit_win}' };";
// user_type : (<1 : '일반사용자 0') or (>=1 : '테스트편집자 1' or '정식편집자 2' or '종합관리자 3')
echo "</script>";
# 자바스크립트
// common_utils.js 호출
echo "<script type='text/javascript' src='../base_utils/common_utils.js' charset='UTF-8'></script>";
// edit.js, edit_embed.js 호출
echo "<script type='text/javascript' src='./edit.js' charset='UTF-8'></script>";
echo "<script type='text/javascript' src='./edit_embed.js' charset='UTF-8'></script>";
//
echo "<script type='text/javascript' src='../paging/word_choice.js' charset='UTF-8'></script>";
// MathJax
include_once "../base_utils/mathjax_config.php";
// navigation용 메뉴 지원 함수들
echo "<script type='text/javascript' src='../navigation/short_navi.js'></script>"; //
// echo "<script type='text/javascript' src='./view.js'></script>"; // load 이벤트
# 스타일
echo "<style>
* { font-size:13px; }
#pure_text .hide { display:none; }
</style>";
# 상단 제목줄
if (empty($bare)) {
// 헤더부 출력 (사이트명, 현재 페이지 타이틀명, 현재의 사용 db, 사용자명 출력, 테스트 편집자 로그인, 검색)
$title = " 용어해설 편집 (개선중) ... ";
include "../base_utils/top_section.php";
// 수평선
echo "<hr style='margin:0'>"."\n";
}
# 편집대상 용어 선택 (용어 알파벳순 또는 용어 분류 선택)
edit_word_choice ($no, $dbi); // edit_display.php
# db 쿼리 및 결과 배열화
// 편집 용어 지정 시
if (!empty($no)) {
$fetched_arr = word_query_arr($no, $dbi);
// join된 레코드들 중 첫번째 추출하여 $matched 배열에 저장
if (is_array($fetched_arr)) {
$matched = $fetched_arr[0];
} else {
echo "<br><br>주어진 번호에 해당하는 용어해설 없음 !!!<br><br>";
}
}
# 중간 편집용 메뉴 및 편집용 화면 표출
if (is_array($matched)) {
// 편집용 메뉴 (업데이트 메뉴 버튼 선택)
edit_menu ($no);
// 편집용 화면
edit_win_display ($edit_win, $no, $matched, $fetched_arr, $dbi);
}
# 하단 마무리
if (empty($bare)) {
echo "<hr>";
// 저작권
include "../base_utils/copyright.php";
}
# 통계처리 요청 (stat_page)
include "../base_utils/stat_utils.php";
html_access('edit.php',$dbi);
?>
<?php
function word_query_arr($no, $dbi) {
// db 쿼리
$query = "select a.no, yako, full_name, korean, extra_keyword, sujung,
a.abbr as orig_text, b.abbr as disp,
content, content_orig,
c.in_no, c.type, c.origin, c.text, c.code
from cjb_dict a left join dict_anchor b on a.no=b.no left join embed c on a.no=c.no
where a.no=$no";
$result = mysqli_query($dbi, $query);
if (mysqli_errno($dbi)) { echo mysqli_errno($dbi)." : ".mysqli_error($dbi)."\n";}
while ($fetched = mysqli_fetch_assoc($result)) {
$fetched_arr[] = $fetched;
// no, in_no, type, origin, text, code
}
return $fetched_arr;
}
?>