1
0
mirror of https://github.com/e107inc/e107.git synced 2025-04-16 02:26:25 +02:00

Fix for extended user fields not saving in user_extended in the case where the record is missing from the table.

This commit is contained in:
Cameron 2018-09-08 11:19:16 -07:00
parent a1c38cb364
commit 44513d2a65

View File

@ -666,24 +666,21 @@ class usersettings_front // Begin Usersettings rewrite.
}
}
// Save extended field values
if (isset($changedEUFData['data']) && count($changedEUFData['data']))
{
$ue->addFieldTypes($changedEUFData); // Add in the data types for storage
$changedEUFData['WHERE'] = '`user_extended_id` = '.$inp;
//print_a($changedEUFData);
if (false === $sql->retrieve('user_extended', 'user_extended_id', 'user_extended_id='.$inp))
{
// ***** Next line creates a record which presumably should be there anyway, so could generate an error if no test first
$sql->gen("INSERT INTO #user_extended (user_extended_id, user_hidden_fields) values ('".$inp."', '')");
//print_a('New extended fields added: '.$inp.'<br />');
}
if (false === $sql->update('user_extended', $changedEUFData))
// Save extended field values
if (!empty($changedEUFData['data']))
{
$ue->addFieldTypes($changedEUFData); // Add in the data types for storage
$changedEUFData['_DUPLICATE_KEY_UPDATE'] = true; // update record if key found, otherwise INSERT.
$changedEUFData['data']['user_extended_id'] = $inp;
if (false === $sql->insert('user_extended', $changedEUFData))
{
$message .= '<br />Error updating EUF';
}
}
// Now see if we need to log anything. First check the options and class membership