CMS · Editor guide
Academy courses
Use this guide to create and update professional training courses that appear on the Dashboard Academy page. You need the editor or Admin role.
Where learners see your work
- Dashboard → Academy (
Dashboard/academy.php) lists every published course as a card, grouped by category (CISO, SOC, AI). - Clicking a card opens course.php?slug=… with the outline, videos, readings, and quizzes.
- Draft courses (
published: no) stay hidden from Academy until you publish them.
Course list (courses.php)
From Academy courses you can:
- New course — start a blank course and add chapters after saving.
- Edit — change metadata, chapters, and topics.
- View — open the learner course page (same as Dashboard) in a new tab.
Use Sort order to control card order within a category (lower numbers appear first).
Course details
- Title
- Shown on the Academy card and at the top of the course page (max 200 characters).
- Slug
- URL-safe id, lowercase letters, numbers, and hyphens only (e.g.
ciso-zero-trust-strategy). Used incourse.php?slug=…. Do not change after launch if learners have bookmarks. - Summary HTML
- Short description on the Academy card and course header (max 500 characters). Use simple tags:
p,br,strong,em,ul,ol,li. - Category
- Groups the card under CISO, Security Operations Center, or AI & Cyber Security.
- Card icon label
- Small label on the card (e.g.
CISO,SOC,AI). - Published
yes= visible on Academy;no= hidden while you work.- Sort order
- Numeric order among courses in the same category.
Chapters and topics
Each course has one or more chapters. Each chapter has one or more topics (the steps in the left outline).
- Chapter id — stable key (e.g.
ch1,ch2). Keep ids consistent if learners have saved progress in the browser. - Topic id — stable key per topic (e.g.
ch1-t1,ch1-q1). - Use Add chapter / Add topic to expand the course; Remove deletes that block (each chapter needs at least one topic).
Click Save course when finished. Saving replaces all chapters and topics for that course with what is in the editor.
Topic types
Text
Requires Body HTML — paragraphs, lists, and links. Use simple tags: <p>, <ul>, <li>, <strong>.
Video
Requires an embed Video URL (YouTube embed URL, e.g. https://www.youtube.com/embed/VIDEO_ID). Optional body HTML appears below the player.
Quiz
Requires Quiz JSON with 5 to 10 questions. Learners must answer every question correctly to complete the topic.
Quiz JSON format
Start with an object and a questions array — do not paste bare question objects one after another. Each question needs question, options (at least two strings), and answer (0-based index). Optionally add explanation for wrong-answer feedback.
{
"questions": [
{
"question": "Which is a core Zero Trust principle?",
"options": [
"Implicit trust inside the network",
"Assume breach",
"Static firewall rules only"
],
"answer": 1,
"explanation": "Zero Trust assumes breach and verifies every access request."
},
{
"question": "Second question text?",
"options": ["Wrong", "Correct", "Also wrong"],
"answer": 1,
"explanation": "Why the correct option is right."
}
]
}
answer: 0= first option,1= second, and so on.explanationis optional (max 2000 characters). Omit it or leave it empty if you do not want extra feedback.- The editor template starts with five blank questions — duplicate the object to add up to ten.
- Invalid JSON or fewer than five questions will fail on save.
Recommended workflow
- Create the course with Published: no.
- Set slug, category, and sort order; add chapters and topics.
- Save, then use Preview Academy or View from the course list.
- When content is ready, set Published: yes and save again.
Troubleshooting
- Save failed / validation error — Check slug format, required fields, quiz question count (5–10), and valid JSON.
- Course not on Academy — Confirm
publishedisyesand you are signed in as a learner would be on Dashboard. - Video does not play — Use an embed URL, not a watch page link.
- Quiz will not complete — All questions must be correct on submit; wrong answers show the optional explanation so learners can retry.
Learner progress (completed topics) is stored in the database per signed-in user and shown on Academy cards and inside each course.