/**
  * View an individual member.
  */
 public function view()
 {
     if ($member = $this->getMemberFromRequest()) {
         //shift the request params
         $this->request->shiftAllParams();
         $this->request->shift();
         $record = new MemberProfilePage(array('ID' => -1, 'Content' => '', 'ParentID' => $this->ID, 'MemberID' => $member->ID, 'URLSegment' => 'view/' . $member->ID));
         $cont = new MemberProfilePage_Controller($record);
         $cont->setMember($member);
         return $cont;
     }
     return $this->httpError(404);
 }
 public function ProfileLink($action = null)
 {
     if ($directorypage = MembersDirectoryPage::get()->first()) {
         return Controller::join_links($directorypage->Link(), "view", $this->owner->ID, $action);
     }
     return Controller::join_links(MemberProfilePage_Controller::config()->url_segment, $action);
 }
 public function UpdateForm()
 {
     $member = singleton('SecurityContext')->getMember();
     if (!$member) {
         return '';
     }
     // if there's a member profile page availble, use it
     $filter = array();
     if (class_exists('Multisites')) {
         $filter = array('SiteID' => Multisites::inst()->getCurrentSiteId());
     }
     // use member profile page if possible
     if (class_exists('MemberProfilePage') && ($profilePage = MemberProfilePage::get()->filter($filter)->first())) {
         $controller = MemberProfilePage_Controller::create($profilePage);
         $form = $controller->ProfileForm();
         $form->addExtraClass('ajax-form');
         $form->loadDataFrom($member);
         return $form;
     } else {
         $password = new ConfirmedPasswordField('Password', $member->fieldLabel('Password'), null, null, (bool) $this->ID);
         $password->setCanBeEmpty(true);
         $fields = FieldList::create(TextField::create('FirstName', $member->fieldLabel('FirstName')), TextField::create('Surname', $member->fieldLabel('Surname')), EmailField::create('Email', $member->fieldLabel('Email')), $password);
         $actions = FieldList::create($update = FormAction::create('updateprofile', 'Update'));
         $form = Form::create($this, 'UpdateForm', $fields, $actions);
         $form->loadDataFrom($member);
         $this->extend('updateProfileDashletForm', $form);
         return $form;
     }
     return;
 }