Comments and moderation
Geeklog 2.2.2 workflow overview. Comment and submission behavior is influenced by configuration, permissions, content type and enabled plugins. The release's actual UI and policy must be checked before treating example actions as universal.
For readers
When comments are enabled on content you can access, use the available reply or submission form responsibly. Preview your text where provided, respect the site's rules and never include private credentials or personal data. A comment that does not appear immediately may require approval or may have been rejected by moderation controls.
For moderators
- Determine the site's documented moderation policy and the rights required to review contributions.
- Use a dedicated authorized account on a staging system to learn the review interface.
- Inspect the submitted content and its context without following untrusted links or running pasted code.
- Apply the permitted action: approve, reject, edit or request changes only where the installed interface supports it.
- Confirm the content's final public visibility as a separate user.
- Document an escalation route for abusive content and possible false positives without publishing private account data.
Moderation decisions
| Situation | Review focus |
|---|---|
| Comment does not appear | Approval queue, publishing restrictions, spam filtering and permission checks |
| Reply action unavailable | Article/comment settings and the reader's effective rights |
| Submission appears only to moderator | Publication status and content-level visibility |
| Plugin moderation differs from Core | Plugin's own workflow, callback and permission model |
Understand the moderation queues in Geeklog 2.2.2
The tagged moderation handler makes an important distinction between article submissions, drafts, comment submissions and plugin-supplied moderation lists:
| Queue or operation | Confirmed source condition |
|---|---|
| Article submissions | story.moderate |
| Draft article list | listdraftstories = 1 and story.edit |
| Submitted comments | commentsubmission = 1 and comment.moderate |
| Plugin submissions | Delegated to plugin moderation callbacks such as PLG_showModerationList() |
| Moderation form processing | Checks SEC_checkToken() before invoking moderation actions |
The moderation handler has distinct approve and delete action branches. This does not imply every displayed item supports editing or every logged-in user can approve it. Article approvals additionally check access to the topic.
Example: approve a comment submission
- In staging, configure a site with comment submission moderation enabled and create a test comment in an article that accepts comments.
- Use an account with the relevant moderation right to open the moderation administration page.
- Locate the submitted comment and inspect its text before choosing the available approval or deletion action.
- Submit the action through the normal protected form. Verify the queue changes.
- Reopen the relevant article as an anonymous user to check whether the comment is actually public.
- Repeat the attempt using a user without
comment.moderateand confirm direct administrative requests are rejected.
Example: a draft does not show in the queue
Check the listdraftstories setting and the editor's story.edit right before assuming the draft has been deleted. The draft list is conditional and is different from the regular article-submission list. See Articles and topics.
Source references: moderation handler, security library, comment entry point.
When the moderation dashboard shows nothing
Geeklog 2.2.2 checks SEC_hasModerationAccess() before showing the dashboard. The source's separate lists matter: a user can be entitled to one queue without having permission to manage every other submission type.
Use these checks:
- No article submissions: verify
story.moderate, and whether a contributor's article actually entered the submission queue rather than being saved as an article. - No drafts: check both
listdraftstoriesandstory.edit; drafts are not the same as ordinary submitted stories. - No comments: check both
commentsubmissionandcomment.moderate, and confirm the comment was actually submitted. - No plugin items: review whether that particular plugin registers a moderation list; the Core uses
PLG_showModerationList(). - Actions appear to do nothing: confirm the form's valid CSRF token and rights before retrying; never bypass checks by constructing manual URLs.
Source: Core moderation administration, security handler.
Moderation acceptance tests
- [ ] Article and comment queues follow their separate rights and configuration switches.
- [ ] Direct form submissions without a valid CSRF token do not perform a moderation action.
- [ ] A nonmoderator cannot approve or delete a submission.
- [ ] Approved material is visible only to its intended audience.
- [ ] Plugin-specific queues follow their plugin's permissions and callbacks.
These outcomes must be recorded from a disposable installation; reading the handler is not equivalent to a live permission test.
Developer integration
Plugins may integrate moderation and comments through Core dispatchers, but old callback names and signatures are not a safe implementation template. Begin with the tagged Plugin API and verify dispatch behavior in Geeklog 2.2.2 before coding.
Historical Wiki sources to evaluate: Adding_Moderation_Capability and Integrating_the_Comment_Engine. These pages describe old version bands; their code samples and wording have not been republished. Complete UI testing and policy examples remain outstanding.
Detailed tutorial: comment on an article
Goal: make a constructive comment and understand why it may not appear immediately.
- Sign in as a reader if the site requires an account for comments.
- Open an article where comments are enabled and follow the available comment or reply action.
- Write a short example comment such as Thanks for sharing these resources. Avoid sharing contact details or confidential information.
- Preview if the installed interface supports it, then submit once.
- Return to the article and inspect the result. If the comment is absent, do not post repeated copies; check whether the site moderates submissions.
- Where moderation is active, ask an authorized moderator to inspect the queue. Recheck the article anonymously after approval.
Detailed tutorial: moderate a submitted comment
Prerequisites: commentsubmission = 1, an account with comment.moderate, and a disposable test comment pending review.
- Open the administrative moderation screen (
admin/moderation.php) using the authorized moderator account. - Find the comment submission list. A missing list may mean moderation is disabled or the user lacks the corresponding right.
- Read the comment and the article context. Do not open suspicious links or copy untrusted code.
- Select an available approval or deletion action. Use the built-in protected form; do not construct manual mutation URLs.
- After processing, verify the queue changed as expected and check the article while logged out.
- If the expected result is missing, note the article ID, moderation mode and resulting status without recording a session token.
Expected output: the test comment appears only after the site's configured approval workflow permits it.
Detailed tutorial: process a contributed story
- Use a contributor account to create a new article submission in an accessible topic.
- As a separate account with
story.moderate, open the story queue inadmin/moderation.php. - Confirm the intended topic and the text. Check topic-level access before approving.
- Approve or reject through the available form and record the resulting notification or redirect.
- Check the public article as a visitor. If the article remains invisible, review its publication date and permissions rather than approving it again.
- Finally, inspect the draft queue only if
listdraftstoriesis enabled and you havestory.edit.
Source: moderation controller. Tests remain pending on a disposable site.