diff options
author | Friendika <info@friendika.com> | 2011-06-07 20:10:43 -0700 |
---|---|---|
committer | Friendika <info@friendika.com> | 2011-06-07 20:10:43 -0700 |
commit | 33fe26ecb01ec009a639c4c8fdfc4f93b2bd34ac (patch) | |
tree | 5bbb388dccbe87c1f34a61ee9de589ad8332c907 | |
parent | d1e9af2c51d6b12d400a656f489520ccd8d54ed2 (diff) | |
download | volse-hubzilla-33fe26ecb01ec009a639c4c8fdfc4f93b2bd34ac.tar.gz volse-hubzilla-33fe26ecb01ec009a639c4c8fdfc4f93b2bd34ac.tar.bz2 volse-hubzilla-33fe26ecb01ec009a639c4c8fdfc4f93b2bd34ac.zip |
more progress on events
-rw-r--r-- | boot.php | 2 | ||||
-rw-r--r-- | database.sql | 1 | ||||
-rw-r--r-- | include/event.php | 42 | ||||
-rw-r--r-- | mod/events.php | 65 | ||||
-rw-r--r-- | update.php | 5 | ||||
-rw-r--r-- | view/event_form.tpl | 35 | ||||
-rw-r--r-- | view/theme/duepuntozero/style.css | 29 | ||||
-rw-r--r-- | view/theme/loozah/style.css | 29 |
8 files changed, 177 insertions, 31 deletions
@@ -6,7 +6,7 @@ ini_set('pcre.backtrack_limit', 250000); define ( 'FRIENDIKA_VERSION', '2.2.1004' ); define ( 'DFRN_PROTOCOL_VERSION', '2.21' ); -define ( 'DB_UPDATE_VERSION', 1061 ); +define ( 'DB_UPDATE_VERSION', 1062 ); define ( 'EOL', "<br />\r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); diff --git a/database.sql b/database.sql index ab047968e..fd7ccf87f 100644 --- a/database.sql +++ b/database.sql @@ -484,6 +484,7 @@ CREATE TABLE IF NOT EXISTS `event` ( `desc` TEXT NOT NULL , `location` TEXT NOT NULL , `type` CHAR( 255 ) NOT NULL , +`nofinish` TINYINT( 1 ) NOT NULL DEFAULT '0', `adjust` TINYINT( 1 ) NOT NULL DEFAULT '1', `allow_cid` MEDIUMTEXT NOT NULL , `allow_gid` MEDIUMTEXT NOT NULL , diff --git a/include/event.php b/include/event.php index 38ab83316..17e12d7cf 100644 --- a/include/event.php +++ b/include/event.php @@ -21,23 +21,39 @@ function format_event_html($ev) { $ev['start'] /*, format */ )) . '</abbr></p>'; - $o .= '<p>' . t('Ends: ') . '<abbr class="dtend" title="' - . datetime_convert('UTC','UTC',$ev['finish'], ATOM_TIME) - . '" >' - . (($ev['adjust']) ? datetime_convert('UTC', date_default_timezone_get(), - $ev['finish'] /*, format */ ) - : datetime_convert('UTC', 'UTC', - $ev['finish'] /*, format */ )) - . '</abbr></p>'; - - $o .= '<p> ' . t('Location:') . '<span class="location">' - . bbcode($ev['location']) - . '</span></p>'; + if(! $ev['nofinish']) + $o .= '<p>' . t('Ends: ') . '<abbr class="dtend" title="' + . datetime_convert('UTC','UTC',$ev['finish'], ATOM_TIME) + . '" >' + . (($ev['adjust']) ? datetime_convert('UTC', date_default_timezone_get(), + $ev['finish'] /*, format */ ) + : datetime_convert('UTC', 'UTC', + $ev['finish'] /*, format */ )) + . '</abbr></p>'; + + if(strlen($ev['location'])) + $o .= '<p> ' . t('Location:') . '<span class="location">' + . bbcode($ev['location']) + . '</span></p>'; $o .= '</div>'; -return $o; + return $o; +} + + + +function sort_by_date($a) { + + usort($a,'ev_compare'); + return $a; } +function ev_compare($a,$b) { + $date_a = (($a['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$a['start']) : $a['start']); + $date_b = (($b['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$b['start']) : $b['start']); + + return strcmp($date_a,$date_b); +}
\ No newline at end of file diff --git a/mod/events.php b/mod/events.php index 293e9a260..f19a438fd 100644 --- a/mod/events.php +++ b/mod/events.php @@ -23,18 +23,24 @@ function events_post(&$a) { $finishminute = intval($_POST['finishminute']); $adjust = intval($_POST['adjust']); + $nofinish = intval($_POST['nofinish']); $start = sprintf('%d-%d-%d %d:%d:0',$startyear,$startmonth,$startday,$starthour,$startminute); - $finish = sprintf('%d-%d-%d %d:%d:0',$finishyear,$finishmonth,$finishday,$finishhour,$finishminute); + if($nofinish) + $finish = '0000-00-00 00:00:00'; + else + $finish = sprintf('%d-%d-%d %d:%d:0',$finishyear,$finishmonth,$finishday,$finishhour,$finishminute); if($adjust) { $start = datetime_convert(date_default_timezone_get(),'UTC',$start); - $finish = datetime_convert(date_default_timezone_get(),'UTC',$finish); + if(! $nofinish) + $finish = datetime_convert(date_default_timezone_get(),'UTC',$finish); } else { $start = datetime_convert('UTC','UTC',$start); - $finish = datetime_convert('UTC','UTC',$finish); + if(! $nofinish) + $finish = datetime_convert('UTC','UTC',$finish); } @@ -47,7 +53,7 @@ function events_post(&$a) { $str_group_deny = perms2str($_POST['group_deny']); $str_contact_deny = perms2str($_POST['contact_deny']); -dbg(1); + if($event_id) { $r = q("UPDATE `event` SET `edited` = '%s', @@ -57,6 +63,7 @@ dbg(1); `location` = '%s', `type` = '%s', `adjust` = %d, + `nofinish` = %d, `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', @@ -70,6 +77,7 @@ dbg(1); dbesc($location), dbesc($type), intval($adjust), + intval($nofinish), dbesc($str_contact_allow), dbesc($str_group_allow), dbesc($str_contact_deny), @@ -84,8 +92,8 @@ dbg(1); $uri = item_new_uri($a->get_hostname(),local_user()); $r = q("INSERT INTO `event` ( `uid`,`uri`,`created`,`edited`,`start`,`finish`,`desc`,`location`,`type`, - `adjust`,`allow_cid`,`allow_gid`,`deny_cid`,`deny_gid`) - VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, '%s', '%s', '%s', '%s' ) ", + `adjust`,`nofinish`,`allow_cid`,`allow_gid`,`deny_cid`,`deny_gid`) + VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s' ) ", intval(local_user()), dbesc($uri), dbesc(datetime_convert()), @@ -96,6 +104,7 @@ dbg(1); dbesc($location), dbesc($type), intval($adjust), + intval($nofinish), dbesc($str_contact_allow), dbesc($str_group_allow), dbesc($str_contact_deny), @@ -164,21 +173,42 @@ function events_content(&$a) { $o .= '<a href="' . $a->get_baseurl() . '/events/' . $prevyear . '/' . $prevmonth . '" class="prevcal">' . t('<< Previous') . '</a> | <a href="' . $a->get_baseurl() . '/events/' . $nextyear . '/' . $nextmonth . '" class="nextcal">' . t('Next >>') . '</a>'; $o .= cal($y,$m,false, ' eventcal'); - $dim = get_dim($y,$m); - $start = sprintf('%d-%d-%d %d:%d:%d',$y,$m,1,0,0,0); + $dim = get_dim($y,$m); + $start = sprintf('%d-%d-%d %d:%d:%d',$y,$m,1,0,0,0); $finish = sprintf('%d-%d-%d %d:%d:%d',$y,$m,$dim,23,59,59); + + $start = datetime_convert('UTC','UTC',$start); + $finish = datetime_convert('UTC','UTC',$finish); + $adjust_start = datetime_convert('UTC', date_default_timezone_get(), $start); + $adjust_finish = datetime_convert('UTC', date_default_timezone_get(), $finish); - $r = q("SELECT * FROM `event` WHERE `start` >= '%s' AND `finish` <= '%s' AND `uid` = %d ", + + $r = q("SELECT * FROM `event` WHERE `uid` = %d + AND (( `adjust` = 0 AND `start` >= '%s' AND `finish` <= '%s' ) + OR ( `adjust` = 1 AND `start` >= '%s' AND `finish` <= '%s' )) ", + intval(local_user()), dbesc($start), dbesc($finish), - intval(local_user()) + dbesc($adjust_start), + dbesc($adjust_finish) ); - if(count($r)) - foreach($r as $rr) - $o .= format_event_html($rr); + $last_date = ''; + + $fmt = t('l, F j'); + 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) + $o .= '<hr /><div class="event-list-date">' . $d . '</div>'; + $last_date = $d; + $o .= format_event_html($rr); + } + } return $o; } @@ -195,15 +225,18 @@ function events_content(&$a) { $o .= replace_macros($tpl,array( '$post' => $a->get_baseurl() . '/events', '$e_text' => t('Event details'), - '$s_text' => t('Start: year-month-day hour:minute'), + '$e_desc' => t('Format is year-month-day hour:minute. Starting date and Description are required.'), + '$s_text' => t('Event Starts:') . ' <span class="required">*</span> ', '$s_dsel' => datesel('start',$year+5,$year,false,$year,$month,$day), '$s_tsel' => timesel('start',0,0), - '$f_text' => t('Finish: year-month-day hour:minute'), + '$n_text' => t('Finish date/time is not known or not relevant'), + '$n_checked' => '', + '$f_text' => t('Event Finishes:'), '$f_dsel' => datesel('finish',$year+5,$year,false,$year,$month,$day), '$f_tsel' => timesel('finish',0,0), '$a_text' => t('Adjust for viewer timezone'), '$a_checked' => '', - '$d_text' => t('Description:'), + '$d_text' => t('Description:') . ' <span class="required">*</span>', '$d_orig' => '', '$l_text' => t('Location:'), '$l_orig' => '', diff --git a/update.php b/update.php index be78f068f..dfc5f88c9 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@ <?php -define( 'UPDATE_VERSION' , 1061 ); +define( 'UPDATE_VERSION' , 1062 ); /** * @@ -510,3 +510,6 @@ function update_1060() { q("ALTER TABLE `event` ADD `uri` CHAR( 255 ) NOT NULL AFTER `cid` "); } +function update_1061() { + q("ALTER TABLE `event` ADD `nofinish` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `type` "); +} diff --git a/view/event_form.tpl b/view/event_form.tpl new file mode 100644 index 000000000..7449f845a --- /dev/null +++ b/view/event_form.tpl @@ -0,0 +1,35 @@ +<h3>$e_text</h3> + +<p> +$e_desc +</p> + +<form action="$post" method="post" > + +<div id="event-start-text">$s_text</div> +$s_dsel $s_tsel + +<div id="event-finish-text">$f_text</div> +$f_dsel $f_tsel + +<div id="event-datetime-break"></div> + +<input type="checkbox" name="nofinish" value="1" id="event-nofinish-checkbox" $n_checked /> <div id="event-nofinish-text">$n_text</div> + +<div id="event-nofinish-break"></div> + +<input type="checkbox" name="adjust" value="1" id="event-adjust-checkbox" $a_checked /> <div id="event-adjust-text">$a_text</div> + +<div id="event-adjust-break"></div> + +<div id="event-desc-text">$d_text</div> +<textarea id="event-desc-textarea" name="desc">$d_orig</textarea> + + +<div id="event-location-text">$l_text</div> +<textarea id="event-location-textarea" name="location">$l_orig</textarea> + +<input id="event-submit" type="submit" name="submit" value="$submit" /> +</form> + + diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css index f837112b6..c5e441bfd 100644 --- a/view/theme/duepuntozero/style.css +++ b/view/theme/duepuntozero/style.css @@ -2406,6 +2406,35 @@ a.mail-list-link { margin: 5px 0px 0px 0px; } +.required { + color: #FF0000; +} + +#event-start-text, #event-finish-text { + margin-top: 10px; + margin-bottom: 5px; +} + +#event-nofinish-checkbox, #event-nofinish-text, #event-adjust-checkbox, #event-adjust-text { + float: left; +} +#event-datetime-break { + margin-bottom: 10px; +} + +#event-nofinish-break, #event-adjust-break { + clear: both; +} + +#event-desc-text, #event-location-text { + margin-top: 10px; + margin-bottom: 5px; +} +#event-submit { + margin-top: 10px; +} + + #lang-select-icon { cursor: pointer; position: absolute; diff --git a/view/theme/loozah/style.css b/view/theme/loozah/style.css index 0f9e1e956..0edde248e 100644 --- a/view/theme/loozah/style.css +++ b/view/theme/loozah/style.css @@ -2419,6 +2419,35 @@ a.mail-list-link { margin: 5px 0px 0px 0px; } +.required { + color: #FF0000; +} + +#event-start-text, #event-finish-text { + margin-top: 10px; + margin-bottom: 5px; +} + +#event-nofinish-checkbox, #event-nofinish-text, #event-adjust-checkbox, #event-adjust-text { + float: left; +} +#event-datetime-break { + margin-bottom: 10px; +} + +#event-nofinish-break, #event-adjust-break { + clear: both; +} + +#event-desc-text, #event-location-text { + margin-top: 10px; + margin-bottom: 5px; +} +#event-submit { + margin-top: 10px; +} + + #lang-select-icon { cursor: pointer; position: absolute; |