Skip to content

user.xml

user.xml extends user objects and user-related backend UI.

Use it when a package needs additional user attributes, user panel tabs, or user profile tabs.

Attributes

Add user attributes under <attributes>.

xml
<user>
    <attributes>
        <attribute>vendor.package.setting</attribute>
        <attribute encrypt="1">vendor.package.secret</attribute>
    </attributes>
</user>

Use encrypt="1" for sensitive values that should be stored encrypted.

Profile Tabs

Use <profile> to add tabs to the user profile window.

xml
<profile>
    <tab name="vendor_package">
        <text>Package Settings</text>
        <image>fa fa-user</image>
        <template>OPT_DIR/vendor/package/templates/user_profile.html</template>
    </tab>
</profile>

Template form field names should match the user attribute names when the UI stores user attributes directly.

QUIQQER reads backend administration tabs from the first window element. Profile tabs are read from user/profile/tab. Keep tab names unique within the target panel.

Real Package Shape

quiqqer/frontend-users adds user attributes used during registration, activation, and email verification:

xml
<user>
    <attributes>
        <attribute>quiqqer.frontendUsers.welcomeMailSent</attribute>
        <attribute>quiqqer.frontendUsers.registrationProject</attribute>
        <attribute>quiqqer.frontendUsers.registrationProjectLang</attribute>
        <attribute>quiqqer.frontendUsers.emailVerified</attribute>
        <attribute>quiqqer.frontendUsers.useGravatarIcon</attribute>
    </attributes>
</user>

quiqqer/dashboard adds attributes and a profile tab:

xml
<user>
    <attributes>
        <attribute>quiqqer.dashboard.isDisabled</attribute>
        <attribute>quiqqer.dashboard.cardSettings</attribute>
    </attributes>

    <profile>
        <tab name="quiqqer_dashboard">
            <text>Dashboard</text>
            <image>fa fa-tachometer</image>
            <template>OPT_DIR/quiqqer/dashboard/templates/user_profile.html</template>
        </tab>
    </profile>
</user>

Practical Checklist

Before adding user.xml:

  • Use package-scoped user attribute names.
  • Encrypt sensitive attributes.
  • Add profile or backend tabs only when users or administrators need UI for the data.
  • Keep template paths stable and package-owned.
  • Verify PHP code reads and writes the same attribute names.

Released under GPL-3.0-or-later.