/** * retrieve a user * * @param int $id ID for the user * * @return XoopsUser */ public function getUser($id) { if (!isset($this->_members[$id])) { $this->_members[$id] = $this->_uHandler->get($id); } return $this->_members[$id]; }
function user_form($edit = false) { global $rmTpl; define('RMCSUBLOCATION', 'newuser'); $query = rmc_server_var($_GET, 'query', ''); $query = $query == '' ? '' : base64_decode($query); $db = XoopsDatabaseFactory::getDatabaseConnection(); if ($edit) { $uid = rmc_server_var($_GET, 'uid', 0); if ($uid <= 0) { redirectMsg('users.php?' . $query, __('The specified user is not valid!', 'rmcommon'), 1); } $uh = new XoopsUserHandler($db); $user = $uh->get($uid); if ($user->isNew()) { redirectMsg('users.php?' . $query, __('The specified user does not exists!', 'rmcommon'), 1); } } RMFunctions::create_toolbar(); RMBreadCrumb::get()->add_crumb(__('Users Management', 'rmcommon'), 'users.php'); RMBreadCrumb::get()->add_crumb($edit ? __('Edit User', 'rmcommon') : __('Add User', 'rmcommon')); $rmTpl->assign('xoops_pagetitle', $edit ? __('Edit User', 'rmcommon') : __('Add User', 'rmcommon')); xoops_cp_header(); $form = new RMForm(__($edit ? 'Editing User' : 'Add new user', 'rmcommon'), 'user_form', 'users.php'); // Uname $form->addElement(new RMFormText(__('Username', 'rmcommon'), 'uname', 50, 50, $edit ? $user->uname() : ''), true); $form->element('uname')->setDescription(__("This field also will be the user login name.", 'rmcommon')); // Full Name $form->addElement(new RMFormText(__('Full name', 'rmcommon'), 'name', 50, 150, $edit ? $user->name() : '')); $form->element('name')->setDescription(__("This field must contain firstname and lastname.", 'rmcommon')); // Email $form->addElement(new RMFormText(__('Email address', 'rmcommon'), 'email', 50, 150, $edit ? $user->email() : ''), true, 'email'); // Password $form->addElement(new RMFormText(__($edit ? 'New password' : 'Password', 'rmcommon'), 'password', 50, 50, '', true), $edit ? false : true); $form->element('password')->setDescription(__('The password should be at least eight characters long. To make it stronger, use upper and lower case letters, numbers and symbols like ! " ? $ % ^ &', 'rmcommon')); $form->addElement(new RMFormText(__('Repeat Password', 'rmcommon'), 'passwordc', 50, 50, '', true), $edit ? false : true); $form->element('passwordc')->setDescription(__('Type password again.', 'rmcommon')); // Web $form->addElement(new RMFormText(__('URL (Blog or personal website)', 'rmcommon'), 'url', 50, 250, $edit ? $user->getVar('url') : '')); // Timezone $form->addElement(new RMFormTimeZoneField(__('Time zone', 'rmcommon'), 'timezone', 0, 0, $edit ? $user->getVar('timezone_offset') : '')); // Groups $form->addElement(new RMFormGroups(__('Assign to groups', 'rmcommon'), 'groups', 1, 1, 3, $edit ? $user->groups() : '')); // Other options by API $form = RMEvents::get()->run_event('rmcommon.user.form', $form, $edit, isset($user) ? $user : null); // Action $form->addElement(new RMFormHidden('action', $edit ? 'saveedit' : 'save')); if ($edit) { $form->addElement(new RMFormHidden('uid', $user->uid())); } // Submit and cancel buttons $ele = new RMFormButtonGroup(''); $ele->addButton('sbt', __($edit ? 'Edit User' : 'Add user', 'rmcommon'), 'submit'); $ele->addButton('cancel', __('Cancel', 'global'), 'button', 'onclick="history.go(-1);"'); $form->addElement($ele); $form->display(); xoops_cp_footer(); }