iaField::keepValues PHP Method

keepValues() public static method

Sets elements of array according to provided fields structure
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)
return 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);
        }
    }

Usage Example

Exemplo n.º 1
0
     // 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;