Skip to content

Project Settings

Project settings are package-defined settings that are stored per project and shown in the project settings panel.

Use project settings when a value belongs to a website, language, template, or project output. Use normal package settings when the value belongs to the whole installation.

XML Structure

Project settings are declared in settings.xml below quiqqer/project/settings.

xml
<?xml version="1.0" encoding="UTF-8"?>
<quiqqer>
    <project>
        <settings>
            <config>
                <section name="website">
                    <conf name="nocache">
                        <type><![CDATA[bool]]></type>
                        <defaultvalue>0</defaultvalue>
                    </conf>
                </section>
            </config>

            <window>
                <categories>
                    <category name="package-settings">
                        <text>Package Settings</text>
                        <icon>fa fa-cube</icon>

                        <settings title="Package Settings" name="package-settings">
                            <input conf="website.nocache" type="checkbox">
                                <text>Disable cache</text>
                            </input>
                        </settings>
                    </category>
                </categories>
            </window>
        </settings>
    </project>
</quiqqer>

QUIQQER reads project settings XML from installed packages and from the project directory itself. Package files are checked at:

text
OPT_DIR/vendor/package/settings.xml

Project-local settings can be placed at:

text
USR_DIR/project-name/settings.xml

Config Values

Configuration values use the same <section> and <conf> structure as package settings.

xml
<config>
    <section name="templatePresentation.settings">
        <conf name="showTitle">
            <type><![CDATA[bool]]></type>
            <defaultvalue>0</defaultvalue>
        </conf>
    </section>
</config>

The resulting setting key is built from section and configuration name, for example templatePresentation.settings.showTitle.

If the <settings> element has a name attribute, that name is prefixed to the generated setting keys.

Settings Window

Use window/categories/category to expose settings in the project settings UI. Inputs reference config values through the conf attribute.

xml
<input conf="website.nocache" type="checkbox">
    <text>
        <locale group="vendor/package" var="project.nocache.text"/>
    </text>
    <description>
        <locale group="vendor/package" var="project.nocache.description"/>
    </description>
</input>

Use locale references for public labels and descriptions.

When To Use Project Settings

Use project settings for:

  • template behavior
  • frontend output options
  • media behavior for one project
  • per-project feature toggles
  • project-language-specific display behavior

Do not use project settings for installation-wide package configuration, credentials, global service configuration, or background worker settings.

Practical Checklist

Before adding project settings:

  • Place them below quiqqer/project/settings.
  • Use package-scoped section names.
  • Provide defaults for values required by runtime code.
  • Add UI categories only for settings administrators should edit.
  • Use normal package settings for installation-wide values.

Released under GPL-3.0-or-later.