Beispiel #1
0
 /**
  * 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);
     }
 }
Beispiel #2
0
 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);
 }
Beispiel #3
0
 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);
 }
Beispiel #4
0
 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);
 }