Merge pull request #1966 from annando/1510-event-guid
Issue 1561: Deleting events (And some other event stuff)
This commit is contained in:
commit
d640128dc9
|
@ -1210,7 +1210,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
|
||||||
// start which is always required). Allow desc with a missing summary for compatibility.
|
// start which is always required). Allow desc with a missing summary for compatibility.
|
||||||
|
|
||||||
if((x($ev,'desc') || x($ev,'summary')) && x($ev,'start')) {
|
if((x($ev,'desc') || x($ev,'summary')) && x($ev,'start')) {
|
||||||
$sub = format_event_html($ev);
|
$sub = format_event_html($ev, $simplehtml);
|
||||||
|
|
||||||
$Text = preg_replace("/\[event\-summary\](.*?)\[\/event\-summary\]/ism",'',$Text);
|
$Text = preg_replace("/\[event\-summary\](.*?)\[\/event\-summary\]/ism",'',$Text);
|
||||||
$Text = preg_replace("/\[event\-description\](.*?)\[\/event\-description\]/ism",'',$Text);
|
$Text = preg_replace("/\[event\-description\](.*?)\[\/event\-description\]/ism",'',$Text);
|
||||||
|
|
|
@ -210,6 +210,18 @@ function timesel($format, $h, $m, $id='timepicker') {
|
||||||
if(! function_exists('datetimesel')) {
|
if(! function_exists('datetimesel')) {
|
||||||
function datetimesel($format, $min, $max, $default, $id = 'datetimepicker', $pickdate = true, $picktime = true, $minfrom = '', $maxfrom = '', $required = false) {
|
function datetimesel($format, $min, $max, $default, $id = 'datetimepicker', $pickdate = true, $picktime = true, $minfrom = '', $maxfrom = '', $required = false) {
|
||||||
|
|
||||||
|
$a = get_app();
|
||||||
|
|
||||||
|
// First day of the week (0 = Sunday)
|
||||||
|
$firstDay = get_pconfig(local_user(),'system','first_day_of_week');
|
||||||
|
if ($firstDay === false) $firstDay=0;
|
||||||
|
|
||||||
|
$lang = substr(get_browser_language(), 0, 2);
|
||||||
|
|
||||||
|
// Check if the detected language is supported by the picker
|
||||||
|
if (!in_array($lang, array("ar", "ro", "id", "bg", "fa", "ru", "uk", "en", "el", "de", "nl", "tr", "fr", "es", "th", "pl", "pt", "ch", "se", "kr", "it", "da", "no", "ja", "vi", "sl", "cs", "hu")))
|
||||||
|
$lang = ((isset($a->config['system']['language'])) ? $a->config['system']['language'] : 'en');
|
||||||
|
|
||||||
$o = '';
|
$o = '';
|
||||||
$dateformat = '';
|
$dateformat = '';
|
||||||
if($pickdate) $dateformat .= 'Y-m-d';
|
if($pickdate) $dateformat .= 'Y-m-d';
|
||||||
|
@ -224,6 +236,7 @@ function datetimesel($format, $min, $max, $default, $id = 'datetimepicker', $pic
|
||||||
if(!$pickdate) $pickers .= ',datepicker: false';
|
if(!$pickdate) $pickers .= ',datepicker: false';
|
||||||
if(!$picktime) $pickers .= ',timepicker: false';
|
if(!$picktime) $pickers .= ',timepicker: false';
|
||||||
$extra_js = '';
|
$extra_js = '';
|
||||||
|
$pickers .= ",dayOfWeekStart: ".$firstDay.",lang:'".$lang."'";
|
||||||
if($minfrom != '')
|
if($minfrom != '')
|
||||||
$extra_js .= "\$('#$minfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#$id').data('xdsoft_datetimepicker').setOptions({minDate: currentDateTime})}})";
|
$extra_js .= "\$('#$minfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#$id').data('xdsoft_datetimepicker').setOptions({minDate: currentDateTime})}})";
|
||||||
if($maxfrom != '')
|
if($maxfrom != '')
|
||||||
|
@ -236,7 +249,9 @@ function datetimesel($format, $min, $max, $default, $id = 'datetimepicker', $pic
|
||||||
$readable_format = str_replace('i','MM',$readable_format);
|
$readable_format = str_replace('i','MM',$readable_format);
|
||||||
$o .= "<div class='date'><input type='text' placeholder='$readable_format' name='$id' id='$id' $input_text />";
|
$o .= "<div class='date'><input type='text' placeholder='$readable_format' name='$id' id='$id' $input_text />";
|
||||||
$o .= '</div>';
|
$o .= '</div>';
|
||||||
$o .= "<script type='text/javascript'>\$(function () {var picker = \$('#$id').datetimepicker({step:5,format:'$dateformat' $minjs $maxjs $pickers $defaultdatejs}); $extra_js})</script>";
|
$o .= "<script type='text/javascript'>";
|
||||||
|
$o .= "\$(function () {var picker = \$('#$id').datetimepicker({step:5,format:'$dateformat' $minjs $maxjs $pickers $defaultdatejs}); $extra_js})";
|
||||||
|
$o .= "</script>";
|
||||||
return $o;
|
return $o;
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
|
@ -2421,6 +2421,7 @@ function diaspora_profile($importer,$xml,$msg) {
|
||||||
|
|
||||||
$birthday = str_replace('1000','1901',$birthday);
|
$birthday = str_replace('1000','1901',$birthday);
|
||||||
|
|
||||||
|
if ($birthday != "")
|
||||||
$birthday = datetime_convert('UTC','UTC',$birthday,'Y-m-d');
|
$birthday = datetime_convert('UTC','UTC',$birthday,'Y-m-d');
|
||||||
|
|
||||||
// this is to prevent multiple birthday notifications in a single year
|
// this is to prevent multiple birthday notifications in a single year
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
require_once('include/bbcode.php');
|
require_once('include/bbcode.php');
|
||||||
require_once('include/map.php');
|
require_once('include/map.php');
|
||||||
|
|
||||||
function format_event_html($ev) {
|
function format_event_html($ev, $simple = false) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -12,6 +12,32 @@ function format_event_html($ev) {
|
||||||
|
|
||||||
$bd_format = t('l F d, Y \@ g:i A') ; // Friday January 18, 2011 @ 8 AM
|
$bd_format = t('l F d, Y \@ g:i A') ; // Friday January 18, 2011 @ 8 AM
|
||||||
|
|
||||||
|
$event_start = (($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)));
|
||||||
|
|
||||||
|
$event_end = (($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 )));
|
||||||
|
|
||||||
|
if ($simple) {
|
||||||
|
$o = "<h3>".bbcode($ev['summary'])."</h3>";
|
||||||
|
|
||||||
|
$o .= "<p>".bbcode($ev['desc'])."</p>";
|
||||||
|
|
||||||
|
$o .= "<h4>".t('Starts:')."</h4><p>".$event_start."</p>";
|
||||||
|
|
||||||
|
if(! $ev['nofinish'])
|
||||||
|
$o .= "<h4>".t('Finishes:')."</h4><p>".$event_end."</p>";
|
||||||
|
|
||||||
|
if(strlen($ev['location']))
|
||||||
|
$o .= "<h4>".t('Location:')."</h4><p>".$ev['location']."</p>";
|
||||||
|
|
||||||
|
return $o;
|
||||||
|
}
|
||||||
|
|
||||||
$o = '<div class="vevent">' . "\r\n";
|
$o = '<div class="vevent">' . "\r\n";
|
||||||
|
|
||||||
|
|
||||||
|
@ -21,21 +47,13 @@ function format_event_html($ev) {
|
||||||
|
|
||||||
$o .= '<p class="event-start">' . t('Starts:') . ' <abbr class="dtstart" title="'
|
$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' ))
|
. datetime_convert('UTC','UTC',$ev['start'], (($ev['adjust']) ? ATOM_TIME : 'Y-m-d\TH:i:s' ))
|
||||||
. '" >'
|
. '" >'.$event_start
|
||||||
. (($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>' . "\r\n";
|
. '</abbr></p>' . "\r\n";
|
||||||
|
|
||||||
if(! $ev['nofinish'])
|
if(! $ev['nofinish'])
|
||||||
$o .= '<p class="event-end" >' . t('Finishes:') . ' <abbr class="dtend" title="'
|
$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' ))
|
. datetime_convert('UTC','UTC',$ev['finish'], (($ev['adjust']) ? ATOM_TIME : 'Y-m-d\TH:i:s' ))
|
||||||
. '" >'
|
. '" >'.$event_end
|
||||||
. (($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>' . "\r\n";
|
. '</abbr></p>' . "\r\n";
|
||||||
|
|
||||||
if(strlen($ev['location'])){
|
if(strlen($ev['location'])){
|
||||||
|
@ -204,7 +222,13 @@ function ev_compare($a,$b) {
|
||||||
return strcmp($date_a,$date_b);
|
return strcmp($date_a,$date_b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function event_delete($event_id) {
|
||||||
|
if ($event_id == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
q("DELETE FROM `event` WHERE `id` = %d", intval($event_id));
|
||||||
|
logger("Deleted event ".$event_id, LOGGER_DEBUG);
|
||||||
|
}
|
||||||
|
|
||||||
function event_store($arr) {
|
function event_store($arr) {
|
||||||
|
|
||||||
|
@ -362,6 +386,7 @@ function event_store($arr) {
|
||||||
$item_arr['contact-id'] = $arr['cid'];
|
$item_arr['contact-id'] = $arr['cid'];
|
||||||
$item_arr['uri'] = $arr['uri'];
|
$item_arr['uri'] = $arr['uri'];
|
||||||
$item_arr['parent-uri'] = $arr['uri'];
|
$item_arr['parent-uri'] = $arr['uri'];
|
||||||
|
$item_arr['guid'] = $arr['guid'];
|
||||||
$item_arr['type'] = 'activity';
|
$item_arr['type'] = 'activity';
|
||||||
$item_arr['wall'] = (($arr['cid']) ? 0 : 1);
|
$item_arr['wall'] = (($arr['cid']) ? 0 : 1);
|
||||||
$item_arr['contact-id'] = $contact['id'];
|
$item_arr['contact-id'] = $contact['id'];
|
||||||
|
|
|
@ -2558,6 +2558,11 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
|
||||||
if(! $item['deleted'])
|
if(! $item['deleted'])
|
||||||
logger('consume_feed: deleting item ' . $item['id'] . ' uri=' . $item['uri'], LOGGER_DEBUG);
|
logger('consume_feed: deleting item ' . $item['id'] . ' uri=' . $item['uri'], LOGGER_DEBUG);
|
||||||
|
|
||||||
|
if($item['object-type'] === ACTIVITY_OBJ_EVENT) {
|
||||||
|
logger("Deleting event ".$item['event-id'], LOGGER_DEBUG);
|
||||||
|
event_delete($item['event-id']);
|
||||||
|
}
|
||||||
|
|
||||||
if(($item['verb'] === ACTIVITY_TAG) && ($item['object-type'] === ACTIVITY_OBJ_TAGTERM)) {
|
if(($item['verb'] === ACTIVITY_TAG) && ($item['object-type'] === ACTIVITY_OBJ_TAGTERM)) {
|
||||||
$xo = parse_xml_string($item['object'],false);
|
$xo = parse_xml_string($item['object'],false);
|
||||||
$xt = parse_xml_string($item['target'],false);
|
$xt = parse_xml_string($item['target'],false);
|
||||||
|
@ -2849,11 +2854,12 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
|
||||||
|
|
||||||
if((x($datarray,'object-type')) && ($datarray['object-type'] === ACTIVITY_OBJ_EVENT)) {
|
if((x($datarray,'object-type')) && ($datarray['object-type'] === ACTIVITY_OBJ_EVENT)) {
|
||||||
$ev = bbtoevent($datarray['body']);
|
$ev = bbtoevent($datarray['body']);
|
||||||
if(x($ev,'desc') && x($ev,'start')) {
|
if((x($ev,'desc') || x($ev,'summary')) && x($ev,'start')) {
|
||||||
$ev['uid'] = $importer['uid'];
|
$ev['uid'] = $importer['uid'];
|
||||||
$ev['uri'] = $item_id;
|
$ev['uri'] = $item_id;
|
||||||
$ev['edited'] = $datarray['edited'];
|
$ev['edited'] = $datarray['edited'];
|
||||||
$ev['private'] = $datarray['private'];
|
$ev['private'] = $datarray['private'];
|
||||||
|
$ev['guid'] = $datarray['guid'];
|
||||||
|
|
||||||
if(is_array($contact))
|
if(is_array($contact))
|
||||||
$ev['cid'] = $contact['id'];
|
$ev['cid'] = $contact['id'];
|
||||||
|
@ -3543,6 +3549,11 @@ function local_delivery($importer,$data) {
|
||||||
|
|
||||||
logger('local_delivery: deleting item ' . $item['id'] . ' uri=' . $item['uri'], LOGGER_DEBUG);
|
logger('local_delivery: deleting item ' . $item['id'] . ' uri=' . $item['uri'], LOGGER_DEBUG);
|
||||||
|
|
||||||
|
if($item['object-type'] === ACTIVITY_OBJ_EVENT) {
|
||||||
|
logger("Deleting event ".$item['event-id'], LOGGER_DEBUG);
|
||||||
|
event_delete($item['event-id']);
|
||||||
|
}
|
||||||
|
|
||||||
if(($item['verb'] === ACTIVITY_TAG) && ($item['object-type'] === ACTIVITY_OBJ_TAGTERM)) {
|
if(($item['verb'] === ACTIVITY_TAG) && ($item['object-type'] === ACTIVITY_OBJ_TAGTERM)) {
|
||||||
$xo = parse_xml_string($item['object'],false);
|
$xo = parse_xml_string($item['object'],false);
|
||||||
$xt = parse_xml_string($item['target'],false);
|
$xt = parse_xml_string($item['target'],false);
|
||||||
|
@ -4073,12 +4084,13 @@ function local_delivery($importer,$data) {
|
||||||
|
|
||||||
if((x($datarray,'object-type')) && ($datarray['object-type'] === ACTIVITY_OBJ_EVENT)) {
|
if((x($datarray,'object-type')) && ($datarray['object-type'] === ACTIVITY_OBJ_EVENT)) {
|
||||||
$ev = bbtoevent($datarray['body']);
|
$ev = bbtoevent($datarray['body']);
|
||||||
if(x($ev,'desc') && x($ev,'start')) {
|
if((x($ev,'desc') || x($ev,'summary')) && x($ev,'start')) {
|
||||||
$ev['cid'] = $importer['id'];
|
$ev['cid'] = $importer['id'];
|
||||||
$ev['uid'] = $importer['uid'];
|
$ev['uid'] = $importer['uid'];
|
||||||
$ev['uri'] = $item_id;
|
$ev['uri'] = $item_id;
|
||||||
$ev['edited'] = $datarray['edited'];
|
$ev['edited'] = $datarray['edited'];
|
||||||
$ev['private'] = $datarray['private'];
|
$ev['private'] = $datarray['private'];
|
||||||
|
$ev['guid'] = $datarray['guid'];
|
||||||
|
|
||||||
$r = q("SELECT * FROM `event` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `event` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
||||||
dbesc($item_id),
|
dbesc($item_id),
|
||||||
|
|
|
@ -154,6 +154,7 @@ function events_post(&$a) {
|
||||||
if(! $cid)
|
if(! $cid)
|
||||||
proc_run('php',"include/notifier.php","event","$item_id");
|
proc_run('php',"include/notifier.php","event","$item_id");
|
||||||
|
|
||||||
|
goaway($_SESSION['return_url']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -165,6 +166,9 @@ function events_content(&$a) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($a->argc == 1)
|
||||||
|
$_SESSION['return_url'] = $a->get_baseurl() . '/' . $a->cmd;
|
||||||
|
|
||||||
if(($a->argc > 2) && ($a->argv[1] === 'ignore') && intval($a->argv[2])) {
|
if(($a->argc > 2) && ($a->argv[1] === 'ignore') && intval($a->argv[2])) {
|
||||||
$r = q("update event set ignore = 1 where id = %d and uid = %d",
|
$r = q("update event set ignore = 1 where id = %d and uid = %d",
|
||||||
intval($a->argv[2]),
|
intval($a->argv[2]),
|
||||||
|
@ -505,7 +509,7 @@ function events_content(&$a) {
|
||||||
else
|
else
|
||||||
$sh_checked = (($orig_event['allow_cid'] === '<' . local_user() . '>' && (! $orig_event['allow_gid']) && (! $orig_event['deny_cid']) && (! $orig_event['deny_gid'])) ? '' : ' checked="checked" ' );
|
$sh_checked = (($orig_event['allow_cid'] === '<' . local_user() . '>' && (! $orig_event['allow_gid']) && (! $orig_event['deny_cid']) && (! $orig_event['deny_gid'])) ? '' : ' checked="checked" ' );
|
||||||
|
|
||||||
if($cid)
|
if($cid OR ($mode !== 'new'))
|
||||||
$sh_checked .= ' disabled="disabled" ';
|
$sh_checked .= ' disabled="disabled" ';
|
||||||
|
|
||||||
|
|
||||||
|
@ -536,6 +540,9 @@ function events_content(&$a) {
|
||||||
|
|
||||||
require_once('include/acl_selectors.php');
|
require_once('include/acl_selectors.php');
|
||||||
|
|
||||||
|
if ($mode === 'new')
|
||||||
|
$acl = (($cid) ? '' : populate_acl(((x($orig_event)) ? $orig_event : $a->user)));
|
||||||
|
|
||||||
$tpl = get_markup_template('event_form.tpl');
|
$tpl = get_markup_template('event_form.tpl');
|
||||||
|
|
||||||
$o .= replace_macros($tpl,array(
|
$o .= replace_macros($tpl,array(
|
||||||
|
@ -563,7 +570,7 @@ function events_content(&$a) {
|
||||||
'$sh_text' => t('Share this event'),
|
'$sh_text' => t('Share this event'),
|
||||||
'$sh_checked' => $sh_checked,
|
'$sh_checked' => $sh_checked,
|
||||||
'$preview' => t('Preview'),
|
'$preview' => t('Preview'),
|
||||||
'$acl' => (($cid) ? '' : populate_acl(((x($orig_event)) ? $orig_event : $a->user))),
|
'$acl' => $acl,
|
||||||
'$submit' => t('Submit')
|
'$submit' => t('Submit')
|
||||||
|
|
||||||
));
|
));
|
||||||
|
|
|
@ -117,9 +117,12 @@ class Item extends BaseObject {
|
||||||
? t('Private Message')
|
? t('Private Message')
|
||||||
: false);
|
: false);
|
||||||
$shareable = ((($conv->get_profile_owner() == local_user()) && ($item['private'] != 1)) ? true : false);
|
$shareable = ((($conv->get_profile_owner() == local_user()) && ($item['private'] != 1)) ? true : false);
|
||||||
if(local_user() && link_compare($a->contact['url'],$item['author-link']))
|
if(local_user() && link_compare($a->contact['url'],$item['author-link'])) {
|
||||||
$edpost = array($a->get_baseurl($ssl_state)."/editpost/".$item['id'], t("Edit"));
|
if ($item["event-id"] != 0)
|
||||||
|
$edpost = array($a->get_baseurl($ssl_state)."/events/event/".$item['event-id'], t("Edit"));
|
||||||
else
|
else
|
||||||
|
$edpost = array($a->get_baseurl($ssl_state)."/editpost/".$item['id'], t("Edit"));
|
||||||
|
} else
|
||||||
$edpost = false;
|
$edpost = false;
|
||||||
if(($this->get_data_value('uid') == local_user()) || $this->is_visiting())
|
if(($this->get_data_value('uid') == local_user()) || $this->is_visiting())
|
||||||
$dropping = true;
|
$dropping = true;
|
||||||
|
|
Loading…
Reference in a new issue