Skip to content

Instantly share code, notes, and snippets.

@philsturgeon
Created December 11, 2009 12:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save philsturgeon/254191 to your computer and use it in GitHub Desktop.
Save philsturgeon/254191 to your computer and use it in GitHub Desktop.
v0.9.8 Documentation
--------------------
Dont worry guys this will be broken down into page hierarchy, just filling out the content while I work out how to lay it all out.
Modules
PyroCMS is broken down into modules. A module can be frontend only (shows only to the public on the user-facing part of the site) and some might be
backend only (can only be seen via the Control Panel) and is basically a way of splitting up interfaces and functionality throughout the CMS.
For example: News is a module which has both frontend and backend. On the other hand, the Settings module is backend only.
Core Modules
Core modules are required for PyroCMS to run. Examples of core modules are navigation, users, permissions, etc. Without these, PyroCMS dies.
They can be found in the main application folder here:
./application/modules/core
Third-party modules
Third-party modules are optional and could be written by the PyroCMS dev team or anybody else. These modules are "Non-core" which means they
are not required by PyroCMS, but offer extra functionality.
They can be found in the main application folder here:
./application/modules/third_party
Installing third-party modules
To install a new third-party module you need to do two things.
1. Drop the module into ./application/modules/third_party
E.g ./application/modules/third_party/wiki
2.) Run the following command to remove the Module cache:
sudo rm -rf ./application/cache/modules_m
Themes
A theme is a collection of "view" files, CSS and images that control how PyroCMS should look. By default, PyroCMS comes with two themes, but these
are meant to be used only as examples for you to create your own.
Themes can be found in the directory:
./application/themes
Changing themes
To change which theme PyroCMS uses on your site, all you need to do is log into the the Control Panel and navigate to Settings -> Themes and click
"Make default" on the theme you wish to use.
Installing themes
There are two ways to install a theme to your PyroCMS web site.
1. If you have access to the PyroCMS code (via FTP, SSH, etc) add the theme folder to ./application/themes/<theme-name>
2. If not, you can upload a ZIP file of your theme via the Settings -> Theme -> Upload interface.
How do I make one?
CSS, images, JS and the asset helper
views, fragments, etc
Template syntax support
What are "layouts"?
How to override module view files.
How to override module layout files.
Pages
Pages is a core module that allows the end-user to add, edit and delete custom page content via a simple, intuative interface with limited
understanding of HTML. The pages module recieves all URL requests that are not a global controller or a module controller, then if no page exists it will
display a "Page not found" message.
Unlike many CMS' with page managers, PyroCMS can have unlimited levels of pages, meaning instead of just http://example.com/page-name you can have
http://example.com/page-name/child-page/grandchild.
Children... WTF?
Parent/child is a simple way of describing the relationship of pages. If "Page A" has another page below it "Page B", then "Page A" is a parent and
"Page B" is a child. A grandchild could be "Page C", which is a child of "Page B".
Editing CSS
Each page is able to have its own custom <acronym title="Cascading Style Sheets">CSS</acronym> editable via the "Layout" tab in the Create/Edit page
screen. This allows users to write specific CSS for a single page. To share CSS across a group of similar pages, you can add and edit CSS for a <a
href="#page_layouts">page layout</a>.
<a name="page_layouts" />Page layouts
A page layout essentially wraps a page, and controls where the title and content goes. This means you can add shared navigation bars, wrappers, extra
text or images to a whole group of pages. These can be edited via a WYSIWYG interface just like pages.
Two variables are available for this:
{$page.title}
{$page.body}
Thress guesses at what those two variables do.
Widgets
WTF are they?
Where are they?
How do I make one?
How do I use one?
Libraries
Admin_Controller
Asset
Cache
Curl
MY_Config
MY_Controller
MY_Exceptions
MY_Input
MY_Loader
MY_Model
MY_Pagination
MY_Parser
MY_Router
MY_Validation
Public_Controller
Simplepie.php
Template
Tinycimm
Widgets
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment