Pommo_Fields::update PHP Method

update() public method

returns success (bool)
public update ( &$in )
    function update(&$in)
    {
        $dbo =& Pommo::$_dbo;
        $in['array'] = empty($in['array']) ? null : serialize($in['array']);
        $query = "\n            UPDATE " . $dbo->table['fields'] . "\n            SET\n            [field_active='%S',]\n            [field_ordering=%I,]\n            [field_name='%S',]\n            [field_prompt='%S',]\n            [field_normally='%S',]\n            [field_array='%S',]\n            [field_required='%S',]\n            [field_type='%S',]\n            field_id=field_id\n            WHERE field_id=%i";
        $query = $dbo->prepare($query, @array($in['active'], $in['ordering'], $in['name'], $in['prompt'], $in['normally'], $in['array'], $in['required'], $in['type'], $in['id']));
        return $dbo->query($query) ? TRUE : FALSE;
    }

Usage Example

Example #1
0
 $validator->addData('field_name', 'Other', false);
 $validator->addData('field_prompt', 'Other', false);
 $validator->addData('field_required', 'matchRegex', false, '!^(on|off)$!');
 $validator->addData('field_active', 'matchRegex', false, '!^(on|off)$!');
 if ($result = $validator->checkData()) {
     // __ FORM IS VALID
     // TODO -> Which below logic is better? the computed diff, or send all fields for update?
     /*
     // make a difference between updated & original field
     $update = array_diff_assoc(Pommo_Fields::makeDB($_POST),$field);
     // restore the ID
     $update['id'] = $field['id'];
     */
     // let MySQL do the difference processing
     $update = Pommo_Fields::makeDB($_POST);
     if (!Pommo_Fields::update($update)) {
         $json->fail('error updating field');
     }
     $json->add('callbackFunction', 'updateField');
     $json->add('callbackParams', $update);
     $json->success(Pommo::_T('Settings updated.'));
 } else {
     // __ FORM NOT VALID
     $fieldErrors = array();
     $errors = $validator->getErrors();
     foreach ($errors as $key => $val) {
         $fieldErrors[] = array('field' => $key, 'message' => $val);
     }
     $json->add('fieldErrors', $fieldErrors);
     $json->fail(Pommo::_T('Please review and correct errors with your submission.'));
 }