PDA

View Full Version : can anyone see the problem with this code?


Antivirus
06-06-2006, 08:44 PM
Hmm... getting the following error:
Parse error: parse error, expecting `']'' in dirpath\script.php on line 133


on this line of code:
$title = "\n\t\t<a style=\"float:$stylevar[right]\" href=\"#top\" onclick=\"return toggle_collapse('$collapseid')\"><img id=\"collapseimg_$collapseid\" src=\"$stylevar[imgdir_button]/collapse_tcat$vbcollapse[collapseimg_$collapseid].gif\" alt=\"\" border=\"0\" /></a>\n\t\t$title\n\t";


I'm trying to create a set of new functions for printing collapsable tables within the AdminCP. I know i'm just not escaping somethign properly here, but i'm stumped... :confused:

Alan @ CIT
06-13-2006, 10:33 AM
Looks fine to me - what's the line before that one?

Thanks,
Alan.

Antivirus
06-14-2006, 07:31 PM
What I am trying to do is create 3 new functions (based upon the existing ones in adminfunctions.php) to allow for collapsible tables within the AdminCP...

Naturally i'll also have to modify functions "print_submit_row", and "print_table_footer" to contain the necessary other bluff for the collapsible thingies, but for the "print_table_header" function, so far i have:


// ################################################## ###########################
/**
* Makes a COLLAPSABLE column-spanning bar with a named <A> and a title, then reinitialises the background class counter.
*
* @param string Title for the row
* @param string Name for collapse table tag id
* @param integer Number of columns to span
* @param boolean Whether or not to htmlspecialchars the title
* @param string Alignment for the title (center / left / right)
*/
function print_claps_table_header($title, $collapseid = '', $colspan = 2, $htmlise = false, $align = 'center')
{
global $bgcounter, $stylevar;

if ($htmlise)
{
$title = htmlspecialchars_uni($title);
}
$title = "<b>$title</b>";
if ($collapseid != '')
{
$title = "\n\t\t<a style=\"float:$stylevar[right]\" href=\"#top\" onclick=\"return toggle_collapse(\'$collapseid\')\"><img id=\"collapseimg_$collapseid\" src=\"$stylevar[imgdir_button]/collapse_tcat$vbcollapse[collapseimg_$collapseid].gif\" alt=\"\" border=\"0\" /></a>\n\t\t$title\n\t";

}

echo "<thead>\n";
echo "<tr>\n\t<td class=\"tcat\" align=\"$align\"" . iif($colspan != 1, " colspan=\"$colspan\"") . ">$title</td>\n</tr>\n";
echo "</thead>\n";
echo "<tbody id=\"collapseobj_$collapseid\" style=\"" . $vbcollapse[collapseobj_$collapseid] . "\">\n";

$bgcounter = 0;
}


so basically trying to create some new functions for various existing functions to use with collapsible tables within the AdminCP pages.

Any ideas where i am going wrong?

Alan @ CIT
06-14-2006, 07:39 PM
The problem is with

collapse_tcat$vbcollapse[collapseimg_$collapseid].gif

That's the line it doesn't like (Thank god for Zend IDE and it's error checking :D)

Try changing it to

collapse_tcat " . $vbcollapse['collapseimg_' . $collapseid] . ".gif

You'll need to do a simaler thing a few lines down as well:


$vbcollapse[collapseobj_$collapseid]

// to...

$vbcollapse['collapseobj_' . $collapseid]


Disclaimer: This is untested code, so it may or may not work, but it fixes the error about the ] :)

Thanks,
Alan.

bashy
06-14-2006, 09:01 PM
I just checked the code with Zend Studio 5.2 and it said there was no errors?
Thats weird lol

Am i using the wrong program?

Paul M
06-14-2006, 10:00 PM
I can't try this from where I am, but enclosing the $collapseid in {} may also work ;

i.e. $vbcollapse[collapseimg_{$collapseid}]

Adrian Schneider
06-14-2006, 10:24 PM
Probably {$vbcollapse['collapseimg' . $collapseid]} rather than that way. Not 100% sure though.

P.S. Templates are your friend. ;)

Antivirus
06-15-2006, 04:54 PM
Probably {$vbcollapse['collapseimg' . $collapseid]}

That worked nicely :). Now I have a function which allows collapsible tables within AdminCP however since the AdminCP stype uses a different style than the forums, pulling $stylevar[imgdir_button] don't work for the collapse image, so i figured to try $vboptions[cpstylefolder]however it returns the homepage url (same as $vboptions[homeurl]) instead!? I could easily type in the path to /images/buttons/ but would be nice if $vboptions[cpstylefolder] worked here...



function print_claps_table_header($title, $collapseid = '', $colspan = 2, $htmlise = false, $align = 'center')
{
global $bgcounter, $stylevar;

if ($htmlise)
{
$title = htmlspecialchars_uni($title);
}
$title = "<b>$title</b>";
if ($collapseid != '')
{
$title = "\n\t\t<a style=\"float:$stylevar[right]\" href=\"#top\" onclick=\"return toggle_collapse('$collapseid')\"><img id=\"collapseimg_$collapseid\" src=\"$vboptions[cpstylefolder]/cp_collapse{$vbcollapse['collapseimg_'.$collapseid]}.gif\" alt=\"\" border=\"0\" /></a>\n\t\t$title\n\t";

}

echo "<thead>\n";
echo "<tr>\n\t<td class=\"tcat\" align=\"$align\"" . iif($colspan != 1, " colspan=\"$colspan\"") . ">$title</td>\n</tr>\n";
echo "</thead>\n";
echo "<tbody id=\"collapseobj_$collapseid\" style=\"{$vbcollapse['collapseobj_'.$collapseid]}\">\n";

$bgcounter = 0;
}


OK, figured it out, had to globalize $vbulletin within the function and call the collapse image as such ( ../cpstyles/" . $vbulletin->options['cpstylefolder'] . "/cp_collapse.gif ) :


function print_claps_table_header($title, $collapseid = '', $colspan = 2, $htmlise = false, $align = 'center')
{
global $bgcounter, $stylevar, $vbulletin;

if ($htmlise)
{
$title = htmlspecialchars_uni($title);
}
$title = "<b>$title</b>";
if ($collapseid != '')
{
$title = "\n\t\t<a style=\"float:$stylevar[right]\" href=\"#top\" onclick=\"return toggle_collapse('$collapseid')\"><img id=\"collapseimg_$collapseid\" src=\"../cpstyles/" . $vbulletin->options['cpstylefolder'] . "/cp_collapse{$vbcollapse['collapseimg_'.$collapseid]}.gif\" alt=\"\" border=\"0\" /></a>\n\t\t$title\n\t";

}

echo "<thead>\n";
echo "<tr>\n\t<td class=\"tcat\" align=\"$align\"" . iif($colspan != 1, " colspan=\"$colspan\"") . ">$title</td>\n</tr>\n";
echo "</thead>\n";
echo "<tbody id=\"collapseobj_$collapseid\" style=\"{$vbcollapse['collapseobj_'.$collapseid]}\">\n";

$bgcounter = 0;
}



:banana: happy happy joy joy :banana: