News: When asking for support, it helps us and you, if you read the Posting Guidelines

Login  |  Register
HTML5 Icon HTML5 Icon
TP on Social Media
Welcome, Guest. Please login or register.
Did you miss your activation email?

September 19, 2019, 11:29:51 AM

Login with username, password and session length

Recent

Members
  • Total Members: 3752
  • Latest: Alizee
Stats
  • Total Posts: 188917
  • Total Topics: 20754
  • Online Today: 126
  • Online Ever: 629
  • (November 08, 2018, 01:36:54 PM)
Users Online
Users: 2
Guests: 63
Total: 65

Author Topic: A way to block ID's for specific forums from showing up in Recent Topics?  (Read 748 times)

0 Members and 1 Guest are viewing this topic.

Offline jernatety

  • Sr. Member
  • ****
  • Posts: 273
Is there a way to do this for the recent topics block? I just added a whole bunch of new forums and don't want the new topics showing up. Currently every new topic is showing up and in the recent list.

Thank you

Online @rjen

  • Support Team
  • *
  • Posts: 1820
    • FJR-club Nederland
Nope, not without coding
Running TP1.6.3 on SMF2.0 at: www.fjr-club.nl

Testing TP on SMF2.0
Testing TP on SMF2.1 RC2
Want to check what php version I am testing on? See: PHP Info

Offline jernatety

  • Sr. Member
  • ****
  • Posts: 273
Ok, thank you.

Online @rjen

  • Support Team
  • *
  • Posts: 1820
    • FJR-club Nederland
Had a quick look at it. If you don't mind getting your hands (a bit) dirty you can adapt the code in TPsubs.template.php.

Easiest way is to just INCLUDE the board that you do want in the recent topics.

