output. It would then call
$this->write_form_variables() to auto populate any found forms.
*/
private function set_form_field_value($form,$field,$value) {
$this->form_data[$form] = !isset($this->form_data[$form]) ? array() : $this->form_data[$form];
$this->form_data[$form][$field] = $value;
}
private function write_form_variables() {
if(sizeof($this->form_data) == 0 || !preg_match_all('/
/is',$this->output,$forms)) :
return false;
endif;
foreach($forms[0] as $form) :
$new_form = $form;
eregi('name="([a-zA-Z0-9]+)"',$form,$name);
$form_data = !isset($this->form_data[$name[1]]) ? array() : $this->form_data[$name[1]];
preg_match_all('/<(input|textarea|select).*?name="(.*?)".*?>/',$form,$fields);
for($i=0;$i'),array('',' value="'.$field_value.'">'),$field_def);
$new_form = str_replace($field_def,$new_field_def,$new_form);
break;
case 'checkbox' :
case 'radio' :
$new_field_def = str_replace(array(' checked="checked','value="'.$field_value.'"'),array('','value="'.$field_value.'" checked="checked"'),$field_def);
$new_form = str_replace($field_def,$new_field_def,$new_form);
break;
endswitch;
break;
case 'textarea':
$new_form = str_replace($field_def.'',$field_def.$field_value.'',$new_form);
break;
case 'select' :
if(!preg_match('/'.$field_def.'(.*?)<\/select>/is',$new_form,$field_def)) :
continue;
endif;
$field_def = $field_def[0];
$new_field_def = str_replace(array(' selected="selected"','value="'.$field_value.'"'),array('','value="'.$field_value.'" selected="selected"'),$field_def);
$new_form = str_replace($field_def,$new_field_def,$new_form);
break;
endswitch;
endfor;
$this->output = str_replace($form,$new_form,$this->output);
endforeach;
}
}
?>