Pagina 1 van 1

BBcode [kalender][/kalender]

Geplaatst: 14 sep 2008, 20:04
door jeroen_005
Hoi,

Ik probeer een eigen BBcode te creeêren in phpBB 2 die de datum vanuit de kalender moet zetten in het bericht. Om het voor mezelf simpel te houden haal ik deze gegevens nog niet meteen uit de db maar ben ik eerst gestart met een creeêren van een tag die de huidige datum kan invoegen. Enkel dit werkt niet goed.

Momenteel heb ik dit:

Code: Selecteer alles

$text = preg_replace("#\[kalender\](.*?)\[/kalender\]#si", "[kalender] date(\"\\1\") [/kalender]", $text);
$text = str_replace("[kalender:$uid]", $bbcode_tpl['cal_open'] , $text);
$text = str_replace("[/kalender:$uid]", $bbcode_tpl['cal_close'], $text);
Zoals je ziet is het dus de bedoeling dat als je [kalender]Y[/kalender] zou typen er 2008 komt. Maar helaas is dit dus niet het geval. Hij zet enkel de Y. Weet er iemand een oplossing voor mijn probleem?

Re: BBcode [kalender][/kalender]

Geplaatst: 15 sep 2008, 05:58
door Ramon Fincken
zover ik weet moet je meerdere keren wat aanpassen in de bbcode.php en soms ook in de bbcode.tpl file,

vergelijk het even hiermee:
http://64.233.183.104/search?q=cache:em ... =firefox-a

Re: BBcode [kalender][/kalender]

Geplaatst: 15 sep 2008, 15:18
door jeroen_005
Ja dat weet ik maar het zijn deze lijnen waarin het probleem zit. Het probleem is echter dat ik in de preg_replace een andere php functie moet aanroepen. In dit geval dus date. Normaal gezien zou dat zonder problemen moeten gaan. Enkel lukt het bij mij niet. Want in dit geval zet hij gwn de functie in het bericht maar werkt het dus niet uit zoals het hoort.

Re: BBcode [kalender][/kalender]

Geplaatst: 15 sep 2008, 16:48
door Ramon Fincken
ok first things first ... doe bv iets met een kleur of achtergrond, kijk of dat werkt en laat me dan even weten of het werkt?

En dan ook hoe je de kalender precies wil aanroepen?

Re: BBcode [kalender][/kalender]

Geplaatst: 15 sep 2008, 17:03
door jeroen_005
Okey i know BBcodes zijn eigenlijk enkel en alleen voor opmaak ontworpen. Zelf heb ik er ook al enkele gemaakt maar dit is dus de eerste waarmee er dus ook PHP tussen de tags te pas komt :D

Maar laten we alles stap voor stap overlopen. We maken het bericht aan als volgt:

Code: Selecteer alles

[kalender]d-m-Y[/kalender]
We verwachten het volgende: 15-09-2008

In de database word het bericht correct geplaatst. Het probleem zit dus niet bij het verzenden van het bericht.

Maar nu willen we het bericht effectief gaan bekijken. We zien niet de 15-09-2008 staan maar d-m-Y. Kortom de date() functie werkt niet.

Code: Selecteer alles

$text = preg_replace("#\[kalender\](.*?)\[/kalender\]#si", "[kalender] date(\"\\1\") [/kalender]", $text);
$text = str_replace("[kalender:$uid]", $bbcode_tpl['cal_open'] , $text);
$text = str_replace("[/kalender:$uid]", $bbcode_tpl['cal_close'], $text);
En als dit werkt zou ik dus gewoon date(\"\\1\", $post_data['topic_calendar_time']) maken zodat hij de kalender tijd neemt :) Nu of dat laatste ook effectief werkt weet ik nog niet zeker maar dit kan gemakkelijk worden opgelost natuurlijk :D

Tenslotte heb ik ook eventjes smf gedownload omdat deze software een soortgelijke functie heeft. Maar daar ben ik helaas niet veel wijzer uit geworden :D

Code: Selecteer alles

$parts[$i] = preg_replace('~\[time(=(absolute))*\](.+?)\[/time\]~ie', '\'[time]\' . (is_numeric(\'$3\') || @strtotime(\'$3\') == 0 ? \'$3\' : strtotime(\'$3\') - (\'$2\' == \'absolute\' ? 0 : (($modSettings[\'time_offset\'] + $user_info[\'time_offset\']) * 3600))) . \'[/time]\'', $parts[$i]);
[/code]

Re: BBcode [kalender][/kalender]

Geplaatst: 16 sep 2008, 15:05
door Ramon Fincken
sorry ik kom er niet uit, wellicht dat deze post je verder helpt:
http://64.233.183.104/search?q=cache:pb ... =firefox-a

Tim K.
28-Apr-2005 03:27

Re: BBcode [kalender][/kalender]

Geplaatst: 16 sep 2008, 18:59
door jeroen_005
Ik heb het eens geprobeerd op te werken met array's zoals al gebeurd voor de urls maar ook dit geeft niet het gewenste resultaat:

Code: Selecteer alles

$patterns[] =  "#\[kalender\](.*?)\[/kalender\]#is";
$replacements[] = date("" . $bbcode_tpl['cal'] . "");
Misschien moet ik mijn bbcode.php file even doorsturen?

Re: BBcode [kalender][/kalender]

Geplaatst: 16 sep 2008, 19:24
door Ramon Fincken
nee dat hoeft niet, ik kan hier zelf alles testen,

dit is wat ik had, maar ook dat werkt niet, het idee is een nieuwe functie aan te maken die dan een date teruggeeft.

Code: Selecteer alles

<?php
$text = '[kalender]d-m-Y[/kalender]';

function test ($a)
{
return $a.$a;
}

$text = preg_replace("#\[kalender\](.*?)\[/kalender\]#si", '[kalender] test(\'\\1\') [/kalender]', $text);
echo $text;
?>

Re: BBcode [kalender][/kalender]

Geplaatst: 16 sep 2008, 19:39
door jeroen_005
Dat is idd wel goed gezien. Nu zie ik wel dat $a geen informatie bevat. Ik vind het maar iets raar :)

Okey, Ik weet niet of we hier iets mee zijn. :) Maar deze omslachtige weg werkt wel als we enkel de [kalender] dingen in onze text hebben staan :D Als er iets voor of achter komt zit het mee in de date functie. Er moet toch een manier zijn om alles wat tussen de [kalender] tags staat uit de text te halen en te vervangen door de datum en dan gewoon weer terug te plaatsen :o :)

Code: Selecteer alles

    <?php
    $text = '[kalender]d-m-Y[/kalender]';

    $kalender = preg_replace("#\[kalender\](.*?)\[/kalender\]#si", "\\1", $text);
	$text = test($kalender);
	
    function test($a)
    {
 	   return date("$a");
    }

    echo $text;
    ?>