source: extensions/File_Uploader/admin/admin_upload.php @ 19676

Last change on this file since 19676 was 19621, checked in by julien1311, 11 years ago

remove mysql to pwg_db

  • Property svn:eol-style set to LF
File size: 9.8 KB
Line 
1<?php
2if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
3
4include_once(PHPWG_ROOT_PATH . 'include/functions.inc.php');
5
6global $template, $conf, $user, $page;
7
8if (isset($_POST['submit'])) {
9        $file_uploader_errors = array();
10        $file_uploader_upload_file = array();
11
12        if($_FILES['file_uploader_file']['size'] != 0) {
13                $file_uploader_upload_file = file_uploader_upload_file($_FILES['file_uploader_file']);
14                if(count($file_uploader_upload_file['errors']) != 0)
15                        $file_uploader_errors['file'] = $file_uploader_upload_file['errors'];
16        } else {
17                $file_uploader_errors['file']['no_file'] = 'Specify a file to upload';
18        }
19       
20        if($_FILES['file_uploader_thumbnail']['size'] != 0 && $_FILES['file_uploader_file']['size'] != 0) {
21                $file_uploader_upload_thumbnail = file_uploader_upload_thumbnail($_FILES['file_uploader_thumbnail'], $file_uploader_upload_file['name_wo_extension'], $file_uploader_upload_file['extension']);
22                if(count($file_uploader_upload_thumbnail['errors']) != 0)
23                        $file_uploader_errors['thumbnail'] = $file_uploader_upload_thumbnail['errors'];
24        } else {
25                $file_uploader_errors['thumbnail']['no_file'] = 'Specify a thumbnail for your file';
26        }
27       
28        if (count($file_uploader_errors) == 0) {
29                file_uploader_synchronize($file_uploader_upload_file, $_POST['file_uploader'], $file_uploader_upload_thumbnail);
30                array_push($page['infos'], l10n('File uploaded and synchronized'));
31        } else {
32                array_push($page['errors'], l10n('There have been errors. See below'));
33                $template->assign('file_uploader_errors', $file_uploader_errors);
34                $template->assign('file_uploader', $_POST['file_uploader']);
35        }
36}
37
38function file_uploader_upload_file($file_uploader_file) {
39        include('static.inc.php');
40       
41        global $conf;
42        $conf_file_uploader = unserialize($conf['file_uploader']);
43       
44        $file_uploader_file_tmp = $file_uploader_file['tmp_name'];
45        $file_uploader_file_name = preg_replace('/[^a-zA-Z0-9s.]/', '_', $file_uploader_file['name']);
46        $file_uploader_file_name_wo_extension = substr($file_uploader_file_name, 0, strrpos($file_uploader_file_name, '.'));
47        $file_uploader_file_extension = strtolower(substr(strrchr($file_uploader_file['name'], '.'),1));
48        $file_uploader_file_size = filesize($file_uploader_file['tmp_name']);
49        $file_uploader_file_directory = $file_uploader_galleries_dir.$file_uploader_destination_folder[$file_uploader_file_extension];
50        $file_uploader_file_destination = $file_uploader_file_directory.'/'.$file_uploader_file_name;
51        $file_uploader_errors = array();
52        $return = array();
53       
54        $return['name_wo_extension'] = $file_uploader_file_name_wo_extension;
55        $return['extension'] = $file_uploader_file_extension;
56        $return['folder'] = $file_uploader_destination_folder[$file_uploader_file_extension];
57        $return['destination'] = $file_uploader_file_destination;
58        $return['size'] = $file_uploader_file_size;
59        $return['overwrite'] = false;
60       
61        //If the directory does not exist, we create it
62        if (!file_exists($file_uploader_file_directory))
63                if(!mkdir($file_uploader_file_directory))
64                        $file_uploader_errors['upload_error'] = l10n('Unable to create folder ').$file_uploader_file_directory;
65        //If the physical category si not in database, we add it
66        if (pwg_db_num_rows(pwg_query('SELECT id FROM '.CATEGORIES_TABLE.' WHERE name = "'.$file_uploader_destination_folder[$file_uploader_file_extension].'";')) == 0){
67                $next_id = pwg_db_nextval('id', CATEGORIES_TABLE);
68                $category_rank = pwg_db_fetch_assoc(pwg_query('SELECT MAX(rank) FROM '.CATEGORIES_TABLE.';'));
69                $category_rank = $category_rank['MAX(rank)'] + 1;
70                pwg_query('INSERT INTO '.CATEGORIES_TABLE.' (id, name, dir, rank, status, visible, uppercats, global_rank) VALUES ('.$next_id.', "'.$file_uploader_destination_folder[$file_uploader_file_extension].'", "'.$file_uploader_destination_folder[$file_uploader_file_extension].'", '.$category_rank.', "'.$conf['newcat_default_status'].'", "'.boolean_to_string($conf['newcat_default_visible']).'", "'.$next_id.'", '.$category_rank.');');
71        }
72       
73        if ($file_uploader_file['error'] !== UPLOAD_ERR_OK) {
74                switch ($_FILES['file_uploader_file']['error']) {
75                        case UPLOAD_ERR_INI_SIZE:
76                                $file_uploader_errors['upload_error'] = l10n('File exceeds the upload_max_filesize directive in php.ini');
77                                break;
78                        case UPLOAD_ERR_PARTIAL:
79                                $file_uploader_errors['upload_error'] = l10n('File was only partially uploaded');
80                                break;
81                        case UPLOAD_ERR_NO_FILE:
82                                $file_uploader_errors['upload_error'] = l10n('No file to upload');
83                                break;
84                        case UPLOAD_ERR_NO_TMP_DIR:
85                                $file_uploader_errors['upload_error'] = l10n('Missing a temporary folder');
86                                break;
87                        case UPLOAD_ERR_CANT_WRITE:
88                                $file_uploader_errors['upload_error'] = l10n('Failed to write file to disk');
89                                break;
90                        case UPLOAD_ERR_EXTENSION:
91                                $file_uploader_errors['upload_error'] = l10n('File upload stopped by extension');
92                                break;
93                        default:
94                                $file_uploader_errors['upload_error'] = l10n('Upload error');
95                } 
96        } else if(!in_array($file_uploader_file_extension, $file_uploader_allowed_file_extension)) {
97                $file_uploader_errors['filetype'] = l10n('Type of file not supported');
98        } else if (file_exists($file_uploader_file_destination)) {
99                if ($conf_file_uploader['overwrite'] == 1)
100                        $return['overwrite'] = true;
101                else
102                        $file_uploader_errors['already_exist'] = l10n('File with this name already exists. You should rename this file.');
103        } else if (!move_uploaded_file($file_uploader_file_tmp, $file_uploader_file_destination)) {
104                $file_uploader_errors['move_uploaded_file'] = l10n('Can\'t upload file to galleries directory');
105        }
106       
107        $return['errors'] = $file_uploader_errors;
108       
109        return $return;
110}
111
112
113function file_uploader_upload_thumbnail($file_uploader_thumbnail, $file_uploader_file_name_wo_extension, $file_uploader_file_extension) {
114        include('static.inc.php');
115       
116        $file_uploader_thumbnail_tmp = $file_uploader_thumbnail['tmp_name'];
117        $file_uploader_thumbnail_extension = strtolower(substr(strrchr($file_uploader_thumbnail['name'], '.'),1));
118        $file_uploader_thumbnail_size = filesize($file_uploader_thumbnail['tmp_name']);
119        $file_uploader_thumbnail_directory = $file_uploader_galleries_dir.$file_uploader_destination_folder[$file_uploader_file_extension].'/pwg_representative';
120        $file_uploader_thumbnail_destination = $file_uploader_thumbnail_directory.'/'.$file_uploader_file_name_wo_extension.'.'.$file_uploader_thumbnail_extension;
121        $file_uploader_errors = array();
122        $return = array();
123       
124        $return['extension'] = $file_uploader_thumbnail_extension;
125       
126        if (!file_exists($file_uploader_thumbnail_directory))
127                if(!mkdir($file_uploader_thumbnail_directory))
128                        $file_uploader_errors['upload_error'] = l10n('Unable to create folder ').$file_uploader_thumbnail_directory;
129       
130        if ($file_uploader_thumbnail['error'] !== UPLOAD_ERR_OK) {
131                switch ($_FILES['file_uploader_thumbnail']['error']) {
132                        case UPLOAD_ERR_INI_SIZE:
133                                $file_uploader_errors['upload_error'] = l10n('File exceeds the upload_max_filesize directive in php.ini');
134                                break;
135                        case UPLOAD_ERR_PARTIAL:
136                                $file_uploader_errors['upload_error'] = l10n('File was only partially uploaded');
137                                break;
138                        case UPLOAD_ERR_NO_FILE:
139                                $file_uploader_errors['upload_error'] = l10n('No file to upload');
140                                break;
141                        case UPLOAD_ERR_NO_TMP_DIR:
142                                $file_uploader_errors['upload_error'] = l10n('Missing a temporary folder');
143                                break;
144                        case UPLOAD_ERR_CANT_WRITE:
145                                $file_uploader_errors['upload_error'] = l10n('Failed to write file to disk');
146                                break;
147                        case UPLOAD_ERR_EXTENSION:
148                                $file_uploader_errors['upload_error'] = l10n('File upload stopped by extension');
149                                break;
150                        default:
151                                $file_uploader_errors['upload_error'] = l10n('Upload error');
152                } 
153        } else if(!in_array($file_uploader_thumbnail_extension, $file_uploader_allowed_thumbnail_extension)) {
154                $file_uploader_errors['filetype'] = l10n('The thumbnail must be a picture');
155        } else if (!move_uploaded_file($file_uploader_thumbnail_tmp, $file_uploader_thumbnail_destination)) {
156                $file_uploader_errors['move_uploaded_file'] = l10n('Can\'t upload file to galleries directory');
157        }
158       
159        $return['errors'] = $file_uploader_errors;
160       
161        return $return;
162}
163
164
165function file_uploader_synchronize($file_uploader_file, $file_uploader_file_properties, $file_uploader_thumbnail) {
166        global $user;
167       
168        //Current date
169        list($dbnow) = pwg_db_fetch_row(pwg_query('SELECT NOW();'));
170
171        //Database registration
172        $file_path = pwg_db_real_escape_string($file_uploader_file['destination']);
173        $insert = array(
174                'file' => substr(strrchr($file_path, '/'), 1),
175                'name' => pwg_db_real_escape_string($file_uploader_file_properties['title']),
176                'comment' => pwg_db_real_escape_string($file_uploader_file_properties['description']),
177                'date_available' => $dbnow,
178                'path' => $file_path,
179                'representative_ext' => $file_uploader_thumbnail['extension'],
180                'filesize' => $file_uploader_file['size'],
181                'md5sum' => md5_file($file_path),
182                'added_by' => $user['id'],
183        );
184       
185        if ($file_uploader_file['overwrite']) {
186                $query = 'SELECT id FROM '.IMAGES_TABLE.' WHERE path = "'.$file_path.'";';
187                $image_id = pwg_db_fetch_assoc(pwg_query($query));
188               
189                single_update(IMAGES_TABLE, $insert, array('id' => $image_id['id']));
190        } else {
191                single_insert(IMAGES_TABLE, $insert);
192                $image_id = pwg_db_insert_id(IMAGES_TABLE);
193        }
194
195        $physical_category_id = pwg_db_fetch_assoc(pwg_query('SELECT id FROM '.CATEGORIES_TABLE.' WHERE name = "'.$file_uploader_file['folder'].'";'));
196       
197        if(isset($file_uploader_file_properties['category']) and count($file_uploader_file_properties['category']) > 0) {
198                associate_images_to_categories(
199                        array($image_id),
200                        array($file_uploader_file_properties['category'], $physical_category_id['id'])
201                );
202        }
203       
204        @fill_caddie(array($image_id));
205}
206
207
208//Categories
209$query = 'SELECT id,name,uppercats,global_rank FROM '.CATEGORIES_TABLE.';';
210display_select_cat_wrapper($query, array(), 'category_parent_options');
211
212$template->set_filenames(array('plugin_admin_content' => dirname(__FILE__) . '/admin_upload.tpl')); 
213$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
214?>
Note: See TracBrowser for help on using the repository browser.