<?php // (2019.3.15, 차재복, Cha Jae Bok, http://www.ktword.co.kr)
# 배열 목록 출력 함수
function contents_display($set, $cur_path, $id, $dbi) {
echo "<ol class='ol_items'>";
foreach ($set as $key => $value) {
// 항목 레벨 깊이 차이 계산
$diff = ($set[$key+1]['depth']-$set[$key]['depth']);
echo "<li id='li_{$value['id']}' class='il_items'>";
// show/hide (▷/▽) -------------------------------------
if ( $diff > 0 or ($value['sub_cnt'] == 0 and $value['linked_num'] > 0 and $value['id']==$id) ) {
echo " <a href='{$value['id']}' class='lower_ol_hideshow' data-id='{$value['id']}' style='color:red;'>▽</a>";
} else if ( $diff <= 0 or ($value['sub_cnt'] == 0 and $value['linked_num']>0 and $value['id']!=$id) ) {
echo " <a href='{$value['id']}' class='ajax_page' data-id='{$value['id']}' style='color:red;'>▷</a>";
}
// 빈 칸
echo " ";
# 분류항목 명칭 및 요약 출력 ------------------------------
// 선택 항목 강조 (현 분류항목이 선택항목 path에 속하는지 여부에 따라 폰트 강조)
$strong = ( strpos(','.$cur_path.',',','.$value['id'].',')!==false ? 'color:Crimson;' : '') ;
// 분류항목 링크 표시
$href = "../view/view.php?nav=2&id={$value['id']}";
echo "<a href='{$href}' class='view' data-id='{$value['id']}' style='{$strong}'>";
// 분류항목 명칭
echo $value['name'];
// 중간 띄어쓰기
echo " ";
echo " : ";
// 분류항목 요약
echo $value['yoyak'];
echo "</a>";
# (편집자용) 분류항목 Edit 버튼, Move 버튼, 상세 편집용 div --------------------------------
if ( !empty($_SESSION['user_name']) ) {
// 편집자용 edit 클릭 태그 호출
edit_span($value['id'], $value['name'], $value['sub_cnt'], '');
// 해당 항목 상세 편집용 div
detail_edit_div($value['id'], '', $value['name'], $value['yoyak'], $value['sub_cnt']);
}
# 해당 id 항목 상세보기용 div
echo "<div class='detail_view' data-id='{$value['id']}' data-no='' style='display:none;margin-top:5px;margin-left:25px;'>";
echo "</div>";
if ( $diff > 0) echo "<ol class='ol_items'>"; // 레벨 추가
// 개별 용어항목 명칭 및 요약 출력
if ( $value['linked_num'] > 0 and strpos(','.$cur_path.',',','.$value['id'].',') !== false ) {
if ( $value['sub_cnt'] == 0 ) echo "<ol class='ol_items'>"; // 하부 분류 없으나, 용어항목들을 감싸기 위해 ol 추가
// 용어항목 명칭 및 요약 출력을 위한 함수 호출
detail_items_display($value['id'], $dbi);
if ( $value['sub_cnt'] == 0 ) echo "</ol>";
}
// (편집자용) 용어해설 항목 생성 편집용 div (처음에는 안 보임)
if ( !empty($_SESSION['user_name']) ) {
echo "<div class='no_edit' data-id='{$value['id']}' data-no='' style='display:none; margin-top:5px; margin-left:20px; border:1px dotted gray;'>";
edit_no($id);
echo "</div>";
}
if ( $diff == 0) echo "</li>"; // 동급 레벨
if ( $diff < 0) // 레벨 닫음
echo str_repeat("</ol></li>", - $diff);
}
echo "</ol>";
}
# 각 id별 세부 용어 항목명 보이기 함수 루틴
function detail_items_display($id, $dbi) {
$query="select titlename, no, list_ord, tree_id as id, yoyak
from book_idx
where tree_id={$id}
order by list_ord, titlename";
$result = mysqli_query($dbi,$query);
$cnt = mysqli_num_rows($result);
$n=1;
while ( $matched=mysqli_fetch_assoc($result) ) {
echo "<li >";
echo " ";
echo " $n. ";
# 용어항목 명칭 및 요약 출력 -----------------------------
$href = "../view/view.php?nav=2&id={$id}&no={$matched['no']}";
echo "<a href='{$href}' class='view' data-id='{$id}' data-no='{$matched['no']}' >";
// 용어항목 명칭
echo $matched['titlename'];
echo " ";
// 용어항목 요약 출력 --------------------------------
if ( !empty($matched['yoyak']) ) {
echo " : ";
echo $matched['yoyak'];
}
echo "</a>";
# (편집자용) 용어항목 Edit 버튼 및 상세 편집용 div --------------------------------
if ( !empty($_SESSION['user_name']) ) {
// 편집자용 edit 클릭 태그 호출
edit_span($id, $matched['titlename'], 0, $matched['no']);
// 해당 항목 상세 편집용 div
detail_edit_div ($id, $matched['no'], $matched['titlename'], $matched['yoyak']);
}
# 해당 no 항목 상세보기용 div (처음에는 화면에 안 보임)
echo "<div class='detail_view' data-id='{$id}' data-no='{$matched['no']}' style='display:none;margin-top:5px;margin-left:20px;'>";
echo "</div>";
echo "</li>";
$n=$n+1;
}
}
?>