basic vcalendar formatting support

This commit is contained in:
friendica 2014-11-23 20:29:34 -08:00
parent 79e5c2456b
commit 53dc9cf2eb
2 changed files with 60 additions and 6 deletions

View File

@ -45,6 +45,56 @@ function format_event_html($ev) {
return $o;
}
function ical_wrapper($ev) {
if(! ((is_array($ev)) && count($ev)))
return '';
$o .= "BEGIN:VCALENDAR";
$o .= "\nVERSION:2.0";
$o .= "\nMETHOD:PUBLISH";
$o .= "\nPRODID:-//" . get_config('system','sitename') . "//" . RED_PLATFORM . "//" . strtoupper(get_app()->language). "\n";
if(array_key_exists('start',$ev))
$o .= format_event_ical($ev);
else {
foreach($ev as $e) {
$o .= format_event_ical($e);
}
}
$o .= "\nEND:VCALENDAR\n";
return $o;
}
function format_event_ical($ev) {
$o = '';
$o .= "\nBEGIN:VEVENT";
if($ev['start'])
$o .= "\nDTSTART:" . datetime_convert('UTC','UTC', $ev['start'],'Ymd\\This' . (($ev['adjust']) ? '\\Z' : ''));
if($ev['finish'] && ! $ev['nofinish'])
$o .= "\nDTEND:" . datetime_convert('UTC','UTC', $ev['finish'],'Ymd\\This' . (($ev['adjust']) ? '\\Z' : ''));
if($ev['summary'])
$o .= "\nSUMMARY:" . format_ical_text($ev['summary']);
if($ev['location'])
$o .= "\nLOCATION:" . format_ical_text($ev['location']);
if($ev['description'])
$o .= "\nDESCRIPTION:" . format_ical_text($ev['description']);
$o .= "\nEND:VEVENT\n";
return $o;
}
function format_ical_text($s) {
require_once('include/bbcode.php');
require_once('include/html2plain.php');
return(wordwrap(html2plain(bbcode($s)),72,"\n ",true));
}
function format_event_bbcode($ev) {
$o = '';

View File

@ -659,9 +659,11 @@ function widget_bookmarkedchats($arr) {
$r = q("select * from xchat where xchat_xchan = '%s' group by xchat_url order by xchat_desc",
dbesc($h)
);
for($x = 0; $x < count($r); $x ++)
$r[$x]['xchat_url'] = zid($r[$x]['xchat_url']);
if($r) {
for($x = 0; $x < count($r); $x ++) {
$r[$x]['xchat_url'] = zid($r[$x]['xchat_url']);
}
}
return replace_macros(get_markup_template('bookmarkedchats.tpl'),array(
'$header' => t('Bookmarked Chatrooms'),
'$rooms' => $r
@ -677,9 +679,11 @@ function widget_suggestedchats($arr) {
if(! $h)
return;
$r = q("select *, count(xchat_url) as total from xchat group by xchat_url order by total desc, xchat_desc limit 24");
for($x = 0; $x < count($r); $x ++)
$r[$x]['xchat_url'] = zid($r[$x]['xchat_url']);
if($r) {
for($x = 0; $x < count($r); $x ++) {
$r[$x]['xchat_url'] = zid($r[$x]['xchat_url']);
}
}
return replace_macros(get_markup_template('bookmarkedchats.tpl'),array(
'$header' => t('Suggested Chatrooms'),
'$rooms' => $r