Reader
Sequential 콘� �츠 viewer — � �마 / 진도 / 콘� �츠 모드 결정 (Pure)
상태
| 항목 | 값 |
|---|---|
| Layer | core |
| Tier | L1 |
| Status | released |
| Version | 1.0.0 |
| 가격 | Free (free) |
| **카� | |
| �고리** | Content |
개요
개요
Reader 는 multi-saas-kit 의 Layer 1 Core Plugin � 니다. ebook reader / online course / blog viewer / news article series 등 sequential 콘� �츠 viewer 의 핵심 결정 로직 — � �마 / 진도 / 콘� �츠 모드 — 을 모델 의존 없이 Pure 로 제공합니다.
분리선 (ADR-039)
ADR-039: Plugin Scope 원칙 의 사례 1 로 채택. 기존 Webbook plugin (academy.how 학습자 viewer 전용 �
�
) 을 Reader 로 일반화. �
칭/path 만 도메인 흔적이었으며, 로직은 어떤 sequential viewer 에도 적용 가능.
핵심 컴포넌트 (3 Pure Service)
ThemeResolver
4단계 우선순위로 � �마 결정:
- URL
?theme=xxx(운영자 미리보기) ownerTheme(caller 가 결정 — Book.theme / Course.theme / Channel.theme)tenant.settings.{namespace}.default_theme(organization 기본, namespace 는 config 주� )- config default (
'system')
ProgressCalculator + ItemProgress DTO
정렬된 ID 배열 + 현재 ID → 진도/이전/다음. 도메인 모델 무관.
ContentModeResolver
image / html 모드 + html 미존재 시 image 자동 폴백.
설정 (config/reader.php)
SaaS 별 namespace 주� :
| SaaS | tenant_settings_namespace |
|---|---|
| academy.how (Webbook viewer) | 'academy' |
| ebook reader | 'ebook' |
| blog viewer | 'blog' |
| 통합 모드 | null (top-level) |
출처
academy.how WebbookController 추출 → Reader plugin 으로 일반화. Eloquent Book/Lesson/Page/Asset 의존은 academy.how 잔류.
의존성
core: >=1.1.0- 다른 plugin: 없음
라이선스
MIT
데모
- Platform 관리자 패널에서 메타 확인 🔒 로그인 필요
- 사용 예시 (PHP)
🛒 Plugin Store에서 보기: store.codebase.how/plugins/reader