From: avl Date: Thu, 11 Sep 2008 03:11:30 +0000 (+0300) Subject: Admin customize form X-Git-Tag: 0.5~494 X-Git-Url: https://git.andy128k.dev/?a=commitdiff_plain;h=085e9b4aa53b6b8ea7737c501f889bcc89d5c766;p=ipf.git Admin customize form --- diff --git a/ipf.php b/ipf.php index dbf2389..31c84c4 100644 --- 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) diff --git a/ipf/admin/model.php b/ipf/admin/model.php index f6b06a4..4eab8cb 100644 --- a/ipf/admin/model.php +++ b/ipf/admin/model.php @@ -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); } diff --git a/ipf/form.php b/ipf/form.php index 40d7518..13e092c 100644 --- a/ipf/form.php +++ b/ipf/form.php @@ -50,8 +50,7 @@ class IPF_Form implements Iterator return false; } - function isValid() - { + function isValid(){ if ($this->is_valid !== null) { return $this->is_valid; } diff --git a/ipf/form/field/file.php b/ipf/form/field/file.php index a6205ac..d345da8 100644 --- a/ipf/form/field/file.php +++ b/ipf/form/field/file.php @@ -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)) { diff --git a/ipf/form/field/image.php b/ipf/form/field/image.php index 8591f4b..ee75ee8 100644 --- a/ipf/form/field/image.php +++ b/ipf/form/field/image.php @@ -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)) diff --git a/ipf/form/model.php b/ipf/form/model.php index 4efaff4..4d77b66 100644 --- a/ipf/form/model.php +++ b/ipf/form/model.php @@ -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(); diff --git a/ipf/form/widget/fileinput.php b/ipf/form/widget/fileinput.php index 75dfdf1..08f6f75 100644 --- a/ipf/form/widget/fileinput.php +++ b/ipf/form/widget/fileinput.php @@ -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: '.$value.' |
Change:'; + if (isset($value['data'])){ + $value = $value['data']; + if (is_string($value) && $value!=''){ + $sim = 'Currently: '.$value.' |
Change:'; + } } $value = ''; return $sim.parent::render($name, $value, $extra_attrs); diff --git a/ipf/image/thumbnail.php b/ipf/image/thumbnail.php index bb99363..9dc4d7e 100644 --- a/ipf/image/thumbnail.php +++ b/ipf/image/thumbnail.php @@ -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));