Log in

View Full Version : Help! Help! plugin has smashed my vb!


Shanj
10-23-2006, 01:43 AM
I just tried my first plugin and it's not only throwing up error messages I can't get in my forums at all!

I got the plugin here
https://vborg.vbsupport.ru/showthread.php?p=1102367#post1102367

I'm on current version vb 3.6.2

What I did---------------

I put in the plugin manager as instructed ----
Product vbulletin
Hook cache_ordered_forums
Title Alpha sort subforums
Exec order 5 [I didn't change this, it says: Use this field to enter the order in which code at the same hook will be executed.]
Plugin PHP code [copied from RHSimard at URL above]

$forumcheck = end($vbulletin->forumcache);
if (!$forumcheck['sorted'])
{
function forumsort($forum1, $forum2)
{
if ($forum1['displayorder'] == $forum2['displayorder'])
{
return strnatcasecmp($forum1['title_clean'], $forum2['title_clean']);
}
return ($forum1['displayorder'] < $forum2['displayorder'])
? -1
: 1;
}
uasort($vbulletin->forumcache, 'forumsort');
$lastforum = end($vbulletin->forumcache);

Plugin is active Yes.

RESULT
Parse error: syntax error, unexpected $end in
/includes/functions.php(2914) : eval()'d code on line 16
--------------------------------------------------------------

So I made it Inactive.

I thought the earlier version of the code might work better so I tried that.
It seemed to work fine - the page I was on sorted alphabetically which is what it was supposed to do.
But when I tried to click to move page it all went skewiff!
[code I copied to use is on the URL above (by Andreas) but have not copied it here so as to keep post human sized. URL is
https://vborg.vbsupport.ru/showthread.php?p=1102367#post1102367
]

Warning: array_keys() [function.array-keys]: The first argument should be an array in /includes/functions.php on line 3688

Warning: Invalid argument supplied for foreach() in /includes/functions.php on line 3688

Warning: end() [function.end]: Passed variable is not an array or object in /includes/functions.php(2914) : eval()'d code on line 1

Warning: uasort() [function.uasort]: The argument should be an array in /includes/functions.php(2914) : eval()'d code on line 8

Warning: end() [function.end]: Passed variable is not an array or object in /includes/functions.php(2914) : eval()'d code on line 9

Fatal error: Unsupported operand types in /includes/functions.php on line 2972
----------------------------------------

Now I cant open my forums at all.
I can open vbportal
but above the header is error message saying

Warning: Invalid argument supplied for foreach() in /includes/functions.php on line 3688

Warning: Invalid argument supplied for foreach() in public_html/includes/center/activetopics.php on line 51


PLEASE - WHAT DO I DO? Who can I ask to help?

SCRIPT3R
10-23-2006, 03:04 AM
your first mistake is using an information written for an older versiuon of vB. second mistakes was not trying this on a test forum first. to fix, disable your plugins and then undo what you did.

G0F0RBR0KE
10-23-2006, 04:36 AM
Go to your admin panel and disable the plugin and than unistall it.

Shanj
10-23-2006, 08:32 AM
You're right. I didn't realise it was for an older version. The posts were dated this August so I thought it was up to date.

Please are you saying I should pay for a whole second vb install?
That's a bit expensive. It doesn't say anywhere to install two lots.

Anyway I had still got the admin panel open and I disabled each plugin immediately I saw it didn't work.
But I now can't even login to the admin panel to do anything else. So I can't delete them.
But surely if they are disabled they are not being called now?
So it's just whatever damage they did I have to fix?

If I try to login my admin CP I get

Centre page vbulletin dialogue
----------------------------------------------------
Unable to add cookies, header already sent.
File: /home/xxx/public_html/VB/includes/class_core.php
Line: 3023
-----------------------------------------------------

Above the header (which is the graphic & bg of my vb forum page, not the admin panel)

----------------------------------------------------
Warning: array_keys() [function.array-keys]: The first argument should be an array in /includes/functions.php on line 3688

Warning: Invalid argument supplied for foreach() in /includes/functions.php on line 3688
----------------------------------------------------

Paul M
10-23-2006, 08:40 AM
Are you sure your plugins are disabled ?

BTW, you are allowed to run a second (test) forum on your licence as long as it's not available to the public.

Shanj
10-23-2006, 08:50 AM
Thanks Paul I didn't know that.

When I last saw the admin panel plugin manager, both plugins were crossed out.
I'd selected Inactive for each one after it didn't work.
I always keep a user page open as well as the CP so when the user page didn't work I weas able to disable in the CP

But ater I logged out I couldn't get back again.

Paul M
10-23-2006, 09:10 AM
To be certain, add this line to your config.php

define('DISABLE_HOOKS',true);

Shanj
10-23-2006, 10:22 AM
Paul thanks v much for helping
I did that thanks.

includes/config.php

now starts

<?php
define('DISABLE_HOOKS',true);

I still get

Warning: array_keys() [function.array-keys]: The first argument should be an array in /includes/functions.php on line 3688

Warning: Invalid argument supplied for foreach() in /includes/functions.php on line 3688

above my login dialogue
and logging in just returns me to the same page

I also ran deplug.php

from

http://www.vbulletin.com/forum/showthread.php?t=148082&page=2

seems a good script

but made no diff

Seems like it has to be analysed from the error messages it's throwing up.

Paul M
10-23-2006, 11:51 AM
Looks like your forum cache may be broken, you will probably need to upload tool.php and use it to rebuild the cache. Alternatively you could log a support ticket on vb.com.

Shanj
10-23-2006, 03:03 PM
Thank you I'd like to try tool.php first.
Except I didn't do my install so I don't know where to locate it.

It's not in the root vb folder
not in /includes
not in /admincp
not in /install

Could you tell me the usual filepath so I can get it and replace it in the right place? Thanks.

SCRIPT3R
10-23-2006, 03:15 PM
when you originally downloaded you vB software package...

The second folder is called do_not_upload - This folder contains tools to perform various tasks on your board.

searchshell.php - This file will allow you to rebuild the search index.
vb_backup.sh - This file will allow you to run a database backup via SSH/Telnet or a scheduled backup through cron.
tools.php - This file must be uploaded to the admincp folder and allows you to perform certain tasks should your board go down or you accidentally lock yourself out of the Admin Control Panel. This file must be deleted immediately after use or it will cause a SEVERE security problem.