Beispiel #1
0
 /**
  * KsenMartModelProfile::saveUser()
  * 
  * @return
  */
 public function saveUser()
 {
     $this->onExecuteBefore('saveUser');
     $jinput = JFactory::getApplication()->input;
     $data = $jinput->get('form', array(), 'array');
     if (!empty($data['name'])) {
         $data['name'] = $data['name'] . ' ';
     }
     if (!empty($data['last_name'])) {
         $data['name'] .= $data['last_name'] . ' ';
     }
     if (!empty($data['first_name'])) {
         $data['name'] .= $data['first_name'] . ' ';
     }
     if (!empty($data['middle_name'])) {
         $data['name'] .= $data['middle_name'];
     }
     if (!empty($data['id'])) {
         $pk = $data['id'];
     } else {
         $pk = (int) $this->getState('user.id');
     }
     $km_user = KSUsers::getUser();
     $user = JUser::getInstance($pk);
     if (!$user->bind($data)) {
         return $user->getError();
     }
     if (!$user->save()) {
         return $user->getError();
     }
     $user_o = new stdClass();
     $user_o->id = $user->id;
     $user_o->region_id = $data['region'];
     $user_o->phone = $data['phone'];
     $user_o->first_name = $data['first_name'];
     $user_o->last_name = $data['last_name'];
     $user_o->middle_name = $data['middle_name'];
     try {
         $this->_db->updateObject('#__ksen_users', $user_o, 'id');
     } catch (Exception $e) {
     }
     $f_set = null;
     $f_values = $jinput->get('field', array(), 'array');
     if (!empty($f_values)) {
         $query = $this->_db->getQuery(true);
         $columns = array('id', 'field_id', 'user_id', 'value');
         foreach ($f_values as $key => $value) {
             $field_id = !empty($km_user->{'field_' . $key}->id) ? $km_user->{'field_' . $key}->id : 'NULL';
             $values = array($field_id, $key, $user->id, $this->_db->quote($value));
             $tmp = '(' . implode(',', $values) . ')';
             $query->values(implode(',', $values));
         }
         $query->insert(KSDb::quoteName('#__ksen_user_fields_values'))->columns(KSDb::quoteName($columns));
         $query .= ' ON DUPLICATE KEY UPDATE ' . $this->_db->quotename('value') . ' = VALUES(' . $this->_db->quotename('value') . ')';
         $this->_db->setQuery($query);
         try {
             $result = $this->_db->query();
             // Use $this->_db->execute() for Joomla 3.0.
         } catch (Exception $e) {
         }
     }
     $sendEmail = $jinput->get('sendEmail', null, 'string');
     if ($sendEmail == 'on') {
         KSUsers::setUserSubscribeGroup($user->id);
     } else {
         KSUsers::removeUserSubscribeGroup($user->id);
     }
     $this->onExecuteAfter('saveUser', array(&$this));
 }