LSformElement_image :: getDisplay() : Fixed error
[ldapsaisie.git] / public_html / includes / class / class.LSformElement_image.php
1 <?php
2 /*******************************************************************************
3  * Copyright (C) 2007 Easter-eggs
4  * http://ldapsaisie.labs.libre-entreprise.org
5  *
6  * Author: See AUTHORS file in top-level directory.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License version 2
10  * as published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20
21 ******************************************************************************/
22
23
24 /**
25  * Element texte d'un formulaire pour LdapSaisie
26  *
27  * Cette classe définis les éléments textes des formulaires.
28  * Elle étant la classe basic LSformElement.
29  *
30  * @author Benjamin Renard <brenard@easter-eggs.com>
31  */
32
33 class LSformElement_image extends LSformElement {
34
35   var $postImage = NULL;
36   var $tmp_file = array();
37   var $fieldTemplate = 'LSformElement_image_field.tpl';
38
39  /**
40   * Retourne les infos d'affichage de l'élément
41   * 
42   * Cette méthode retourne les informations d'affichage de l'élement
43   *
44   * @retval array
45   */
46   function getDisplay(){
47     LSsession :: addCssFile('LSformElement_image.css');
48     $return = true;
49     $id=$this -> name.'_'.rand();
50     if (!$this -> isFreeze()) {
51       LSsession :: addHelpInfos(
52         'LSformElement_date',
53         array(
54           'zoom' => _('Click to enlarge.'),
55           'delete' => _('Click to delete the picture.')
56         )
57       );
58       $return = $this -> getLabelInfos();
59       $return['html'] = $this -> fetchTemplate(NULL,array('id' => 'LSformElement_image_input_'.$id));
60       $this -> form -> setMaxFileSize(MAX_SEND_FILE_SIZE);
61     }
62
63     if (!empty($this -> values[0])) {
64       $img_path = LSsession :: getTmpFile($this -> values[0]);
65       $GLOBALS['Smarty'] -> assign('LSformElement_image',array(
66         'img' => $img_path,
67         'id'  => $id,
68       ));
69       if (!$this -> isFreeze()) {
70         $GLOBALS['Smarty'] -> assign('LSformElement_image_actions','delete');
71       }
72       
73       if ($this -> form -> definedError($this -> name)) {
74         $GLOBALS['Smarty'] -> assign('LSformElement_image_errors',true);
75       }
76       if (LSsession :: loadLSclass('LSsmoothbox')) {
77         LSsmoothbox :: loadDependenciesDisplay();
78       }
79       LSsession :: addJSscript('LSformElement_image.js');
80     }
81     return $return;
82   }
83   
84   /**
85    * Recupère la valeur de l'élement passée en POST
86    *
87    * Cette méthode vérifie la présence en POST de la valeur de l'élément et la récupère
88    * pour la mettre dans le tableau passer en paramètre avec en clef le nom de l'élément
89    *
90    * @param[] array Pointeur sur le tableau qui recupèrera la valeur.
91    *
92    * @retval boolean true si la valeur est présente en POST, false sinon
93    */
94   function getPostData(&$return) {
95     if($this -> isFreeze()) {
96       return true;
97     }
98    
99     if (is_uploaded_file($_FILES[$this -> name]['tmp_name'])) {
100       $fp = fopen($_FILES[$this -> name]['tmp_name'], "r");
101       $buf = fread($fp, filesize($_FILES[$this -> name]['tmp_name']));
102       fclose($fp);
103       $tmp_file = LS_TMP_DIR.$this -> name.'_'.rand().'.tmp';
104       if (move_uploaded_file($_FILES[$this -> name]['tmp_name'],$tmp_file)) {
105         LSsession :: addTmpFile($buf,$tmp_file);
106       }
107       $return[$this -> name][0] = $buf;
108     }
109     else {
110       if (isset($_POST[$this -> name.'_delete'])) {
111         $return[$this -> name][0]='';
112       }
113     }
114     return true;
115   }
116 }
117
118 ?>