]> git.mxchange.org Git - friendica.git/commitdiff
event item
authorFriendika <info@friendika.com>
Fri, 10 Jun 2011 03:02:48 +0000 (20:02 -0700)
committerFriendika <info@friendika.com>
Fri, 10 Jun 2011 03:02:48 +0000 (20:02 -0700)
include/bbcode.php
include/event.php
mod/events.php

index 6ab67ffdcfee516b4eccc048c813bb3ce25b7b9f..a44838c2462dc49ffba46eaebe5bc1d9edaff608 100644 (file)
@@ -1,5 +1,8 @@
 <?php
+
 require_once("include/oembed.php");
+require_once('include/event.php');
+
        // BBcode 2 HTML was written by WAY2WEB.net
        // extended to work with Mistpark/Friendika - Mike Macgirvin
 
@@ -17,6 +20,12 @@ function bbcode($Text,$preserve_nl = false) {
        if($preserve_nl)
                $Text = str_replace(array("\n","\r"), array('',''),$Text);
 
+       // If we find any event code, turn it into an event.
+       // After we're finished processing the bbcode we'll 
+       // replace all of the event code with a reformatted version.
+
+       $ev = bbtoevent($Text);
+
        // Set up the parameters for a URL search string
        $URLSearchString = "^\[\]";
        // Set up the parameters for a MAIL search string
@@ -104,8 +113,24 @@ function bbcode($Text,$preserve_nl = false) {
        }
 //     $Text = preg_replace("/\[youtube\](.*?)\[\/youtube\]/", '<object width="425" height="350" type="application/x-shockwave-flash" data="http://www.youtube.com/v/$1" ><param name="movie" value="http://www.youtube.com/v/$1"></param><!--[if IE]><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" width="425" height="350" /><![endif]--></object>', $Text);
 
+
+
        // oembed tag
        $Text = oembed_bbcode2html($Text);
+
+       // If we found an event earlier, strip out all the event code and replace with a reformatted version.
+
+       if(x($ev,'desc') && x($ev,'start')) {
+               $sub = format_event_html($ev);
+
+               $Text = preg_replace("/\[event\-description\](.*?)\[\/event\-description\]/is",$sub,$Text);
+               $Text = preg_replace("/\[event\-start\](.*?)\[\/event\-start\]/is",'',$Text);
+               $Text = preg_replace("/\[event\-finish\](.*?)\[\/event\-finish\]/is",'',$Text);
+               $Text = preg_replace("/\[event\-location\](.*?)\[\/event\-location\]/is",'',$Text);
+               $Text = preg_replace("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is",'',$Text);
+       }
+
+
        
        call_hooks('bbcode',$Text);
 
index 31cf536ffd4853f55cffc9b6d5b304bb27ff7342..86a8220808e316a645b5546e3633e2bbde5ca3da 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 
-function format_event_html($ev,$pre = '') {
+function format_event_html($ev) {
 
        require_once('include/bbcode.php');
 
@@ -115,7 +115,7 @@ function format_event_bbcode($ev) {
        if($ev['start'])
                $o .= '[event-start]' . $ev['start'] . '[/event-start]';
 
-       if($ev['start'])
+       if(($ev['finish']) && (! $ev['nofinish']))
                $o .= '[event-finish]' . $ev['finish'] . '[/event-finish]';
  
        if($ev['location'])
@@ -158,7 +158,7 @@ function bbtoevent($s) {
        if(preg_match("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is",$s,$match))
                $ev['adjust'] = $match[1];
        $match = '';
-
+       $ev['nofinish'] = (($ev['start'] && (! $ev['finish'])) ? 1 : 0);
        return $ev;
 
 }
index af829c28df6f64d52bd4c640ad8f35370374a9ee..c22038215de94cc461a7d3a159011a5f40553987 100644 (file)
@@ -114,8 +114,56 @@ function events_post(&$a) {
                        dbesc($str_group_deny)
 
                );
-       }
 
+               $r = q("SELECT * FROM `event` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+                       dbesc($uri),
+                       intval(local_user())
+               );
+               if(count($r))
+                       $event = $r[0];
+
+               $arr = array();
+
+               $arr['uid']           = local_user();
+               $arr['uri']           = $uri;
+               $arr['parent-uri']    = $uri;
+               $arr['type']          = 'activity';
+               $arr['wall']          = 1;
+               $arr['contact-id']    = $a->contact['id'];
+               $arr['owner-name']    = $a->contact['name'];
+               $arr['owner-link']    = $a->contact['url'];
+               $arr['owner-avatar']  = $a->contact['thumb'];
+               $arr['author-name']   = $a->contact['name'];
+               $arr['author-link']   = $a->contact['url'];
+               $arr['author-avatar'] = $a->contact['thumb'];
+               $arr['title']         = '';
+               $arr['allow_cid']     = $str_contact_allow;
+               $arr['allow_gid']     = $str_group_allow;
+               $arr['deny_cid']      = $str_contact_deny;
+               $arr['deny_gid']      = $str_group_deny;
+               $arr['last-child']    = 1;
+               $arr['visible']       = 1;
+               $arr['verb']          = ACTIVITY_POST;
+               $arr['object-type']   = ACTIVITY_OBJ_EVENT;
+
+               $arr['body']          = format_event_bbcode($event);
+
+
+               $arr['object'] = '<object><type>' . ACTIVITY_OBJ_EVENT . '</type><title></title><id>' . $uri . '</id>';
+               $arr['object'] .= '<content>' . format_event_bbcode($event) . '</content>';
+               $arr['object'] .= '</object>' . "\n";
+
+               $item_id = item_store($arr);
+               if($item_id) {
+                       q("UPDATE `item` SET `plink` = '%s', `event-id` = %d  WHERE `uid` = %d AND `id` = %d LIMIT 1",
+                               dbesc($a->get_baseurl() . '/display/' . $owner_record['nickname'] . '/' . $item_id),
+                               intval($event['id']),
+                               intval($local_user()),
+                               intval($item_id)
+                       );
+                       proc_run('php',"include/notifier.php","tag","$item_id");
+               }
+       }
 }
 
 
@@ -204,6 +252,7 @@ function events_content(&$a) {
                if(count($r)) {
                        $r = sort_by_date($r);
                        foreach($r as $rr) {
+
                                $d = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], $fmt) : datetime_convert('UTC','UTC',$rr['start'],$fmt));
                                $d = day_translate($d);
                                if($d !== $last_date)