فهرست منبع

Settings page for users

Michael Francis 14 سال پیش
والد
کامیت
b36745e218
2فایلهای تغییر یافته به همراه105 افزوده شده و 0 حذف شده
  1. 22 0
      controllers/UsersController.php
  2. 83 0
      views/users/settings.html.php

+ 22 - 0
controllers/UsersController.php

@@ -374,6 +374,28 @@ class UsersController extends \lithium\action\Controller {
 		}
 	}
 
+	public function settings()
+	{
+		//Get the user using their login information (from auth)
+		$user = Auth::check('default');
+		$user = User::find($user['_id']);
+
+		//If the request isn't empty
+		if(!empty($this->request->data)) {
+			//Foreach key/value pair in the request data
+			foreach($this->request->data as $key => $value)
+			{
+				//TODO: Make sure to lock the schema to prevent wierd values
+				$user->$key = $value;
+			}
+
+			//Save the user.
+			$user->save(null, array('validate' => false));
+		}
+
+		return compact('user');
+	}
+
 	public function requestFriend($username) {
 		//If the user isn't blocking this user, 
 

+ 83 - 0
views/users/settings.html.php

@@ -0,0 +1,83 @@
+<h2> Settings </h2>
+
+<div style='float:left'>Name</div><?php if (!isset($user->Name)): ?> <div style='float:right'><a href='#name' rel='prettyPhoto'>Set</a></div><?php endif; ?>
+<div style="clear:both" />
+<hr />
+<div style='float:left'>Your real name</div><div style='float:right'><?= isset($user->Name) ? $user->Name : "Not Set"; ?> </div>
+<br class = "cl"/>
+<br />
+<div style='float:left'>Username</div><div style='float:right'><a href="#username" rel='prettyPhoto'>Change</a></div>
+<div style="clear:both" />
+<hr />
+<div style='float:left'>How you're known on the site</div><div style='float:right'><?= $user->username ?> </div>
+<br class = "cl"/>
+<br />
+<div style='float:left'>E-Mail Address</div><div style='float:right'><a href="#email" rel="prettyPhoto" >Change</a></div>
+<div style="clear:both" />
+<hr />
+<div style='float:left'>The Address we'll contact you at</div><div style='float:right'><?= isset($user->email) ? $user->email : "Not Set"; ?> </div>
+<br class = "cl"/>
+<br />
+<div style='float:left'>Password</div><div style='float:right'><a href="#password" rel="prettyPhoto">Change</a></div>
+<div style="clear:both" />
+<hr />
+<div style='float:left'>The password you login with</div>
+<br class = "cl"/>
+<br />
+
+<?php //Eventually change this to submit onClick with javascript so we can get rid of the submit button :TODO: ?>
+<?= $this->form->create($user->settings); ?>
+<div style='float:left'>Privacy Mode</div>
+<div style="clear:both" />
+<hr />
+<div style='float:left'>Only allow friends to see your posts?</div><div style='float:right'><?= $this->form->checkbox('private'); ?> </div>
+ </div>
+ <?= $this->form->submit('Save Settings'); ?>
+<?= $this->form->end(); ?> 
+<br class = "cl"/>
+<br />
+
+<div style='float:left'>Linked Accounts</div><div style='float:right'>Change</div>
+<div style="clear:both" />
+<hr />
+<div style='float:left'>Your OpenID</div><div style='float:right'>Not Set</div>
+<br class = "cl"/>
+<br />
+
+<div id="password" style="display: none;">
+<h2> Change Password </h2>
+  <?= $this->form->create(null, array('url' => '/users/changePassword', 'id' => 'changepass')); ?>
+    <?= $this->form->field('newpass', array('type' => 'password', 'label' => 'New Password:')); ?>
+    <?= $this->form->field('confirm', array('type' => 'password', 'label' => 'Confirm Password:')); ?>
+    <?= $this->form->submit('Change Password'); ?>
+  <?= $this->form->end(); ?>
+</div>
+
+<div id="username" style="display: none;">
+<h2> Change Username </h2>
+ <p> Under normal circumstances, the username cannot be changed. However, if you really need to change your username
+ 	 please contact our administration team for assistance. Thank you</p>
+</div>
+
+<div id="name" style="display: none;">
+<h2> Change Name </h2>
+<?= $this->form->create(); ?>
+	<?= $this->form->field('Name', array('type' => 'textbox')); ?>
+	<?= $this->form->submit('Save'); ?>
+<?= $this->form->end(); ?>
+</div>
+
+<div id="email" style="display: none;">
+<h2> Change Name </h2>
+<?= $this->form->create(); ?>
+	<?= $this->form->field('email', array('type' => 'textbox', 'label' => 'E-Mail Address:')); ?>
+	<?= $this->form->submit('Save'); ?>
+<?= $this->form->end(); ?>
+</div>
+
+
+<div style="clear:both" />
+</div>
+</div>
+<br class="cl">
+</div>