Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions

Reply
 
Thread Tools Display Modes
  #11  
Old 12-28-2007, 10:44 PM
bobster65's Avatar
bobster65 bobster65 is offline
 
Join Date: Mar 2006
Location: Montana
Posts: 1,169
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by footose View Post
I want to insert a new "forum" on the main forum listing page, but with information that is not directly related to the vbulletin database.

Say for example, you have an image Gallary, and want to show the "latest image" in the "latest post" section.

I've done this already by using a conditional in the forum templates, however, I have been asked to create this into a Product and I would like to eliminate the amount of template edits that need to occur. I was hoping to "highjack" how the forums were parsed so that I can insert what I need to via a plugin.
Ah sweet! Makes sense to want to bypass the template parts.

as far as counts, I do know that there are counts created in the function file that I posted earlier, but I assume you want to get details before that..

here is a little snippit..

PHP Code:
$counters = array();
    if (
is_array($vbulletin->forumcache))
    {
        foreach(
$vbulletin->forumcache AS $forum)
        {
            
$this_forum =& $counters["$forum[forumid]"];
            
$this_forum['threadcount'] = 0;
            
$this_forum['replycount'] = 0;
            if (
is_array($children["$forum[forumid]"]))
            {
                foreach(
$children["$forum[forumid]"] AS $id => $info)
                {
                    
$this_forum['threadcount'] += $info['threads'];
                    
$this_forum['replycount'] += $info['posts'];
                }
            }
        }
    } 
Reply With Quote
  #12  
Old 12-28-2007, 10:51 PM
footose footose is offline
 
Join Date: Mar 2006
Posts: 321
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Cool, Im just about to head out for the evening, but I should be back later to take a look at the suggestion.

I'm not sure if I need to grab it before, or grab it after.. but I did look in that particular function (function fetch_last_post_array()) and unfortunately, there is no hooks in there that I can take advantage of. I think I may have to "override" it after the fact.

What I propose may not be possible without actual template edits, but I will still try.
Reply With Quote
  #13  
Old 12-28-2007, 10:58 PM
Opserty Opserty is offline
 
Join Date: Apr 2007
Posts: 4,103
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Here is a very rudimentary start I came up with. Still needs a lot of tweaking but I got it to work so it may help you:

PHP Code:
// I have used 7 as an example forumid, you will need to change it so it doesn't cause conflicts.
$vbulletin->forumcache[] = array(
        
'forumid'   => 7,
        
'styleid'   => 0,
        
'title'     => 'Some Title',
        
'title_clean' => 'Some Title',
        
'description' => 'Some Description',
        
'description_clean' => 'Some Description',
        
'options'       => 73415,
        
'displayorder' => 100,
        
'daysprune' => -1,
        
'newpostemail' => '',
        
'newthreademail' => '',
        
'parentid' => 3,
        
'parentlist' => '7,3,-1',
        
'password' => ''
        
'link' => '',
        
'childlist' => '7, -1' ,
        
'importforumid' => 0,
        
'importcategoryid' => 1,
        
'lastpostid' => ,
        
'showprivate' => ,
        
'defaultsortfield' => 'lastpost',
        
'defaultsortorder' => 'desc',
        
'podcast' => 0,
        
'depth' => 0,
        
'permissions' => array(
                
=> 655375,
                
=> 1048575,
                
=> 0,
                
=> 782847,
                
=> 782847,
                
=> 1048575,
                
=> 655375,
                
=> 655375
                                
)
    );
$vbulletin->userinfo['forumpermissions'][7] = 1048575
EDIT: RE: Lastpostid. I'm not sure you can set your own thing in the last post column, since the lastpostid is cached for that forum and this is then most likely fetched from the database when the forumbit is processed. I'll have a look tomorrow to see if there is way to get around this.
Reply With Quote
  #14  
Old 12-28-2007, 11:12 PM
footose footose is offline
 
Join Date: Mar 2006
Posts: 321
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

^^ Thanks! What hook are you you using?

Been playing with it.. ill update what i find later on
Reply With Quote
  #15  
Old 12-29-2007, 09:46 AM
Opserty Opserty is offline
 
Join Date: Apr 2007
Posts: 4,103
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

forumhome_start if I remember correctly.

