X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fprofiles.php;h=30b41954553fc5d1b9b288b2e68b6a241bdb84f2;hb=d23440af1518c1d89f2a71516d155b1defb1ccb7;hp=6187e1c1e2e5aa5a2fbeee23fe17d52ecde58d50;hpb=992684c3620185da00663e25eb1460c4b18920ea;p=friendica.git diff --git a/mod/profiles.php b/mod/profiles.php index 6187e1c1e2..30b4195455 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -137,9 +137,26 @@ function profiles_init(&$a) { profile_load($a,$a->user['nickname'],$r[0]['id']); } - - + + +} + +function profile_clean_keywords($keywords) { + $keywords = str_replace(","," ",$keywords); + $keywords = explode(" ", $keywords); + + $cleaned = array(); + foreach ($keywords as $keyword) { + $keyword = trim(strtolower($keyword)); + $keyword = trim($keyword, "#"); + if ($keyword != "") + $cleaned[] = $keyword; + } + + $keywords = implode(", ", $cleaned); + + return $keywords; } function profiles_post(&$a) { @@ -173,27 +190,23 @@ function profiles_post(&$a) { return; } - $year = intval($_POST['year']); - if($year < 1900 || $year > 2100 || $year < 0) - $year = 0; - $month = intval($_POST['month']); - if(($month > 12) || ($month < 0)) - $month = 0; - $mtab = array(0,31,29,31,30,31,30,31,31,30,31,30,31); - $day = intval($_POST['day']); - if(($day > $mtab[$month]) || ($day < 0)) - $day = 0; - - // It's OK to have an empty (0) year, but if you supplied a year you have to have a non-zero month and day - if($year && ! $month) - $month = 1; - if($year && ! $day) - $day = 1; - - $dob = '0000-00-00'; - $dob = sprintf('%04d-%02d-%02d',$year,$month,$day); + $dob = $_POST['dob'] ? escape_tags(trim($_POST['dob'])) : '0000-00-00'; // FIXME: Needs to be validated? - + $y = substr($dob,0,4); + if((! ctype_digit($y)) || ($y < 1900)) + $ignore_year = true; + else + $ignore_year = false; + if($dob != '0000-00-00') { + if(strpos($dob,'0000-') === 0) { + $ignore_year = true; + $dob = substr($dob,5); + } + $dob = datetime_convert('UTC','UTC',(($ignore_year) ? '1900-' . $dob : $dob),(($ignore_year) ? 'm-d' : 'Y-m-d')); + if($ignore_year) + $dob = '0000-' . $dob; + } + $name = notags(trim($_POST['name'])); if(! strlen($name)) { @@ -212,8 +225,8 @@ function profiles_post(&$a) { $region = notags(trim($_POST['region'])); $postal_code = notags(trim($_POST['postal_code'])); $country_name = notags(trim($_POST['country_name'])); - $pub_keywords = notags(trim($_POST['pub_keywords'])); - $prv_keywords = notags(trim($_POST['prv_keywords'])); + $pub_keywords = profile_clean_keywords(notags(trim($_POST['pub_keywords']))); + $prv_keywords = profile_clean_keywords(notags(trim($_POST['prv_keywords']))); $marital = notags(trim($_POST['marital'])); $howlong = notags(trim($_POST['howlong'])); @@ -223,7 +236,7 @@ function profiles_post(&$a) { $howlong = '0000-00-00 00:00:00'; else $howlong = datetime_convert(date_default_timezone_get(),'UTC',$howlong); - + // linkify the relationship target if applicable $withchanged = false; @@ -277,7 +290,7 @@ function profiles_post(&$a) { $newname = $r[0]['name']; } } - + if($prf) { $with = str_replace($lookup,'' . $newname . '', $with); if(strpos($with,'@') === 0) @@ -468,6 +481,30 @@ function profiles_post(&$a) { } if($is_default) { + $location = $locality; + + if ($region != "") { + if ($location != "") + $location .= ", "; + + $location .= $region; + } + + if ($country_name != "") { + if ($location != "") + $location .= ", "; + + $location .= $country_name; + } + + $r = q("UPDATE `contact` SET `about` = '%s', `location` = '%s', `keywords` = '%s', `gender` = '%s' WHERE `self` = 1 AND `uid` = %d", + dbesc($about), + dbesc($location), + dbesc($pub_keywords), + dbesc($gender), + intval(local_user()) + ); + // Update global directory in background $url = $_SESSION['my_url']; if($url && strlen(get_config('system','directory_submit_url'))) @@ -660,7 +697,7 @@ function profiles_content(&$a) { '$lbl_fullname' => t('Your Full Name:'), '$lbl_title' => t('Title/Description:'), '$lbl_gender' => t('Your Gender:'), - '$lbl_bd' => sprintf( t("Birthday \x28%s\x29:"),datesel_format($f)), + '$lbl_bd' => t("Birthday :"), '$lbl_address' => t('Street Address:'), '$lbl_city' => t('Locality/City:'), '$lbl_zip' => t('Postal/Zip Code:'),