Initial commit: 교육 프로젝트 배포

This commit is contained in:
송대일
2026-07-01 18:32:42 +09:00
commit be6dccd120
1483 changed files with 5082202 additions and 0 deletions
+111
View File
@@ -0,0 +1,111 @@
<?php
require_once __DIR__ . '/../bbs/auth.php';
edu_require_login();
/**
* skin/learning.php — 법정교육 페이지 뷰 템플릿
*
* bbs/legal_learning_data.php 가 제공하는 변수:
* $userName - 사용자 이름
* $userRank - 직위/직급
* $dDay - D-day 숫자
* $deadlineStr - 마감일 문자열
* $chapters - 챕터 배열
* $chaptersJson - JSON (window.learningChapterData)
* $configJson - JSON (window.learningConfigData)
* $progressRate - 전체 진도율 (0~100)
*/
require_once __DIR__ . '/../bbs/legal_learning_data.php';
?>
<!doctype html>
<html lang="ko">
<head>
<?php include(__DIR__ . "/_include/_head.php") ?>
</head>
<body>
<div class="wrap lessons">
<?php include(__DIR__ . "/_include/_header.php") ?>
<div class="container">
<div class="lessons-wrap">
<div class="inner">
<?php
$today = new DateTime('today');
$start = new DateTime('2026-06-08');
$end = new DateTime('2026-06-30');
if ($today >= $start && $today <= $end) : ?>
<a class="btn-edu-link" target="_blank" href="https://ehrd.kgeduone.co.kr/">
<span>
<em>산업안전보건 교육</em> <span>수강하기</span>
</span>
<i class="ico-outward"></i>
</a>
<?php endif; ?>
<div class="page-title">
<h3><em><?= htmlspecialchars($userName) ?> <?= htmlspecialchars($userRank) ?>님</em></h3>
<p>
<em>D-<?= $dDay ?><small>(<?= $deadlineStr ?>)</small> 까지 필수 콘텐츠</em> 시청을
완료해주세요.
</p>
</div>
</div>
<div class="lessons-area">
<div class="lessons-gauge">
<!-- Start-line: 학습 목록이 있으면 자동으로 on 이미지로 변경됨 -->
<div class="start-line">
<img
src="/img/learning/img_start_off.svg"
alt="start"
/>
</div>
<?php include(__DIR__ . "/learning_svg.php") ?>
<!-- 챕터 카드 컨테이너 (JavaScript에서 동적 생성) -->
<ul class="chapter-list"></ul>
<!-- 마커 컨테이너 -->
<div id="markers-container"></div>
</div>
</div>
</div>
</div>
</div>
<!-- 법정교육 데이터 (PHP → JS 주입) -->
<script>
// 챕터·레슨별 완료 상태 (gauge, markers, chapter-cards.js 에서 사용)
window.learningConfigData = <?= $configJson ?>;
// 챕터 전체 데이터 (제목, 영상 URL, 진도 등)
window.learningChapterData = <?= $chaptersJson ?>;
// 전체 진도율 (0~100)
window.learningProgressRate = <?= $progressRate ?>;
// 디버그 정보 (development 모드)
if (typeof window.learningDebugData === 'undefined') {
window.learningDebugData = {};
}
window.learningDebugData.legal = <?= json_encode($debugData, JSON_UNESCAPED_UNICODE) ?>;
// 디버그 로그 출력
if (window.learningChapterData && Array.isArray(window.learningChapterData) && window.learningChapterData.length === 0) {
console.warn('[LearningPage] learningChapterData is EMPTY - using config.js fallback', window.learningDebugData.legal);
} else if (window.learningChapterData && Array.isArray(window.learningChapterData)) {
console.log('[LearningPage] learningChapterData loaded from DB:', window.learningChapterData.length, 'chapters');
}
</script>
<!-- YouTube IFrame API (시간 스킵 제한에 필요) -->
<script src="https://www.youtube.com/iframe_api"></script>
<!-- 학습 페이지 스크립트 (의존성 순서 유지하며 defer로 비동기 로드) -->
<script src="/js/learning/config.js" defer></script>
<script src="/js/learning/gauge.js" defer></script>
<script src="/js/learning/markers.js" defer></script>
<script src="/js/learning/chapter-cards.js" defer></script>
<script src="/js/learning/progress-indicator.js" defer></script>
<script src="/js/learning/modal.js" defer></script>
<script src="/js/learning/main.js" defer></script>
</body>
</html>