Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 09-04-2004, 11:51 AM
Michael Morris's Avatar
Michael Morris Michael Morris is offline
 
Join Date: Nov 2003
Location: Knoxville TN
Posts: 774
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Virtual Forums (Concept discussion - not a hack or request for one)

((This was posted on vb3 mod req and subsequently ignored. Maybe that was the wrong forum))

This is a theoretical discussion about how to organize the information that occurs on a messageboard or any large site - and a possible solution within vbulletin; virtual forums

A virtual forum is one holding threads that share a given property. Threads cannot be started in a virtual forum - they must instead be started elsewhere, but they appear here if certain criteria are met. Threads move into and out of virtual forums as their criteria changes or by lieu of the moderators.

Ok, by now I'm sure some of you are asking why? Well, couple of reasons. First, it's not always easy to divide subject material cleanly into forums. For instance, I help run an RPG site. Now, we have a forum set aside for house rules and for official rules. Either of these forums can have threads about character classes, equipment, spells, etc. Creation of a spells forum would overlap both of these forums - it would be *nice* but it rules out having forums for the house rules / official rules split.

A less site specific example. Say you had subject areas A B C. Within each you had topics 1, 2, and 3. Now, under vbulletin's current system you have to make a choice. Create forums for 1, 2, and 3 or A, B, C. If you're nuts you could have nine forums (a1, b1, etc), but what if multiple topics could be raised in a subject?

Searching is one answer to this, but on large boards constant searching can cause server lag - especially if the servers are old.

Which returns me to this idea of Virtual Forums. Again, a virtual forum looks over the entire boards (or an admin defined section of the boards) for threads that meet certain criteria. You could have, for moderating purposes, threads started by users with less than 100 posts (which are more likely to be put in a wrong forum - noobs do that). Or a virtual forum containing all threads that have images.

Returning to the example above, users could check off topics 1, 2, or 3 as they create a thread and the appropriate virtual forums could suck up the thread in addition to the actual forum containing the thread. Or perhaps if a keyword appears X times in a thread the virtual forum will take up the thread - this would save on the amount of times the search feature would be employed.

Post icons are used on some boards (including mine) as a secondary labeling system. But this system serves no real purpose since post icons can't be used for sorting (short of hacking of course). They are, at best, a decorative feature.

Well, I think I've went on long enough. I have no idea how this idea would be implemented but my instincts tell me it would require the hacking of several dozen files and templates. I think the principle though is something Jelsoft should look into for future releases of the software. If this principle is executed correctly it would give vbulletin another leg up on its competitors.

I'd lke to discuss this concept some before engaging on any hard coding. Thoughts and comments requested.
Reply With Quote
  #2  
Old 09-04-2004, 12:23 PM
Dean C's Avatar
Dean C Dean C is offline
 
Join Date: Jan 2002
Location: England
Posts: 9,071
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Moved to general modification discussion, as in essence it is the discussion of a modification
Reply With Quote
  #3  
Old 09-04-2004, 04:28 PM
Michael Morris's Avatar
Michael Morris Michael Morris is offline
 
Join Date: Nov 2003
Location: Knoxville TN
Posts: 774
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok by me. I've been trying to find a home for it.
Reply With Quote
  #4  
Old 09-08-2004, 05:01 PM
nogerorob nogerorob is offline
 
Join Date: Jun 2004
Location: Portland, OR
Posts: 82
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This idea sounds similar to the concept of "Search Folders" in Microsoft Outlook.

Sounds like an interesting mod.

r
Reply With Quote
  #5  
Old 09-08-2004, 06:05 PM
CarCdr CarCdr is offline
 
Join Date: Apr 2004
Posts: 242
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This should not be as difficult as you might think. A virtual forum could easily contain only redirects to other threads in real forums. vBulletin already supports that. Also, you'd set up the forums that are going to act as virtual forums to disallow posting by non-admin's.

All you need now is a script to run periodically that scans threads to see if they meet the criteria for inclusion in a virtual forum.

A few possible hitches come to mind:

1. You would not want to run this often as scanning the entire thread table, albeit for real forums only with threads that are new/changed, is time-consuming on a large board. Remember, you have to scan the entire table as even older threads might only recently meet the criteria (i.e., it did not match yesterday, but it matches today).

2. You'd probably want the ability for admin/mod to tag a thread by hand for inclusion in a virtual forum.

3. Would you ever want to scan the virtual forums to see if threads should be booted because they no longer meet the criteria?
Reply With Quote
  #6  
Old 09-08-2004, 06:10 PM
Colin F's Avatar
Colin F Colin F is offline
 
Join Date: Jul 2004
Location: Switzerland
Posts: 1,551
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

to 1: why scan the whole table? I think this would only be needed if the criterias change, otherwise one could just use the lastpost date. Edited posts really aren't worth the effort of scanning the whole table.
Reply With Quote
  #7  
Old 09-08-2004, 06:15 PM
CarCdr CarCdr is offline
 
Join Date: Apr 2004
Posts: 242
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Colin F
to 1: why scan the whole table? I think this would only be needed if the criterias change, otherwise one could just use the lastpost date. Edited posts really aren't worth the effort of scanning the whole table.
When I said "scan the entier table", that is want I meant -- scan for threads that are new/changed(i.e, new posts) in real forums.

Anyway, you are asking the wrong person Colin. I do not know what his needs are.
Reply With Quote
  #8  
Old 09-08-2004, 06:24 PM
Colin F's Avatar
Colin F Colin F is offline
 
Join Date: Jul 2004
Location: Switzerland
Posts: 1,551
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Couldn't the index on the forumid, visible, sticky and lastpost be used?

Whatever, it's not that important
Reply With Quote
  #9  
Old 09-08-2004, 06:31 PM
CarCdr CarCdr is offline
 
Join Date: Apr 2004
Posts: 242
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Whatever way you cut it, the server has to scan the table -- either mysql does it quickly because you use only an index reference or it does it slowly because you require a more complicated/non-index WHERE, or slower still, as does some of the code in vB, you can get the id's, but then you then loop on them doing your fancy-schmancy criteria matching.

Geeze man, I think we can stay at the pseudo-code level at the earliest stages of discussion. Cheers
Reply With Quote
  #10  
Old 09-09-2004, 08:04 AM
Brad Brad is offline
 
Join Date: Nov 2001
Posts: 4,765
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well vBulletin already scans the thread table elsewhere in the same manner, and your always going to take a shot in load with such a feture. You could store the data elsewhere but why waste clockcycles making a copy of date or removing it to manage the virtual forum?

The best way would probbly have to be managed by moderators, via check boxes ethor in the thread or on a seprate moderation page for the thread. In this space the mod could assign the thread to virtual forums they want it to display in. This would invoke a update function which would write data to a new field in the thread table.

Then it would be a matter of writting ethor a modification to forumdisplay.php or a seprate php file in which you would query the thread table for data based on the new field we added.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 09:28 AM.


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.11232 seconds
  • Memory Usage 2,252KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (10)postbit
  • (10)postbit_onlinestatus
  • (10)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete