/**
  * Update config for given values
  * @param array $vals.  An array of values (presumably from $_POST) to update magic data from
  * @returns  true on sucess
  */
 public function processValues($vals)
 {
     I2CE::raiseError(print_r($vals, true));
     if (!parent::processValues($vals)) {
         return false;
     }
     if (array_key_exists('val', $vals) && is_array($vals['val'])) {
         foreach ($vals['val'] as $key => $val) {
             if (!is_scalar($val) || !I2CE_MagicDataNode::checkKey($key)) {
                 continue;
             }
             $this->setTranslatableField($key, $val);
         }
     }
     if (array_key_exists('do_new', $vals) && array_key_exists('new_key', $vals) && array_key_exists('new_val', $vals) && $vals['do_new'] && is_scalar($key = $vals['new_key']) && is_scalar($val = $vals['new_val']) && I2CE_MagicDataNode::checkKey($key) && !in_array($key, $this->storage->getKeys())) {
         $this->setTranslatableField($key, $val);
     }
     if (array_key_exists('delete', $vals) && is_array($vals['delete'])) {
         foreach ($vals['delete'] as $key => $selected) {
             if (!$selected || !is_scalar($val) || !I2CE_MagicDataNode::checkKey($key) || !($mdNode = $this->storage->traverse($key, false, false)) instanceof I2CE_MagicDataNode) {
                 continue;
             }
             $mdNode->erase();
         }
     }
     return true;
 }
 /**
  * Update config for given values
  * @param array $vals.  An array of values (presumably from $_POST) to update magic data from
  * @returns  true on sucess
  */
 public function processValues($vals)
 {
     if (array_key_exists('check_bad_percent', $vals) && is_scalar($c = $vals['check_bad_percent'])) {
         $this->setField('check_bad_percent', $c ? 1 : 0);
     }
     return parent::processValues($vals);
 }
 /**
  * Update config for given values
  * @param array $vals.  An array of values (presumably from $_POST) to update magic data from
  * @returns  true on sucess
  */
 public function processValues($vals)
 {
     if (array_key_exists('unique', $vals) && is_scalar($un = $vals['unique'])) {
         $this->setField('unique', $un ? 1 : 0);
     }
     return parent::processValues($vals);
 }
 /**
  * Update config for given values
  * @param array $vals.  An array of values (presumably from $_POST) to update magic data from
  * @returns  true on sucess
  */
 public function processValues($vals)
 {
     if (array_key_exists('max_size_kb', $vals) && is_scalar($v = strval($vals['max_size_kb'])) && (ctype_digit($v) || $v === '')) {
         $this->setField('max_size_kb', $v);
     }
     return parent::processValues($vals);
 }
 /**
  * Update config for given values
  * @param array $vals.  An array of values (presumably from $_POST) to update magic data from
  * @returns  true on sucess
  */
 public function processValues($vals)
 {
     foreach (self::$int_keys as $k) {
         if (array_key_exists($k, $vals) && ctype_digit($v = strval($vals[$k]))) {
             $this->setField($k, $v);
         }
     }
     return parent::processValues($vals);
 }
 /**
  * Update config for given values
  * @param array $vals.  An array of values (presumably from $_POST) to update magic data from
  * @returns  true on sucess
  */
 public function processValues($vals)
 {
     foreach (array_keys(self::$bool_keys) as $k) {
         if (array_key_exists($k, $vals) && is_scalar($vals[$k])) {
             $this->setField($k, $k ? 1 : 0);
         }
     }
     if (array_key_exists('key_sort', $vals) && is_scalar($sort = $vals['key_sort']) && in_array($sort, self::$allowed_sorts)) {
         $this->setField('key_sort', $sort);
     }
     return parent::processValues($vals);
 }
 public function processValues($vals)
 {
     if (array_key_exists('fields', $vals)) {
         $this->setField('fields', $vals['fields']);
     }
     if (array_key_exists('style', $vals)) {
         $this->setField('style', $vals['style']);
     }
     if (array_key_exists('display_report', $vals)) {
         $this->setField('display_report', $vals['display_report']);
     }
     return parent::processValues($vals);
 }
 public function processValues($vals)
 {
     if (!parent::processValues($vals)) {
         return false;
     }
     $fieldnames = $this->getFieldNames();
     if (array_key_exists('required', $vals) && is_array($vals['required'])) {
         $required_fields = array();
         foreach ($vals['required'] as $field => $required) {
             if (!$required || !in_array($field, $fieldnames)) {
                 continue;
             }
             $required_fields[] = $field;
         }
         $this->storage->eraseChildren();
         $this->storage->setValue($required_fields);
     }
     return true;
 }
 public function processValues($vals)
 {
     // Call I2CE_Swiss->processValues() as there are no specific values to process
     if (!parent::processValues($vals)) {
         return false;
     }
     // Set the form display name
     if (array_key_exists('form_display_name', $vals)) {
         $this->setField('form_display_name', $vals['form_display_name']);
     }
     // Set the display order
     if (array_key_exists('display_order', $vals) && is_array($vals['display_order'])) {
         $display_order = array();
         $actual = 0;
         $correct = 0;
         $i = 0;
         foreach ($vals['display_order'] as $v) {
             $actual += $v;
             $correct += ++$i;
             $display_order[] = '';
         }
         if ($correct != $actual) {
             I2CE::raiseError('Correct: ' . $correct . ' Actual: ' . $actual);
             return false;
         }
         foreach ($vals['display_order'] as $child => $index) {
             $display_order[$index - 1] = $child;
         }
         $comma_sep = implode(',', $display_order);
         $this->setField('display_order', $comma_sep);
     }
     // Set the title for the page
     if (array_key_exists('title', $vals)) {
         $this->setField('title', $vals['title']);
     }
     if (array_key_exists('task', $vals) && is_array($vals['task']) && ($tasksNode = $this->storage->traverse('task', true, false)) instanceof I2CE_MagicDataNode) {
         $tasks = I2CE::getConfig()->getAsArray("/I2CE/tasks/task_description");
         $new_tasks = array();
         foreach ($vals['task'] as $task => $checked) {
             if (!I2CE_MagicDataNode::checkKey($task) || !is_scalar($checked)) {
                 continue;
             }
             if ($this->storage->is_scalar("task/{$task}") || $checked) {
                 //either key was already set and we are ovewriting it, or we are adding a new key with a set value
                 $new_tasks[] = $task;
             }
         }
         $tasksNode->eraseChildren();
         $tasksNode->setValue($new_tasks);
     }
     /**
      *This checks to see if there are any checkboxes selected. If not, delete them all.
      */
     if (!array_key_exists('task', $vals) && ($tasksNode = $this->storage->traverse('task', true, false)) instanceof I2CE_MagicDataNode) {
         $tasksNode->eraseChildren();
     }
     if (array_key_exists('childOrder', $vals) && is_array($vals['childOrder']) && ($orderNode = $this->storage->traverse('child_form_order', true, false)) instanceof I2CE_MagicDataNode) {
         $new_child_order = array();
         $actual = 0;
         $correct = 0;
         $i = 0;
         foreach ($vals['childOrder'] as $v) {
             $actual += $v;
             $correct += ++$i;
             $new_child_order[] = '';
         }
         if ($correct != $actual) {
             I2CE::raiseError('Correct: ' . $correct . ' Actual: ' . $actual);
             return false;
         }
         foreach ($vals['childOrder'] as $child => $index) {
             $new_child_order[$index - 1] = $child;
         }
         $orderNode->eraseChildren();
         $orderNode->setValue($new_child_order);
     }
     /* Attempting to 
             // Set the display order
             if (array_key_exists('childOrder',$vals) && is_array($vals['childOrder']) ) {
     		
     			$display_order = array();
     			foreach($vals['childOrder'] as $k) {
     				$display_order[] = '';
                 }
     			foreach($vals['childOrder'] as $child=>$index) {
     				$display_order[($index - 1)] = $child;
                 }
     			$comma_sep = implode( ',', $display_order );
     			$this->setField('child_form_order', $comma_sep);
     		} */
     return true;
 }
 /**
  * Update config for given values
  * @param array $vals.  An array of values (presumably from $_POST) to update magic data from
  * @returns  true on sucess
  */
 public function processValues($vals)
 {
     if (array_key_exists('hook', $vals) && is_scalar($h = $vals['hook'])) {
         $this->setField('hook', $h);
     }
     if (array_key_exists('data', $vals) && is_array($vals['data'])) {
         foreach ($vals['data'] as $key => $val) {
             if (!I2CE_MagicDataNode::checkKey($key) || !is_scalar($val)) {
                 continue;
             }
             if ($val === '') {
                 if (($md = $this->storage->traverse("data/{$key}", false, false)) instanceof I2CE_MagicDataNode) {
                     I2CE::raiseError("Erasing");
                     $md->erase();
                 }
             } else {
                 if ($this->storage->is_scalar("data/{$key}") || $val) {
                     //either key was already set and we are ovewriting it, or we are adding a new key with a set value
                     $this->storage->data->{$key} = $val;
                 }
             }
         }
     }
     return parent::processValues($vals);
 }