function updateData($userOrig = null) { global $errorMsg; $user = null; if ($userOrig == null) { $user = new User(); } else { $user = new User($userOrig->email, $userOrig->password); } $objectVars = array_keys(get_object_vars($user)); foreach ($_REQUEST as $key => $value) { if (NP_startsWith("user_", $key)) { $path = split("_", $key); $property = $path[1]; if (in_array($property, $objectVars)) { if (is_array($user->{$property})) { if (isset($_REQUEST['sameData']) && $_REQUEST['sameData'] == "true") { if ($property == "billingData") { $user->billingData = array_merge($user->billingData, array($path[2] => $value)); $user->shippingData = array_merge($user->shippingData, array($path[2] => $value)); } } else { $user->{$property} = array_merge($user->{$property}, array($path[2] => $value)); } } else { $user->{$property} = $value; } } } } if (isset($_REQUEST['user_password']) && isset($_REQUEST['newPassword1']) && isset($_REQUEST['newPassword2']) && $_REQUEST['newPassword1'] == $_REQUEST['newPassword2']) { if ($user->password == $userOrig->password) { $user->password = $_REQUEST['newPassword1']; $cart = get_cart(); $cart->user->update($user); update_cart($cart); } else { global $error; $errorMsg = _("El password antiguo no es correcto o los nuevos no coinciden."); return false; } } else { $cart = get_cart(); $cart->user->update($user); update_cart($cart); } /* $cart = get_cart(); print_r($cart->user); $cart->user->update(); */ // reload data from DDBB $cart->user = new User($cart->user->email, $cart->user->password); update_cart($cart); return true; }
function NP_loadDataInto(&$obj, &$data, $prefix = "", $ddbb_mapping = null) { $objectVars = array_keys(get_object_vars($obj)); foreach ($data as $key => $value) { if (NP_startsWith($prefix, $key)) { $path = split("_", $key); $property = $path[1]; if (in_array($property, $objectVars)) { if (is_array($obj->{$property})) { if (is_string($value)) { $obj->{$property} = NP_set_i18n($obj->{$property}, $value); } else { $obj->{$property} = array_merge($obj->{$property}, array($path[2] => $value)); } } else { if ($ddbb_mapping != null && $ddbb_mapping[$property] == "STRING_I18N" || $ddbb_mapping[$property] == "TEXT_I18N") { $value = NP_set_i18n(array(), $value); } $obj->{$property} = $value; } } } } }