public $widget = 'IPF_Form_Widget_FileInput';
public $move_function = 'IPF_Form_Field_moveToUploadFolder';
public $remove_function = 'IPF_Form_Field_removeFile';
+ public $rename_function = 'IPF_Form_Field_renameFile';
public $max_size = 8388608; // 8MB
public $move_function_params = array();
IPF::loadFunction($this->remove_function);
return call_user_func($this->remove_function, $value['data']);
}
+ if (@$value['name']!=@$value['rename']){
+ IPF::loadFunction($this->rename_function);
+ return call_user_func($this->rename_function, &$value);
+ }
$value = $value['data'];
-
+
if ($value['name']=='')
return '';
+
parent::clean($value);
$errors = array();
}
-function IPF_Form_Field_removeFile($value, $params=array())
-{
+function IPF_Form_Field_removeFile($value, $params=array()){
return null;
}
+
+function IPF_Form_Field_renameFile($value, $params=array()){
+ $upload_path = IPF::getUploadPath($params);
+ $old_name = @$upload_path.DIRECTORY_SEPARATOR.$value['name'];
+ $new_name = @$upload_path.DIRECTORY_SEPARATOR.$value['rename'];
+ @rename($old_name, $new_name);
+ return @$value['rename'];
+}
$value = $value['data'];
if (is_string($value) && $value!=''){
if ($this->allow_extended){
- $sim = '<nobr>Currently: <a target="_blank" href="'.IPF::getUploadUrl($this->additional_params).$value.'">'.$value.'</a>';
+ $sim = '<nobr>Currently: <input name="'.$name.'_name" value="'.$value.'" type="hidden" /><input name="'.$name.'_rename" value="'.$value.'" id="id_'.$name.'_rename" type="text" style="width:150px;" /> <a target="_blank" href="'.IPF::getUploadUrl($this->additional_params).$value.'">view</a>';
if ($this->allow_delete)
$sim .= ' | <input name="'.$name.'_remove" value="1" id="id_'.$name.'_remove" type="checkbox" /> <label class="file_remove" for="id_'.$name.'_remove">Remove</label></nobr>';
$sim .= ' Change:';
if ($data[$name.'_remove']==1)
$remove = true;
$res = array('data'=>$data[$name], 'remove'=>$remove);
- return $res;
+ if (isset($data[$name.'_rename']))
+ $res['rename'] = $data[$name.'_rename'];
+ if (isset($data[$name.'_name']))
+ $res['name'] = $data[$name.'_name'];
+ return $res;
}
return null;
}
public function valueToFormData($name, $data){
- if (isset($data[$name])) {
+ if (isset($data[$name])) {
$remove = false;
if (isset($data[$name.'_remove']))
if ($data[$name.'_remove']==1)