PDA

View Full Version : Global Sort Order, Override?


Booost This
11-05-2007, 06:49 AM
Hey guys, looking for a little programming help. I am trying to edit the forumdisplay.php to make all my forums/threads/etc show up alphabetical order, descending order (a,b,c,d,e,.,.,.).

I have located the code, just unsure what changes need to be made? There seems to be 2 different default sort options in the code?

// default sorting methods
if (empty($sortfield))
{
$sortfield = $foruminfo['defaultsortfield']; <-- Edit?
}
if (empty($vbulletin->GPC['sortorder']))
{
$vbulletin->GPC['sortorder'] = $foruminfo['defaultsortorder']; <-- Edit?
}

// 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 = 'lastpost';
break;
case 'replycount':
case 'views':
case 'postusername':
$sqlsortfield = $sortfield;
break;
case 'voteavg':
if ($foruminfo['allowratings'])
{
$sqlsortfield = 'voteavg';
break;
}
case 'dateline':
$sqlsortfield = 'thread.dateline';
break;
// else, use last post
default:
$handled = false;
($hook = vBulletinHook::fetch_hook('forumdisplay_sort')) ? eval($hook) : false;
if (!$handled)
{
$sqlsortfield = 'lastpost'; <-- Edit?
$sortfield = 'lastpost'; <-- Edit?
}

I think i need to change all or just one/two of the options highlighted, just unsure what to change them to? Any help would be appreciated.

I did a lot of experimentation buy I only got as far as sorting them in ascending order (backwards, e,d,c,b,a). I am a newb, forgive me. :)

Analogpoint
11-05-2007, 12:59 PM
Just edit your forum and set the default sort field to 'Thread Title'.

Booost This
11-05-2007, 05:19 PM
Just edit your forum and set the default sort field to 'Thread Title'.

I know about this but I am not going to go back and change it for a couple hundred forums. I prefer to do it this way. Can you help?

Analogpoint
11-05-2007, 06:26 PM
Sure, you could do it by editing the file, or with a plugin, but it's going to be a lot easier to just run the following 2 lines (as separate SQL queries) (vB ACP -> Maintenance -> Execute SQL Query)

UPDATE forum SET defaultsortfield = 'title'

UPDATE forum SET defaultsortorder = 'asc'

Then run "Rebuild Forum Information" in ACP -> Maintenance -> Update Counters.

Booost This
11-06-2007, 01:03 AM
Sure, you could do it by editing the file, or with a plugin, but it's going to be a lot easier to just run the following 2 lines (as separate SQL queries) (vB ACP -> Maintenance -> Execute SQL Query)

UPDATE forum SET defaultsortfield = 'title'

UPDATE forum SET defaultsortorder = 'asc'

Then run "Rebuild Forum Information" in ACP -> Maintenance -> Update Counters.

Thanks but is this reversible? I want a solution that is completely reversible if need be. I would prefer to edit the file whereas if I would like to change it all I have to do is upload the original.

To make these queries reversable i would just have to change it to

UPDATE forum SET defaultsortfield = 'lastpost'

UPDATE forum SET defaultsortorder = 'desc'

Correct?

Analogpoint
11-06-2007, 01:34 PM
To make these queries reversable i would just have to change it to

UPDATE forum SET defaultsortfield = 'lastpost'

UPDATE forum SET defaultsortorder = 'desc'

Correct?

That's correct, that would set them back to the default vB order, where the threads with new posts are on top.

Booost This
11-06-2007, 03:11 PM
That's correct, that would set them back to the default vB order, where the threads with new posts are on top.

Thank you very much, I executed the queries and rebuilt the forum info and it seems to have worked, is there any way to override this in one or two forums back to sort by last post? (DESC).

I tried to just set the forum in the forum manager but it didn't work.

Analogpoint
11-06-2007, 03:22 PM
Thank you very much, I executed the queries and rebuilt the forum info and it seems to have worked, is there any way to override this in one or two forums back to sort by last post? (DESC).

I tried to just set the forum in the forum manager but it didn't work.

It should work, I just tested it. In the Forum Manager, edit the forum in question, and set the 'Default Sort Field' to Last Post Time, and set the 'Default Sort Order' to Descending. Then save the forum.

cabledr
06-01-2008, 08:59 AM
is there away to do this just in certain topics / threads/ cats