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