sgalinski/sg-comments

Possibility to comment on the posts with replies and moderate comments

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Type:typo3-cms-extension

pkg:composer/sgalinski/sg-comments

8.4.0 2026-02-05 20:32 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();

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.