[MC] Forum Layouts

[MC] Forum Layouts [Paid] 1.3.2

No permission to buy ($30.00)
Sorry, I struggle to express myself in English. I meant if the sidebar could be placed on the left side, just like XFRM or XFMG do.

So, if I use articles, would I be able to display them like that with this addon? Thanks!

View attachment 337894

I dont have any built in feature to move the sidebar over, but if your theme does it, then yes.

And no, it wouldn't work like that for articles. It's designed to show threads from all of your forums in one flow.
 
Hello,

Does this completely replace all of the forums or are there options to choose where? Like: normal category > normal forum > your forum layout.
 
Hello,

Does this completely replace all of the forums or are there options to choose where? Like: normal category > normal forum > your forum layout.

This does not replace individual forum's layouts. Only the index, with an optional included toggle to switch been layouts.
 
First thing I did, I do now to ensure addons are coded well with no security issues, put it through Claude Coding. I love that it returned A-OK, no security issues, no performance issues. It picked up the raw SQL getCardTopicIds() but you explain that in comments as to why. Thank you for amazing work Matt. Look forward to playing around with this.
 
Ok, big problem. In a private forum, where you should only be allowed to see your own threads, with this addon enabled, you can see all users threads. You can't see the content, but you can see the thread titles, when you should only be allowed to see your own threads.

Screenshot 2026-05-25 192749.webp
 
May be related to (got a lot of these errors whilst enabled):

Code:
Server error log
ErrorException: Template error: [E_WARNING] Attempt to read property "title" on null src/addons/MC/ForumLayouts/Repository/Thread.php:275
Generated by: anthony May 25, 2026 at 7:22 PM
Stack trace
#0 src/addons/MC/ForumLayouts/Repository/Thread.php(275): XF\Template\Templater->handleTemplateError(2, '[E_WARNING] Att...', '/home/myptsd/pu...', 275)
#1 src/addons/MC/ForumLayouts/Option/FeaturedStickies.php(15): MC\ForumLayouts\Repository\Thread->getAllStickiesGroupedByForum()
#2 src/XF/Entity/Option.php(87): MC\ForumLayouts\Option\FeaturedStickies::renderOption(Object(XF\Entity\Option), Array)
#3 src/XF/Template/Templater.php(1300): XF\Entity\Option->renderDisplayCallback(Array)
#4 internal_data/code_cache/templates/l1/s0/admin/option_macros.php(206): XF\Template\Templater->method(Object(XF\Entity\Option), 'renderDisplayCa...', Array)
#5 src/XF/Template/Templater.php(933): XF\Template\Templater->{closure}(Object(SV\StandardLib\XF\Template\Templater), Array, NULL)
#6 internal_data/code_cache/templates/l1/s0/admin/mc_forumlayouts_option_macros.php(62): XF\Template\Templater->callMacro('option_macros', 'option_row', Array, Array)
#7 src/XF/Template/Templater.php(933): XF\Template\Templater->{closure}(Object(SV\StandardLib\XF\Template\Templater), Array, NULL)
#8 internal_data/code_cache/templates/l1/s0/admin/option_list.php(77): XF\Template\Templater->callMacro('mc_forumlayouts...', 'option_form_blo...', Array, Array)
#9 src/XF/Template/Templater.php(1818): XF\Template\Templater->{closure}(Object(SV\StandardLib\XF\Template\Templater), Array, NULL)
#10 src/XF/Template/Template.php(24): XF\Template\Templater->renderTemplate('option_list', Array)
#11 src/XF/Mvc/Renderer/Html.php(50): XF\Template\Template->render()
#12 src/XF/Mvc/Dispatcher.php(471): XF\Mvc\Renderer\Html->renderView('XF:Option\\Listi...', 'admin:option_li...', Array)
#13 src/XF/Mvc/Dispatcher.php(453): XF\Mvc\Dispatcher->renderView(Object(XF\Mvc\Renderer\Html), Object(XF\Mvc\Reply\View))
#14 src/XF/Mvc/Dispatcher.php(412): XF\Mvc\Dispatcher->renderReply(Object(XF\Mvc\Renderer\Html), Object(XF\Mvc\Reply\View))
#15 src/XF/Mvc/Dispatcher.php(66): XF\Mvc\Dispatcher->render(Object(XF\Mvc\Reply\View), 'html')
#16 src/XF/App.php(2824): XF\Mvc\Dispatcher->run()
#17 src/XF.php(814): XF\App->run()
#18 admin.php(15): XF::runApp('XF\\Admin\\App')
#19 {main}
Request state
array(4) {
  ["url"] => string(41) "/admin.php?options/groups/mcForumLayouts/"
  ["referrer"] => string(63) "https://www.myptsd.com/admin.php?options/groups/mcForumLayouts/"
  ["_GET"] => array(1) {
    ["options/groups/mcForumLayouts/"] => string(0) ""
  }
  ["_POST"] => array(0) {
  }
}

