X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fprofile%2Fgeneral.inc.php;h=f382e7b38ec73035589ccd1cd40ee898131179f0;hb=674333e7f1f4ad1e06626c16138eeb4b755f9f7e;hp=8ba8f9a9c982fe615d8a34a82aba2db28fe22946;hpb=673e56aa757fce4ea57c27ab2c0d5ce87d713e51;p=platal.git diff --git a/modules/profile/general.inc.php b/modules/profile/general.inc.php index 8ba8f9a..f382e7b 100644 --- a/modules/profile/general.inc.php +++ b/modules/profile/general.inc.php @@ -96,10 +96,12 @@ class ProfileSettingSearchNames implements ProfileSetting foreach ($value['public_names'] as $key => $name) { $value['public_names'][$key] = trim($name); } - foreach ($value['private_names'] as $key => $name) { - $value['private_names'][$key]['name'] = trim($name['name']); - if ($value['private_names'][$key]['name'] == '') { - unset($value['private_names'][$key]); + if (isset($value['private_names'])) { + foreach ($value['private_names'] as $key => $name) { + $value['private_names'][$key]['name'] = trim($name['name']); + if ($value['private_names'][$key]['name'] == '') { + unset($value['private_names'][$key]); + } } } @@ -110,8 +112,13 @@ class ProfileSettingSearchNames implements ProfileSetting require_once 'name.func.inc.php'; $public_name = build_first_name($value['public_names']) . ' ' . build_full_last_name($value['public_names'], $page->profile->isFemale()); - $private_name_end = build_private_name($value['private_names']); - $private_name = $public_name . $private_name_end; + if (isset($value['private_names'])) { + $private_name_end = build_private_name($value['private_names']); + $private_name = $public_name . $private_name_end; + } else { + $value['private_names'] = array(); + $private_name = $public_name; + } Platal::page()->assign('public_name', $public_name); Platal::page()->assign('private_name', $private_name); @@ -142,8 +149,10 @@ class ProfileSettingSearchNames implements ProfileSetting $page->pid()); $values = array(); $nickname = $lastname = $firstname = 0; - foreach ($value['private_names'] as $name) { - $values[] = XDB::format('({?}, {?}, {?}, {?})', $page->pid(), $name['type'], $$name['type']++, $name['name']); + if (isset($value['private_names'])) { + foreach ($value['private_names'] as $name) { + $values[] = XDB::format('({?}, {?}, {?}, {?})', $page->pid(), $name['type'], $$name['type']++, $name['name']); + } } if (count($values)) { XDB::rawExecute('INSERT INTO profile_private_names (pid, type, id, name) @@ -153,7 +162,8 @@ class ProfileSettingSearchNames implements ProfileSetting if ($has_diff) { update_display_names($page->profile, $old, $value['private_names']); } else { - update_display_names($page->profile, $value['public_names'], $value['private_names']); + update_display_names($page->profile, + $value['public_names'], (isset($value['private_names']) ? $value['private_names'] : null)); } } @@ -165,7 +175,7 @@ class ProfileSettingSearchNames implements ProfileSetting } } - if (count($value['private_names'])) { + if (isset($value['private_names']) && count($value['private_names'])) { $private_names = array(); foreach ($value['private_names'] as $name) { $private_names[] = $name['name']; @@ -472,6 +482,7 @@ class ProfileSettingHobby implements ProfileSetting public function value(ProfilePage $page, $field, $value, &$success) { + $success = true; if (is_null($value)) { $value = XDB::fetchAllAssoc('SELECT type, text, pub FROM profile_hobby @@ -481,7 +492,6 @@ class ProfileSettingHobby implements ProfileSetting if (!is_array($value)) { return array(); } - $success = true; foreach($value as $i => &$hobby) { $hobby['text'] = trim($hobby['text']); if (!$hobby['text'] ||!in_array($hobby['type'], self::$type)) { @@ -623,6 +633,7 @@ class ProfilePageGeneral extends ProfilePage $this->settings['nationality1'] = $this->settings['nationality2'] = $this->settings['nationality3'] = $this->settings['promo_display'] + = $this->settings['profile_title'] = null; $this->settings['email_directory'] = new ProfileSettingEmail(); $this->settings['email_directory_new'] = new ProfileSettingEmailDirectory(); @@ -654,6 +665,7 @@ class ProfilePageGeneral extends ProfilePage $this->watched['freetext'] = true; } + Platal::page()->assign('is_registered', ($this->owner->perms ? true : false)); } protected function _fetchData() @@ -662,7 +674,8 @@ class ProfilePageGeneral extends ProfilePage $res = XDB::query("SELECT p.nationality1, p.nationality2, p.nationality3, IF(p.birthdate = 0, '', p.birthdate) AS birthdate, p.email_directory as email_directory, pd.promo AS promo_display, p.freetext, p.freetext_pub, p.ax_id AS matricule_ax, pd.yourself, - p.deathdate, IF(p.birthdate_ref = 0, '', p.birthdate_ref) AS birthdate_ref + p.deathdate, IF(p.birthdate_ref = 0, '', p.birthdate_ref) AS birthdate_ref, + p.title AS profile_title FROM profiles AS p INNER JOIN profile_display AS pd ON (pd.pid = p.pid) WHERE p.pid = {?}", $this->pid()); @@ -693,7 +706,7 @@ class ProfilePageGeneral extends ProfilePage { if ($this->changed['nationality1'] || $this->changed['nationality2'] || $this->changed['nationality3'] || $this->changed['birthdate'] || $this->changed['freetext'] || $this->changed['freetext_pub'] - || $this->changed['email_directory']) { + || $this->changed['email_directory'] || $this->changed['profile_title']) { if ($this->values['nationality3'] == "") { $this->values['nationality3'] = NULL; } @@ -726,11 +739,12 @@ class ProfilePageGeneral extends ProfilePage XDB::execute("UPDATE profiles SET nationality1 = {?}, nationality2 = {?}, nationality3 = {?}, birthdate = {?}, - freetext = {?}, freetext_pub = {?}, email_directory = {?} + freetext = {?}, freetext_pub = {?}, email_directory = {?}, title = {?} WHERE pid = {?}", $this->values['nationality1'], $this->values['nationality2'], $this->values['nationality3'], ProfileSettingDate::toSQLDate($this->values['birthdate']), - $this->values['freetext'], $this->values['freetext_pub'], $new_email, $this->pid()); + $this->values['freetext'], $this->values['freetext_pub'], $new_email, + $this->values['profile_title'], $this->pid()); } if ($this->changed['photo_pub']) { XDB::execute("UPDATE profile_photos @@ -767,7 +781,7 @@ class ProfilePageGeneral extends ProfilePage } } } - if ($this->orig['birthdate_ref'] == 0 && !S::user()->isMe($this->owner) && $this->changed['birthdate_ref']) { + if ($this->changed['birthdate_ref'] && S::admin() && !$this->owner->perms) { XDB::execute('UPDATE profiles SET birthdate_ref = {?} WHERE pid = {?}',