]> git.andy128k.dev Git - ipf.git/commitdiff
12
authoravl <alex.litovchenko@gmail.com>
Thu, 13 Aug 2009 15:34:20 +0000 (18:34 +0300)
committeravl <alex.litovchenko@gmail.com>
Thu, 13 Aug 2009 15:34:20 +0000 (18:34 +0300)
ipf/form/field/file.php
ipf/form/widget/fileinput.php

index 9948a6e5e797ae92a9ef120e2e577eea93c61a35..c3c34623c20420e4a239f7c12475538788ac7ebc 100644 (file)
@@ -5,6 +5,7 @@ class IPF_Form_Field_File extends IPF_Form_Field
     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();
 
@@ -14,10 +15,15 @@ class IPF_Form_Field_File extends IPF_Form_Field
             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();
@@ -69,7 +75,14 @@ function IPF_Form_Field_moveToUploadFolder($value, $params=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'];
+}
index 50632558b19f496e81e98e8c4f19c4b95dfc23a4..edecf4c0ed4d578ae12b3fcf1592279f622f612d 100644 (file)
@@ -16,7 +16,7 @@ class IPF_Form_Widget_FileInput extends IPF_Form_Widget_Input
             $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 .= '&nbsp;|&nbsp;<input name="'.$name.'_remove" value="1" id="id_'.$name.'_remove" type="checkbox" />&nbsp;<label class="file_remove" for="id_'.$name.'_remove">Remove</label></nobr>';
                                        $sim .= ' Change:';
@@ -36,13 +36,17 @@ class IPF_Form_Widget_FileInput extends IPF_Form_Widget_Input
                 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)