IQcms folder structure

When you have created a new IQcms project you will have a set of top level directories. These are

_cronjobs

Inside of this folder you can add files that will be executed in a predetermined interval by Crontab. The names of the subdirectories map to intervals for the code to be executed at E.G hourly. There are currently 6 options available: yearly one a year at the first of january at 00:00. monthly ran at the first of every month at 00:00. weekly ran every sunday at 00:00 daily cronjobs in this folder will run at 00:00. hourly ran every hour at HH:00 minutely ran every minute.

In case you want to run a cronjob every 5 min you have add a cronjob to minutely and check if date('i')%5 equals 0. If you want to run a cronjob every day at 8 you have to add a cronjob to hourly and check if your desired time has been reached.

_tmp

This is where your application will store all of its temporary files like cached results, modified images, partial uploads and Smarty generated templates, if you seem to be having a cache related issue you should empty this directory to force flush it. Problems regarding cached templates are often a varnish or memcache problem and not related to the static files. The only time the static templates CAN result in problems is when you have the directive opcache.enabled enabled in your php.ini file.

js

Every {iq_require_js path="<foldername in ./public/js/"} Smarty call will result in three files generated, <foldername>.js, <foldername>.js.gz and <foldername>.js.br. And are served based on what compression the browser accepts in the Accept-Encoding header. These files are minified and compressed.

css

Every {iq_require_css path="<foldername in ./public/css/"} Smarty call will result in three files generated, <foldername>.css, <foldername>.css.gz and <foldername>.css.br. And are served based on what compression the browser accepts in the Accept-Encoding header. These files are minified and compressed.

log

The log folder contains the log files from Logger and log files regarding Composer installations or NPM builds during deployment.

tpl

The tpl has been called to live in IQcms 1.6.1, this folder solely holds all the generated Smarty templates.

components

Inside of this folder you will find all components for this application.

modifiers

Inside components a special folder is available that holds all the media modifiers.

external

This directory is used for external libraries where you need to change the code from. you can consider this as a Vendor directory

library

This directory is used to hold all the library code for this project, any code that you cannot put in a component should be put here

public

This is where all assets for this project will be stored, files like the .css and .js files will be found here

root

This folder is used to store the raw (unimplemented) templates, If you are looking for the base templates used for implementation you should look here. This is also the root folder of a project online and files can directly be reached.

tests

This folder is used to store all your tests for the application. The framework used still depends on PHPUnit 5. But is soon to be deprecated in favor of PHPunit 9.

uploads

This folder is used to store all files uploaded trough the application, the files in here are stored with filenames as UUID(4). without file extensions