Types of Plugins for the Breeze Website Builder™

Plugins can be categorized into 5 different types. These types are:

  1. Page plugins.  Can insert HTML and JavaScript code into content in DB records.  Can also insert PHP code into the page files themselves. Will often include their own style sheets.
  2. Console plugins.  Adds a button in the main menu to allow editing or configuring of something.
  3. Page plugins with console plugins (1 and 2).
  4. Editor plugins: Adds a button to access code inside of any or all of the consoles that use CKEditor to edit something. May open a console to edit/configure something, but may also just perform some action without user input.
  5. Style pack.  A style sheet and images purely for creating an overall website theme, or to create a theme for a particular page plugin.

Page Plugins

Page plugins were the initial reason behind the development of the plugin model and are probably more significant in terms of providing a quick-easy way to add dynamic content to websites. With page plugins, you can add server-side code (PHP) and client side code (JavaScript and CSS) and HTML to the content area and any of the border areas (header, footer, top, bottom, left, right) of a page. The server side code is inserted into the page-template layout files and is generally not considered user modifiable. (An expert logged in with admin privileges could use the file editor to change this code, but it is by no means done with the intention of being easy to do.) Client side code on the other hand, is stored in the page_data table (content area) and the page_data_special table (border areas) and is editable using the page and the border area editors. The fields that you will want to populate are as follows:

Field Name Required Recommended Optional NA Notes
id
X
Auto-increment
name
X
 
description
X
 
category
X
 
parent
X
 
default_page_name
X
 
page_name_suffix
X
If plugin has children, then recommended. Otherwise not applicable.
style_sheet
X
In many instances, you will want to style your plugin thru CSS. If you create a style sheet using the Breeze styles editor, you will have SQL you can user for class_sql and css_sql. The next 4 fields are related to style_sheet.
style_sheet_description
X
 
class_sql
X
 
css_sql
X
 
custom_css_sql
X
It is generally better to use the button and knobs interface to create your CSS because it is easier for users to modify, but you can also provide CSS code to store. There is nothing wrong with this approach.
head_code
X
At least one of the next 15 fields must be filled in.
head_html
X
 
header_code
X
 
header_html
X
 
top_code
X
 
top_html
X
 
left_code
X
 
left_html
X
 
content_code
X
 
content_html
X
 
right_code
X
 
right_html
X
 
bottom_code
X
 
bottom_html
X
 
footer_code
X
 
footer_html
X
 
console_path
X
 
console_link_text
X
 
console_link_image
X
 
console_link_image_mo
X
 
console_link_image_down
X
 
help_path
X
 
language_folder
X
 
console_link_text_define
X
 
button_group
X
 
plugin_sql
X
 
AccessLevel
X
It is possible that you would not want regular users and so forth to have the ability to install your plugin.
deployed (moved to plugins_deployed table)
X
Allow it to be default to 0. This gets changed to 1 when your plugin is used for the first time.
available
X
Must be set to 1 if you want your plugin to display in the list of plugins when the user is creating a page.
disable_site_styles
X
Only set to 1 if your plugin page is not actually a page, but rather an HTML that is sent to website visitors upon filling out a form.
body_onload
X
Lets you run a JavaScript function upon page load. If set to 1, next field is required.
body_onload_function
X
 
sort_order
X
Lets you control to some extent where your plugin shows up in the plugin list when a user adds your plugin to a page.

 

Console Plugins

Console plugins were to the plugin model soon after page plugins to provide an easier means with which to setup and control dynamic page content. In fact all of the original consoles were add-ons to page plugins, but we will discuss the combination more in the next section. Some examples of these page plugins with consoles include setup consoles for MailChimp or SugarCRM connections, event entry form for calendars and event pages, and gallery image management. In fact there are no console only plugins yet, but that is only because the menu system and the CSS editor are part of the the Breeze. There is no reason someone couldn't add additional functionality to the menus and styles such as the ability to animate. For those looking to create such a most-needed plugin, here is the table illuminating which fields are relevant to that project:

Field Name Required Recommended Optional NA Notes
id
X
Auto-increment
name
X
 
description
X
 
category
X
Must be set to "Console Only"
parent
X
 
default_page_name
X
 
page_name_suffix
X
 
style_sheet
X
 
