* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
***************************************************************************/
+require_once 'name.func.inc.php';
+
class ProfileSettingSearchNames implements ProfileSetting
{
private $private_name_end;
private function prepareField($value)
{
- $value = mb_strtoupper($value);
- return preg_replace('/[^A-Z]/', ' ', $value);
+ return name_to_basename($value);
}
private function prepare(ProfilePage &$page, $field, $value, $init, &$success)
}
if ($sn['pub']) {
if (isset($sn['particle']) && ($sn['particle'] != '')) {
+ // particle is before first blank
list($particle, $name) = explode(' ', $sn['name'], 2);
$particle = trim($particle) . ' ';
if (!$name) {
+ // particle is before first quote
list($particle, $name) = explode('\'', $sn['name'], 2);
$particle = trim($particle);
+ if (!$name) {
+ // actually there is no particle
+ $particle = '';
+ $name = $sn['name'];
+ }
}
} else {
$particle = '';
public function save(ProfilePage &$page, $field, $value)
{
require_once 'name.func.inc.php';
- $sn_old = build_sn_pub();
+ $sn_old = build_sn_pub($page->pid());
XDB::execute("DELETE FROM s
USING profile_name AS s
INNER JOIN profile_name_enum AS e ON (s.typeid = e.id)
WHERE s.pid = {?} AND NOT FIND_IN_SET('not_displayed', e.flags)",
$page->pid());
- $has_new = set_alias_names($this->search_names, $sn_old);
+ $has_new = set_alias_names($this->search_names, $sn_old, $page->pid(), $page->owner->id());
// Only requires validation if modification in public names
if ($has_new) {
' Tu recevras un email dès que ces changements auront été effectués.');
} else {
$display_names = array();
- build_display_names($display_names, $this->search_names, $this->private_name_end);
- set_profile_display($display_names);
+ build_display_names($display_names, $this->search_names,
+ $page->profile->isFemale(), $this->private_name_end);
+ set_profile_display($display_names, $page->pid());
}
}
}
if ($this->changed['yourself']) {
XDB::execute('UPDATE accounts
SET display_name = {?}
- WHERE pid = {?}', $this->pid());
+ WHERE uid = {?}',
+ $this->values['yourself'], $this->owner->id());
}
if ($this->changed['promo_display']) {
if ($this->values['promo_display']{0} == $this->profile->mainEducation()
$res = $res->fetchOneRow();
$page->assign('public_name', $res[0]);
$page->assign('private_name', $res[1]);
+ $page->assign('isFemale', $this->profile->isFemale() ? 1 : 0);
}
}