/** * Responsible to display the edit profile form. * */ public function edit() { CFactory::setActiveProfile(); $user = CFactory::getUser(); $mainframe = JFactory::getApplication(); $jinput = $mainframe->input; $action = $jinput->post->get('action', ''); if ($user->id == 0) { /* Force redirect back to homepage */ JFactory::getApplication()->redirect(CRoute::_('index.php?option=com_community&view=frontpage', false)); } // Get/Create the model $model = $this->getModel('profile'); $model->setProfile('hello me'); $data = new stdClass(); $data->profile = $model->getEditableProfile($user->id, $user->getProfileType()); if ($action == 'profile') { /* JomSocial profile update */ if ($this->_saveProfile()) { $msg = JText::_('COM_COMMUNITY_SETTINGS_SAVED'); $mainframe->redirect(CRoute::_('index.php?option=com_community&view=profile&task=edit', false), $msg); } else { $postData = $_POST; foreach ($data->profile['fields'] as $key => $fields) { foreach ($fields as $key2 => $field) { $fieldValue = isset($postData['field' . $field['id']]) ? $postData['field' . $field['id']] : NULL; if (is_array($fieldValue)) { $glue = ''; if ($field['type'] == 'birthdate') { $glue = '-'; } else { if ($field['type'] == 'checkbox') { $glue = ','; } } $fieldValue = implode($glue, $fieldValue); } $data->profile['fields'][$key][$key2]['value'] = $fieldValue; } } } } elseif ($action == 'detail') { /* Joomla! user detail update */ $this->save(); } /* template display */ $document = JFactory::getDocument(); $viewType = $document->getType(); $viewName = JRequest::getCmd('view', $this->getName()); $lang = JFactory::getLanguage(); $lang->load(COM_USER_NAME); // Check if user is really allowed to edit. //$params = $mainframe->getParams(); $params = null; // check to see if Frontend User Params have been enabled $usersConfig = JComponentHelper::getParams('com_users'); $check = $usersConfig->get('frontend_userparams'); if ($check == '1' || $check == 1 || $check == NULL) { if ($user->authorise(COM_USER_NAME, 'edit')) { $params = $user->getParameters(true); //In Joomla 1.6, $params will be a JRegistry class, whereas it was JParameter in 1.5 //render() does not exist in JRegistry. Will need to translate the JForm XML in 1.6 to those acceptable for JParameter in 1.5. if (get_class($params) != 'JParameter') { $vals = $params->toArray(); $params = CJForm::getInstance('editDetails', JPATH_ADMINISTRATOR . '/components/com_users/models/forms/user.xml'); //set data for the form foreach ($vals as $k => $v) { $params->setValue($k, 'params', $v); } } } else { //user can only edit front end value [ > 1.5, user can only edit timezone and language ] $params = $user->getParameters(true); if (get_class($params) != 'JParameter' || get_class($params) != 'CParameter') { $vals = $params->toArray(); $params = CJForm::getInstance('editDetails', JPATH_ADMINISTRATOR . '/components/com_users/models/forms/user.xml'); //set data for the form foreach ($vals as $k => $v) { //@since 2.6, accept timezone and language only if ($k == 'timezone' || $k == 'language') { $params->setValue($k, 'params', $v); } else { $stat = $params->removeField($k, 'params'); } } } } } $my = CFactory::getUser(); $config = CFactory::getConfig(); $myParams = $my->getParams(); $myDTS = $myParams->get('daylightsavingoffset'); $cOffset = $myDTS != '' ? $myDTS : $config->get('daylightsavingoffset'); $dstOffset = array(); $counter = -4; for ($i = 0; $i <= 8; $i++) { $dstOffset[] = JHTML::_('select.option', $counter, $counter); $counter++; } $offSetLists = JHTML::_('select.genericlist', $dstOffset, 'daylightsavingoffset', 'class="joms-select"', 'value', 'text', $cOffset); $data->params = $params; $data->offsetList = $offSetLists; $view = $this->getView($viewName, '', $viewType); $this->_icon = 'edit'; if (!$data->profile) { echo $view->get('error', JText::_('COM_COMMUNITY_USER_NOT_FOUND')); } else { echo $view->get(__FUNCTION__, $data); } }
public function _displayEditLayout($tpl) { // Load frontend language file. $lang = JFactory::getLanguage(); $lang->load('com_community', JPATH_ROOT); $lang->load('com_community.country', JPATH_ROOT); //Load com user language file for J!1.6 $lang->load('com_users', JPATH_ROOT); $mainframe = JFactory::getApplication(); $jinput = $mainframe->input; $userId = $jinput->request->get('id', '', 'INT'); $user = CFactory::getUser($userId); // Set the titlebar text JToolBarHelper::title($user->username, 'users'); // Add the necessary buttons JToolBarHelper::cancel('removeavatar', JText::_('COM_COMMUNITY_USERS_REMOVE_AVATAR')); JToolBarHelper::save(); JToolBarHelper::save('saveonly', JText::_('COM_COMMUNITY_SAVE')); JToolBarHelper::cancel(); $model = CFactory::getModel('Profile'); $ptype = $model->getProfileTypes(); $profile = $model->getEditableProfile($user->id, $user->getProfileType()); $config = CFactory::getConfig(); $params = $user->getParams(); $userDST = $params->get('daylightsavingoffset'); $offset = !empty($userDST) ? $userDST : $config->get('daylightsavingoffset'); $counter = -4; $options = array(); for ($i = 0; $i <= 8; $i++, $counter++) { $options[] = JHTML::_('select.option', $counter, $counter); } $offsetList = JHTML::_('select.genericlist', $options, 'daylightsavingoffset', 'class="inputbox" size="1"', 'value', 'text', $offset); $session = JFactory::getSession(); $sessionData = $session->get('postData'); $session->clear('postData'); if (isset($sessionData)) { foreach ($profile['fields'] as $key => $field) { foreach ($field as $_key => $_field) { if (isset($sessionData['field' . $_field['id']])) { if (is_array($sessionData['field' . $_field['id']])) { if ($_field['type'] == 'birthdate') { $sessionData['field' . $_field['id']] = implode('-', $sessionData['field' . $_field['id']]); } if ($_field['type'] == 'url') { $sessionData['field' . $_field['id']] = implode('', $sessionData['field' . $_field['id']]); } if ($_field['type'] == 'checkbox') { $sessionData['field' . $_field['id']] = implode(',', $sessionData['field' . $_field['id']]); } } $profile['fields'][$key][$_key]['value'] = $sessionData['field' . $_field['id']]; } } } } $user->profile = $profile; $this->assignRef('user', $user); $params = $user->getParameters(true); $params = CJForm::getInstance('editDetails', JPATH_ADMINISTRATOR . '/components/com_users/models/forms/user.xml'); $vals = $user->getParameters(); $vals = $vals->toArray(); //set data for the form foreach ($vals as $k => $v) { $params->setValue($k, 'params', $v); } $options = array(); foreach ($ptype as $pr) { $options[] = JHTML::_('select.option', $pr->id, $pr->name); } if ($options) { $profilelist = JHTML::_('select.genericlist', $options, 'profiletype', 'class="inputbox" size="1"', 'value', 'text', $user->getProfileType()); } else { $profilelist = ''; } $this->assignRef('params', $params); $this->assignRef('profilelist', $profilelist); $this->assignRef('offsetList', $offsetList); parent::display($tpl); }
public function editDetails() { $user =& JFactory::getUser(); $mainframe =& JFactory::getApplication(); $view =& $this->getView('profile'); if ($user->id == 0) { return $this->blockUnregister(); } $lang =& JFactory::getLanguage(); $lang->load(COM_USER_NAME); // Check if user is really allowed to edit. //$params =& $mainframe->getParams(); $params = null; // check to see if Frontend User Params have been enabled $usersConfig =& JComponentHelper::getParams('com_users'); $check = $usersConfig->get('frontend_userparams'); if ($check == '1' || $check == 1 || $check == NULL) { if ($user->authorize(COM_USER_NAME, 'edit')) { $params = $user->getParameters(true); //In Joomla 1.6, $params will be a JRegistry class, whereas it was JParameter in 1.5 //render() does not exist in JRegistry. Will need to translate the JForm XML in 1.6 to those acceptable for JParameter in 1.5. if ((get_class($params) != 'JParameter' || get_class($params) != 'CParameter') && C_JOOMLA_15 == 0) { CFactory::load('libraries', 'jform'); $vals = $params->toArray(); $params =& CJForm::getInstance('editDetails', JPATH_ADMINISTRATOR . '/components/com_users/models/forms/user.xml'); //set data for the form foreach ($vals as $k => $v) { $params->setValue($k, 'params', $v); } } } } $my = CFactory::getUser(); $config = CFactory::getConfig(); $myParams =& $my->getParams(); $myDTS = $myParams->get('daylightsavingoffset'); $cOffset = $myDTS != '' ? $myDTS : $config->get('daylightsavingoffset'); $dstOffset = array(); $counter = -4; for ($i = 0; $i <= 8; $i++) { $dstOffset[] = JHTML::_('select.option', $counter, $counter); $counter++; } $offSetLists = JHTML::_('select.genericlist', $dstOffset, 'daylightsavingoffset', 'class="inputbox" size="1"', 'value', 'text', $cOffset); $data = new stdClass(); $data->params = $params; $data->offsetList = $offSetLists; $this->_icon = 'edit'; echo $view->get('editDetails', $data); }
public function _displayEditLayout($tpl) { // Load frontend language file. $lang =& JFactory::getLanguage(); $lang->load('com_community', JPATH_ROOT); //Load com user language file for J!1.6 $lang->load('com_users', JPATH_ROOT); $userId = JRequest::getVar('id', '', 'REQUEST'); $user = CFactory::getUser($userId); // Set the titlebar text JToolBarHelper::title($user->username, 'users'); // Add the necessary buttons JToolBarHelper::back('Back', 'index.php?option=com_community&view=users'); JToolBarHelper::divider(); JToolBarHelper::cancel('removeavatar', JText::_('COM_COMMUNITY_USERS_REMOVE_AVATAR')); JToolBarHelper::save(); $model = CFactory::getModel('Profile'); $profile = $model->getEditableProfile($user->id, $user->getProfileType()); $config =& CFactory::getConfig(); $params = $user->getParams(); $userDST = $params->get('daylightsavingoffset'); $offset = !empty($userDST) ? $userDST : $config->get('daylightsavingoffset'); $counter = -4; $options = array(); for ($i = 0; $i <= 8; $i++, $counter++) { $options[] = JHTML::_('select.option', $counter, $counter); } $offsetList = JHTML::_('select.genericlist', $options, 'daylightsavingoffset', 'class="inputbox" size="1"', 'value', 'text', $offset); $user->profile =& $profile; $this->assignRef('user', $user); $params = $user->getParameters(true); //Joomla 1.6 patch to display extra params if (C_JOOMLA_15 == 0) { CFactory::load('libraries', 'jform'); $params =& CJForm::getInstance('editDetails', JPATH_ADMINISTRATOR . '/components/com_users/models/forms/user.xml'); $vals = $user->getParameters(); $vals = $vals->toArray(); //set data for the form foreach ($vals as $k => $v) { $params->setValue($k, 'params', $v); } } $this->assignRef('params', $params); $this->assignRef('offsetList', $offsetList); parent::display($tpl); }