Find this code:
Code: [Select]
// TPortal recent topics block
function TPortal_recentbox()
{
global $scripturl, $context, $settings, $txt, $modSettings, $forum_version;

// is it a number?
if(!is_numeric($context['TPortal']['recentboxnum']))
$context['TPortal']['recentboxnum']='10';

// leave out the recycle board, if any
if(isset($modSettings['recycle_board']))
$bb = $modSettings['recycle_board'];
else
$bb = 0;

$include_boards = null;

$what = ssi_recentTopics($num_recent = $context['TPortal']['recentboxnum'] , $exclude_boards = array($bb),  $include_boards, $output_method = 'array');

and change the line :
    $include_boards = null;

You can add an array including all the board id's that you want included in the recent topics..

like so:
    $include_boards = array(1,2,3,24,26);

The numbers are the board id's to be included
Running TP1.6.3 on SMF2.0 at: www.fjr-club.nl

Testing TP on SMF2.0
Testing TP on SMF2.1 RC2
Want to check what php version I am testing on? See: PHP Info

Online lurkalot

  • Administrator
  • *
  • Posts: 6225
    • Camera Craniums
There's also this php block snippet which does seem to work in SMF2. just tried it.

It has many options which you might find useful for your needs, and I'm sure with a bit of tweaking you could get it looking the way you want too.

Just follow the instructions, Multi-Functional posts and topics snippet

Online @rjen

  • Support Team
  • *
  • Posts: 1820
    • FJR-club Nederland
Ok, here is how to exclude. You will have to put the board id's in an array twice.

Find:
Code: [Select]
// TPortal recent topics block
function TPortal_recentbox()
{
global $scripturl, $context, $settings, $txt, $modSettings, $forum_version;

// is it a number?
if(!is_numeric($context['TPortal']['recentboxnum']))
$context['TPortal']['recentboxnum']='10';

// leave out the recycle board, if any
if(isset($modSettings['recycle_board']))
$bb = $modSettings['recycle_board'];
else
$bb = 0;

$include_boards = null;

$what = ssi_recentTopics($num_recent = $context['TPortal']['recentboxnum'] , $exclude_boards = array($bb),  $include_boards, $output_method = 'array');

and replace with

Code: [Select]
// TPortal recent topics block
function TPortal_recentbox()
{
global $scripturl, $context, $settings, $txt, $modSettings, $forum_version;

// is it a number?
if(!is_numeric($context['TPortal']['recentboxnum']))
$context['TPortal']['recentboxnum']='10';

// leave out the recycle board, if any, to exclude certain boards put board id's in $bb array below
if(isset($modSettings['recycle_board']))
$bb = array($modSettings['recycle_board'],26,70,19);
else
$bb = array(26,70,19);

// to include only certain boards put board id's in array below
$include_boards = array();

$what = ssi_recentTopics($num_recent = $context['TPortal']['recentboxnum'] , $exclude_boards = $bb,  $include_boards, $output_method = 'array');

You need to replace the string 26,70,19 in the code with the list of board ID's you wish to exclude. You need to do that in TWO places...
Running TP1.6.3 on SMF2.0 at: www.fjr-club.nl

Testing TP on SMF2.0
Testing TP on SMF2.1 RC2
Want to check what php version I am testing on? See: PHP Info

Offline jernatety

  • Sr. Member
  • ****
  • Posts: 273
Thank you @Mick, I think I'm going to go with @rjen's 2nd suggestion.

@rjen, does the second suggestion also get reconfigured in "TPsubs.template.php"

And @rjen, you didn't have to do that, I can assure you though I greatly appreciate it.

Thanks, Ross

Online @rjen

  • Support Team
  • *
  • Posts: 1820
    • FJR-club Nederland
Yep, same file
Running TP1.6.3 on SMF2.0 at: www.fjr-club.nl

Testing TP on SMF2.0
Testing TP on SMF2.1 RC2
Want to check what php version I am testing on? See: PHP Info

Online lurkalot

  • Administrator
  • *
  • Posts: 6225
    • Camera Craniums

Thank you @Mick, I think I'm going to go with @rjen's 2nd suggestion.


No worries, was just throwing it into the mix.  ;)

Offline jernatety

  • Sr. Member
  • ****
  • Posts: 273
Yep, same file

I don't see this file in the current theme ACP. In the sources directory I do see a TPsubs.php file but not .template.pnp file.

Am I looking in the correct place?

Online @rjen

  • Support Team
  • *
  • Posts: 1820
    • FJR-club Nederland
It’s a template not a source. Look in themes/default
Running TP1.6.3 on SMF2.0 at: www.fjr-club.nl

Testing TP on SMF2.0
Testing TP on SMF2.1 RC2
Want to check what php version I am testing on? See: PHP Info

Offline jernatety

  • Sr. Member
  • ****
  • Posts: 273
It’s a template not a source. Look in themes/default

Got it. TY

Offline jernatety

  • Sr. Member
  • ****
  • Posts: 273
I made that change and added the following ID's. I still see Labeda Pharaoh's, id 1164 on the front page recent topics block.

Code: [Select]
// TPortal recent topics block
function TPortal_recentbox()
{
global $scripturl, $context, $settings, $txt, $modSettings, $forum_version;

// is it a number?
if(!is_numeric($context['TPortal']['recentboxnum']))
$context['TPortal']['recentboxnum']='10';

// leave out the recycle board, if any, to exclude certain boards put board id's in $bb array below
if(isset($modSettings['recycle_board']))
$bb = array($modSettings['recycle_board'],384,385,386,1164);
else
$bb = array(384,385,386,1164);

// to include only certain boards put board id's in array below
$include_boards = array();

Online @rjen

  • Support Team
  • *
  • Posts: 1820
    • FJR-club Nederland
Are you sure that is the correct board is? Seems VERY high
Running TP1.6.3 on SMF2.0 at: www.fjr-club.nl

Testing TP on SMF2.0
Testing TP on SMF2.1 RC2
Want to check what php version I am testing on? See: PHP Info

Offline jernatety

  • Sr. Member
  • ****
  • Posts: 273
Are you sure that is the correct board is? Seems VERY high

Sorry, you're right. That is a topic#. The board id is 383. I added that, saved, reloaded and did Shift F5 on the page and still see the topics from that forum ID in recent.

Code: [Select]
// TPortal recent topics block
function TPortal_recentbox()
{
global $scripturl, $context, $settings, $txt, $modSettings, $forum_version;

// is it a number?
if(!is_numeric($context['TPortal']['recentboxnum']))
$context['TPortal']['recentboxnum']='10';

// leave out the recycle board, if any, to exclude certain boards put board id's in $bb array below
if(isset($modSettings['recycle_board']))
$bb = array($modSettings['recycle_board'],383,384,385,386);
else
$bb = array(383,384,385,386);

// to include only certain boards put board id's in array below
$include_boards = array();

Online @rjen

  • Support Team
  • *
  • Posts: 1820
    • FJR-club Nederland
Strange, it should work. Other boards are excluded successfully?
Running TP1.6.3 on SMF2.0 at: www.fjr-club.nl

Testing TP on SMF2.0
Testing TP on SMF2.1 RC2
Want to check what php version I am testing on? See: PHP Info

Online @rjen

  • Support Team
  • *
  • Posts: 1820
    • FJR-club Nederland
Topic showing 'Labeda Pharaohs' is not posted in board 383! It is posted in board 397, which is a child board of 383.

When excluding board you will need to exclude board number 397. The exclusion of a parent board will NOT automatically exclude all its child boards...
Running TP1.6.3 on SMF2.0 at: www.fjr-club.nl

Testing TP on SMF2.0
Testing TP on SMF2.1 RC2
Want to check what php version I am testing on? See: PHP Info

Offline jernatety

  • Sr. Member
  • ****
  • Posts: 273
Hi, sorry, I went on a bike ride with my wife and kids. You are 100% correct. Works perfectly. I was assuming the child forums were picked up under the parents. I put them all in and the code did exactly what you said it would do.

Perfect! Thank you!

Online lurkalot

  • Administrator
  • *
  • Posts: 6225
    • Camera Craniums
Glad @rjen got you sorted on this one.  O0

If I'm honest, it would be nice if these were block options for the recent block, it's been Number 1 on my ideas for TP list since at least 2017.  Whether it will ever make it to core, I'm not sure, but it's been requested a few times over the years.

Maybe drop a request in the "TinyPortal Feature Requests board". https://www.tinyportal.net/index.php?board=246.0

Offline jernatety

  • Sr. Member
  • ****
  • Posts: 273
Glad @rjen got you sorted on this one.  O0

If I'm honest, it would be nice if these were block options for the recent block, it's been Number 1 on my ideas for TP list since at least 2017.  Whether it will ever make it to core, I'm not sure, but it's been requested a few times over the years.

Maybe drop a request in the "TinyPortal Feature Requests board". https://www.tinyportal.net/index.php?board=246.0

Done! Thanks Mick, you guys are the best.