//**Since OctoberCMS (OC) switched from an Open to a Close Source Project this Wiki will cover [[https://wintercms.com|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 [[https://wintercms.com/docs/setup/installation|docs]] on the WinterCMS homepage, there are several sources to find tips, help and explanations:\\ * Some [[https://wintercms.com/blog/latest|tutorials]] on the WinterCMSwebsite * The [[https://wintertricks.com/|WinterCMS Tricks]] website * The [[https://stackoverflow.com/questions/tagged/octobercms|Stackoverflow]] forum covering a lot of tricks for OctoberCMS still valid for WinterCMS too * A workshop at YouTube from Derek Bell [[https://www.youtube.com/watch?v=2hSCuU4raJg&list=PL4BzMLrNDzNCmEngBfYCUdx_kSMhGcJRb|Buid a website from scratch using WinterCMS]] * Some other tutorials from Carlos Pinto on YouTube at his [[https://www.youtube.com/c/CarlosPintoQroft|YT channel]] * YouTube: [[https://www.youtube.com/watch?v=Qj9GKSkH21k|WinterCMS - Introduction and Installation]] by Skripteria covering the command line installation * YouTube: [[https://www.youtube.com/watch?v=ptgbIykRhY4&list=PLkqIPz4HOE4vWTJQXpsu5GQP4WIas5peO|Creating websites with WinterCMS]] in Portuguese (YT live translations are helpful ;) * The YouTube tutorials of Samuel Georges, see this [[https://www.youtube.com/watch?v=Sz_OB_BVw-A&list=PLfQvk5RK_e-Zim57m_CptCXYlgFT7P_sv|playlist on the cms]] and this [[https://www.youtube.com/watch?v=3Iy4v10sUK4&list=PLfQvk5RK_e-YCNhi4h4fgUuwVc86Dvsjb|playlist on how to create a plugin]] * And a workshop of a total of 47 videos (covering the old open-source OctoberCMS) [[https://www.youtube.com/watch?v=3SmnExVW0Ag&list=PLUBR53Dw-Ef-X-_A1KLy41r2QArCBy4rM|OctoberCMS video tutorials]] made by Ivan Doric on his watch+learn channel \\ \\ **This Wiki: Table of Content** ===== Preface ===== /* use namespace preface */ [[preface:introduction|Introduction]]\\ Who WinterCMS could be for\\ Who this wiki is for\\ Prerequisites\\ Conventions\\ ===== Usecases ===== /* User namespace usecases */ Personal homepage\\ SMB company homepage\\ SMB service websites\\ Club homepage and administration\\ Webshop\\ Interactive, educational websites\\ Web/SaaS applications\\ ===== Getting Started ===== /* use namespace started */ [[:started:installation:basic_installation|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 ===== /* use namespace octoberstructure*/ How themes, layouts, pages, partials and content blocks are organized\\ ==== The WinterCMS IDE ==== /* use namespace ide */ [[:ide:page_area|The page area: Where to edit pages]]\\ [[:ide:partial_area|The partials area: Where to edit partials]]\\ [[:ide:layout_area|The layout area: Where to edit layouts]]\\ [[:ide:content_area|The content area: Where to edit content blocks]]\\ [[:ide:assets_area|The assets area: Where to edit assets (like scripts, css)]]\\ [[:ide:markup_section|The markup section: Where to edit html and twig code in OctoberCMS]]\\ [[:ide:code_section|The php code section: Where to edit php in OctoberCMS]]\\ [[:ide:scripts_section|JavaScript and jQuery: Where to edit in OctoberCMS]]\\ [[:ide:preview|Previewing the results]]\\ ===== Basics: Elements of WinterCMS Site Creation ===== /* use namespace basics:elements*/ 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 ===== /* use namespace basics:howto */ 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 ===== /* use namespace basics:mediafinder */ 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 ===== /* use namespace 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 ===== /* use namespace developers */ [[:developers:plugin_developertools |Developer Tools: An every-day inplace code-editor]]\\ [[:developers:plugin_listswitch|List-switch: Small, simple, handy]]\\ Backend Elite: A Swiss-Knife for various occasions\\ /* The Expander plugin: Adapt existing plugins to individual requirements\\ */ PHP Sandbox: How to look inside\\ ===== The Builder Plugin ===== /* use namespace builder*/ How to install the Builder plugin\\ How to prepare to create a database\\ /* use of DIA for a db structure chart */ ==== Builder by Example ==== /* use namespace builder:example:backend */ 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**\\ [[:examples:builder:singe_attachment|Example 1: Single media/file attachment. E.g. Adding a cover image to a book record]]\\ [[:examples:builder:multi_attachment|Example 2: Multiple media/file attachments. E.g. Adding some page views]]\\ [[:examples:builder:hasOne_relation|Example 3: The hasOne relation. E.g. Adding a unique description to a book]]\\ [[:examples:builder:hasMany_relation|Example 4: The hasMany relation. E.g. Adding reviews to a book]]\\ [[:examples:builder:belongsTo_relation|Example 5: The belongsTo relation. E.g. Adding one recommended (and predefined) agegroup to a book]]\\ [[:examples:builder:belongsToMany_relation|Example 6: The belongsToMany relation. E.g. Adding genres to a book]]\\ [[:examples:builder:belongsToMany_relation2|Example 7: A more versatile belongsToMany relation. E.g. Adding a readers list]]\\ /* [[:examples:builder:repeater_field|Example 3: The repeater field (no relation, but an alternative to hasMany). E.g. Adding some properties like isbn]]\\ */ /* Example 9: Adding a list of books to a reader - a reverse relation\\ */ ==== Builder Plugin Frontend Handling ==== /* use namespace builder:example:frontend */ Example 1: Show a list of books in the frontend\\ Example 2: Show details to a book\\ Example 3: Frontend forms\\ ===== Plugin Source Coding ===== [[:examples:plugincoding:add_sidemenu|How to add a side menu item to a plugin]]\\