style_sheet_description
X
 
class_sql
X
 
css_sql
X
 
custom_css_sql
X
 
head_code
X
 
head_html
X
 
header_code
X
 
header_html
X
 
top_code
X
 
top_html
X
 
left_code
X
 
left_html
X
 
content_code
X
 
content_html
X
 
right_code
X
 
right_html
X
 
bottom_code
X
 
bottom_html
X
 
footer_code
X
 
footer_html
X
 
console_path
X
Path to your plugin console
console_link_text
X
 
console_link_image
X
 
console_link_image_mo
X
 
console_link_image_down
X
 
help_path
X
Documentation about your plugin console. We will add it to the Breeze help system if you wish.
language_folder
X
 
console_link_text_define
X
 
button_group
X
If not defined, will be added to "SITE MANAGEMENT". Note: Your console button can be added to any or all of the content/code editors instead of the main menu.
plugin_sql
X
Quite often consoles work with one or more database tables. This is where the SQL goes to create those tables in their initial state.
AccessLevel
X
It is possible that you would not want regular users and so forth to have the ability to access your plugin console.
deployed (moved to plugins_deployed table)
X
This must be set to 1 for a console-only plugin as you can't add a console-only plugin to a page which is the normal way to deploy a plugin.
available
X
 
disable_site_styles
X
 
body_onload
X
.
body_onload_function
X
 
sort_order
X
 

 

Page Plugins with Consoles

Having a console for configuring and modifying a page plugin is a very typical scenario. Some examples of these page plugins with consoles include setup consoles for MailChimp or SugarCRM connections, event entry form for calendars and event pages, and gallery image management. Obviously, this field requirements are simply a combination of the above mentioned page plugin and console plugin (with only a slight difference), but we will re-iterate here for your convenience:

Field Name Required Recommended Optional NA Notes
id
X
Auto-increment
name
X
 
description
X
 
category
X
 
parent
X
 
default_page_name
X
 
page_name_suffix
X
If plugin has children, then recommended. Otherwise not applicable.
style_sheet
X
In many instances, you will want to style your plugin thru CSS. If you create a style sheet using the Breeze styles editor, you will have SQL you can user for class_sql and css_sql. The next 4 fields are related to style_sheet.
style_sheet_description
X
 
class_sql
X
 
css_sql
X
 
custom_css_sql
X
It is generally better to use the button and knobs interface to create your CSS because it is easier for users to modify, but you can also provide CSS code to store. There is nothing wrong with this approach.
head_code
X
At least one of the next 15 fields must be filled in.
head_html
X
 
header_code
X
 
header_html
X
 
top_code
X
 
top_html
X
 
left_code
X
 
left_html
X
 
content_code
X
 
content_html
X
 
right_code
X
 
right_html
X
 
bottom_code
X
 
bottom_html
X
 
footer_code
X
 
footer_html
X
 
console_path
X
Path to your plugin console
console_link_text
X
 
console_link_image
X
 
console_link_image_mo
X
 
console_link_image_down
X
 
help_path
X
Documentation about your plugin console. We will add it to the Breeze help system if you wish.
language_folder
X
 
console_link_text_define
X
 
button_group
X
If not defined, will be added to "SITE MANAGEMENT". Note: Your console button can be added to any or all of the content/code editors instead of the main menu.
plugin_sql
X
Quite often consoles work with one or more database tables. This is where the SQL goes to create those tables in their initial state.
AccessLevel
X
It is possible that you would not want regular users and so forth to have the ability to access your plugin console.
deployed (moved to plugins_deployed table)
X
Allow it to be default to 0. This gets changed to 1 when your plugin is used for the first time.
available
X
Must be set to 1 if you want your plugin to display in the list of plugins when the user is creating a page.
disable_site_styles
X
Only set to 1 if your plugin page is not actually a page, but rather an HTML that is sent to website visitors upon filling out a form.
body_onload
X
Lets you run a JavaScript function upon page load. If set to 1, next field is required.
body_onload_function
X
 
sort_order
X
Lets you control to some extent where your plugin shows up in the plugin list when a user adds your plugin to a page.

 

Editor Plugins

