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 04-08-2006, 12:23 AM
Razasharp's Avatar
Razasharp Razasharp is offline
 
Join Date: Feb 2005
Location: UK
Posts: 373
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Help with simple plug-in please...

Would appreciate some help with this plug-in please

I am trying to add something to the hook:

($hook = vBulletinHook::fetch_hook('forumdisplay_sort')) ? eval($hook) : false;

in forumdisplay.php

I simply want to add:

case 'dateline':

so that I can sort threads in a particular forum in the order they were created (rather than by last-post).

I found this thread which outlines how to do it by hacking files - but I'd rather it be a plug-in if possible: https://vborg.vbsupport.ru/showthrea...d+forumdisplay

Here is a snippet of the forum display code so you don't have to hunt it out

PHP Code:
// look at sorting options:
    
if ($vbulletin->GPC['sortorder'] != 'asc')
    {
        
$sqlsortorder 'DESC';
        
$order = array('desc' => 'selected="selected"');
        
$vbulletin->GPC['sortorder'] = 'desc';
    }
    else
    {
        
$sqlsortorder '';
        
$order = array('asc' => 'selected="selected"');
    }

    switch (
$sortfield)
    {
        case 
'title':
            
$sqlsortfield 'thread.title';
            break;
        case 
'lastpost':
            
$sqlsortfield 'thread.lastpost';
            break;
        case 
'replycount':
        case 
'views':
        case 
'postusername':
            
$sqlsortfield $vbulletin->GPC['sortfield'];
            break;
        case 
'voteavg':
            if (
$foruminfo['allowratings'])
            {
                
$sqlsortfield 'voteavg';
                break;
            } 
// else, use last post
        
default:
            
$handled false;
            (
$hook vBulletinHook::fetch_hook('forumdisplay_sort')) ? eval($hook) : false;
            if (!
$handled)
            {
                
$sqlsortfield 'thread.lastpost';
                
$sortfield 'lastpost';
            }
    }
    
$sort = array($sortfield => 'selected="selected"');

    if (!
can_moderate($forumid'canmoderateposts'))
    {
        if (!(
$forumperms $vbulletin->bf_ugp_forumpermissions['canseedelnotice']))
        {
            
$visiblethreads " AND visible = 1 ";
        }
        else
        {
            
$visiblethreads " AND visible IN (1,2)";
        }
    }
    else
    {
        
$visiblethreads " AND visible IN (0,1,2)";
    }

    
$hook_query_fields $hook_query_joins $hook_query_where '';
    (
$hook vBulletinHook::fetch_hook('forumdisplay_query_threadscount')) ? eval($hook) : false
Thanks in advance!
Reply With Quote
  #2  
Old 04-08-2006, 02:34 PM
Royalridge Royalridge is offline
 
Join Date: Oct 2004
Posts: 29
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok, my need was similar and I experimented to find a way to implement what you are looking for.

In this example forum ID 77 will be changed so that threads are listed in creation order.

You need to change TWO hooks.

forumdisplay_start:
Code:
if ($forumid == 77) {
  $vbulletin->GPC['sortfield'] = 'Custom';
}
forumdisplay_sort:
Code:
if ($forumid = 77) {
  $sqlsortfield = "thread.dateline";
  $sqlsortorder = "asc";
  $handled = true;
}
I suppose you could also code this like:

forumdisplay_start:
Code:
if ($forumid == 77) {
  $vbulletin->GPC['sortfield'] = 'dateline';
}
forumdisplay_sort:
Code:
if ($vbulletin->GPC['sortfield'] == 'dateline';) {
  $sqlsortfield = "thread.dateline";
  $sqlsortorder = "asc";
  $handled = true;
}
Then you only need to change the code in forumdisplay_start if you wanted multiple forums to use "dateline" as the sort.

I'm sure there's a more elegant way to get what you want to achieve and I'm looking forward to seeing other peoples solutions.

