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:
- Some tutorials on the WinterCMSwebsite
- The WinterCMS Tricks website
- The Stackoverflow forum covering a lot of tricks for OctoberCMS still valid for WinterCMS too
- A workshop at YouTube from Derek Bell Buid a website from scratch using WinterCMS
- Some other tutorials from Carlos Pinto on YouTube at his YT channel
- YouTube: WinterCMS - Introduction and Installation by Skripteria covering the command line installation
- YouTube: Creating websites with WinterCMS in Portuguese (YT live translations are helpful ;)
- The YouTube tutorials of Samuel Georges, see this playlist on the cms and this playlist on how to create a plugin
- And a workshop of a total of 47 videos (covering the old open-source OctoberCMS) OctoberCMS video tutorials made by Ivan Doric on his watch+learn channel
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