<?phpクラス Application_Form_Decorators_File は Zend_Form_Decorator_Abstractを拡張します{パブリック 関数 buildLabel ( ){$ element = $ this- > getElement ( ) ;$ label = $ element- > getLabel ( ) ;if ( $ translator = $ element- > getTranslator ( ) ) {$ label = $ translator- > translate ( $ label ) ;}if ( $ element- > isRequired ( ) ) {$ label 。= '*' ;}$ label 。= ':' ;return $ element- > getView ( )-> formLabel ( $ element- > getName ( ) 、 $ label ) ;}パブリック 関数 buildInput ( ){$ element = $ this- > getElement ( ) ;$ helper = $ element- > helper ;return $ element- > getView ( ) -> $ helper ($要素 -> getName ( ) 、$要素 -> getValue ( ) 、$要素 -> getAttribs ( ) 、$要素 -> オプション) ;}パブリック 関数 buildErrors ( ){$ element = $ this- > getElement ( ) ;$ messages = $ element- > getMessages ( ) ;if ( empty ( $ messages ) ) {return '' ;}return '<div class = "errors">' 。$要素 -> getView ( ) -> formErrors ( $ messages ) 。 '</ div>' ;}パブリック 関数 buildDescription ( ){$ element = $ this- > getElement ( ) ;$ desc = $ element- > getDescription ( ) ;if ( empty ( $ desc ) ) {return '' ;}'<div class = "description">'を 返し ます。 $ desc 。 '</ div>' ;}パブリック 関数レンダー( $ content ){$ element = $ this- > getElement ( ) ;if ( ! $ element instanceof Zend_Form_Element ) {$コンテンツを 返し ます 。}if ( null === $ element- > getView ( ) ) {$コンテンツを 返し ます 。}$ separator = $ this- > getSeparator ( ) ;$プレースメント = $ this- > getPlacement ( ) ;$ label = $ this- > buildLabel ( ) ;$ input = $ this- > buildInput ( ) ;$ errors = $ this- > buildErrors ( ) ;$ desc = $ this- > buildDescription ( ) ;$ renderingContent = $ element- > getView ( ) -> partial ('decorators / file.phtml' 、array ( 'element' => $ element ) ) ;$ output = '<tr> <td>'。 $ラベル 。 '</ td> <td>' 。 $ renderingContent。 $入力。 $エラー。 $ desc。 '</ td> </ tr>' ;スイッチ ( $配置 ) {ケース ( self :: PREPEND ) :$ outputを 返し ます 。 $セパレーター 。 $コンテンツ ;ケース ( self :: APPEND ) :デフォルト :$コンテンツを 返し ます 。 $セパレーター 。 $出力 ;}}}
$ renderingContent = $ element- > getView ( ) -> partial ('decorators / file.phtml' 、array ( 'element' => $ element ) ) ;
写真をアップロードしました ' <?Php echo $ this- > element- > getDescription ( ) ; ?> '。<br>新しいファイルを指定して、写真を変更できます。 写真の変更が不要な場合は、このフィールドを空白のままにします。 <br>写真を削除するには、チェックボックスをオンにします。<input name = " <?php echo $ this- > element- > getName ( ) ; ?> _checkbox" type = "checkbox" value = "on" /> <br />
if ( $ this- > _options [ 'type' ] == 'edit' && ! is_null ( $ this- > _options [ 'photo_file' ] ) )) {$ photo- > setDescription ( $ this- > _options [ 'photo_file' ] ) ;$ photo- > setDecorators ( 配列 (array ( 'ViewScript' 、 array ( 'viewScript' => 'decorators / file.phtml' ) ) 、「ファイル」 、'エラー' 、array ( array ( 'data' => 'HtmlTag' ) 、 array ( 'tag' => 'td' 、 'class' => 'element' ) ) 、array ( 'Label' 、 array ( 'tag' => 'td' ) ) 、配列 ( array ( 'row' => 'HtmlTag' ) 、 配列 ( 'tag' => 'tr' ) )) ) ;} else {$ photo- > setDecorators ( 配列 (「ファイル」 、'エラー' 、array ( array ( 'data' => 'HtmlTag' ) 、 array ( 'tag' => 'td' 、 'class' => 'element' ) ) 、array ( 'Label' 、 array ( 'tag' => 'td' ) ) 、配列 ( array ( 'row' => 'HtmlTag' ) 、 配列 ( 'tag' => 'tr' ) )) ) ;}
//削除が確認された場合-ファイルを削除し、データベース内でnullにしますif ( ! is_null ( $ this- > getRequest ( ) -> getParam ( 'photo_checkbox' ) )) && $ this- > getRequest ( ) -> getParam ( 'photo_checkbox' ) == 'on' ) {if ( file_exists ( PUBLIC_PATH 。 '/ userfiles / images / full /'。$ item- > photo ) ))unlink ( PUBLIC_PATH 。 '/ userfiles / images / full /'。$ item- > photo ) ;if ( file_exists ( PUBLIC_PATH 。 '/ userfiles / images / thumb /'。$ item- > photo ) ))unlink ( PUBLIC_PATH 。 '/ userfiles / images / thumb /'。$ item- > photo ) ;$ item- > photo = null ;}//新しいファイルが指定され、アップロードされた場合、古いファイルを削除して、データベースに新しいファイルを書き込みます。// File要素が入力されていない場合、$ form-> photo-> getFileName()== array(null);if ( ! is_null ( $ form- > photo- > getFileName ( ) ) && count ( $ form- > photo- > getFileName ( ) ) != 0 ) {if ( file_exists ( PUBLIC_PATH 。 '/ userfiles / images / full /'。$ item- > photo ) )) {unlink ( PUBLIC_PATH 。 '/ userfiles / images / full /'。$ item- > photo ) ;}if ( file_exists ( PUBLIC_PATH 。 '/ userfiles / images / thumb /'。$ item- > photo ) )) {unlink ( PUBLIC_PATH 。 '/ userfiles / images / thumb /'。$ item- > photo ) ;}$ item- > photo = $ form- > getValue ( 'photo' ) ;}
Source: https://habr.com/ru/post/J136438/More articles:nginx、gunicorn、supervisorを使用して水銀リポジトリをホストするSo.cl-インターフェースの簡単な概要1月18日にサイトを無効にする方法に関するGoogleの指示ロシア人、イギリス人、中国人がプログラムに参加します...OpenStreetMapプロジェクトの地図の破壊行為がGoogleのIPアドレスから実行されました日産の世界初の「自己修復」iPhoneケースYandex.Mapsのフィルターと組織に関するデータを使用して検索する募集:彼の全盛期の著者ドロイドチャート。 問題85、ベガスからあなたの会社で誰がTKを書いていますか?All Articles