Voor in Joomla! heb ik een spoiler BB-Code geschreven. Nou Zit er schijnbaar ergens een fout in, ik kan alleen maar niet ontdekken waar ;s Misschien dat iemand mij hiermee kan helpen?
Wat er fout gaat is dat hij ergens in mijn loopje blijft hangen. Als ik bijvoorbeeld 3 spoilers heb, dan krijgt de eerste spoiler de div "spoiler0", de tweede "spoiler1" maar om een of andere reden de derde spoiler ook "spoiler1" in plaats van "spoiler2". Ik heb gekeken of er iets mis was met de loop maar als ik echo $i; neerzet telt hij prima door.
Dit is de functie:
http://pastebin.com/VL2bSnap
<?php
protected function _process(&$row, &$matches, $count, $regex, $style)
{
for ($i = 0; $i < $count; $i++) {
echo $i . '<br />'; // Deze werkt helemaal prima, en telt gewoon door.
$load = str_replace('[spoiler=\'', "<div style=\"text-transform: uppercase; border-bottom: 1px solid #CCCCCC; margin-bottom: 3px; font-size: 0.8em; font-weight: bold; display: block;\">
<span onclick=\"if (document.getElementById('spoiler" . $i . "').style.display == 'none') {
document.getElementById('spoiler" . $i . "').style.display = 'block';
} else {
document.getElementById('spoiler" . $i . "').style.display = 'none';
}\" /><a href=\"#\" onclick=\"return false;\">"
, $matches[0][$i]);
$load = str_replace('\']', "</a></span></div><div id=\"spoiler" . $i . "\" style=\"display: none;\">", $load);
$load = str_replace('[/spoiler]', '</div>', $load);
$row->text = preg_replace('{' . preg_quote($matches[0][$i]) . '}', $load, $row->text);
}
}
?>
Iemand enig idee waar de fout zit?
Bij voorbaat dank!
Jyy