Plug-in directory structure (required and recommended)
The first thing you will have to do - pick up a good, meaninfull and unique plugin name based on plugin's mission. Checkout Seotoaster's plug-ins marketplace to be sure your new plug-in name will be unique. Also a good practice is to choose a name that somehow describes what the plugin does.
Note: Seotoaster requires that plug-in directory should be named in lower case and should be in the “plugins” directory in the system installation folder
Let's move on! Seotoaster's plug-in directory structure is fairly flexible and there are only to files required to start doing some magic! Let's see how it looks like.
Required directory structure
As was mentioned before, Seotoaster requires only two file to accept you plug-in, they are
- Todo
- Main plug-in class file - handles everything related to this plug-in, such as plug-in’s actions, “option makers”, etc... This file should be named exactly as plug-in directory The name of this file should start with capital first letter. All other letters should be in lowercase.
- readme.txt - should contain plug-in description and/or some important information about your plug-in if needed
Let's see how it could look like. As we said our plugin will have a name "Todo" and it's basic structure will look like the following:

Recommended directory structure
Seotoaster team recommends you to have a bit advanced plug-in directory structure to be able to achieve maximum performance and flexibility
Note: advanced directory structure is just a recommendation and you can oganize your plug-in's files as you want.
Lets review the recommended structure item by item.
Seotoaster team recommends you to have a bit advanced plug-in directory structure to be able to achieve maximum performance and flexibility
Note: advanced directory structure is just a recommendation and you can oganize your plug-in's files as you want.
Lets review the recommended structure item by item.
- config folder and config.ini - intended to store basic configuration of your plugin in the “ini” format (key=value). In this file you can specify your plugin route, additional Seotoaster’s admin menu items, include path for your plug-in, etc... (see Configuration ini file section)
- system - just recommended folder to organize and structurize your plug-in
- app - main application folder where all the pieces are
- Api - plug-in’s RESTfull api (see the Building a REST API section)
- MagicSpaces - plug-in provided magic spaces (see the Magic Spaces section)
- Todo (this directory should be named the same as plug-in) - organize you plug-in specific classes, directories, etc...
- Widgets - plug-in provided widgets (see the Widgets section)
- languages - contains localizations files
- views - contains view scripts - plug-in's templates to display nicely formated information to the users
- install.sql - SQL file with queries that will be executed during the install (see the Install and uninstall section)
- uninstall.sql - SQL file with queries that will be executed during the uninstall (see the Install and uninstall section)
- web - older to organize your web-related plug-in’s items
- css - contains all the css you need in your plug-in
- images - contains all the images you need in your plug-in
- js - contains all the javascript you need in your plug-in