/** * Hook for children views to allow them attach fields to the form object. * Children views usually should override this method. * * @return void */ protected function setFormFields(&$_form, $row) { $language = JFactory::getLanguage(); $language->load('', JPATH_ADMINISTRATOR); $language->load('com_users', JPATH_ADMINISTRATOR); // Import JForm jimport('joomla.form.form'); // Determine form name and path $formName = 'K2' . ucfirst($this->getName()) . 'Form'; $formPath = JPATH_ADMINISTRATOR . '/components/com_users/models/forms/user.xml'; // Convert JRegistry instances to plain object so JForm can bind them if ($row->id) { $row->params = $row->params->toObject(); } // Get the form instance $form = JForm::getInstance($formName, $formPath); // Bind values $form->bind($row); $form->setValue('password', null); $form->setValue('password2', null); // Attach the JForm fields to the form foreach ($form->getFieldsets() as $fieldset) { $array = array(); foreach ($form->getFieldset($fieldset->name) as $field) { $tmp = new stdClass(); $tmp->label = $field->label; $tmp->input = $field->input; $array[$field->name] = $tmp; } $name = $fieldset->name; $_form->{$name} = $array; } JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_users/models'); $model = JModelLegacy::getInstance('User', 'UsersModel'); if ($row->id) { $assignedGroups = $model->getAssignedGroups($row->id); } else { $assignedGroups = null; } $_form->groups = JHtml::_('access.usergroups', 'groups', $assignedGroups, true); require_once JPATH_ADMINISTRATOR . '/components/com_k2/helpers/html.php'; $_form->gender = K2HelperHTML::gender('gender', $row->gender); require_once JPATH_ADMINISTRATOR . '/components/com_k2/helpers/extrafields.php'; $_form->extraFields = K2HelperExtraFields::getUserExtraFieldsGroups($row->extra_fields); require_once JPATH_ADMINISTRATOR . '/components/com_k2/classes/editor.php'; $config = JFactory::getConfig(); $editor = K2Editor::getInstance($config->get('editor')); $_form->description = $editor->display('description', $row->description, '100%', '300', '40', '5'); }