JoomFAQs allows your site visitors to submit questions directly from the frontend of your Joomla site. Submitted questions enter a moderation queue (unpublished by default), giving administrators and editors full control over what gets published. This guide covers everything you need to know about setting up, configuring, and managing frontend question submissions.
Overview
The frontend question submission feature provides two distinct workflows depending on the user's permission level:
-
Regular users (with the
core.createpermission) see a lightweight submission form embedded directly in the category page. This form collects the question text, the author's name, an optional email address, and an optional CAPTCHA challenge. The submission is handled via AJAX without a full page reload. -
Editors (with the
core.editpermission) get a link to a full editorial form where they can fill in the question text, provide an answer, set metadata, manage SEO fields, choose the publish state, and handle comments. This is the same form used for editing existing questions.
In both cases, the entry point is the category view on the frontend. The "Add a question" button or inline form appears at the top of the FAQ listing for users who have the appropriate permissions.
Permission Requirements
Frontend question submission is controlled by Joomla's ACL system at the category level. JoomFAQs defines two category-level actions that govern frontend behavior:
| Permission | Internal Name | What It Controls |
|---|---|---|
| Add a Question | core.create |
Allows a user group to submit questions via the frontend form in a specific category. Users with only this permission see the simple submission form. |
| Edit (Respond) | core.edit |
Allows a user group to edit questions and provide answers in a specific category. Users with this permission see the full editorial form and can also view unpublished questions. |
Key rules:
- Guest users cannot submit questions. The
core.createpermission check requires an authenticated (non-guest) user. If a guest user tries to access the editorial form, they are redirected to the login page. - Registered users who have
core.createbut notcore.editsee the simple AJAX-based question form. - Editors and Administrators who have
core.editsee the "Add New Question" button linking to the full editorial form, plus a "Show Unpublished questions" button for reviewing the moderation queue. - If a user has neither
core.createnorcore.editfor the category, no submission form or button is shown at all.
Setting Up Permissions for Question Submission
- In the Joomla administrator, navigate to Content > Categories.
- Filter the category list by the JoomFAQs extension using the extension selector.
- Click on the FAQ category you want to configure.
- Select the Permissions tab.
- Choose a user group from the list on the left (for example, Registered).
- Set Add a question to Allowed to let that group submit questions in this category.
- Optionally set Edit (Respond) to Allowed if you want the group to also be able to edit and answer questions.
- Click Save & Close.
Repeat for each category and user group as needed.
Tip: You can also set these permissions at the component level via Components > JoomFAQs > Options > Permissions. Component-level permissions cascade down to all categories unless explicitly overridden at the category level.
The Two Submission Modes
Mode 1: Simple Question Form (for Regular Users)
Users with only core.create permission see a simple form for submitting questions. Depending on the Form category parameter, this form is either displayed inline on the page or loaded on demand when the user clicks the "Add a question" button.
How the Simple Form Works
- The user visits a category page that has FAQ questions listed.
- At the top of the question list, they see either the inline form or an "Add a question" button.
- If the button is shown, clicking it loads the form via AJAX (no page reload).
- The user fills in their question and clicks Send.
- The form is submitted via AJAX. If validation passes, a success message appears. If there are errors, they are displayed inline.
- The submitted question is saved as unpublished (state = 0) and enters the moderation queue.
Simple Form Fields
The simple submission form presents the following fields:
| Field | Description | Visibility |
|---|---|---|
| Name | The author's name. For guest users, this is a required text input. For logged-in users, the name or username is automatically populated based on the Author Type category setting. | Always shown for guests; auto-filled for registered users. |
| The author's email address. Visibility and requirement are controlled by the E-mail category setting. | Configurable (Required, Not Required, or Hidden). | |
| Your question | A textarea for the question text. The minimum and maximum character limits are set in the category's Form Options. | Always shown. |
| CAPTCHA | A CAPTCHA challenge (uses whatever CAPTCHA plugin is configured in JoomFAQs). Shown based on the Security code (Captcha) category setting. | Configurable (Do not show, Not logged, or All). |
| Receive notification of a reply to E-mail | A checkbox letting the author opt in to email notifications when their question is answered. | Controlled by the Subscription to response category setting. |
Note: For guest users, the Name and E-mail values are remembered in a cookie so they do not need to re-enter them on subsequent visits.
Mode 2: Editorial Form (for Editors)
Users with core.edit permission see an "Add New Question" button that links to the full editorial form. This form is a multi-tab interface that provides complete control over the FAQ entry:
| Tab | Contents |
|---|---|
| FAQ | The question text field and a rich-text answer editor. |
| Details | Author, email, category, publish state, creation date, reply date, answer state, IP address, and other metadata. (The vote field is excluded from the details tab.) |
| Meta data | SEO fields including meta description, meta keywords, and alias for SEF URLs. |
| Comments | Displays and manages user comments on the question (only visible when editing an existing question, not when creating new). |
The editorial form includes Save and Close buttons at both the top and bottom of the page. After saving, the user is redirected back to the category view.
Setting Up the Submission Form
Step 1: Create an FAQ Category Menu Item
Before users can submit questions, you need a menu item that displays an FAQ category on the frontend.
- Navigate to Menus > [Your Menu] > Add New Menu Item.
- Click the Select button next to the Menu Item Type field.
- Choose JoomFaqs > Category.
- In the Required Settings section, select the FAQ category to display.
- Configure the remaining tabs as needed (see below for form-related options).
- Click Save & Close.
Step 2: Configure Form Display Options
The form display options are set at the category level, not the component level. You configure them when editing an FAQ category.
- Navigate to Content > Categories and filter by the JoomFAQs extension.
- Click on the category you want to configure.
- Select the Options tab.
- Scroll down to the Form Options section.
- Configure the settings described in the next section.
- Click Save & Close.
Category-Level Form Options
The Form Options fieldset in each FAQ category controls how the simple submission form behaves. Here is a complete reference of all available settings:
Form Visibility
| Setting | Options | Default | Description |
|---|---|---|---|
| Form | Show / Hide | Hide | When set to Show, the question submission form is rendered inline directly on the category page. When set to Hide, a button labeled "Add a question" appears instead, and clicking it loads the form via AJAX. |
Email Field
| Setting | Options | Default | Description |
|---|---|---|---|
| The E-mail | Required / Not Required / Hide | Required | Controls how the email field appears on the form. Required means the field is shown and must be filled in. Not Required means the field is shown but can be left empty. Hide means the field is not displayed at all. |
Author Type
| Setting | Options | Default | Description |
|---|---|---|---|
| Type the author's question | Login / Name | Login | Determines what value is stored as the question author for logged-in users. Login uses the Joomla username. Name uses the user's full name. This only affects newly submitted questions. |
Question Length Limits
| Setting | Options | Default | Description |
|---|---|---|---|
| Max. length of the question | Numeric value | 1000 | The maximum number of characters allowed in the question text. |
| Min. length of the question | Numeric value | 10 | The minimum number of characters required. If the submitted question is shorter than this, a validation error is shown. |
Character Counter
| Setting | Options | Default | Description |
|---|---|---|---|
| Character Counter | Show / Hide | Hide | When enabled, displays a countdown showing how many characters remain before reaching the maximum length. |
CAPTCHA
| Setting | Options | Default | Description |
|---|---|---|---|
| Security code (Captcha) | Do not show / Not logged / All | Not logged | Controls when the CAPTCHA challenge is displayed. Do not show disables CAPTCHA entirely. Not logged shows CAPTCHA only to users who are not logged in. All shows CAPTCHA to every user. |
Email Notification Subscription
| Setting | Options | Default | Description |
|---|---|---|---|
| The signature on the response | Show / Hide | Show | When set to Show, a checkbox appears on the form allowing the question author to opt in to receiving an email notification when their question is answered. |
Administrator Notifications
| Setting | Options | Default | Description |
|---|---|---|---|
| Disable notifications | No / Yes | No | When set to No (the default), an email notification is sent to editors when a new question is submitted. When set to Yes, these notifications are suppressed. See the "Email Notifications" section below for details. |
What Happens After Submission
When a user submits a question through the simple frontend form, the following sequence occurs:
-
Validation: The system checks the form data against the configured rules:
- The author name must be at least 3 characters and must not contain special characters such as quotes, brackets, or semicolons.
- The email address must be valid (if the email field is required).
- The question text must meet the minimum character length set in the category's Form Options.
- The CAPTCHA must be completed correctly (if enabled).
- The session token is verified to prevent cross-site request forgery.
- The user must have
core.createpermission for the category.
-
Saving: If validation passes, the question is saved to the database with:
- Published state: Unpublished (0) -- the question is not visible to the public until an editor publishes it.
- The current date and time as the creation date.
- The submitter's IP address for reference.
- The author name and email (either from the form or from the logged-in user's profile).
-
Success message: The user sees one of two confirmation messages:
- If they checked the email notification box: "Thank you for your question. You will be notified by email, if his answer will be published."
- If they did not: "Thank you for your question."
-
Cookie storage (guest users): For guest users, the Name and E-mail values are stored in cookies so they are pre-filled on the next visit.
-
Editor notification: Unless notifications are disabled for the category, an email is sent to all users who have
core.edit(Allowed) permission for the category. The email includes the author name, date, question text, and a direct link to edit the question.
Email Notifications
JoomFAQs sends email notifications at two points in the question lifecycle:
New Question Notification (to Editors)
When a new question is submitted, JoomFAQs sends a notification email to all users in groups that have core.edit permission set to Allowed (not Inherited) for that category.
Subject: "A new question in the category - [Category Name]"
Body includes:
- Author name
- Submission date
- Question text
- A direct link to edit the question
This notification can be disabled per category using the Disable notifications setting in the category's Form Options.
Note: The notification is only sent to users in groups where the core.edit permission is explicitly set to Allowed (value of 1). Groups with Inherit are not included.
Answer Notification (to Question Author)
If the question author checked the "Receive notification of a reply to E-mail" checkbox when submitting their question, they receive an email when their question is answered and published.
Subject: "The answer to the question in the category [Category Name]"
Body includes:
- A reference to the original question
- The date of submission
- A link to view the published answer
This feature requires:
- The Subscription to response setting to be set to Show in the category's Form Options.
- The author to have provided a valid email address.
- The author to have explicitly checked the notification checkbox.
CAPTCHA on the Submission Form
JoomFAQs supports CAPTCHA integration to prevent spam submissions. The system uses whatever CAPTCHA plugin is configured in the JoomFAQs component options.
Setting Up CAPTCHA
-
Install and enable a CAPTCHA plugin. Joomla ships with a ReCaptcha plugin. Navigate to System > Plugins, search for "captcha", and enable your preferred plugin. Configure it with your API keys.
-
Select the CAPTCHA plugin in JoomFAQs. Navigate to Components > JoomFAQs > Options. In the Comments tab, find the Captcha setting and select your CAPTCHA plugin from the dropdown. You can also choose "Use Global" to use the site's default CAPTCHA.
-
Configure when CAPTCHA appears. In each FAQ category's options (under Form Options), set the Security code (Captcha) option:
- Do not show -- No CAPTCHA at all.
- Not logged -- CAPTCHA only for users who are not logged in (recommended for most sites).
- All -- CAPTCHA for everyone, including logged-in users.
If the CAPTCHA plugin is not properly configured or enabled, users may see an error message indicating that the CAPTCHA plugin needs to be enabled.
Viewing Unpublished / Pending Questions
Users with core.edit permission for a category have access to the moderation queue directly from the frontend.
From the Frontend
- Visit the FAQ category page.
- At the top of the question list, click the Show Unpublished questions button (displayed with an eye-slash icon).
- An AJAX request loads a table below the button showing all unpublished questions in the current category.
The unpublished questions table displays:
| Column | Description |
|---|---|
| Question | The full text of the submitted question. |
| The question | The name of the person who submitted it. |
| Date creation | The date and time the question was submitted. |
| Edit | A button linking to the editorial form where you can review the question, add an answer, and publish it. |
From the Backend
Administrators can also view and manage pending questions from the Joomla administrator:
- Navigate to Components > JoomFaqs > Questions.
- Use the Status filter and select Unpublished to show only pending questions.
- Click on a question to open it for editing and review.
Moderating Submitted Questions
Once a question has been submitted through the frontend, it sits in the unpublished state waiting for review. Here is the typical moderation workflow:
Reviewing and Publishing a Question
- Navigate to the question either through the frontend "Show Unpublished questions" list or through the backend Questions Manager.
- Open the question in the editorial form.
- Review the question text. Edit it if needed (fix typos, improve clarity, remove inappropriate content).
- Optionally write an answer in the Response field on the FAQ tab.
- On the Details tab:
- Set the Process (State) field to Published.
- If you provided an answer, set the Status of response to Answer and fill in the Date of reply (it will default to today's date if left blank when publishing an answer).
- Click Save.
The question (and answer, if provided) will now be visible on the frontend.
Answering a Question Later
You do not need to answer a question at the time you publish it. You can:
- Publish the question with the answer state set to "Pending" or "No answer."
- Come back later to add the answer.
- If the author opted into email notifications, they will be notified when you add and publish the answer.
Rejecting a Question
To reject a submitted question without publishing it:
- Open the question in the editorial form.
- On the Details tab, set the Process (State) field to Trashed.
- Click Save.
Alternatively, from the backend Questions Manager, select the question's checkbox and click the Trash button in the toolbar.
Bulk Actions from the Backend
From the backend Questions Manager, you can perform bulk operations on multiple questions at once:
- Select the questions using the checkboxes.
- Use the toolbar buttons:
- Publish -- Publish the selected questions.
- Unpublish -- Unpublish the selected questions.
- Trash -- Move the selected questions to the trash.
- Delete -- Permanently delete trashed questions.
- Check-in -- Release questions that are locked by other editors.
Troubleshooting
The "Add a question" button does not appear
- Verify that the user is logged in. Guest users cannot submit questions.
- Check the category permissions. The user's group must have
core.createset to Allowed for the specific FAQ category. - If using component-level permissions, ensure
core.createis set to Allowed there as well (or at least not Denied).
The editorial form shows "Not permitted" or redirects to login
- The editorial form requires
core.editpermission for the category. Verify that the user's group has this permission set at the category level. - If the user is not logged in, they will be redirected to the login page automatically with a return URL that brings them back to the form after login.
CAPTCHA is not appearing
- Ensure a CAPTCHA plugin is installed and enabled in System > Plugins.
- Verify the CAPTCHA plugin is selected in Components > JoomFAQs > Options > Comments > Captcha.
- Check the category's Security code (Captcha) setting is not set to "Do not show."
Email notifications are not being sent
- Check that the Disable notifications setting in the category's Form Options is set to No.
- Verify that Joomla's mail system is configured correctly in System > Global Configuration > Server > Mail.
- Ensure at least one user group has
core.editpermission explicitly set to Allowed (not Inherited) for the category. Only users in groups with explicit Allow receive notifications.
Question submission gives a session error
- This typically means the user's session has expired. The error message "The lifetime of the session expired, please try again" indicates they need to reload the page and submit again.