TYPO3 8.7通过TypoScript调用GridElement表单前端不显示问题求助
Hey there! Let's troubleshoot why your contact form (from GridElement ID 29) only shows up when you're logged into the TYPO3 backend. Here are the key fixes to try:
1. Fix the TypoScript Spelling Error
First, I spot a typo in your code that's likely causing issues: dontChekPid should be dontCheckPid (note the correct spelling of "Check"). This setting tells TYPO3 to ignore page ID restrictions for the record, and the typo means it's not being applied properly.
Here's the corrected TypoScript:
lib.contactForm = RECORDS lib.contactForm { source = 29 tables = tt_content dontCheckPid = 1 }
2. Verify Frontend Visibility Settings for the GridElement
Log into the backend and open the tt_content element (ID 29) holding your contact form. Check these critical settings:
- Hidden Status: Make sure the "Hidden" checkbox in the "General" tab is unchecked. Backend users can see hidden elements by default, but frontend visitors can't.
- Time Restrictions: Ensure the "Start Time" and "End Time" fields are either empty (no restriction) or set to a range that includes the current date/time.
- Frontend Access: In the "Access" tab, confirm that "Frontend User Groups" is set to "All users" (or left blank). If restricted to specific frontend groups, only logged-in users in those groups will see the form.
3. Check GridElements Rendering Configuration
Since you're using a GridElement, make sure your site's template is set up to render it correctly:
- In the TYPO3 Template module, verify that the GridElements static template is included in your root template (under "Includes" → "Available Items").
- Ensure your template has a rendering definition for the specific GridElement type you're using for the contact form. If the template doesn't know how to render the element, it won't show up for frontend visitors.
4. Flush All Caches
TYPO3's cache can sometimes hold onto old permissions or configuration data. After making changes, use the "Flush TYPO3 and PHP Cache" button (top right corner of the backend) to clear all caches. Then log out and refresh the frontend to test if the form appears.
内容的提问来源于stack exchange,提问作者D. Vasiliev

