From cb54cda17454fde783c165c37d6ece1ba2067253 Mon Sep 17 00:00:00 2001 From: Mike Macgirvin Date: Fri, 9 Jul 2010 22:47:32 -0700 Subject: [PATCH] more directory work --- boot.php | 3 ++- include/datetime.php | 22 +++++++++++++++++++++- mod/directory.php | 14 +++++++++++--- view/style.css | 9 +++++++++ wip/todo | 4 +++- 5 files changed, 46 insertions(+), 6 deletions(-) diff --git a/boot.php b/boot.php index fab44a7a45..ddc2fa381e 100644 --- a/boot.php +++ b/boot.php @@ -356,4 +356,5 @@ function xmlify($str) { function hex2bin($s) { return(pack("H*",$s)); -} \ No newline at end of file +} + diff --git a/include/datetime.php b/include/datetime.php index f75193b1bd..0beadbe78e 100644 --- a/include/datetime.php +++ b/include/datetime.php @@ -115,7 +115,8 @@ function relative_date($posted_date) { $diff -= $minutes*60; $seconds = $diff; - + if($months > 2) + return(datetime_convert('UTC',date_default_timezone_get(),$posted_date,'\o\n Y-m-d \a\t H:i:s')); if ($months>0) { // over a month old, return 'over a month ago'; @@ -143,3 +144,22 @@ function relative_date($posted_date) { // show relative date and add proper verbiage return $relative_date.' ago'; } + +function age($dob,$owner_tz = '',$viewer_tz = '') { + if(strlen($dob) != 10) + return 0; + if(! $owner_tz) + $owner_tz = date_default_timezone_get(); + if(! $viewer_tz) + $viewer_tz = date_default_timezone_get(); + + $birthdate = datetime_convert('UTC',$owner_tz,$dob . ' 00:00:00+00:00','Y-m-d'); + list($year,$month,$day) = explode("-",$birthdate); + $year_diff = datetime_convert('UTC',$viewer_tz,'now','Y') - $year; + $curr_month = datetime_convert('UTC',$viewer_tz,'now','m'); + $curr_day = datetime_convert('UTC',$viewer_tz,'now','d'); + + if(($curr_month < $month) || (($curr_month == $month) && ($curr_day < $day))) + $year_diff--; + return $year_diff; +} diff --git a/mod/directory.php b/mod/directory.php index 0a7d7355e7..aec34f910d 100644 --- a/mod/directory.php +++ b/mod/directory.php @@ -3,14 +3,20 @@ function directory_content(&$a) { + $search = ((x($_GET,'search')) ? notags(trim($_GET['search'])) : ''); $tpl .= file_get_contents('view/directory_header.tpl'); $o .= replace_macros($tpl, array( + '$search' => $search )); - $r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `is-default` = 1 AND `publish` = 1 ORDER BY `name` ASC"); + if($search) + $search = dbesc($search); + $sql_extra = ((strlen($search)) ? " AND MATCH (`profile`.`name`, `user`.`nickname`, `locality`,`region`,`country-name`,`gender`,`marital`,`sexual`,`about`,`romance`,`employer`,`school`) AGAINST ('$search' IN BOOLEAN MODE) " : ""); + + $r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `is-default` = 1 AND `publish` = 1 $sql_extra ORDER BY `name` ASC"); if(count($r)) { $tpl = file_get_contents('view/directory_item.tpl'); @@ -36,8 +42,10 @@ function directory_content(&$a) { $details .= ', '; $details .= $rr['country-name']; } - if(strlen($rr['dob'])) - $details .= '
Age: ' ; // . calculate age($rr['dob'])) ; + if(strlen($rr['dob'])) { + if(($years = age($rr['dob'],$rr['timezone'],'')) != 0) + $details .= "
Age: $years" ; + } if(strlen($rr['gender'])) $details .= '
Gender: ' . $rr['gender']; diff --git a/view/style.css b/view/style.css index 609c8a8f77..701a7d0c5f 100644 --- a/view/style.css +++ b/view/style.css @@ -491,3 +491,12 @@ input#dfrn-url { overflow: auto; } +#directory-search-wrapper { + float: right; + margin-right: 20px; + margin-bottom: 50px; +} + +#directory-search-end { + clear: both; +} \ No newline at end of file diff --git a/wip/todo b/wip/todo index 9b0057698c..e32f693973 100644 --- a/wip/todo +++ b/wip/todo @@ -17,7 +17,9 @@ contact editor reputation -directory page search, pager, details +directory page pager + +profile advanced details submit, display publish to external directory