public static keepValues ( array &$itemData, array $fields, array $extraValues = [], array $data = null ) : void | ||
$itemData | array | resulting array |
$fields | array | standard fields structure returned by methods of this class |
$extraValues | array | values that will be merged to $itemData |
$data | array | source data (POST values are used if nothing specified) |
Résultat | void |
public static function keepValues(array &$itemData, array $fields, array $extraValues = array(), $data = null)
{
if (is_null($data)) {
$data = $_POST;
}
if (empty($data)) {
return;
}
foreach ($fields as $field) {
if ($field['type'] != self::PICTURES && $field['type'] != self::IMAGE) {
$fieldName = $field['name'];
if (isset($data[$fieldName]) && $data[$fieldName]) {
$itemData[$fieldName] = in_array($field['type'], array(self::CHECKBOX)) ? implode(',', $data[$fieldName]) : $data[$fieldName];
}
}
}
if (iaCore::ACCESS_ADMIN == iaCore::instance()->getAccessType()) {
if (isset($data['featured'])) {
$itemData['featured'] = $data['featured'];
$itemData['featured_end'] = date(iaDb::DATETIME_SHORT_FORMAT, strtotime($data['featured_end']));
}
if (isset($data['sponsored'])) {
$itemData['sponsored'] = $data['sponsored'];
if (isset($data['sponsored_end'])) {
$itemData['sponsored_end'] = date(iaDb::DATETIME_SHORT_FORMAT, strtotime($data['sponsored_end']));
}
}
empty($data['date_added']) || ($itemData['date_added'] = iaSanitize::html($data['date_added']));
empty($data['status']) || ($itemData['status'] = iaSanitize::html($data['status']));
empty($data['owner']) || ($itemData['owner'] = iaSanitize::html($data['owner']));
}
if ($extraValues) {
$itemData = array_merge($itemData, $extraValues);
}
}
// check password if (!$itemData['disable_fields']) { if (!$itemData['password']) { $error = true; $messages[] = iaLanguage::get('error_password_empty'); } else { if ($_POST['password'] != $_POST['password2']) { $error = true; $messages[] = iaLanguage::get('error_password_match'); } } } else { $itemData['password'] = ''; } } else { iaField::keepValues($itemData, $fields); $iaView->setMessages($messages); } if (!$error) { $memberId = $iaUsers->register($itemData); if ($memberId) { $iaCore->factory('log')->write(iaLog::ACTION_CREATE, array('item' => 'member', 'name' => $itemData['fullname'], 'id' => $memberId, 'type' => iaCore::FRONT)); } // process sponsored plan if ($memberId && isset($_POST['plan_id']) && is_numeric($_POST['plan_id'])) { $plan = $iaPlan->getById($_POST['plan_id']); $usergroup = $plan['usergroup'] ? $plan['usergroup'] : iaUsers::MEMBERSHIP_REGULAR; $iaDb->update(array('id' => $memberId, 'usergroup_id' => $usergroup), 0, 0, iaUsers::getTable()); if ($plan['cost'] > 0) { $itemData['id'] = $memberId; $itemData['member_id'] = $memberId;