source: pmb4.1/trunk/fuentes/pmb/classes/files_gestion.class.php @ 478

Last change on this file since 478 was 478, checked in by mabarracus, 5 years ago

copy trusty code 4.1

  • Property svn:executable set to *
File size: 5.1 KB
Line 
1<?php
2// +-------------------------------------------------+
3// | 2002-2007 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: files_gestion.class.php,v 1.1.6.2 2014-08-18 14:04:03 dgoron Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9require_once($include_path."/templates/files_gestion.tpl.php");
10
11class files_gestion {   
12        var $path="";
13        var $url="";
14        var $info=array();
15        var $error="";
16       
17        function files_gestion($path,$url,$create_if_not_exist=1) {
18                global $msg;
19                $this->error="";
20                $this->path=$path;             
21                $this->url=$url;                       
22                // path exist?
23                if(!is_dir($this->path)){               
24                        if($create_if_not_exist){
25                                if(!@mkdir($this->path)){                                               
26                                        $this->error=$msg["admin_files_gestion_error_create_folder"].$this->path."<br />".$msg["admin_files_gestion_error_param_img_folder"];
27                                        $this->path="";
28                                        return;
29                                }
30                                chmod($this->path, 0777);
31                        } else{ 
32                                $this->path=""; 
33                                $this->error=$msg["admin_files_gestion_error_no_path"];
34                                return;
35                        }       
36                }       
37                $this->fetch_data();
38        }
39       
40        function fetch_data() {
41                global $msg;
42                global $PMBuserid;
43                $this->error="";
44                $this->info=array();
45                $i=0;
46                if(!is_dir($this->path)){
47                        $this->error=$msg["admin_files_gestion_error_is_no_path"].$this->path;
48                        $this->path="";
49                        return;
50                }
51                if(($objects = @scandir($this->path)) !== false) {
52                        foreach ($objects as $object) {
53                                if($object != '.' && $object != '..') {
54                                        if (filetype($this->path."/".$object) != "dir") {
55                                                $this->info[$i]['name']=$object;
56                                                $this->info[$i]['path']=$this->path;
57                                                $this->info[$i]['type']=filetype($this->path . $object);
58                                                $i++;
59                                        }
60                                }
61                        }
62                }
63        }
64       
65        function get_error() {
66                return $this->error;
67        }       
68               
69        function get_count_file() {
70                return count($this->info);
71        }       
72       
73        function upload($MAX_FILESIZE=0x500000) {
74                global $msg;
75                $statut=false;
76                if (! is_uploaded_file($_FILES['select_file']['tmp_name'])){
77                        $this->error=$msg["admin_files_gestion_error_not_write"].$_FILES['select_file']['name'];
78                        return $statut;                         
79                }
80               
81                if ($_FILES['select_file']['size'] >= $MAX_FILESIZE){ 
82                        $this->error=$msg["admin_files_gestion_error_to_big"].$_FILES['select_file']['name'];
83                        return $statut;
84                }
85                //              "/^\.(jpg|jpeg|gif|png|doc|docx|txt|rtf|pdf|xls|xlsx|ppt|pptx){1}$/i";
86                $no_valid_extension="/^\.(php|PHP){1}$/i";
87                if(preg_match($no_valid_extension, strrchr($_FILES['select_file']['name'], '.'))){
88                        $this->error=$msg["admin_files_gestion_error_not_valid"].$_FILES['select_file']['name'];
89                        return $statut;                 
90                }
91                // tout semble ok on le déplace au bon endroit
92                $statut=move_uploaded_file($_FILES["select_file"]["tmp_name"],$this->path.$_FILES['select_file']['name']);
93                if($statut==false) $this->error=$msg["admin_files_gestion_error_not_loaded"].$_FILES['select_file']['name'];
94       
95                chmod($this->path.$_FILES['select_file']['name'], 0777);
96                $this->fetch_data();
97                return $statut;
98        }       
99               
100        function delete($filename) {
101                global $msg;
102                $statut=false;
103                foreach($this->info as $elt){
104                        if($filename==$elt['name']){
105                                $file_to_delete=$elt['path'].$filename;
106                                if(file_exists($file_to_delete)){
107                                        $statut=unlink($file_to_delete);
108                                        if($statut==false) $this->error=$msg["admin_files_gestion_error_not_delete"].$file_to_delete;
109                                }else{
110                                        $this->error=$msg["admin_files_gestion_error_is_not_file"].$file_to_delete;
111                                }       
112                                break;
113                        }
114                }
115                $this->fetch_data();
116                return($statut);
117        }       
118       
119        function get_list($post_url="admin.php?categ=mailtpl&sub=img") {
120                global $files_gestion_list_tpl,$files_gestion_list_line_tpl,$msg;
121               
122                $tpl=$files_gestion_list_tpl;
123                $tpl_list="";
124                $odd_even="odd";
125                foreach($this->info as $elt){
126                        $tpl_elt=$files_gestion_list_line_tpl;
127                        if($odd_even=='odd')$odd_even="even";
128                        else $odd_even="odd";
129                        $tpl_elt=str_replace('!!odd_even!!',$odd_even, $tpl_elt);       
130                        $tpl_elt=str_replace('!!name!!',$elt['name'], $tpl_elt);
131                        $tpl_elt=str_replace('!!path!!',$elt['path'], $tpl_elt);       
132                        $tpl_elt=str_replace('!!type!!',$elt['type'], $tpl_elt);
133                        $tpl_elt=str_replace('!!vignette!!',"<img height='15' width='15' src=\"".$this->url.$elt['name']."\" alt=\"\" />", $tpl_elt);   
134                        $tpl_list.=$tpl_elt;   
135                }
136                $tpl=str_replace('!!list!!',$tpl_list, $tpl);
137                $tpl=str_replace('!!post_url!!',$post_url, $tpl);
138                return $tpl;
139        }       
140       
141        function get_sel($sel_name='select_file',$value_tpl="!!path!!!!name!!",$label_tpl="!!name!!") {
142                global $msg, $pmb_mail_html_format; 
143                $tpl="<select name='$sel_name' id='$sel_name'>";                               
144                foreach($this->info as $elt){
145                        $value=$value_tpl;
146                        $value=str_replace('!!name!!',$elt['name'], $value);
147//                      if ($pmb_mail_html_format==2)$url_file=$elt['path'];
148//                      else $url_file=$this->url;
149                       
150                        $value=str_replace('!!path!!',$this->url, $value);
151                        $value=str_replace('!!type!!',$elt['type'], $value);
152                        $label=$label_tpl;
153                        $label=str_replace('!!name!!',$elt['name'], $label);
154                        $label=str_replace('!!path!!',$elt['path'], $label);
155                        $label=str_replace('!!type!!',$elt['type'], $label);
156                        $tpl.="<option value=".$value.">".$label."</option>";
157                }
158                $tpl.="</select>";
159                return $tpl;
160        }               
161} // files_gestion class end
162       
Note: See TracBrowser for help on using the repository browser.