PDA

View Full Version : Help with some vB / PHP Code


jugo
08-26-2005, 09:08 AM
I have a random Image Hack which the admin specifies a delimeter that is used in the image file name as the files to use in a random image sequence.

I want to be able to specify a different delimeter for each style used.

The setting in the vBoptions is like this:

STYLEID : DELIMETER

Examples below: (This is the content in the $vbulletin->options['randimg_map'] variable)

1:_rand1_
2:_rand2_

The code I use here is to separate the StyleID from the Delimeter:


$input = $vbulletin->options['randimg_map'];

$data = preg_split('/[\n:]/', trim($input));
for($i = 0; $i < count($data); $i+=2)
{
$delim = $data[$i+1];
if ($style[styleid] = $data[$i]) {
$fid = "/".$delim."/";
}
}

So if the styleID is 1 then $fid should be _rand1_ and if the styleID is 2 then $fid should be _rand2_ (depending on how it's set up in the $vbulletin->options['randimg_map'] setting).

What about my code is not right....I have spent two days on this already. It uses _rand2_ for both no matter what style i am currently viewing the site with.

Any help provided would be greatly appreciated.

Thanks

Greg
08-26-2005, 09:30 AM
In your for loop, $i will be 2 on the second iteration. With two styles, the loop will execute and then end.

During that second iteration and every interation, the IF statement will be true. The assignment, $style[styleid] = $data[$i], is always true!

Did you mean to use == there and do a compare?

Are you handling the $data var correctly? Is it or is it not an array?

I need more coffee. It's fixable, but I'm still digesting it.

Greg
08-26-2005, 09:36 AM
OK, for a radom style here's what I would do. Pseudo code.

Get the array.
Count() the array.
Get random number, rand(0,$count)
Use the selected element. array[rand]

jugo
08-26-2005, 09:41 AM
Well the thing is that the style is defined already.

So whatever style is currently being used is what is going to determine what $fid is.

So I want it to read the StyleID from the current environment and use that to determine what $fid will be.

BTW: am I getting the styleID correctly?

Greg
08-26-2005, 09:51 AM
I dunno really if your are, I'm doing this off the cuff while I drink my coffee.

I don't have a 3.5 board to reference ATM.

However, add to the psuedo code, if randselect == actualstyle, increment or decrement to another style perhaps.