139 lines
3.1 KiB
Markdown
139 lines
3.1 KiB
Markdown
# Crille Schema Viewer
|
||
|
||
Crille Schema Viewer är ett WordPress‑plugin som hämtar och visar kommande schemahändelser från Högskolan Västs KronoX‑system. Pluginet hämtar schemat server-side via ICS‑formatet och exponerar det genom ett eget REST‑API i WordPress. Datan renderas sedan i frontend genom ett Gutenberg‑block.
|
||
|
||
Pluginet innehåller även en inställningssida som gör det möjligt att välja vilken signatur (resurskod) som schemat ska hämtas för samt hur många kommande schemaposter som ska visas.
|
||
|
||
---
|
||
|
||
## Funktioner
|
||
|
||
- Hämtar schema från Högskolan Västs KronoX‑system via server‑side ICS.
|
||
- Visar kommande schemaposter via ett Gutenberg‑block.
|
||
- Ingen CORS‑problematik eftersom all hämtning sker i PHP.
|
||
- Datum konverteras korrekt från UTC till svensk tid (CET/CEST).
|
||
- Svensk datumformatering (exempel: "2 april 2026").
|
||
- Automatisk datatvättning av ICS‑innehåll.
|
||
- Inställningssida i WordPress:
|
||
- Välj signatur/resurskod (exempel: s.COH).
|
||
- Välj antal schemaposter som ska visas.
|
||
- Frontend‑rendering via JavaScript.
|
||
- Gutenberg‑block: "HV Schema".
|
||
|
||
---
|
||
|
||
## Installation
|
||
|
||
1. Ladda upp plugin‑mappen till:
|
||
|
||
```
|
||
wp-content/plugins/crille-schema-plugin
|
||
```
|
||
|
||
2. Alternativt: Installera plugin‑ZIP via WordPress:
|
||
|
||
```
|
||
WordPress Admin → Plugins → Lägg till nytt → Ladda upp plugin
|
||
```
|
||
|
||
3. Aktivera pluginet.
|
||
|
||
---
|
||
|
||
## Inställningar
|
||
|
||
Efter aktivering får du en ny sida i WordPress:
|
||
|
||
**WordPress Admin → Inställningar → HV Schema**
|
||
|
||
Här kan du ange:
|
||
|
||
### Signatur / Resurskod
|
||
|
||
Den kod som används i KronoX för att hämta schema för en specifik person, exempelvis:
|
||
|
||
```
|
||
s.COH
|
||
s.SRM
|
||
s.CHRH
|
||
```
|
||
|
||
Detta styr vilket schema som visas.
|
||
|
||
### Antal poster
|
||
|
||
Anger hur många kommande schemaposter som ska visas. Exempel:
|
||
|
||
```
|
||
7 (standard)
|
||
10
|
||
3
|
||
```
|
||
|
||
Pluginet hämtar mer data från ICS, men visar endast det antal du valt.
|
||
|
||
---
|
||
|
||
## Användning i Gutenberg
|
||
|
||
1. Öppna en sida eller skapa en ny.
|
||
2. Klicka på knappen för att lägga till block.
|
||
3. Sök efter:
|
||
|
||
```
|
||
HV Schema
|
||
```
|
||
|
||
4. Placera blocket där schemat ska visas.
|
||
5. Publicera eller uppdatera sidan.
|
||
|
||
Vid frontend‑visning hämtas schemat automatiskt och visas utan ytterligare inställningar.
|
||
|
||
---
|
||
|
||
## Teknik och arkitektur
|
||
|
||
- Schema hämtas via `wp_remote_get()` direkt från KronoX (server-side).
|
||
- Pluginet exponerar ett REST‑endpoint:
|
||
|
||
```
|
||
/wp-json/hv/v1/schema
|
||
```
|
||
|
||
- Frontend hämtar datan via `wp.apiFetch()`.
|
||
- ICS‑data parsas i JavaScript.
|
||
- Datum omvandlas från UTC till Europe/Stockholm.
|
||
- Gutenberg‑block renderas via `render_callback`.
|
||
- Styling sker via `css/style.css`.
|
||
|
||
---
|
||
|
||
## Filstruktur
|
||
|
||
```
|
||
crille-schema-plugin/
|
||
│
|
||
├── hv-schema.php (huvudfil: block, REST, settings, proxyhämtning)
|
||
├── block.json (Gutenberg block-definition)
|
||
│
|
||
├── css/
|
||
│ └── style.css (frontend-styling)
|
||
│
|
||
└── src/
|
||
├── block.js (Gutenberg editor-vy)
|
||
└── frontend.js (hämtar och renderar schema i frontend)
|
||
```
|
||
|
||
---
|
||
|
||
## Version
|
||
|
||
**1.1 – Lagt till inställningssida för signatur och antal visade poster.**
|
||
|
||
---
|
||
|
||
## Author
|
||
|
||
Christian Ohlsson
|
||
Högskolan Väst
|