From acc9a8e43bac0fbb8fa8570e035850102bd57bfd Mon Sep 17 00:00:00 2001 From: redmatrix Date: Thu, 30 Jul 2015 22:29:10 -0700 Subject: escape $ in events --- include/bbcode.php | 9 ++++++++- include/event.php | 10 ++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/include/bbcode.php b/include/bbcode.php index ba9592a51..6fc481fff 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -926,14 +926,21 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true) { // start which is always required). Allow desc with a missing summary for compatibility. if ((x($ev,'desc') || x($ev,'summary')) && x($ev,'start')) { + $sub = format_event_html($ev); + $sub = str_replace('$',"\0",$sub); + + $Text = preg_replace("/\[event\-start\](.*?)\[\/event\-start\]/ism",$sub,$Text); + $Text = preg_replace("/\[event\-summary\](.*?)\[\/event\-summary\]/ism",'',$Text); $Text = preg_replace("/\[event\-description\](.*?)\[\/event\-description\]/ism",'',$Text); - $Text = preg_replace("/\[event\-start\](.*?)\[\/event\-start\]/ism",$sub,$Text); $Text = preg_replace("/\[event\-finish\](.*?)\[\/event\-finish\]/ism",'',$Text); $Text = preg_replace("/\[event\-location\](.*?)\[\/event\-location\]/ism",'',$Text); $Text = preg_replace("/\[event\-adjust\](.*?)\[\/event\-adjust\]/ism",'',$Text); + + $Text = str_replace("\0",'$',$Text); + } // Unhide all [noparse] contained bbtags unspacefying them diff --git a/include/event.php b/include/event.php index 4e36f5090..4b95e5c2f 100644 --- a/include/event.php +++ b/include/event.php @@ -18,6 +18,7 @@ function format_event_html($ev) { if(! ((is_array($ev)) && count($ev))) return ''; + $bd_format = t('l F d, Y \@ g:i A') ; // Friday January 18, 2011 @ 8:01 AM $o = '
' . "\r\n"; @@ -165,7 +166,12 @@ function bbtoevent($s) { $match = ''; if(preg_match("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is",$s,$match)) $ev['adjust'] = $match[1]; - $ev['nofinish'] = (((x($ev, 'start') && $ev['start']) && (!x($ev, 'finish') || !$ev['finish'])) ? 1 : 0); + if(array_key_exists('start',$ev)) { + if(array_key_exists('finish',$ev) && (! $ev['finish'])) + $ev['nofinish'] = 0; + else + $ev['nofinish'] = 1; + } return $ev; } @@ -483,7 +489,7 @@ function event_import_ical($ical, $uid) { $ev['private'] = 1; $ev['allow_cid'] = '<' . $channel['channel_hash'] . '>'; -// logger('storing event: ' . print_r($ev,true), LOGGER_ALL); + logger('storing event: ' . print_r($ev,true), LOGGER_ALL); $event = event_store_event($ev); if($event) { $item_id = event_store_item($ev,$event); -- cgit v1.2.3