thread
Last updated Apr 21st, 2019 | Page history | Improve this page | Report an issue
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$277 per month—let's make that $500!
Learn moreThe Thread (thread/index) controller is the one that shows an entire thread of posts to the user.
Basic Information¶
| Since Version | 1.0 | 
|---|---|
| Controller File | controllers/web/thread/index.class.php | 
| Controller Class Name | DiscussThreadController | 
| Controller Template | pages/thread/index.tpl | 
| Manifest Name | thread/index | 
Options¶
If you don't know what the manifest is, please go back to the Getting Started document. The options below need to go into the "board" options array of the manifest.
| Key | Default | Description | 
|---|---|---|
| showPosts | true | To show posts.. you'll want this enabled. Posts go into [[+posts]] | 
| limit | 10 | Amount of posts per page | 
| discuss.post_sort_dir | ASC | The sort order for posts: ASC or DESC | 
| sortAnswerFirst | false | If enabled, Q&A threads will sort posts marked as answer on top. | 
| postAttachmentRowTpl | post/disPostAttachment | Chunk to wrap each attachment in. | 
| postTpl | post/disThreadPost | The chunk to wrap individual posts in. | 
| rowCls | dis-post | A class to add to the post row | 
| childrenCls | dis-board-post | |
| actionLinkTpl | disActionLink | Tpl chunk for the action links. | 
| rowSeparator | line break | separator to use between rows | 
| showViewing | Show the readers based on sessions. Makes the [[+readers]] placeholder available. | 
|
| showBreadcrumbs | Show breadcrumbs on this controller. | |
| showTitleInBreadcrumbs | ||
| showPaginationIfOnePage | true | Wether 1 page pagination should show up or not. | 
Controller Template¶
<!-- thread/index.html -->
[[+top]]
[[+aboveThread]]
<div class="status [[+locked:is=`1`:then=`locked`:else=`unlocked`]]">
    <div class="f1-f12 h-group [[+answered:notempty=`answered`]]">
        <h1 class="Category" post="[[+id]]">
            [[+answered:notempty=`<span class="tag solved">[[%discuss.solved]]</span>`:default=``]]
            <a href="[[+url]]" title="[[+title]]">[[+title]]</a>
        </h1>
    </div>
    <div class="f1-f9">
        <div class="a-dis-actionbuttons h-group">
            Subscribe: <a href="[[~[[*id]]]]thread/feed.xml?thread=[[+id]]">RSS</a>
                    [[+actionlink_subscribe:notempty=`
                    <a href="[[+actionlink_subscribe]]">By email</a>`]]
                    [[+actionlink_unsubscribe:notempty=`
                    <a href="[[+actionlink_unsubscribe]]">Stop emails</a>`]]
        </div>
    </div>
    <div class="f1-f9">
        <header class="dis-cat-header dark-gradient h-group sticky-bar top">
            [[+pagination:default=``]]
            [[- USER LOGGED IN ]]
            [[!+discuss.user.id:notempty=`
            <div class="post-box">
                [[+locked:is=`1`:then=``:else=`<a class="dis-action-reply Button" href="[[+actionlink_reply]]">Reply to thread</a>`]]
                <a class="Button" href="[[+actionlink_unread]]">Mark as unread</a>
                [[+moderators]]
            </div>`]]
            [[- USER NOT LOGGED IN ]]
            [[!+discuss.user.id:is=``:then=`
            <div class="post-box">
                <a href="[[~[[*id]]]]login" class="Button dis-action-login" >Login to Post</a>
            </div>`]]
        </header>
        <ul class="dis-list h-group">
            [[+posts]]
        </ul>
        [[+pagination:notempty=`
        <div class="paginate stand-alone bottom horiz-list">[[+pagination]]</div>`]]
        [[$thread-login-post]]
        [[+locked:notempty=`<p class="m-notice">[[%discuss.thread_locked]]</p>`:default=`[[+quick_reply_form]]`]]
        [[+belowThread]]
        [[+discuss.error_panel]]
    </div><!-- Close Content From Wrapper -->
    [[+bottom]]
    [[+sidebar]]
</div>
<!--close thread/index.html -->
System Events¶
OnDiscussRenderThread¶
All currently set placeholders are available through the $placeholders array. The return value or $modx->event->output() value is expected to be an array of placeholders to override. Using a plugin on this event is the only way to put a value in the top, bottom, aboveThread and belowThread placeholders.
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$277 per month—let's make that $500!
Learn more










