This is the third post that is directed to the developers more than the end user. In this post I will talk about the files in the “includes” folder in the root DiY-CMS directory. Knowing the task of each file will assist the developer to understand the architecture of DiY-CMS and data flow as well.
Includes folder contains the files responsible for the main tasks to run DiY-CMS and control the different aspect of the CMS.
Here is the list of folders and files:
PHPMailer folder: This folder contains the folders and file of popular mail program PHPMailer. It is the standard program in DiY-CMS to send emails for notifications or other uses.
bbcode.class.php: This file contains the class that handles bbcode format.
blocks.class.php: This file handles the arrangement of blocks (menus) in DiY-CMS view.
date_conversion.class.php: handles date conversion in DiY-CMS. It converts Gregorian date to Hijri (Islamic lunar) date and vice-versa.
email.class.php: This class utilises the functions of PHPMailer and group in one class to ease its use.
files.class.php: This class handles files read and write functions.
form.class.php: This file contains the functions needed to produce a form with different fields, such as creating an input field or textarea.
general.functions.php: This file contains general functions like functions handling page header, page footer, errors or message display.
hooks.functions.php: This file handles hooks management in DiY-CMS. You can use it to place a hook in a certain place in the module or plug-in you develop. Alternatively, you can use it to hook your functions to the built-in hooks in DiY-CMS. (I will explain how hooks work in detail in a future post).
keyword_generator.class.php: This class is used to generate keyword on the fly for posts in DiY-CMS. It increases posts’ friendliness to search-engine.
login.class.php: This file controls users’ authentication in DiY-CMS.
module.class.php: This file is responsible for module management. It checks for module’s status, loads its templates, load its settings and run the module.
mysql.class.php: This file contains the necessary functions that manage database connection, querying, database error handling.
plugins.class.php: This file handles plug-in management. It loads all the active plug-ins, load settings, load permissions and then run plug-ins.
post.functions.php: This file contains post-related functions. They include post sanitisation, preventing sql injections, check required fields and other functions.
protection.php: This file mainly prevents XSS attacks on DiY-CMS.
session.class.php: This class handles sessions.
spam.class.php: This class prevent post spamming in DiY-CMS, by checking IP address and time intervals between two consecutive posts of the same user.
templae.class.php: This class handles theme-related task. It check for the theme selected, load its templates, process their content and then output the page.
upload.class.php: This class handles file uplads in DiY-CMS. It can handle adding or editing multiple files at the same time.
I hope you liked this post, and looking forward to hear your comments and suggestions.