{
public $widget = 'IPF_Form_Widget_FileInput';
public $move_function = 'IPF_Form_Field_moveToUploadFolder';
+ public $remove_function = 'IPF_Form_Field_removeFile';
public $max_size = 2097152; // 2MB
public $move_function_params = array();
function clean($value)
{
+ if ($value['remove']==1){
+ //print_r($value);
+ IPF::loadFunction($this->remove_function);
+ return call_user_func($this->remove_function, $value['data']);
+ }
+
+ $value = $value['data'];
+
if ($value['name']=='')
return '';
}
}
+
function IPF_Form_Field_moveToUploadFolder($value, $params=array())
{
$name = IPF_Utils::cleanFileName($value['name']);
@chmod($dest, 0666);
return $name;
}
+
+
+function IPF_Form_Field_removeFile($value, $params=array())
+{
+ /*
+ $name = IPF_Utils::cleanFileName($value['name']);
+ $upload_path = IPF::get('upload_path', '/tmp');
+ if (isset($params['upload_path'])) {
+ $upload_path = $params['upload_path'];
+ }
+ $dest = $upload_path.DIRECTORY_SEPARATOR.$name;
+ if (!move_uploaded_file($value['tmp_name'], $dest)) {
+ throw new IPF_Exception_Form(__('An error occured when upload the file. Please try to send the file again.'));
+ }
+ @chmod($dest, 0666);
+ */
+ return null;
+}
public function render($name, $value, $extra_attrs=array())
{
+ $value = $value['data'];
+ $sim = '';
+ if (is_string($value) && $value!=''){
+ $sim = 'Currently: <a target="_blank" href="'.IPF::get('upload_url').$value.'">'.$value.'</a> | <input name="'.$name.'_remove" value="1" id="id_'.$name.'_remove" type="checkbox" /> <label for="id_'.$name.'_remove">Remove</label><br />Change:';
+ }
$value = '';
- return parent::render($name, $value, $extra_attrs);
+ return $sim.parent::render($name, $value, $extra_attrs);
}
public function valueFromFormData($name, $data)
{
if (isset($data[$name])) {
- return $data[$name];
+ $remove = (int)$data[$name.'_remove'];
+ $res = array('data'=>$data[$name], 'remove'=>$remove);
+ return $res;
}
return null;
}
class IPF_Form_Widget_Image extends IPF_Form_Widget_FileInput
{
- public function render($name, $value, $extra_attrs=array())
- {
- $sim = '';
- if ($value!='')
- $sim = 'Currently: <a target="_blank" href="'.IPF::get('upload_url').$value.'">'.$value.'</a><br />Change:';
- $value = '';
- return $sim.parent::render($name, $value, $extra_attrs);
- }
}
\ No newline at end of file
foreach ($cleaned_values as $key=>$val) {
$validators = $this->getTable()->getFieldValidators($key);
if (array_key_exists('image',$validators) || array_key_exists('file',$validators)){
- if ($val=='')
+ if (($val!==null) && ($val==''))
continue;
}
$this->$key = $val;