Editor plugins are essentially the same thing as console plugins with one major nuance: An editor plugin's button (and hence the console or program) resides in the button row in any or all of the editor consoles instead of in the main menu. The editor consoles referred to here are the Page Editor, Border Area Editor (same as Page Editor), Head Code Editor, Custom CSS editor and the File Editor. All of these editors use the CKEditor to edit HTML, JavaScript, CSS and PHP. The page and border area editors can be use in either design view or code view. For editing JavaScript, CSS or PHP, design view is not applicable, therefore the head code editor, custom CSS editor and file editor only work in code view. (It is conceivable that the file editor could be used to open HTML files, but because of the complexity of page-template layout files and the non-relevance of editing HTML, the file editor will not open or switch to design view. We may at some point allow design-view mode for pure HTML files in the future.)

Field Name Required Recommended Optional NA Notes
id
X
Auto-increment
name
X
 
description
X
 
category
X
Must be set to "Console Only"
parent
X
 
default_page_name
X
 
page_name_suffix
X
 
style_sheet
X
 
style_sheet_description
X
 
class_sql
X
 
css_sql
X
 
custom_css_sql
X
 
head_code
X
 
head_html
X
 
header_code
X
 
header_html
X
 
top_code
X
 
top_html
X
 
left_code
X
 
left_html
X
 
content_code
X
 
content_html
X
 
right_code
X
 
right_html
X
 
bottom_code
X
 
bottom_html
X
 
footer_code
X
 
footer_html
X
 
console_path
X
Path to your plugin console
console_link_text
X
 
console_link_image
X
 
console_link_image_mo
X
 
console_link_image_down
X
 
help_path
X
Documentation about your plugin console. We will add it to the Breeze help system if you wish.
language_folder
X
 
console_link_text_define
X
 
button_group
X
Possible values are All Plugins, Editors with Design View (Page Editor and Border Area Editor), Editors with Code View Only (Head Code, Custom CSS and File Editors), Head Code Editor, Custom CSS Editor, and File Editor.
plugin_sql
X
Quite often consoles work with one or more database tables. This is where the SQL goes to create those tables in their initial state.
AccessLevel
X
It is possible that you would not want regular users and so forth to have the ability to access your plugin console.
deployed (moved to plugins_deployed table)
X
This must be set to 1 for a console-only plugin as you can't add a console-only plugin to a page which is the normal way to deploy a plugin.
available
X
 
disable_site_styles
X
 
body_onload
X
.
body_onload_function
X
 
sort_order
X
 

 

Style Pack

A style pack is not really a plugin, but rather just a collection of CSS styles and images to set the style of your website, or more typically, of a particular plugin page. Note: A collection of styles and images so comprehensive as to set site-wide styles in their entirety is really a template and thus should be built and store as a template. A style pack is intended for a more specific purpose such as setting the styles to the Breeze/OpenCart plugin pages, or the horizontal scrolling slideshow. Any images for the style pack are not referenced in the plugin record. Instead, use the Plugin File List to select the images you want to bundle in your style pack. Here is the field list requirements:

Field Name Required Recommended Optional NA Notes
id
X
Auto-increment
name
X
 
description
X
 
category
X
Must be set to something in order for Plugin SDK to save the plugin record, but is not used.
parent
X
 
default_page_name
X
 
page_name_suffix
X
 
style_sheet
X
This is the style sheet with the styles for your style pack.
style_sheet_description
X
 
class_sql
X
Either class_sql and css_sql, or custom_css_sql must be populated.
css_sql
X
 
custom_css_sql
X
 
head_code
X
 
head_html
X
 
header_code
X
 
header_html
X
 
top_code
X
 
top_html
X
 
left_code
X
 
left_html
X
 
content_code
X
 
content_html
X
 
right_code
X
 
right_html
X
 
bottom_code
X
 
bottom_html
X
 
footer_code
X
 
footer_html
X
 
console_path
X
 
console_link_text
X
 
console_link_image
X
 
console_link_image_mo
X
 
console_link_image_down
X
 
help_path
X
 
language_folder
X
 
console_link_text_define
X
 
button_group
X
 
plugin_sql
X
 
AccessLevel
X
 
deployed (moved to plugins_deployed table)
X
 
available
X
 
disable_site_styles
X
 
body_onload
X
.
body_onload_function
X
 
sort_order
X