sgalinski / sg-comments
Threaded TYPO3 comment system with replies, moderation, notifications, file uploads, and sg_news integration.
Package info
gitlab.sgalinski.de/typo3/sg_comments.git
Type:typo3-cms-extension
pkg:composer/sgalinski/sg-comments
Requires
- altcha-org/altcha: ^1.0
- sgalinski/sg-ajax: >=5.0.0
- sgalinski/sg-consistence: >=6.0.0
- sgalinski/sg-mail: >=8.4.6
- typo3/cms-backend: ^13.4.0
- typo3/cms-core: ^13.4.0
- typo3/cms-extbase: ^13.4.0
- typo3/cms-fluid: ^13.4.0
- typo3/cms-frontend: ^13.4.0
Suggests
- sgalinski/sg-account: Adds a better handling for recieving profile images and when sending notifications
Replaces
- sgalinski/sg_comments: 8.4.6
This package is auto-updated.
Last update: 2026-06-10 15:26:14 UTC
README
License: GNU GPL, Version 2 Repository: gitlab.sgalinski.de/typo3/sg_comments
About
sg_comments is a powerful, threaded comment system for TYPO3. It supports replies, moderation, email notifications
via sg_mail, and file uploads. It is also the underlying comment system for sg_news.
Installation
- Install the extension via composer:
composer require sgalinski/sg-comments - Include the static TypoScript template "Comment System" in your root template.
- If you use
sg_news, ensure its static template is loaded beforesg_comments. - Configure the extension via TypoScript (see below) or in the extension configuration.
Integration
ViewHelper Usage
The easiest way to integrate a comment thread is using the CommentThreadViewHelper:
{namespace sgc=SGalinski\SgComments\ViewHelpers}
<sgc:commentThread commentType="pages" threadPrefix="my-unique-prefix"/>
Arguments
commentType(string): The type of comments (default:pages).threadPrefix(string): Unique identifier for the thread.notify(bool): Enable the "Notify me" feature.fileUpload(bool): Enable file uploads.respectLanguage(bool): If true, only comments in the current language are shown.enableReplies(bool): Allow users to reply to comments.loginRequired(bool): Only logged-in users can post comments.disableModeration(bool): Skip the moderation queue.newCommentsOnTop(bool): Show newest comments at the beginning.
TypoScript Libraries
For integration in Fluid or TypoScript:
lib.sgCommentsIndex: Renders the full comment thread.lib.sgCommentsNew: Renders only the comment form.lib.sgCommentsGetCount: Returns the total comment count.lib.sgCommentsGetCountWithLabel: Returns the count with a localized label.lib.sgCommentsGetAverageRating: Returns the average rating (if enabled).
Example:
<f:cObject typoscriptObjectPath="lib.sgCommentsIndex"/>
JavaScript Initialization
To initialize the frontend components (replies, uploads, lightbox), import and call the initialization in your main JavaScript entry point:
import SgComments from 'EXT:sg_comments/Resources/Public/JavaScript/sgComments.js';
SgComments.init();
Configuration
Global Settings (TypoScript)
You can customize the behavior in plugin.tx_sgcomments.settings:
plugin.tx_sgcomments.settings {
# Require moderation for new comments
moderateNewComments = 1
# List of moderator email addresses
moderators = moderator@example.com
# Date format in frontend
relativeDate.absoluteFormatFallback = %d.%m.%Y
# File upload settings
fileUpload {
enabled = 1
amountOfFiles = 5
maxfileSize = 10 # in MB
fileTypes = jpg, png, pdf
}
}
E-Mail Templates (sg_mail)
This extension uses sg_mail for all notifications. The templates are registered automatically and can be edited in the
Mail Templates backend module.
Available Templates:
- approved: Sent to the author when a comment is approved.
- commentators: Sent to users who subscribed to a thread.
- declined: Sent to the author when a comment is rejected.
- disapproved: Sent when a previously approved comment is hidden.
- moderator: Sent to moderators when a new comment is posted.
Common Markers:
{USERNAME}: Author of the comment.{COMMENT}: The comment text.{LINK_TO_COMMENT}: Link to the specific comment in the frontend.{DATE}: Creation date.
Backend Module
The Comments backend module allows editors to moderate, view, and delete comments across the entire TYPO3 instance. It provides filters for approval status and nesting levels.