getAllStickiesGroupedByForum() at line 275: $forumTitle = $thread->Forum->Node->title;

assumes all Forum -> Node chain have a record, where something could be null.

Code:
From: 

foreach ($finder->fetch() as $thread)
{
    /** @var ThreadEntity $thread */
    $forumTitle = $thread->Forum->Node->title;

To possibly:

foreach ($finder->fetch() as $thread)
{
    /** @var ThreadEntity $thread */
    if (!$thread->Forum || !$thread->Forum->Node)
    {
        continue;
    }
    $forumTitle = $thread->Forum->Node->title;

I tracked down the bad data at my end, noting this could still be an issue in the future for anyone, especially larger forums.

Code:
SELECT t.thread_id, t.title, t.node_id
FROM xf_thread t
LEFT JOIN xf_forum f ON f.node_id = t.node_id
LEFT JOIN xf_node n ON n.node_id = t.node_id
WHERE t.sticky = 1
AND t.discussion_state = 'visible'
AND (f.node_id IS NULL OR n.node_id IS NULL);{/code]
 
Last edited:
Matt C. updated [MC] Forum Layouts with a new update entry:

1.0.6

A new version has been released that contains two bug fixes.
  • Bug fix: Enforce per-node "view others" permission in multi-forum thread listings; users on private forums no longer see other users' thread titles
  • Bug fix: Avoid error on the Featured stickies option when a sticky thread belongs to a deleted or non existent node

Read the rest of this update entry...
 
Last edited:
@Matt C. I registered on your website but I haven't received the confirmation email to activate my account, and it's not in my spam folder either.

I've also tried resending the email and that doesn't seem to work either. I'm using the same username as on this forum.
 
@Matt C. I registered on your website but I haven't received the confirmation email to activate my account, and it's not in my spam folder either.

I've also tried resending the email and that doesn't seem to work either. I'm using the same username as on this forum.

I went ahead and verified you. Thanks for letting me know you didn't receive the verification email.
 
@Matt C. The add-on works wonderfully!

I found a minor CSS glitch when the pagination and the option to choose between the 3 display modes are hidden, the 6px padding-bottom remains, which causes the boxes to be misaligned.

Here are some screenshots:

1780340130910.webp


1780340198746.webp
 
@Matt C. The add-on works wonderfully!

I found a minor CSS glitch when the pagination and the option to choose between the 3 display modes are hidden, the 6px padding-bottom remains, which causes the boxes to be misaligned.

Here are some screenshots:

View attachment 339004


View attachment 339006

Yeah, I see it now. I'll have to re-order the conditionals, that's my mistake! I'll have that patched for the next update.

For now, you can apply this temporarily.

Code:
.mc-fl-container .block-outer
{
    display: none;
}
 
Yeah, I see it now. I'll have to re-order the conditionals, that's my mistake! I'll have that patched for the next update.

For now, you can apply this temporarily.

Code:
.mc-fl-container .block-outer
{
    display: none;
}

Thank you!!
 
Matt C. updated [MC] Forum Layouts with a new update entry:

1.0.7 Released

A new version has been released that contains one new feature and one bug fix.
  • Feature: You can now randomize forum colors through 4 curated color palettes: Classic (Discourse style), Warm, Cool, and Muted. Requested by @Andro
    • Optionally overwrite any existing forum colors.
  • Bug fix: If you choose to not use pagination and remove layout toggles, block-outer would remain causing a slight padding misalignment. Reported by...

Read the rest of this update entry...
 
Back
Top Bottom