Initial commit: 교육 프로젝트 배포
This commit is contained in:
@@ -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>
|
||||
Reference in New Issue
Block a user