/**
* @file mod/profiles.php
*/
+
use Friendica\App;
use Friendica\Content\ContactSelector;
use Friendica\Content\Feature;
use Friendica\Content\Nav;
use Friendica\Core\Addon;
use Friendica\Core\Config;
+use Friendica\Core\L10n;
use Friendica\Core\PConfig;
use Friendica\Core\System;
use Friendica\Core\Worker;
+use Friendica\Database\DBA;
use Friendica\Database\DBM;
+use Friendica\Model\Contact;
use Friendica\Model\GContact;
use Friendica\Model\Profile;
use Friendica\Network\Probe;
+use Friendica\Util\DateTimeFormat;
+use Friendica\Util\Temporal;
function profiles_init(App $a) {
intval(local_user())
);
if (! DBM::is_result($r)) {
- notice( t('Profile not found.') . EOL);
+ notice(L10n::t('Profile not found.') . EOL);
goaway('profiles');
return; // NOTREACHED
}
intval(local_user())
);
if (DBM::is_result($r)) {
- info(t('Profile deleted.').EOL);
+ info(L10n::t('Profile deleted.').EOL);
}
goaway('profiles');
$num_profiles = (DBM::is_result($r0) ? count($r0) : 0);
- $name = t('Profile-') . ($num_profiles + 1);
+ $name = L10n::t('Profile-') . ($num_profiles + 1);
$r1 = q("SELECT `name`, `photo`, `thumb` FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1",
intval(local_user()));
dbesc($name)
);
- info( t('New profile created.') . EOL);
+ info(L10n::t('New profile created.') . EOL);
if (DBM::is_result($r3) && count($r3) == 1) {
goaway('profiles/' . $r3[0]['id']);
}
$num_profiles = (DBM::is_result($r0) ? count($r0) : 0);
- $name = t('Profile-') . ($num_profiles + 1);
+ $name = L10n::t('Profile-') . ($num_profiles + 1);
$r1 = q("SELECT * FROM `profile` WHERE `uid` = %d AND `id` = %d LIMIT 1",
intval(local_user()),
intval($a->argv[2])
);
if(! DBM::is_result($r1)) {
- notice( t('Profile unavailable to clone.') . EOL);
+ notice(L10n::t('Profile unavailable to clone.') . EOL);
killme();
return;
}
$r1[0]['net-publish'] = 0;
$r1[0]['profile-name'] = dbesc($name);
- dba::insert('profile', $r1[0]);
+ DBA::insert('profile', $r1[0]);
$r3 = q("SELECT `id` FROM `profile` WHERE `uid` = %d AND `profile-name` = '%s' LIMIT 1",
intval(local_user()),
dbesc($name)
);
- info( t('New profile created.') . EOL);
+ info(L10n::t('New profile created.') . EOL);
if ((DBM::is_result($r3)) && (count($r3) == 1)) {
goaway('profiles/'.$r3[0]['id']);
}
intval(local_user())
);
if (! DBM::is_result($r)) {
- notice( t('Profile not found.') . EOL);
+ notice(L10n::t('Profile not found.') . EOL);
killme();
return;
}
function profiles_post(App $a) {
if (! local_user()) {
- notice( t('Permission denied.') . EOL);
+ notice(L10n::t('Permission denied.') . EOL);
return;
}
intval(local_user())
);
if (! DBM::is_result($orig)) {
- notice( t('Profile not found.') . EOL);
+ notice(L10n::t('Profile not found.') . EOL);
return;
}
$profile_name = notags(trim($_POST['profile_name']));
if (! strlen($profile_name)) {
- notice( t('Profile Name is required.') . EOL);
+ notice(L10n::t('Profile Name is required.') . EOL);
return;
}
- $dob = $_POST['dob'] ? escape_tags(trim($_POST['dob'])) : '0001-01-01'; // FIXME: Needs to be validated?
+ $dob = $_POST['dob'] ? escape_tags(trim($_POST['dob'])) : '0000-00-00';
$y = substr($dob, 0, 4);
if ((! ctype_digit($y)) || ($y < 1900)) {
$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 = '0001-' . $dob;
+ $dob = '0000-' . DateTimeFormat::utc('1900-' . $dob, 'm-d');
+ } else {
+ $dob = DateTimeFormat::utc($dob, 'Y-m-d');
}
}
if (! strlen($howlong)) {
$howlong = NULL_DATE;
} else {
- $howlong = datetime_convert(date_default_timezone_get(), 'UTC', $howlong);
+ $howlong = DateTimeFormat::convert($howlong, 'UTC', date_default_timezone_get());
}
// linkify the relationship target if applicable
$value = '';
if ($is_default) {
if ($marital != $orig[0]['marital']) {
- $changes[] = '[color=#ff0000]♥[/color] ' . t('Marital Status');
+ $changes[] = '[color=#ff0000]♥[/color] ' . L10n::t('Marital Status');
$value = $marital;
}
if ($withchanged) {
- $changes[] = '[color=#ff0000]♥[/color] ' . t('Romantic Partner');
+ $changes[] = '[color=#ff0000]♥[/color] ' . L10n::t('Romantic Partner');
$value = strip_tags($with);
}
if ($likes != $orig[0]['likes']) {
- $changes[] = t('Likes');
+ $changes[] = L10n::t('Likes');
$value = $likes;
}
if ($dislikes != $orig[0]['dislikes']) {
- $changes[] = t('Dislikes');
+ $changes[] = L10n::t('Dislikes');
$value = $dislikes;
}
if ($work != $orig[0]['work']) {
- $changes[] = t('Work/Employment');
+ $changes[] = L10n::t('Work/Employment');
}
if ($religion != $orig[0]['religion']) {
- $changes[] = t('Religion');
+ $changes[] = L10n::t('Religion');
$value = $religion;
}
if ($politic != $orig[0]['politic']) {
- $changes[] = t('Political Views');
+ $changes[] = L10n::t('Political Views');
$value = $politic;
}
if ($gender != $orig[0]['gender']) {
- $changes[] = t('Gender');
+ $changes[] = L10n::t('Gender');
$value = $gender;
}
if ($sexual != $orig[0]['sexual']) {
- $changes[] = t('Sexual Preference');
+ $changes[] = L10n::t('Sexual Preference');
$value = $sexual;
}
if ($xmpp != $orig[0]['xmpp']) {
- $changes[] = t('XMPP');
+ $changes[] = L10n::t('XMPP');
$value = $xmpp;
}
if ($homepage != $orig[0]['homepage']) {
- $changes[] = t('Homepage');
+ $changes[] = L10n::t('Homepage');
$value = $homepage;
}
if ($interest != $orig[0]['interest']) {
- $changes[] = t('Interests');
+ $changes[] = L10n::t('Interests');
$value = $interest;
}
if ($address != $orig[0]['address']) {
- $changes[] = t('Address');
+ $changes[] = L10n::t('Address');
// New address not sent in notifications, potential privacy issues
// in case this leaks to unintended recipients. Yes, it's in the public
// profile but that doesn't mean we have to broadcast it to everybody.
}
if ($locality != $orig[0]['locality'] || $region != $orig[0]['region']
|| $country_name != $orig[0]['country-name']) {
- $changes[] = t('Location');
+ $changes[] = L10n::t('Location');
$comma1 = ((($locality) && ($region || $country_name)) ? ', ' : ' ');
$comma2 = (($region && $country_name) ? ', ' : '');
$value = $locality . $comma1 . $region . $comma2 . $country_name;
}
-
- profile_activity($changes,$value);
-
}
$r = q("UPDATE `profile`
intval(local_user())
);
+ /// @TODO decide to use dbm::is_result() here and check $r
if ($r) {
- info(t('Profile updated.') . EOL);
- }
-
-
- if ($namechanged && $is_default) {
- $r = q("UPDATE `contact` SET `name` = '%s', `name-date` = '%s' WHERE `self` = 1 AND `uid` = %d",
- dbesc($name),
- dbesc(datetime_convert()),
- intval(local_user())
- );
- $r = q("UPDATE `user` set `username` = '%s' where `uid` = %d",
- dbesc($name),
- intval(local_user())
- );
+ info(L10n::t('Profile updated.') . EOL);
}
if ($is_default) {
- $location = Profile::formatLocation(["locality" => $locality, "region" => $region, "country-name" => $country_name]);
-
- q("UPDATE `contact` SET `about` = '%s', `location` = '%s', `keywords` = '%s', `gender` = '%s' WHERE `self` AND `uid` = %d",
- dbesc($about),
- dbesc($location),
- dbesc($pub_keywords),
- dbesc($gender),
- intval(local_user())
- );
+ if ($namechanged) {
+ $r = q("UPDATE `user` set `username` = '%s' where `uid` = %d",
+ dbesc($name),
+ intval(local_user())
+ );
+ }
+
+ Contact::updateSelfFromUserID(local_user());
// Update global directory in background
$url = $_SESSION['my_url'];
}
}
-
-function profile_activity($changed, $value) {
- $a = get_app();
-
- if (! local_user() || ! is_array($changed) || ! count($changed)) {
- return;
- }
-
- if ($a->user['hidewall'] || Config::get('system', 'block_public')) {
- return;
- }
-
- if (! PConfig::get(local_user(), 'system', 'post_profilechange')) {
- return;
- }
-
- require_once 'include/items.php';
-
- $self = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1",
- intval(local_user())
- );
-
- if (! DBM::is_result($self)) {
- return;
- }
-
- $arr = [];
-
- $arr['guid'] = get_guid(32);
- $arr['uri'] = $arr['parent-uri'] = item_new_uri($a->get_hostname(), local_user());
- $arr['uid'] = local_user();
- $arr['contact-id'] = $self[0]['id'];
- $arr['wall'] = 1;
- $arr['type'] = 'wall';
- $arr['gravity'] = 0;
- $arr['origin'] = 1;
- $arr['author-name'] = $arr['owner-name'] = $self[0]['name'];
- $arr['author-link'] = $arr['owner-link'] = $self[0]['url'];
- $arr['author-avatar'] = $arr['owner-avatar'] = $self[0]['thumb'];
- $arr['verb'] = ACTIVITY_UPDATE;
- $arr['object-type'] = ACTIVITY_OBJ_PROFILE;
-
- $A = '[url=' . $self[0]['url'] . ']' . $self[0]['name'] . '[/url]';
-
-
- $changes = '';
- $t = count($changed);
- $z = 0;
- foreach ($changed as $ch) {
- if (strlen($changes)) {
- if ($z == ($t - 1)) {
- $changes .= t(' and ');
- } else {
- $changes .= ', ';
- }
- }
- $z ++;
- $changes .= $ch;
- }
-
- $prof = '[url=' . $self[0]['url'] . '?tab=profile' . ']' . t('public profile') . '[/url]';
-
- if ($t == 1 && strlen($value)) {
- $message = sprintf( t('%1$s changed %2$s to “%3$s”'), $A, $changes, $value);
- $message .= "\n\n" . sprintf( t(' - Visit %1$s\'s %2$s'), $A, $prof);
- } else {
- $message = sprintf( t('%1$s has an updated %2$s, changing %3$s.'), $A, $prof, $changes);
- }
-
-
- $arr['body'] = $message;
-
- $arr['object'] = '<object><type>' . ACTIVITY_OBJ_PROFILE . '</type><title>' . $self[0]['name'] . '</title>'
- . '<id>' . $self[0]['url'] . '/' . $self[0]['name'] . '</id>';
- $arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $self[0]['url'] . '?tab=profile' . '" />' . "\n");
- $arr['object'] .= xmlify('<link rel="photo" type="image/jpeg" href="' . $self[0]['thumb'] . '" />' . "\n");
- $arr['object'] .= '</link></object>' . "\n";
-
- $arr['allow_cid'] = $a->user['allow_cid'];
- $arr['allow_gid'] = $a->user['allow_gid'];
- $arr['deny_cid'] = $a->user['deny_cid'];
- $arr['deny_gid'] = $a->user['deny_gid'];
-
- $i = item_store($arr);
- if ($i) {
- Worker::add(PRIORITY_HIGH, "Notifier", "activity", $i);
- }
-}
-
-
function profiles_content(App $a) {
if (! local_user()) {
- notice( t('Permission denied.') . EOL);
+ notice(L10n::t('Permission denied.') . EOL);
return;
}
intval(local_user())
);
if (! DBM::is_result($r)) {
- notice( t('Profile not found.') . EOL);
+ notice(L10n::t('Profile not found.') . EOL);
return;
}
$hide_friends = replace_macros($opt_tpl,[
'$yesno' => [
'hide-friends', //Name
- t('Hide contacts and friends:'), //Label
+ L10n::t('Hide contacts and friends:'), //Label
!!$r[0]['hide-friends'], //Value
'', //Help string
- [t('No'), t('Yes')] //Off - On strings
+ [L10n::t('No'), L10n::t('Yes')] //Off - On strings
],
- '$desc' => t('Hide your contact/friend list from viewers of this profile?'),
- '$yes_str' => t('Yes'),
- '$no_str' => t('No'),
+ '$desc' => L10n::t('Hide your contact/friend list from viewers of this profile?'),
+ '$yes_str' => L10n::t('Yes'),
+ '$no_str' => L10n::t('No'),
'$yes_selected' => (($r[0]['hide-friends']) ? " checked=\"checked\" " : ""),
'$no_selected' => (($r[0]['hide-friends'] == 0) ? " checked=\"checked\" " : "")
]);
'$details' => [
'detailled_profile', //Name
- t('Show more profile fields:'), //Label
+ L10n::t('Show more profile fields:'), //Label
$detailled_profile, //Value
'', //Help string
- [t('No'), t('Yes')] //Off - On strings
+ [L10n::t('No'), L10n::t('Yes')] //Off - On strings
],
'$multi_profiles' => Feature::isEnabled(local_user(), 'multi_profiles'),
'$profile_clone_link' => ((Feature::isEnabled(local_user(), 'multi_profiles')) ? 'profiles/clone/' . $r[0]['id'] . '?t=' . get_form_security_token("profile_clone") : ""),
'$profile_drop_link' => 'profiles/drop/' . $r[0]['id'] . '?t=' . get_form_security_token("profile_drop"),
- '$profile_action' => t('Profile Actions'),
- '$banner' => t('Edit Profile Details'),
- '$submit' => t('Submit'),
- '$profpic' => t('Change Profile Photo'),
- '$viewprof' => t('View this profile'),
- '$editvis' => t('Edit visibility'),
- '$cr_prof' => t('Create a new profile using these settings'),
- '$cl_prof' => t('Clone this profile'),
- '$del_prof' => t('Delete this profile'),
-
- '$lbl_basic_section' => t('Basic information'),
- '$lbl_picture_section' => t('Profile picture'),
- '$lbl_location_section' => t('Location'),
- '$lbl_preferences_section' => t('Preferences'),
- '$lbl_status_section' => t('Status information'),
- '$lbl_about_section' => t('Additional information'),
- '$lbl_interests_section' => t('Interests'),
- '$lbl_personal_section' => t('Personal'),
- '$lbl_relation_section' => t('Relation'),
- '$lbl_miscellaneous_section' => t('Miscellaneous'),
-
- '$lbl_profile_photo' => t('Upload Profile Photo'),
- '$lbl_gender' => t('Your Gender:'),
- '$lbl_marital' => t('<span class="heart">♥</span> Marital Status:'),
- '$lbl_sexual' => t('Sexual Preference:'),
- '$lbl_ex2' => t('Example: fishing photography software'),
+ '$profile_action' => L10n::t('Profile Actions'),
+ '$banner' => L10n::t('Edit Profile Details'),
+ '$submit' => L10n::t('Submit'),
+ '$profpic' => L10n::t('Change Profile Photo'),
+ '$viewprof' => L10n::t('View this profile'),
+ '$editvis' => L10n::t('Edit visibility'),
+ '$cr_prof' => L10n::t('Create a new profile using these settings'),
+ '$cl_prof' => L10n::t('Clone this profile'),
+ '$del_prof' => L10n::t('Delete this profile'),
+
+ '$lbl_basic_section' => L10n::t('Basic information'),
+ '$lbl_picture_section' => L10n::t('Profile picture'),
+ '$lbl_location_section' => L10n::t('Location'),
+ '$lbl_preferences_section' => L10n::t('Preferences'),
+ '$lbl_status_section' => L10n::t('Status information'),
+ '$lbl_about_section' => L10n::t('Additional information'),
+ '$lbl_interests_section' => L10n::t('Interests'),
+ '$lbl_personal_section' => L10n::t('Personal'),
+ '$lbl_relation_section' => L10n::t('Relation'),
+ '$lbl_miscellaneous_section' => L10n::t('Miscellaneous'),
+
+ '$lbl_profile_photo' => L10n::t('Upload Profile Photo'),
+ '$lbl_gender' => L10n::t('Your Gender:'),
+ '$lbl_marital' => L10n::t('<span class="heart">♥</span> Marital Status:'),
+ '$lbl_sexual' => L10n::t('Sexual Preference:'),
+ '$lbl_ex2' => L10n::t('Example: fishing photography software'),
'$disabled' => (($is_default) ? 'onclick="return false;" style="color: #BBBBFF;"' : ''),
'$baseurl' => System::baseUrl(true),
'$profile_id' => $r[0]['id'],
- '$profile_name' => ['profile_name', t('Profile Name:'), $r[0]['profile-name'], t('Required'), '*'],
+ '$profile_name' => ['profile_name', L10n::t('Profile Name:'), $r[0]['profile-name'], L10n::t('Required'), '*'],
'$is_default' => $is_default,
- '$default' => (($is_default) ? '<p id="profile-edit-default-desc">' . t('This is your <strong>public</strong> profile.<br />It <strong>may</strong> be visible to anybody using the internet.') . '</p>' : ""),
- '$name' => ['name', t('Your Full Name:'), $r[0]['name']],
- '$pdesc' => ['pdesc', t('Title/Description:'), $r[0]['pdesc']],
- '$dob' => dob($r[0]['dob']),
+ '$default' => (($is_default) ? '<p id="profile-edit-default-desc">' . L10n::t('This is your <strong>public</strong> profile.<br />It <strong>may</strong> be visible to anybody using the internet.') . '</p>' : ""),
+ '$name' => ['name', L10n::t('Your Full Name:'), $r[0]['name']],
+ '$pdesc' => ['pdesc', L10n::t('Title/Description:'), $r[0]['pdesc']],
+ '$dob' => Temporal::getDateofBirthField($r[0]['dob']),
'$hide_friends' => $hide_friends,
- '$address' => ['address', t('Street Address:'), $r[0]['address']],
- '$locality' => ['locality', t('Locality/City:'), $r[0]['locality']],
- '$region' => ['region', t('Region/State:'), $r[0]['region']],
- '$postal_code' => ['postal_code', t('Postal/Zip Code:'), $r[0]['postal-code']],
- '$country_name' => ['country_name', t('Country:'), $r[0]['country-name']],
- '$age' => ((intval($r[0]['dob'])) ? '(' . t('Age: ') . age($r[0]['dob'],$a->user['timezone'],$a->user['timezone']) . ')' : ''),
+ '$address' => ['address', L10n::t('Street Address:'), $r[0]['address']],
+ '$locality' => ['locality', L10n::t('Locality/City:'), $r[0]['locality']],
+ '$region' => ['region', L10n::t('Region/State:'), $r[0]['region']],
+ '$postal_code' => ['postal_code', L10n::t('Postal/Zip Code:'), $r[0]['postal-code']],
+ '$country_name' => ['country_name', L10n::t('Country:'), $r[0]['country-name']],
+ '$age' => ((intval($r[0]['dob'])) ? '(' . L10n::t('Age: ') . Temporal::getAgeByTimezone($r[0]['dob'],$a->user['timezone'],$a->user['timezone']) . ')' : ''),
'$gender' => ContactSelector::gender($r[0]['gender']),
'$marital' => ContactSelector::maritalStatus($r[0]['marital']),
- '$with' => ['with', t("Who: \x28if applicable\x29"), strip_tags($r[0]['with']), t('Examples: cathy123, Cathy Williams, cathy@example.com')],
- '$howlong' => ['howlong', t('Since [date]:'), ($r[0]['howlong'] <= NULL_DATE ? '' : datetime_convert('UTC',date_default_timezone_get(),$r[0]['howlong']))],
+ '$with' => ['with', L10n::t("Who: \x28if applicable\x29"), strip_tags($r[0]['with']), L10n::t('Examples: cathy123, Cathy Williams, cathy@example.com')],
+ '$howlong' => ['howlong', L10n::t('Since [date]:'), ($r[0]['howlong'] <= NULL_DATE ? '' : DateTimeFormat::local($r[0]['howlong']))],
'$sexual' => ContactSelector::sexualPreference($r[0]['sexual']),
- '$about' => ['about', t('Tell us about yourself...'), $r[0]['about']],
- '$xmpp' => ['xmpp', t('XMPP (Jabber) address:'), $r[0]['xmpp'], t("The XMPP address will be propagated to your contacts so that they can follow you.")],
- '$homepage' => ['homepage', t('Homepage URL:'), $r[0]['homepage']],
- '$hometown' => ['hometown', t('Hometown:'), $r[0]['hometown']],
- '$politic' => ['politic', t('Political Views:'), $r[0]['politic']],
- '$religion' => ['religion', t('Religious Views:'), $r[0]['religion']],
- '$pub_keywords' => ['pub_keywords', t('Public Keywords:'), $r[0]['pub_keywords'], t("\x28Used for suggesting potential friends, can be seen by others\x29")],
- '$prv_keywords' => ['prv_keywords', t('Private Keywords:'), $r[0]['prv_keywords'], t("\x28Used for searching profiles, never shown to others\x29")],
- '$likes' => ['likes', t('Likes:'), $r[0]['likes']],
- '$dislikes' => ['dislikes', t('Dislikes:'), $r[0]['dislikes']],
- '$music' => ['music', t('Musical interests'), $r[0]['music']],
- '$book' => ['book', t('Books, literature'), $r[0]['book']],
- '$tv' => ['tv', t('Television'), $r[0]['tv']],
- '$film' => ['film', t('Film/dance/culture/entertainment'), $r[0]['film']],
- '$interest' => ['interest', t('Hobbies/Interests'), $r[0]['interest']],
- '$romance' => ['romance', t('Love/romance'), $r[0]['romance']],
- '$work' => ['work', t('Work/employment'), $r[0]['work']],
- '$education' => ['education', t('School/education'), $r[0]['education']],
- '$contact' => ['contact', t('Contact information and Social Networks'), $r[0]['contact']],
+ '$about' => ['about', L10n::t('Tell us about yourself...'), $r[0]['about']],
+ '$xmpp' => ['xmpp', L10n::t("XMPP \x28Jabber\x29 address:"), $r[0]['xmpp'], L10n::t("The XMPP address will be propagated to your contacts so that they can follow you.")],
+ '$homepage' => ['homepage', L10n::t('Homepage URL:'), $r[0]['homepage']],
+ '$hometown' => ['hometown', L10n::t('Hometown:'), $r[0]['hometown']],
+ '$politic' => ['politic', L10n::t('Political Views:'), $r[0]['politic']],
+ '$religion' => ['religion', L10n::t('Religious Views:'), $r[0]['religion']],
+ '$pub_keywords' => ['pub_keywords', L10n::t('Public Keywords:'), $r[0]['pub_keywords'], L10n::t("\x28Used for suggesting potential friends, can be seen by others\x29")],
+ '$prv_keywords' => ['prv_keywords', L10n::t('Private Keywords:'), $r[0]['prv_keywords'], L10n::t("\x28Used for searching profiles, never shown to others\x29")],
+ '$likes' => ['likes', L10n::t('Likes:'), $r[0]['likes']],
+ '$dislikes' => ['dislikes', L10n::t('Dislikes:'), $r[0]['dislikes']],
+ '$music' => ['music', L10n::t('Musical interests'), $r[0]['music']],
+ '$book' => ['book', L10n::t('Books, literature'), $r[0]['book']],
+ '$tv' => ['tv', L10n::t('Television'), $r[0]['tv']],
+ '$film' => ['film', L10n::t('Film/dance/culture/entertainment'), $r[0]['film']],
+ '$interest' => ['interest', L10n::t('Hobbies/Interests'), $r[0]['interest']],
+ '$romance' => ['romance', L10n::t('Love/romance'), $r[0]['romance']],
+ '$work' => ['work', L10n::t('Work/employment'), $r[0]['work']],
+ '$education' => ['education', L10n::t('School/education'), $r[0]['education']],
+ '$contact' => ['contact', L10n::t('Contact information and Social Networks'), $r[0]['contact']],
]);
$arr = ['profile' => $r[0], 'entry' => $o];
$profiles .= replace_macros($tpl, [
'$photo' => $a->remove_baseurl($rr['thumb']),
'$id' => $rr['id'],
- '$alt' => t('Profile Image'),
+ '$alt' => L10n::t('Profile Image'),
'$profile_name' => $rr['profile-name'],
- '$visible' => (($rr['is-default']) ? '<strong>' . t('visible to everybody') . '</strong>'
- : '<a href="'.'profperm/'.$rr['id'].'" />' . t('Edit visibility') . '</a>')
+ '$visible' => (($rr['is-default']) ? '<strong>' . L10n::t('visible to everybody') . '</strong>'
+ : '<a href="'.'profperm/'.$rr['id'].'" />' . L10n::t('Edit visibility') . '</a>')
]);
}
$tpl_header = get_markup_template('profile_listing_header.tpl');
$o .= replace_macros($tpl_header,[
- '$header' => t('Edit/Manage Profiles'),
- '$chg_photo' => t('Change profile photo'),
- '$cr_new' => t('Create New Profile'),
+ '$header' => L10n::t('Edit/Manage Profiles'),
+ '$chg_photo' => L10n::t('Change profile photo'),
+ '$cr_new' => L10n::t('Create New Profile'),
'$cr_new_link' => 'profiles/new?t=' . get_form_security_token("profile_new"),
'$profiles' => $profiles
]);