Skip to content

Commit a4a78d2

Browse files
committed
Add facebook username to update profile page
1 parent 7e8a581 commit a4a78d2

File tree

4 files changed

+76
-13
lines changed

4 files changed

+76
-13
lines changed

src/controllers/User/Update.php

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ public function &run(Router &$router, View &$view, array &$args) {
5353

5454
if ( $model->profile ) {
5555

56-
$model->biography = $model->profile->getBiography();
56+
$model->biography = $model->profile->getBiography();
57+
$model->facebook_username = $model->profile->getFacebookUsername();
5758

5859
}
5960

@@ -83,6 +84,10 @@ public function &run(Router &$router, View &$view, array &$args) {
8384
isset($data['biography']) ? $data['biography'] : null
8485
);
8586

87+
$model->facebook_username = (
88+
isset($data['facebook_username']) ? $data['facebook_username'] : null
89+
);
90+
8691
// process input
8792

8893
if ($model->username !== Authentication::$user->getUsername()) {
@@ -198,6 +203,24 @@ public function &run(Router &$router, View &$view, array &$args) {
198203

199204
}
200205

206+
if (
207+
$model->facebook_username !== $model->profile->getFacebookUsername()
208+
) {
209+
210+
// facebook username change request
211+
212+
if (strlen($model->facebook_username) >
213+
$model->facebook_username_max_len
214+
) {
215+
$model->facebook_username_error = ['red', 'TOO_LONG'];
216+
} else {
217+
$model->profile->setFacebookUsername($model->facebook_username);
218+
$model->facebook_username_error = ['green', 'CHANGE_SUCCESS'];
219+
$profile_changed = true;
220+
}
221+
222+
}
223+
201224
if ($profile_changed) {
202225
$model->profile->save();
203226
}
@@ -207,17 +230,19 @@ public function &run(Router &$router, View &$view, array &$args) {
207230
Authentication::$user->getId(),
208231
getenv('REMOTE_ADDR'),
209232
json_encode([
210-
'username_error' => $model->username_error,
211-
'email_error' => $model->email_error,
212-
'display_name_error' => $model->display_name_error,
213-
'biography_error' => $model->biography_error,
214-
'user_id' => Authentication::$user->getId(),
215-
'username' => $model->username,
216-
'email_1' => $model->email_1,
217-
'email_2' => $model->email_2,
218-
'display_name' => $display_name,
219-
'profile_changed' => $profile_changed,
220-
'biography' => $model->biography,
233+
'username_error' => $model->username_error,
234+
'email_error' => $model->email_error,
235+
'display_name_error' => $model->display_name_error,
236+
'biography_error' => $model->biography_error,
237+
'facebook_username_error' => $model->facebook_username_error,
238+
'user_id' => Authentication::$user->getId(),
239+
'username' => $model->username,
240+
'email_1' => $model->email_1,
241+
'email_2' => $model->email_2,
242+
'display_name' => $display_name,
243+
'profile_changed' => $profile_changed,
244+
'biography' => $model->biography,
245+
'facebook_username' => $model->facebook_username,
221246
])
222247
);
223248

src/libraries/UserProfile.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,4 +318,8 @@ public function setBiography($value) {
318318
$this->biography = $value;
319319
}
320320

321+
public function setFacebookUsername($value) {
322+
$this->facebook_username = $value;
323+
}
324+
321325
}

src/models/User/Update.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,8 @@ class Update extends Model {
2424
public $biography_error;
2525
public $biography_max_len = 255; // table design: varchar(255)
2626

27+
public $facebook_username;
28+
public $facebook_username_error;
29+
public $facebook_username_max_len = 255; // table design: varchar(255)
30+
2731
}

src/templates/User/Update.phtml

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,17 @@ switch ($this->getContext()->biography_error[1]) {
6969
. $this->getContext()->biography_error[1];
7070
}
7171

72+
switch ($this->getContext()->facebook_username_error[1]) {
73+
case null: case '': $facebook_username_error = ''; break;
74+
case 'TOO_LONG':
75+
$facebook_username_error = 'Your facebook username is too long.'; break;
76+
case 'CHANGE_SUCCESS':
77+
$facebook_username_error = 'Your facebook username was updated.'; break;
78+
default:
79+
$facebook_username_error = 'Internal error: '
80+
. $this->getContext()->facebook_username_error[1];
81+
}
82+
7283
$this->additional_css[] = '/a/forms.css';
7384
require('./header.inc.phtml');
7485
?>
@@ -168,9 +179,28 @@ require('./header.inc.phtml');
168179
echo '<p>' . $biography_error . '</p>';
169180
} ?>
170181
</section>
182+
<section<?php
183+
if ($facebook_username_error) {
184+
echo ' class="' .
185+
$this->getContext()->facebook_username_error[0] . '"';
186+
} ?>>
187+
<hr/>
188+
<label for="facebook_username">Facebook Username:</label>
189+
<input tabindex="6"
190+
maxlength="<?php echo
191+
$this->getContext()->facebook_username_max_len; ?>"
192+
type="text" name="facebook_username" id="facebook_username"
193+
value="<?php
194+
echo filter_var($this->getContext()->facebook_username,
195+
FILTER_SANITIZE_FULL_SPECIAL_CHARS);
196+
?>"/>
197+
<?php if ($facebook_username_error) {
198+
echo '<p>' . $facebook_username_error . '</p>';
199+
} ?>
200+
</section>
171201
<section>
172202
<hr/>
173-
<input tabindex="5" type="submit" class="bg-green" value="Update"/>
203+
<input tabindex="7" type="submit" class="bg-green" value="Update"/>
174204
</section>
175205
</form>
176206
<?php } ?>

0 commit comments

Comments
 (0)