The problem with my solution is that it's quick, dirty and doesn't allow the user to select the sort fields / orders from the normal menu.

Sussed it, leave forumdisplay_sort: as above but change:

forumdisplay_start:
Code:
if ($_REQUEST['sort'] == '') {
  if ($forumid == 77) {
    $vbulletin->GPC['sortfield'] = 'dateline';
  }
}
Reply With Quote
  #3  
Old 04-08-2006, 03:05 PM
Razasharp's Avatar
Razasharp Razasharp is offline
 
Join Date: Feb 2005
Location: UK
Posts: 373
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks!

I got the first option to work - but the second one didn't (second would make it slightly easier to add more as it would only need one oplug-in changed).

I'll give the third option a go too in a minute

Its not working

I get:

Parse error: parse error, unexpected ';' in /home/mysite/public_html/forums/forumdisplay.php(676) : eval()'d code on line 1


---

(Also option one doesnt work as no matter which forum you go to it shows the contents of the forum specified in the plug in)

Any ideas?

Thanks again for your help.
Reply With Quote
  #4  
Old 04-08-2006, 04:10 PM
Royalridge Royalridge is offline
 
Join Date: Oct 2004
Posts: 29
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

My bad, for option 1 it should have been:

forumdisplay_sort:
Code:
if ($forumid == 77) {
  $sqlsortfield = "thread.dateline";
  $sqlsortorder = "asc";
  $handled = true;
}
As for the other versions, I'm actually in the process of tidying up our 3.5.4 upgrade and will have a look at 'em when the heat dies down
Reply With Quote
  #5  
Old 04-08-2006, 04:23 PM
Razasharp's Avatar
Razasharp Razasharp is offline
 
Join Date: Feb 2005
Location: UK
Posts: 373
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thats it Thanks!

Duh - I should've spotted the typo myself... took me 5 minutes to see what was changed lol

- will look forward to any updates too
Reply With Quote
  #6  
Old 04-30-2006, 04:26 PM
Razasharp's Avatar
Razasharp Razasharp is offline
 
Join Date: Feb 2005
Location: UK
Posts: 373
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

How did you get on with this after Royalridge?

Did you manage to update your code so users can use other sort options too?

Reply With Quote
  #7  
Old 04-30-2006, 06:20 PM
Royalridge Royalridge is offline
 
Join Date: Oct 2004
Posts: 29
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

To be honest, I only had the requirement to sort one forum by thread title so I didn't really do anything more on it.
Reply With Quote
  #8  
Old 05-05-2006, 11:28 PM
Razasharp's Avatar
Razasharp Razasharp is offline
 
Join Date: Feb 2005
Location: UK
Posts: 373
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ah right, thanks for replying
Reply With Quote
  #9  
Old 05-22-2006, 05:45 PM
JamieM-UK JamieM-UK is offline
 
Join Date: Oct 2005
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Royalridge
My bad, for option 1 it should have been:

forumdisplay_sort:
Code:
if ($forumid == 77) {
  $sqlsortfield = "thread.dateline";
  $sqlsortorder = "asc";
  $handled = true;
}
As for the other versions, I'm actually in the process of tidying up our 3.5.4 upgrade and will have a look at 'em when the heat dies down
Can anyone help a novice out here please? Where would this code actually be inserted?
Reply With Quote
  #10  
Old 05-22-2006, 05:55 PM
Razasharp's Avatar
Razasharp Razasharp is offline
 
Join Date: Feb 2005
Location: UK
Posts: 373
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Jamie - as far as I remb there is a plug-in that does the same thing so will be easier for you... do a search for it in the mods section

(or if you want to use the above code, you need to create a plug-in and enter that code, again, theres a help guide about plug-ins on this site)
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 05:45 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.09669 seconds
  • Memory Usage 2,281KB
  • 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
  • (7)bbcode_code
  • (1)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
  • (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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete