]> git.andy128k.dev Git - ipf.git/commitdiff
Admin customize form
authoravl <alex.litovchenko@gmail.com>
Thu, 11 Sep 2008 03:11:30 +0000 (06:11 +0300)
committeravl <alex.litovchenko@gmail.com>
Thu, 11 Sep 2008 03:11:30 +0000 (06:11 +0300)
ipf.php
ipf/admin/model.php
ipf/form.php
ipf/form/field/file.php
ipf/form/field/image.php
ipf/form/model.php
ipf/form/widget/fileinput.php
ipf/image/thumbnail.php

diff --git a/ipf.php b/ipf.php
index dbf2389a8f940f17cbec2c621c3e6dcf09984011..31c84c4e9e8f66df25c5fe4c2e819fbc37686320 100644 (file)
--- a/ipf.php
+++ b/ipf.php
@@ -9,11 +9,6 @@ function __autoload( $class_name ){
             $s .= '/';                                                  
         $s .= strtolower( $folder );                                            
     }
-    if ($s=='basesession'){
-       //print_r( debug_backtrace(false));
-       debug_print_backtrace();
-       die ('zzz');
-    }
     require_once($s.'.php');
 }
 
@@ -140,6 +135,14 @@ final class IPF{
             return new $model($params);
         return new $model();
     }
+
+    public static function getUploadPath($params=array()){
+        $upload_path = IPF::get('upload_path', '/tmp');
+        if (isset($params['upload_path'])) {
+            $upload_path = $params['upload_path'];
+        }
+        return $upload_path;
+    }
 }
 
 function __($str)
index f6b06a4532a290a89d289b2f2a1f6d25a91d4569..4eab8cb6a0eafe9f05d4198fc5135cd491285ab8 100644 (file)
@@ -140,11 +140,23 @@ class IPF_Admin_Model{
     protected function UrlForResult(&$o){
         return  $o->__get($this->qe->getTable()->getIdentifier()).'/';
     }
+
+    protected function _getForm($model_obj, $data, $extra){
+        return IPF_Shortcuts::GetFormForModel($model_obj,$data,$extra);
+    }
+
+    protected function _getEditForm($model_obj, $data, $extra){
+        return $this->_getForm($model_obj, $data, $extra);
+    }
+
+    protected function _getAddForm($model_obj, $data, $extra){
+        return $this->_getForm($model_obj, $data, $extra);
+    }
     
     // Views Function
     public function AddItem($request, $lapp, $lmodel){
         if ($request->method == 'POST'){
-            $form = IPF_Shortcuts::GetFormForModel($this->model,$request->POST+$request->FILES,array('user_fields'=>$this->fields()));
+            $form = $this->_getAddForm($this->model,$request->POST+$request->FILES,array('user_fields'=>$this->fields()));
             $this->_setupAddForm($form);
             if ($form->isValid()) {
                 $item = $form->save();
@@ -154,7 +166,7 @@ class IPF_Admin_Model{
             }
         }
         else{
-            $form = IPF_Shortcuts::GetFormForModel($this->model,null,array('user_fields'=>$this->fields()));
+            $form = $this->_getAddForm($this->model,null,array('user_fields'=>$this->fields()));
             $this->_setupAddForm($form);
         }
         $context = array(
@@ -169,7 +181,7 @@ class IPF_Admin_Model{
 
     public function EditItem($request, $lapp, $lmodel, $o){
         if ($request->method == 'POST'){
-            $form = IPF_Shortcuts::GetFormForModel($o,$request->POST+$request->FILES,array('user_fields'=>$this->fields()));
+            $form = $this->_getEditForm($o,$request->POST+$request->FILES,array('user_fields'=>$this->fields()));
             $this->_setupEditForm($form);
             if ( ($form->isValid()) && ($this->isValidInlines()) ) {
                 $item = $form->save();
@@ -179,7 +191,7 @@ class IPF_Admin_Model{
             }
         }
         else{
-            $form = IPF_Shortcuts::GetFormForModel($o,$o->getData(),array('user_fields'=>$this->fields()));
+            $form = $this->_getEditForm($o,$o->getData(),array('user_fields'=>$this->fields()));
             $this->_setupEditForm($form);
         }
         
index 40d7518b3edceaf41e607c9ef947b15300d3189f..13e092c31df0a779253cd95c4789cb5dbcf65520 100644 (file)
@@ -50,8 +50,7 @@ class IPF_Form implements Iterator
         return false;
     }
 
-    function isValid()
-    {
+    function isValid(){
         if ($this->is_valid !== null) {
             return $this->is_valid;
         }
index a6205ac4423af25a234c7a073a268c56a0f458a7..d345da8c529c4cf48e5b6a440d91bcd2243f269d 100644 (file)
@@ -60,10 +60,7 @@ class IPF_Form_Field_File extends IPF_Form_Field
 
 function IPF_Form_Field_moveToUploadFolder($value, $params=array())
 {
-    $upload_path = IPF::get('upload_path', '/tmp');
-    if (isset($params['upload_path'])) {
-        $upload_path = $params['upload_path'];
-    }
+    $upload_path = IPF::getUploadPath($params);
     $name = IPF_Utils::cleanFileName($value['name'], $upload_path);
     $dest = $upload_path.DIRECTORY_SEPARATOR.$name;
     if (!move_uploaded_file($value['tmp_name'], $dest)) {
index 8591f4b37eeea5220bfd81bca47fd801c875a601..ee75ee839f190bf6613c42b1a8b39c612f488141 100644 (file)
@@ -8,10 +8,7 @@ class IPF_Form_Field_Image extends IPF_Form_Field_File{
 function IPF_Form_Field_moveImageToUploadFolder($value, $params=array())
 {
     $name = IPF_Form_Field_moveToUploadFolder($value, $params);
-    $upload_path = IPF::get('upload_path', '/tmp');
-    if (isset($params['upload_path'])) {
-        $upload_path = $params['upload_path'];
-    }
+    $upload_path = IPF::getUploadPath($params);
     $image = $upload_path.DIRECTORY_SEPARATOR.$name;
 
     if(!getimagesize($image))
index 4efaff43284848b6b56db1b86a4210f5ac2506fb..4d77b66c7616917d05c4d7092cd86e90f01a53b1 100644 (file)
@@ -7,10 +7,13 @@ class IPF_Form_Model extends IPF_Form
 
     function initFields($extra=array())
     {
-        $this->model = $extra['model'];
+        if (isset($extra['model']))
+            $this->model = $extra['model'];
+        else
+            throw new IPF_Exception_Form(__('Unknown model for form'));
+        
         if (isset($extra['user_fields']))
             $this->user_fields = $extra['user_fields'];
-            
         
         $user_fields = $this->fields();
         $db_columns = $this->model->getTable()->getColumns();
index 75dfdf16474b1aa8e76a4ded13c97978c1d4f346..08f6f75444e027d5c89de577b847a6af18ac7162 100644 (file)
@@ -7,10 +7,12 @@ 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:';
+        if (isset($value['data'])){
+            $value = $value['data'];
+            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 $sim.parent::render($name, $value, $extra_attrs);
index bb993635cfd40ac8d9f363033c938a8b38de2f2b..9dc4d7ebad8f989ae877fff7ccf99e5e17832c9c 100644 (file)
@@ -6,10 +6,14 @@ class IPF_Image_Thumbnail {
     protected $ThumbnailWidth, $ThumbnailHeight;
     protected $SourceWidth, $SourceHeight, $SourceType;
     protected $file_permission, $dir_permission;
+    protected $sourceRemove;
         
-    public function __construct($source, $thumnbail, $width=null, $height=null, $dir_permission=null, $file_permission=null){
+    public function __construct($source, $width=null, $height=null, $thumbnail=null, $sourceRemove=false, $dir_permission=null, $file_permission=null){
         $this->Source = $source;
-        $this->Thumbnail = $thumbnail;
+        if ($thumbnail)
+            $this->Thumbnail = $thumbnail;
+        else
+            $this->Thumbnail = $source;
 
         if (($width==null) && ($height==null))
             throw new IPF_Exception_Image(__('Please Specify width or height'));
@@ -26,6 +30,8 @@ class IPF_Image_Thumbnail {
             $this->file_permission = $file_permission;
         else
             $this->file_permission = IPF::get('file_permission');
+            
+        $this->sourceRemove = $sourceRemove;
     }
         
     public function execute(){
@@ -80,10 +86,10 @@ class IPF_Image_Thumbnail {
                 $this->ThumbnailWidth, $this->ThumbnailHeight, 
                 $this->SourceWidth, $this->SourceHeight
             );
-
-            if (!@unlink($this->Thumbnail))
-                throw new IPF_Exception_Image(sprintf(__('Cannot delete %s'), $this->Thumbnail));
-
+            if ($this->sourceRemove){
+                if (!@unlink($this->Thumbnail))
+                    throw new IPF_Exception_Image(sprintf(__('Cannot delete %s'), $this->Thumbnail));
+            }
             $dir_thumbnail = dirName($this->Thumbnail);
             if (!IPF_Utils::makeDirectories(dirName($this->Thumbnail), $this->dir_permission))
                 throw new IPF_Exception_Image(sprintf(__('Cannot create path %s'), $dir_thumbnail));