]> git.andy128k.dev Git - ipf.git/commitdiff
Remove Ability for input fields
authoravl <alex.litovchenko@gmail.com>
Wed, 10 Sep 2008 02:19:00 +0000 (05:19 +0300)
committeravl <alex.litovchenko@gmail.com>
Wed, 10 Sep 2008 02:19:00 +0000 (05:19 +0300)
ipf/form/field/file.php
ipf/form/widget/fileinput.php
ipf/form/widget/image.php
ipf/orm/record.php

index b38bb56f21154daface9838fbe8889ddb359e5c2..d7cb36ac8f9e434e480743600f794bc293cf3f0e 100644 (file)
@@ -4,11 +4,20 @@ 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 $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 '';
 
@@ -49,6 +58,7 @@ class IPF_Form_Field_File extends IPF_Form_Field
     }
 }
 
+
 function IPF_Form_Field_moveToUploadFolder($value, $params=array())
 {
     $name = IPF_Utils::cleanFileName($value['name']);
@@ -63,3 +73,21 @@ function IPF_Form_Field_moveToUploadFolder($value, $params=array())
     @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;
+}
index 0fcbfd90bcad0979397188692439824f2d7a57a5..c28c8b3156407971605a1429f5c590830e4c8c6b 100644 (file)
@@ -7,14 +7,21 @@ class IPF_Form_Widget_FileInput extends IPF_Form_Widget_Input
 
     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;
     }
index e2c3040a9bfc57c5c9043c82ba1e953db39e4749..6944954812b89ee5700f6373565e47e973cb073f 100644 (file)
@@ -2,12 +2,4 @@
 
 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
index fd81dcc7381baa6a7f901adb8b7294acc7ee27c0..ff443387959fb8f98ee7ccb4c8b71b4e65489a2f 100644 (file)
@@ -1262,7 +1262,7 @@ abstract class IPF_ORM_Record extends IPF_ORM_Record_Abstract implements Countab
         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;