sgalinski/sg-comments

Threaded Comments & Moderation - Threaded TYPO3 comment system with replies, moderation, notifications, file uploads, and sg_news integration.

Maintainers

Package info

gitlab.sgalinski.de/typo3/sg_comments.git

Homepage

Issues

Type:typo3-cms-extension

pkg:composer/sgalinski/sg-comments

Transparency log

Statistics

Installs: 4

Dependents: 0

Suggesters: 1

9.0.10 2026-08-14 22:30 UTC

This package is auto-updated.

Last update: 2026-08-14 23:46:30 UTC


README

sgalinski Logo

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

  1. Install the extension via composer:
    composer require sgalinski/sg-comments
    
  2. Include the static TypoScript template "Comment System" in your root template.
  3. If you use sg_news, ensure its static template is loaded before sg_comments.
  4. 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();

Frontend API

The frontend widgets use public sg_apicore routes. Custom integrations should generate URLs with the api:uri.api ViewHelper and use JSON requests for comment creation and subscriptions. Uploads remain multipart form data with the file in the files field. See UPGRADE.md for the endpoint list and migration payload.

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.