Edit: Here is the code I managed to get for the "Last Post" column.
PHP Code:
if(THIS_SCRIPT == 'index' && $forumid == 7)
{
    
$show['lastpostinfo'] = $show['icon'] = true;
    
$lastpostinfo['forumid'] = 7;
    
$lastpostinfo['lastthreadid'] = $lastpostinfo['lastpostid'] = 'gallery'// Set up another plugin on showthread_start to catch 'showthread.php?p=gallery' or 't=gallery'
    
$lastpostinfo['lastthread'] = 'Some Random thread';
    
$lastpostinfo['trimthread'] = 'Some Random thr...';
    
$lastpostinfo['postdate'] = 'Set a date in same format as rest of board';
    
$lastpostinfo['posttime'] = 'Same as above';
    
$lastpostinfo['lastpostid'] = 'gallery';
    
$lastpostinfo['lastposter'] = 'Admin?';
    
// Not default but need to clean up so set this info as well
    
$lastpostinfo['lastposterid'] = 1;
    
    eval(
'$forum[\'lastpostinfo\'] = "' fetch_template('forumhome_lastpostby') . '";');
    echo     
'member.php?'$session['sessionurl'] .'findlastposter&f='$lastpostinfo['forumid'];

    
$forum['lastpostinfo'] = str_replace('member.php?'$session['sessionurl'] .'find=lastposter&f='$lastpostinfo['forumid'], 'member.php?'$session['sessionurl'] .'u='.$lastpostinfo['lastposterid'], $forum['lastpostinfo']);

Again by no means final but it will give you an idea of what do to. (Hook Location: forumbit_display)
Reply With Quote
  #16  
Old 12-29-2007, 03:18 PM
footose footose is offline
 
Join Date: Mar 2006
Posts: 321
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hey Opserty: Thank you so much for the help!

I was also able to "highjack" the last post column, but it seems you can do it in the original forumhome_start we said as well.. as well as edit the replycount and threadcount... Something like this

PHP Code:
// just check to see if your are an admin
if (is_member_of($vbulletin->userinfo6))
{

// made it insert into "forum 99"
    
$vbulletin->forumcache[99] = array(
    
'forumid'   => 99,
// from database
    
'lastpost' => $lastpost["lastactivity"],
    
'lastposter' => $lastpost["username"],
    
'lastthread' => $lastpost["username"] . "'s car",
// some thread count and reply count
    
'threadcount' => 33544043,
    
'replycount' => 1943543,
    
'styleid'   => 0,
// trying to manipulate the title to display links and such..
    
'title'     => '</strong></a></div><div style="float:left"><a href="thegarage.php"> <strong>The Garage',
    
'title_clean' => '</strong></a><a href="thegarage.php"><strong>The Garage',
    
'description' => '<br>Its 3:30am, so pissoff</div><div align="float:right"><img src="http://forums.generationdub.com/tg/images/3_tn_lowres_rolling_01.jpg"></div>',
    
'description_clean' => 'Upload your ride and brag about it for all to see!',
    
'options'       => 73415,
    
'displayorder' => 100,
    
'daysprune' => -1,
    
'newpostemail' => '',
    
'newthreademail' => '',
    
'parentid' => 3,
    
'parentlist' => '99,3,-1',
    
'password' => ''
    
'link' => '',
    
'childlist' => '99, -1' ,
    
'importforumid' => 0,
    
'importcategoryid' => 1,
    
'lastpostid' => ,
    
'showprivate' => ,
    
'defaultsortfield' => 'lastpost',
    
'defaultsortorder' => 'desc',
    
'podcast' => 0,
    
'depth' => 0,
    
'permissions' => array(
        
=> 0,
        
=> 1048575,
        
21 => 0,
        
=> 0,
        
=> 0,
        
=> 0,
        
24 => 0,
        
20 => 0,
        
=> 0,
        
=> 0
                
)
    );

    
$vbulletin->userinfo['forumpermissions'][99] = 1048575
However, it seems pretty limited because of the way the templates are parsed, it actually uses varibles to fill in the "Last Post" and "Name". Permissions also don't seem to work, unless you add the "userinfo" line at the bottom.

What is it you are doing with the eval fetch_template?

Again, thank you so much for the help thus far.

--------------- Added [DATE]1198948919[/DATE] at [TIME]1198948919[/TIME] ---------------

EDIT

Ahh, I see what you are doing. Basically we could add our own template to use, which is exactly what I wanted to do!
Reply With Quote
  #17  
Old 12-29-2007, 03:28 PM
Opserty Opserty is offline
 
Join Date: Apr 2007
Posts: 4,103
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

$vbulletin->userinfo['forumpermissions'][99] = 1048575;
You only need to set this to '1' because you only need to see this forum and because its not a real forum you don't need the other permissions.
Reply With Quote
  #18  
Old 12-30-2007, 04:12 AM
footose footose is offline
 
Join Date: Mar 2006
Posts: 321
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Very nice man, thank you so much!

What I've began to do is, insert the minimum requirements to "insert" another "forum" using our first piece of code, then "hijacked" the actual last post / count / reply templates and made new ones instead!
Reply With Quote
  #19  
Old 01-03-2008, 12:12 AM
footose footose is offline
 
Join Date: Mar 2006
Posts: 321
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I have been still working on this. I will post more solutions once I have something final.
Reply With Quote
Reply

Thread Tools
Display Modes

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 03:42 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.06141 seconds
  • Memory Usage 2,307KB
  • Queries Executed 13 (?)
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
  • (4)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (9)post_thanks_box
  • (9)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (9)post_thanks_postbit_info
  • (9)postbit
  • (9)postbit_onlinestatus
  • (9)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_postinfo_query
  • fetch_postinfo
  • 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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete