vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Modification Requests/Questions (Unpaid) (https://vborg.vbsupport.ru/forumdisplay.php?f=112)
-   -   Random Child Forum Display Order ? (https://vborg.vbsupport.ru/showthread.php?t=63526)

Sidewindr 04-06-2004 05:43 AM

Random Child Forum Display Order ?
 
I modified the code in vb2 to display child forums in a particular forum in a random order.

How can I do this in vb3 ??

Sidewindr 04-10-2004 03:20 AM

I did this previously by hacking the forumdisplay.php where the SQL query was done to retrieve the child forums. I cannot really find where in the vB3 code this is.. Can someone PLEASE help me?? :) *beg*

Code:

// display sub forums
$permissions = $getperms;
//Forum info
//// BEGIN MODIFICATION Random Forum display for Sponsor Forum
if ($forumid == "40") {
  $forums=$DB_site->query('SELECT * FROM forum WHERE active=1 ORDER BY RAND()');
} else {
  $forums=$DB_site->query('SELECT * FROM forum WHERE displayorder<>0 AND active=1 ORDER BY parentid,displayorder,forumid');
}
//// END MODIFICATION Random Forum display for Sponsor Forum


Sidewindr 04-10-2004 05:52 AM

I managed to get it working .. with a minor hitch however.

I modified "includes/functions_forumlist.php" as below.
The problem I now have is for all of the childeren of forumid #40 I have to assign them display orders in order for them to become random. If they all have a display order of "1" then they list in order of the DB tables. Is it possible to get this to work without having to put incrementing display orders in for each of the childeren forums??

ORIGINAL CODE
Code:

        // do some sorting (instead of sorting with MySQL and causing a filesort)
        foreach($iforumcache AS $parentid => $devnull)
        {
                ksort($iforumcache["$parentid"]); // sort by display order
        }
        ksort($iforumcache); // sort by parentid (not actually sure if this is necessary)

NEW CODE
Code:

        // do some sorting (instead of sorting with MySQL and causing a filesort)
        foreach($iforumcache AS $parentid => $devnull)
        {
                if ($parentid == 40) {
                        srand ((float)microtime()*1000000);
                        shuffle($iforumcache["$parentid"]);
                } else {
                        ksort($iforumcache["$parentid"]); // sort by display order
                }
        }
        ksort($iforumcache); // sort by parentid (not actually sure if this is necessary)



All times are GMT. The time now is 02:19 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.00980 seconds
  • Memory Usage 1,715KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (3)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete