Table of Contents

Since OctoberCMS (OC) switched from an Open to a Close Source Project this Wiki will cover WinterCMS (WNC) instead.
WinterCMS is a fork of the original OctoberCMS open-source version and now maintained by its own team.
Since the development of WNC is still in progress, the content will be updated and further content will be added as soon as WNC will start it's marketplace!

Due to the change from OC to WNC you will still find the name “OctoberCMS” instead of “WinterCMS” at some places and on some pictures within this wiki. The update process will continue :)

Welcome to the WinterCMS HowTo Wiki & Cookbook

This is a reference guide to common questions asked especially by beginners but will cover as well as answers for more experienced users of WinterCMS OctoberCMS. Each how-to is written to find a quick solution for a specific problem. So hopefully it's helpful for those making their first steps with this CMS, but also for those looking for a brush-up.

To make things more understandable most how-to's are explained by practical examples, screenshots and videos in some cases.

Other sources:
Beside the docs on the WinterCMS homepage, there are several sources to find tips, help and explanations:



This Wiki: Table of Content

Preface

Introduction
Who WinterCMS could be for
Who this wiki is for
Prerequisites
Conventions

Usecases

Personal homepage
SMB company homepage
SMB service websites
Club homepage and administration
Webshop
Interactive, educational websites
Web/SaaS applications

Getting Started

How to do a basic installation
A guided WinterCMS tour: The Backend - where it all begins
How to install themes
How to install plugins

How WinterCMS is Structured

How themes, layouts, pages, partials and content blocks are organized

The WinterCMS IDE

The page area: Where to edit pages
The partials area: Where to edit partials
The layout area: Where to edit layouts
The content area: Where to edit content blocks
The assets area: Where to edit assets (like scripts, css)
The markup section: Where to edit html and twig code in OctoberCMS
The php code section: Where to edit php in OctoberCMS
JavaScript and jQuery: Where to edit in OctoberCMS
Previewing the results

Basics: Elements of WinterCMS Site Creation

How to use/change a theme
How to create a layout - part 1 the header
How to create a layout - part 2 the page body
How to create a layout - part 3 adding scripts
How to set up a new page
How to build a simple page
How, where and when to use partials
How, where and when to use content blocks
Where to place javaScript/jQuery libraries and how to integrate them
Where to place php libraries and how to integrate them

Basic How-to's

How to use plain html in WinterCMS
How to use twig in WinterCMS
How to use php in WinterCMS
How to use sessions and session variables
How to read data from a model or plugin
How to do data queries
How to add a redirect
How to implement AJAX calls

The Media Manager

How to manage images, videos and documents with Media Manager
How to prevent direct access to files stored with Media Manager
How to use Media finder in plugin development

Useful Plugins for Various Usecases

How to use WinterCMS as a WYSIWYG site creator
Visual page design
The User plugin: Handling restricted pages and services
The Blog plugin: How to setup a simple blog.
Translate: A must-have for multilingual sites

Plugins for Developer

Developer Tools: An every-day inplace code-editor
List-switch: Small, simple, handy
Backend Elite: A Swiss-Knife for various occasions
PHP Sandbox: How to look inside

The Builder Plugin

How to install the Builder plugin
How to prepare to create a database

Builder by Example

An example scenario: The library database
Database, tables, models, controllers, … What the heck are they good for?
Preparing required tables for this example
Preparing models for the example tables
Preparing backend menues for the example tables
Preparing controllers for the example tables

Working with Relations
Example 1: Single media/file attachment. E.g. Adding a cover image to a book record
Example 2: Multiple media/file attachments. E.g. Adding some page views
Example 3: The hasOne relation. E.g. Adding a unique description to a book
Example 4: The hasMany relation. E.g. Adding reviews to a book
Example 5: The belongsTo relation. E.g. Adding one recommended (and predefined) agegroup to a book
Example 6: The belongsToMany relation. E.g. Adding genres to a book
Example 7: A more versatile belongsToMany relation. E.g. Adding a readers list

Builder Plugin Frontend Handling

Example 1: Show a list of books in the frontend
Example 2: Show details to a book
Example 3: Frontend forms

Plugin Source Coding

How to add a side menu item to a plugin