aboutsummaryrefslogtreecommitdiffstats
path: root/include/event.php
diff options
context:
space:
mode:
Diffstat (limited to 'include/event.php')
-rw-r--r--include/event.php106
1 files changed, 90 insertions, 16 deletions
diff --git a/include/event.php b/include/event.php
index 33970efff..9d9717a78 100644
--- a/include/event.php
+++ b/include/event.php
@@ -1,47 +1,121 @@
<?php
-function format_event_html($ev) {
+function format_event_html($ev,$pre = '') {
require_once('include/bbcode.php');
if(! ((is_array($ev)) && count($ev)))
return '';
+ $bd_format = t('l F d, Y \@ g A') ; // Friday January 18, 2011 @ 8 AM
+
$o = '<div class="vevent">';
- $o .= '<p class="description">' . bbcode($ev['desc']) . '</p>';
+ $o .= '<p class="description event-description">' . bbcode($ev['desc']) . '</p>';
- $o .= '<p>' . t('Starts:') . ' <abbr class="dtstart" title="'
- . datetime_convert('UTC','UTC',$ev['start'], $ev['adjust'] ? ATOM_TIME : 'Y-m-d\TH:i:s' )
+ $o .= '<p class="event-start">' . t('Starts:') . ' <abbr class="dtstart" title="'
+ . datetime_convert('UTC','UTC',$ev['start'], (($ev['adjust']) ? ATOM_TIME : 'Y-m-d\TH:i:s' ))
. '" >'
- . (($ev['adjust']) ? datetime_convert('UTC', date_default_timezone_get(),
- $ev['start'] /*, format */ )
- : datetime_convert('UTC', 'UTC',
- $ev['start'] /*, format */ ))
+ . (($ev['adjust']) ? day_translate(datetime_convert('UTC', date_default_timezone_get(),
+ $ev['start'] , $bd_format ))
+ : day_translate(datetime_convert('UTC', 'UTC',
+ $ev['start'] , $bd_format)))
. '</abbr></p>';
if(! $ev['nofinish'])
- $o .= '<p>' . t('Finishes:') . ' <abbr class="dtend" title="'
- . datetime_convert('UTC','UTC',$ev['finish'], $ev['adjust'] ? ATOM_TIME : 'Y-m-d\TH:i:s' )
+ $o .= '<p class="event-end" >' . t('Finishes:') . ' <abbr class="dtend" title="'
+ . datetime_convert('UTC','UTC',$ev['finish'], (($ev['adjust']) ? ATOM_TIME : 'Y-m-d\TH:i:s' ))
. '" >'
- . (($ev['adjust']) ? datetime_convert('UTC', date_default_timezone_get(),
- $ev['finish'] /*, format */ )
- : datetime_convert('UTC', 'UTC',
- $ev['finish'] /*, format */ ))
+ . (($ev['adjust']) ? day_translate(datetime_convert('UTC', date_default_timezone_get(),
+ $ev['finish'] , $bd_format ))
+ : day_translate(datetime_convert('UTC', 'UTC',
+ $ev['finish'] , $bd_format )))
. '</abbr></p>';
if(strlen($ev['location']))
- $o .= '<p> ' . t('Location:') . '<span class="location">'
+ $o .= '<p class="event-location"> ' . t('Location:') . '<span class="location">'
. bbcode($ev['location'])
. '</span></p>';
$o .= '</div>';
-
return $o;
}
+function parse_event($h) {
+
+ require_once('include/Scrape.php');
+ require_once('library/HTMLPurifier.auto.php');
+ require_once('include/html2bbcode');
+
+ $h = '<html><body>' . $h . '</body></html>';
+
+ $ret = array();
+
+ $dom = HTML5_Parser::parse($h);
+
+ if(! $dom)
+ return $ret;
+
+ $items = $dom->getElementsByTagName('*');
+
+ foreach($items as $item) {
+ if(attribute_contains($item->getAttribute('class'), 'vevent')) {
+ $level2 = $item->getElementsByTagName('*');
+ foreach($level2 as $x) {
+ if(attribute_contains($x->getAttribute('class'),'dtstart') && $x->getAttribute('title')) {
+ $ret['start'] = $x->getAttribute('title');
+ if(! strpos($ret['start'],'Z'))
+ $ret['adjust'] = true;
+ }
+ if(attribute_contains($x->getAttribute('class'),'dtend') && $x->getAttribute('title'))
+ $ret['finish'] = $x->getAttribute('title');
+
+ if(attribute_contains($x->getAttribute('class'),'description'))
+ $ret['desc'] = $x->textContent;
+ if(attribute_contains($x->getAttribute('class'),'location'))
+ $ret['location'] = $x->textContent;
+ }
+ }
+ }
+
+ // sanitise
+
+ if((x($ret,'desc')) && ((strpos($ret['desc'],'<') !== false) || (strpos($ret['desc'],'>') !== false))) {
+ $config = HTMLPurifier_Config::createDefault();
+ $config->set('Cache.DefinitionImpl', null);
+ $purifier = new HTMLPurifier($config);
+ $ret['desc'] = html2bbcode($purifier->purify($ret['desc']));
+ }
+
+ if((x($ret,'location')) && ((strpos($ret['location'],'<') !== false) || (strpos($ret['location'],'>') !== false))) {
+ $config = HTMLPurifier_Config::createDefault();
+ $config->set('Cache.DefinitionImpl', null);
+ $purifier = new HTMLPurifier($config);
+ $ret['location'] = html2bbcode($purifier->purify($ret['location']));
+ }
+
+ if(x($ret,'start'))
+ $ret['start'] = datetime_convert('UTC','UTC',$ret['start']);
+ if(x($ret,'finish'))
+ $ret['finish'] = datetime_convert('UTC','UTC',$ret['finish']);
+
+ return $ret;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
function sort_by_date($a) {