Changeset 3691:3dbfcef11299 for admin/media_item.php
- Timestamp:
- 01/31/18 12:11:05 (8 years ago)
- Branch:
- default
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
admin/media_item.php
r3446 r3691 11 11 # -- END LICENSE BLOCK ----------------------------------------- 12 12 13 require dirname(__FILE__) .'/../inc/admin/prepend.php';13 require dirname(__FILE__) . '/../inc/admin/prepend.php'; 14 14 15 15 dcPage::check('media,media_admin'); … … 19 19 $post_id = !empty($_REQUEST['post_id']) ? (integer) $_REQUEST['post_id'] : null; 20 20 if ($post_id) { 21 $post = $core->blog->getPosts(array('post_id'=>$post_id));22 23 24 25 26 21 $post = $core->blog->getPosts(array('post_id' => $post_id)); 22 if ($post->isEmpty()) { 23 $post_id = null; 24 } 25 $post_title = $post->post_title; 26 unset($post); 27 27 } 28 28 … … 30 30 $link_type = !empty($_REQUEST['link_type']) ? $_REQUEST['link_type'] : null; 31 31 32 $file = null;33 $popup = (integer) !empty($_REQUEST['popup']);34 $select = !empty($_REQUEST['select']) ? (integer)$_REQUEST['select'] : 0;// 0 : none, 1 : single media, >1 : multiple medias35 $plugin_id = isset($_REQUEST['plugin_id']) ? html::sanitizeURL($_REQUEST['plugin_id']) : '';36 $page_url_params = array('popup' => $popup,'select' => $select,'post_id' => $post_id);37 $media_page_url_params = array('popup' => $popup, 'select' => $select,'post_id' => $post_id,'link_type' => $link_type);32 $file = null; 33 $popup = (integer) !empty($_REQUEST['popup']); 34 $select = !empty($_REQUEST['select']) ? (integer) $_REQUEST['select'] : 0; // 0 : none, 1 : single media, >1 : multiple medias 35 $plugin_id = isset($_REQUEST['plugin_id']) ? html::sanitizeURL($_REQUEST['plugin_id']) : ''; 36 $page_url_params = array('popup' => $popup, 'select' => $select, 'post_id' => $post_id); 37 $media_page_url_params = array('popup' => $popup, 'select' => $select, 'post_id' => $post_id, 'link_type' => $link_type); 38 38 39 39 if ($plugin_id != '') { 40 $page_url_params['plugin_id']= $plugin_id;41 40 $page_url_params['plugin_id'] = $plugin_id; 41 $media_page_url_params['plugin_id'] = $plugin_id; 42 42 } 43 43 … … 45 45 46 46 if ($id != '') { 47 $page_url_params['id'] = $id;47 $page_url_params['id'] = $id; 48 48 } 49 49 50 50 if ($popup) { 51 $open_f = array('dcPage','openPopup');52 $close_f = array('dcPage','closePopup');51 $open_f = array('dcPage', 'openPopup'); 52 $close_f = array('dcPage', 'closePopup'); 53 53 } else { 54 $open_f = array('dcPage','open'); 55 $close_f = create_function('',"dcPage::helpBlock('core_media'); dcPage::close();"); 54 $open_f = array('dcPage', 'open'); 55 $close_f = function () { 56 dcPage::helpBlock('core_media'); 57 dcPage::close(); 58 }; 56 59 } 57 60 … … 59 62 try 60 63 { 61 $core->media = new dcMedia($core); 62 63 if ($id) { 64 $file = $core->media->getFile($id); 65 } 66 67 if ($file === null) { 68 throw new Exception(__('Not a valid file')); 69 } 70 71 $core->media->chdir(dirname($file->relname)); 72 $core_media_writable = $core->media->writable(); 73 74 # Prepare directories combo box 75 $dirs_combo = array(); 76 foreach ($core->media->getDBDirs() as $v) { 77 $dirs_combo['/'.$v] = $v; 78 } 79 # Add parent and direct childs directories if any 80 $core->media->getFSDir(); 81 foreach ($core->media->dir['dirs'] as $k => $v) { 82 $dirs_combo['/'.$v->relname] = $v->relname; 83 } 84 ksort($dirs_combo); 85 } 86 catch (Exception $e) 87 { 88 $core->error->add($e->getMessage()); 64 $core->media = new dcMedia($core); 65 66 if ($id) { 67 $file = $core->media->getFile($id); 68 } 69 70 if ($file === null) { 71 throw new Exception(__('Not a valid file')); 72 } 73 74 $core->media->chdir(dirname($file->relname)); 75 $core_media_writable = $core->media->writable(); 76 77 # Prepare directories combo box 78 $dirs_combo = array(); 79 foreach ($core->media->getDBDirs() as $v) { 80 $dirs_combo['/' . $v] = $v; 81 } 82 # Add parent and direct childs directories if any 83 $core->media->getFSDir(); 84 foreach ($core->media->dir['dirs'] as $k => $v) { 85 $dirs_combo['/' . $v->relname] = $v->relname; 86 } 87 ksort($dirs_combo); 88 } catch (Exception $e) { 89 $core->error->add($e->getMessage()); 89 90 } 90 91 91 92 # Upload a new file 92 if ($file && !empty($_FILES['upfile']) && $file->editable && $core_media_writable) 93 { 94 try { 95 files::uploadStatus($_FILES['upfile']); 96 $core->media->uploadFile($_FILES['upfile']['tmp_name'],$file->basename,null,false,true); 97 98 dcPage::addSuccessNotice(__('File has been successfully updated.')); 99 $core->adminurl->redirect('admin.media.item',$page_url_params); 100 } catch (Exception $e) { 101 $core->error->add($e->getMessage()); 102 } 93 if ($file && !empty($_FILES['upfile']) && $file->editable && $core_media_writable) { 94 try { 95 files::uploadStatus($_FILES['upfile']); 96 $core->media->uploadFile($_FILES['upfile']['tmp_name'], $file->basename, null, false, true); 97 98 dcPage::addSuccessNotice(__('File has been successfully updated.')); 99 $core->adminurl->redirect('admin.media.item', $page_url_params); 100 } catch (Exception $e) { 101 $core->error->add($e->getMessage()); 102 } 103 103 } 104 104 105 105 # Update file 106 if ($file && !empty($_POST['media_file']) && $file->editable && $core_media_writable) 107 { 108 $newFile = clone $file; 109 110 $newFile->basename = $_POST['media_file']; 111 112 if ($_POST['media_path']) { 113 $newFile->dir = $_POST['media_path']; 114 $newFile->relname = $_POST['media_path'].'/'.$newFile->basename; 115 } else { 116 $newFile->dir = ''; 117 $newFile->relname = $newFile->basename; 118 } 119 $newFile->media_title = html::escapeHTML($_POST['media_title']); 120 $newFile->media_dt = strtotime($_POST['media_dt']); 121 $newFile->media_dtstr = $_POST['media_dt']; 122 $newFile->media_priv = !empty($_POST['media_private']); 123 124 try { 125 $core->media->updateFile($file,$newFile); 126 127 dcPage::addSuccessNotice(__('File has been successfully updated.')); 128 $page_url_params['tab'] = 'media-details-tab'; 129 $core->adminurl->redirect('admin.media.item',$page_url_params); 130 } catch (Exception $e) { 131 $core->error->add($e->getMessage()); 132 } 106 if ($file && !empty($_POST['media_file']) && $file->editable && $core_media_writable) { 107 $newFile = clone $file; 108 109 $newFile->basename = $_POST['media_file']; 110 111 if ($_POST['media_path']) { 112 $newFile->dir = $_POST['media_path']; 113 $newFile->relname = $_POST['media_path'] . '/' . $newFile->basename; 114 } else { 115 $newFile->dir = ''; 116 $newFile->relname = $newFile->basename; 117 } 118 $newFile->media_title = html::escapeHTML($_POST['media_title']); 119 $newFile->media_dt = strtotime($_POST['media_dt']); 120 $newFile->media_dtstr = $_POST['media_dt']; 121 $newFile->media_priv = !empty($_POST['media_private']); 122 123 try { 124 $core->media->updateFile($file, $newFile); 125 126 dcPage::addSuccessNotice(__('File has been successfully updated.')); 127 $page_url_params['tab'] = 'media-details-tab'; 128 $core->adminurl->redirect('admin.media.item', $page_url_params); 129 } catch (Exception $e) { 130 $core->error->add($e->getMessage()); 131 } 133 132 } 134 133 135 134 # Update thumbnails 136 if (!empty($_POST['thumbs']) && $file->media_type == 'image' && $file->editable && $core_media_writable) 137 { 138 try { 139 $foo = null; 140 $core->media->mediaFireRecreateEvent($file); 141 142 dcPage::addSuccessNotice(__('Thumbnails have been successfully updated.')); 143 $page_url_params['tab'] = 'media-details-tab'; 144 $core->adminurl->redirect('admin.media.item',$page_url_params); 145 } catch (Exception $e) { 146 $core->error->add($e->getMessage()); 147 } 135 if (!empty($_POST['thumbs']) && $file->media_type == 'image' && $file->editable && $core_media_writable) { 136 try { 137 $foo = null; 138 $core->media->mediaFireRecreateEvent($file); 139 140 dcPage::addSuccessNotice(__('Thumbnails have been successfully updated.')); 141 $page_url_params['tab'] = 'media-details-tab'; 142 $core->adminurl->redirect('admin.media.item', $page_url_params); 143 } catch (Exception $e) { 144 $core->error->add($e->getMessage()); 145 } 148 146 } 149 147 150 148 # Unzip file 151 if (!empty($_POST['unzip']) && $file->type == 'application/zip' && $file->editable && $core_media_writable) 152 { 153 try { 154 $unzip_dir = $core->media->inflateZipFile($file,$_POST['inflate_mode'] == 'new'); 155 156 dcPage::addSuccessNotice(__('Zip file has been successfully extracted.')); 157 $media_page_url_params['d'] = $unzip_dir; 158 $core->adminurl->redirect('admin.media',$media_page_url_params); 159 } catch (Exception $e) { 160 $core->error->add($e->getMessage()); 161 } 149 if (!empty($_POST['unzip']) && $file->type == 'application/zip' && $file->editable && $core_media_writable) { 150 try { 151 $unzip_dir = $core->media->inflateZipFile($file, $_POST['inflate_mode'] == 'new'); 152 153 dcPage::addSuccessNotice(__('Zip file has been successfully extracted.')); 154 $media_page_url_params['d'] = $unzip_dir; 155 $core->adminurl->redirect('admin.media', $media_page_url_params); 156 } catch (Exception $e) { 157 $core->error->add($e->getMessage()); 158 } 162 159 } 163 160 164 161 # Save media insertion settings for the blog 165 if (!empty($_POST['save_blog_prefs'])) 166 { 167 if (!empty($_POST['pref_src'])) { 168 foreach (array_reverse($file->media_thumb) as $s => $v) { 169 if ($v == $_POST['pref_src']) { 170 $core->blog->settings->system->put('media_img_default_size',$s); 171 break; 172 } 173 } 174 } 175 if (!empty($_POST['pref_alignment'])) { 176 $core->blog->settings->system->put('media_img_default_alignment',$_POST['pref_alignment']); 177 } 178 if (!empty($_POST['pref_insertion'])) { 179 $core->blog->settings->system->put('media_img_default_link',($_POST['pref_insertion'] == 'link')); 180 } 181 if (!empty($_POST['pref_legend'])) { 182 $core->blog->settings->system->put('media_img_default_legend',$_POST['pref_legend']); 183 } 184 185 dcPage::addSuccessNotice(__('Default media insertion settings have been successfully updated.')); 186 $core->adminurl->redirect('admin.media.item',$page_url_params); 162 if (!empty($_POST['save_blog_prefs'])) { 163 if (!empty($_POST['pref_src'])) { 164 foreach (array_reverse($file->media_thumb) as $s => $v) { 165 if ($v == $_POST['pref_src']) { 166 $core->blog->settings->system->put('media_img_default_size', $s); 167 break; 168 } 169 } 170 } 171 if (!empty($_POST['pref_alignment'])) { 172 $core->blog->settings->system->put('media_img_default_alignment', $_POST['pref_alignment']); 173 } 174 if (!empty($_POST['pref_insertion'])) { 175 $core->blog->settings->system->put('media_img_default_link', ($_POST['pref_insertion'] == 'link')); 176 } 177 if (!empty($_POST['pref_legend'])) { 178 $core->blog->settings->system->put('media_img_default_legend', $_POST['pref_legend']); 179 } 180 181 dcPage::addSuccessNotice(__('Default media insertion settings have been successfully updated.')); 182 $core->adminurl->redirect('admin.media.item', $page_url_params); 187 183 } 188 184 189 185 # Function to get image title based on meta 190 $get_img_title = function ($file,$pattern,$dto_first=false,$no_date_alone=false) 191 { 192 $res = array(); 193 $pattern = preg_split('/\s*;;\s*/',$pattern); 194 $sep = ', '; 195 $dates = 0; 196 $items = 0; 197 198 foreach ($pattern as $v) { 199 if ($v == 'Title') { 200 if ($file->media_title != '') { 201 $res[] = $file->media_title; 202 } 203 $items++; 204 } elseif ($file->media_meta->{$v}) { 205 if ((string) $file->media_meta->{$v} != '') { 206 $res[] = (string) $file->media_meta->{$v}; 207 } 208 $items++; 209 } elseif (preg_match('/^Date\((.+?)\)$/u',$v,$m)) { 210 if ($dto_first && ($file->media_meta->DateTimeOriginal != 0)) { 211 $res[] = dt::dt2str($m[1],(string) $file->media_meta->DateTimeOriginal); 212 } else { 213 $res[] = dt::str($m[1],$file->media_dt); 214 } 215 $items++; 216 $dates++; 217 } elseif (preg_match('/^DateTimeOriginal\((.+?)\)$/u',$v,$m) && $file->media_meta->DateTimeOriginal) { 218 $res[] = dt::dt2str($m[1],(string) $file->media_meta->DateTimeOriginal); 219 $items++; 220 $dates++; 221 } elseif (preg_match('/^separator\((.*?)\)$/u',$v,$m)) { 222 $sep = $m[1]; 223 } 224 } 225 if ($no_date_alone && $dates == count($res) && $dates < $items) { 226 // On ne laisse pas les dates seules, sauf si ce sont les seuls items du pattern (hors séparateur) 227 return ''; 228 } 229 return implode($sep,$res); 186 $get_img_title = function ($file, $pattern, $dto_first = false, $no_date_alone = false) { 187 $res = array(); 188 $pattern = preg_split('/\s*;;\s*/', $pattern); 189 $sep = ', '; 190 $dates = 0; 191 $items = 0; 192 193 foreach ($pattern as $v) { 194 if ($v == 'Title') { 195 if ($file->media_title != '') { 196 $res[] = $file->media_title; 197 } 198 $items++; 199 } elseif ($file->media_meta->{$v}) { 200 if ((string) $file->media_meta->{$v} != '') { 201 $res[] = (string) $file->media_meta->{$v}; 202 } 203 $items++; 204 } elseif (preg_match('/^Date\((.+?)\)$/u', $v, $m)) { 205 if ($dto_first && ($file->media_meta->DateTimeOriginal != 0)) { 206 $res[] = dt::dt2str($m[1], (string) $file->media_meta->DateTimeOriginal); 207 } else { 208 $res[] = dt::str($m[1], $file->media_dt); 209 } 210 $items++; 211 $dates++; 212 } elseif (preg_match('/^DateTimeOriginal\((.+?)\)$/u', $v, $m) && $file->media_meta->DateTimeOriginal) { 213 $res[] = dt::dt2str($m[1], (string) $file->media_meta->DateTimeOriginal); 214 $items++; 215 $dates++; 216 } elseif (preg_match('/^separator\((.*?)\)$/u', $v, $m)) { 217 $sep = $m[1]; 218 } 219 } 220 if ($no_date_alone && $dates == count($res) && $dates < $items) { 221 // On ne laisse pas les dates seules, sauf si ce sont les seuls items du pattern (hors séparateur) 222 return ''; 223 } 224 return implode($sep, $res); 230 225 }; 231 226 … … 233 228 -------------------------------------------------------- */ 234 229 $starting_scripts = 235 '<script type="text/javascript">'."\n".236 dcPage::jsVar('dotclear.msg.confirm_delete_media',__('Are you sure to delete this media?'))."\n".237 "</script>".238 dcPage::jsModal().239 230 '<script type="text/javascript">' . "\n" . 231 dcPage::jsVar('dotclear.msg.confirm_delete_media', __('Are you sure to delete this media?')) . "\n" . 232 "</script>" . 233 dcPage::jsModal() . 234 dcPage::jsLoad('js/_media_item.js'); 240 235 if ($popup && !empty($plugin_id)) { 241 242 } 243 $temp_params = $media_page_url_params;244 $temp_params['d'] ='%s';245 $breadcrumb = $core->media->breadCrumb($core->adminurl->get('admin.media',$temp_params,'&',true)).246 ($file === null ? '' : '<span class="page-title">'.$file->basename.'</span>');247 $temp_params['d'] ='';248 $home_url =$core->adminurl->get('admin.media',$temp_params);249 call_user_func($open_f, __('Media manager'),250 $starting_scripts.251 dcPage::jsDatePicker().252 253 254 255 256 __('Media manager')=> $home_url,257 $breadcrumb=> ''258 259 260 261 'hl'=> false262 263 236 $starting_scripts .= $core->callBehavior('adminPopupMedia', $plugin_id); 237 } 238 $temp_params = $media_page_url_params; 239 $temp_params['d'] = '%s'; 240 $breadcrumb = $core->media->breadCrumb($core->adminurl->get('admin.media', $temp_params, '&', true)) . 241 ($file === null ? '' : '<span class="page-title">' . $file->basename . '</span>'); 242 $temp_params['d'] = ''; 243 $home_url = $core->adminurl->get('admin.media', $temp_params); 244 call_user_func($open_f, __('Media manager'), 245 $starting_scripts . 246 dcPage::jsDatePicker() . 247 ($popup ? dcPage::jsPageTabs($tab) : ''), 248 dcPage::breadcrumb( 249 array( 250 html::escapeHTML($core->blog->name) => '', 251 __('Media manager') => $home_url, 252 $breadcrumb => '' 253 ), 254 array( 255 'home_link' => !$popup, 256 'hl' => false 257 ) 258 ) 264 259 ); 265 260 266 261 if ($popup) { 267 268 262 // Display notices 263 echo dcPage::notices(); 269 264 } 270 265 271 266 if ($file === null) { 272 273 267 call_user_func($close_f); 268 exit; 274 269 } 275 270 276 271 if (!empty($_GET['fupd']) || !empty($_GET['fupl'])) { 277 272 dcPage::success(__('File has been successfully updated.')); 278 273 } 279 274 if (!empty($_GET['thumbupd'])) { 280 275 dcPage::success(__('Thumbnails have been successfully updated.')); 281 276 } 282 277 if (!empty($_GET['blogprefupd'])) { 283 278 dcPage::success(__('Default media insertion settings have been successfully updated.')); 284 279 } 285 280 286 281 # Get major file type (first part of mime type) 287 $file_type = explode('/', $file->type);282 $file_type = explode('/', $file->type); 288 283 289 284 # Selection mode 290 285 if ($select) { 291 // Let user choose thumbnail size if image 292 $media_desc = $file->media_title; 293 294 echo 295 '<div id="media-select" class="multi-part" title="'.__('Select media item').'">'. 296 '<h3>'.__('Select media item').'</h3>'. 297 '<form id="media-select-form" action="" method="get">'; 298 299 $media_img_default_size = $core->blog->settings->system->media_img_default_size; 300 if ($media_img_default_size == '') { 301 $media_img_default_size = 'm'; 302 } 303 $media_img_default_alignment = $core->blog->settings->system->media_img_default_alignment; 304 if ($media_img_default_alignment == '') { 305 $media_img_default_alignment = 'none'; 306 } 307 $media_img_default_link = (boolean)$core->blog->settings->system->media_img_default_link; 308 $media_img_default_legend = $core->blog->settings->system->media_img_default_legend; 309 if ($media_img_default_legend == '') { 310 $media_img_default_legend = 'legend'; 311 } 312 313 if ($file->media_type == 'image') 314 { 315 $media_type = 'image'; 316 $media_desc = $get_img_title($file, 317 $core->blog->settings->system->media_img_title_pattern, 318 $core->blog->settings->system->media_img_use_dto_first, 319 $core->blog->settings->system->media_img_no_date_alone); 320 if ($media_desc == $file->basename) { 321 $media_desc = ''; 322 } 323 324 echo 325 '<h3>'.__('Image size:').'</h3> '; 326 327 $s_checked = false; 328 echo '<p>'; 329 foreach (array_reverse($file->media_thumb) as $s => $v) { 330 $s_checked = ($s == $media_img_default_size); 331 echo '<label class="classic">'. 332 form::radio(array('src'),html::escapeHTML($v),$s_checked).' '. 333 $core->media->thumb_sizes[$s][2].'</label><br /> '; 334 } 335 $s_checked = (!isset($file->media_thumb[$media_img_default_size])); 336 echo '<label class="classic">'. 337 form::radio(array('src'),$file->file_url,$s_checked).' '.__('original').'</label><br /> '; 338 echo '</p>'; 339 340 } elseif ($file_type[0] == 'audio') { 341 $media_type = 'mp3'; 342 } elseif ($file_type[0] == 'video') { 343 $media_type = 'flv'; 344 } else { 345 $media_type = 'default'; 346 } 347 348 echo 349 '<p>'. 350 '<button type="button" id="media-select-ok" class="submit">'.__('Select').'</button> '. 351 '<button type="button" id="media-select-cancel">'.__('Cancel').'</button>'. 352 form::hidden(array('type'),html::escapeHTML($media_type)). 353 form::hidden(array('title'),html::escapeHTML($file->media_title)). 354 form::hidden(array('description'),html::escapeHTML($media_desc)). 355 form::hidden(array('url'),$file->file_url). 356 '</p>'; 357 358 echo '</form>'; 359 echo '</div>'; 286 // Let user choose thumbnail size if image 287 $media_desc = $file->media_title; 288 289 echo 290 '<div id="media-select" class="multi-part" title="' . __('Select media item') . '">' . 291 '<h3>' . __('Select media item') . '</h3>' . 292 '<form id="media-select-form" action="" method="get">'; 293 294 $media_img_default_size = $core->blog->settings->system->media_img_default_size; 295 if ($media_img_default_size == '') { 296 $media_img_default_size = 'm'; 297 } 298 $media_img_default_alignment = $core->blog->settings->system->media_img_default_alignment; 299 if ($media_img_default_alignment == '') { 300 $media_img_default_alignment = 'none'; 301 } 302 $media_img_default_link = (boolean) $core->blog->settings->system->media_img_default_link; 303 $media_img_default_legend = $core->blog->settings->system->media_img_default_legend; 304 if ($media_img_default_legend == '') { 305 $media_img_default_legend = 'legend'; 306 } 307 308 if ($file->media_type == 'image') { 309 $media_type = 'image'; 310 $media_desc = $get_img_title($file, 311 $core->blog->settings->system->media_img_title_pattern, 312 $core->blog->settings->system->media_img_use_dto_first, 313 $core->blog->settings->system->media_img_no_date_alone); 314 if ($media_desc == $file->basename) { 315 $media_desc = ''; 316 } 317 318 echo 319 '<h3>' . __('Image size:') . '</h3> '; 320 321 $s_checked = false; 322 echo '<p>'; 323 foreach (array_reverse($file->media_thumb) as $s => $v) { 324 $s_checked = ($s == $media_img_default_size); 325 echo '<label class="classic">' . 326 form::radio(array('src'), html::escapeHTML($v), $s_checked) . ' ' . 327 $core->media->thumb_sizes[$s][2] . '</label><br /> '; 328 } 329 $s_checked = (!isset($file->media_thumb[$media_img_default_size])); 330 echo '<label class="classic">' . 331 form::radio(array('src'), $file->file_url, $s_checked) . ' ' . __('original') . '</label><br /> '; 332 echo '</p>'; 333 334 } elseif ($file_type[0] == 'audio') { 335 $media_type = 'mp3'; 336 } elseif ($file_type[0] == 'video') { 337 $media_type = 'flv'; 338 } else { 339 $media_type = 'default'; 340 } 341 342 echo 343 '<p>' . 344 '<button type="button" id="media-select-ok" class="submit">' . __('Select') . '</button> ' . 345 '<button type="button" id="media-select-cancel">' . __('Cancel') . '</button>' . 346 form::hidden(array('type'), html::escapeHTML($media_type)) . 347 form::hidden(array('title'), html::escapeHTML($file->media_title)) . 348 form::hidden(array('description'), html::escapeHTML($media_desc)) . 349 form::hidden(array('url'), $file->file_url) . 350 '</p>'; 351 352 echo '</form>'; 353 echo '</div>'; 360 354 } 361 355 362 356 # Insertion popup 363 if ($popup && !$select) 364 { 365 $media_desc = $file->media_title; 366 367 echo 368 '<div id="media-insert" class="multi-part" title="'.__('Insert media item').'">'. 369 '<h3>'.__('Insert media item').'</h3>'. 370 '<form id="media-insert-form" action="" method="get">'; 371 372 $media_img_default_size = $core->blog->settings->system->media_img_default_size; 373 if ($media_img_default_size == '') { 374 $media_img_default_size = 'm'; 375 } 376 $media_img_default_alignment = $core->blog->settings->system->media_img_default_alignment; 377 if ($media_img_default_alignment == '') { 378 $media_img_default_alignment = 'none'; 379 } 380 $media_img_default_link = (boolean)$core->blog->settings->system->media_img_default_link; 381 $media_img_default_legend = $core->blog->settings->system->media_img_default_legend; 382 if ($media_img_default_legend == '') { 383 $media_img_default_legend = 'legend'; 384 } 385 386 if ($file->media_type == 'image') 387 { 388 $media_type = 'image'; 389 $media_desc = $get_img_title($file, 390 $core->blog->settings->system->media_img_title_pattern, 391 $core->blog->settings->system->media_img_use_dto_first, 392 $core->blog->settings->system->media_img_no_date_alone); 393 if ($media_desc == $file->basename) { 394 $media_desc = ''; 395 } 396 397 echo 398 '<div class="two-boxes">'. 399 '<h3>'.__('Image size:').'</h3> '; 400 $s_checked = false; 401 echo '<p>'; 402 foreach (array_reverse($file->media_thumb) as $s => $v) { 403 $s_checked = ($s == $media_img_default_size); 404 echo '<label class="classic">'. 405 form::radio(array('src'),html::escapeHTML($v),$s_checked).' '. 406 $core->media->thumb_sizes[$s][2].'</label><br /> '; 407 } 408 $s_checked = (!isset($file->media_thumb[$media_img_default_size])); 409 echo '<label class="classic">'. 410 form::radio(array('src'),$file->file_url,$s_checked).' '.__('original').'</label><br /> '; 411 echo '</p>'; 412 echo '</div>'; 413 414 echo 415 '<div class="two-boxes">'. 416 '<h3>'.__('Image legend and title').'</h3>'. 417 '<p>'. 418 '<label for="legend1" class="classic">'.form::radio(array('legend','legend1'),'legend', 419 ($media_img_default_legend == 'legend')). 420 __('Legend and title').'</label><br />'. 421 '<label for="legend2" class="classic">'.form::radio(array('legend','legend2'),'title', 422 ($media_img_default_legend == 'title')). 423 __('Title').'</label><br />'. 424 '<label for="legend3" class="classic">'.form::radio(array('legend','legend3'),'none', 425 ($media_img_default_legend == 'none')). 426 __('None').'</label>'. 427 '</p>'. 428 '</div>'; 429 430 echo 431 '<div class="two-boxes">'. 432 '<h3>'.__('Image alignment').'</h3>'; 433 $i_align = array( 434 'none' => array(__('None'),($media_img_default_alignment == 'none' ? 1 : 0)), 435 'left' => array(__('Left'),($media_img_default_alignment == 'left' ? 1 : 0)), 436 'right' => array(__('Right'),($media_img_default_alignment == 'right' ? 1 : 0)), 437 'center' => array(__('Center'),($media_img_default_alignment == 'center' ? 1 : 0)) 438 ); 439 440 echo '<p>'; 441 foreach ($i_align as $k => $v) { 442 echo '<label class="classic">'. 443 form::radio(array('alignment'),$k,$v[1]).' '.$v[0].'</label><br /> '; 444 } 445 echo '</p>'; 446 echo '</div>'; 447 448 echo 449 '<div class="two-boxes">'. 450 '<h3>'.__('Image insertion').'</h3>'. 451 '<p>'. 452 '<label for="insert1" class="classic">'.form::radio(array('insertion','insert1'),'simple',!$media_img_default_link). 453 __('As a single image').'</label><br />'. 454 '<label for="insert2" class="classic">'.form::radio(array('insertion','insert2'),'link',$media_img_default_link). 455 __('As a link to the original image').'</label>'. 456 '</p>'. 457 '</div>'; 458 } 459 elseif ($file_type[0] == 'audio') 460 { 461 $media_type = 'mp3'; 462 463 echo 464 '<div class="two-boxes">'. 465 '<h3>'.__('MP3 disposition').'</h3>'; 466 dcPage::message(__("Please note that you cannot insert mp3 files with visual editor."),false); 467 468 $i_align = array( 469 'none' => array(__('None'),($media_img_default_alignment == 'none' ? 1 : 0)), 470 'left' => array(__('Left'),($media_img_default_alignment == 'left' ? 1 : 0)), 471 'right' => array(__('Right'),($media_img_default_alignment == 'right' ? 1 : 0)), 472 'center' => array(__('Center'),($media_img_default_alignment == 'center' ? 1 : 0)) 473 ); 474 475 echo '<p>'; 476 foreach ($i_align as $k => $v) { 477 echo '<label class="classic">'. 478 form::radio(array('alignment'),$k,$v[1]).' '.$v[0].'</label><br /> '; 479 } 480 481 $public_player_style = unserialize($core->blog->settings->themes->mp3player_style); 482 $public_player = dcMedia::audioPlayer($file->type,$file->file_url,$core->blog->getQmarkURL().'pf=player_mp3.swf',$public_player_style,$core->blog->settings->system->media_flash_fallback); 483 echo form::hidden('public_player',html::escapeHTML($public_player)); 484 echo '</p>'; 485 echo '</div>'; 486 } 487 elseif ($file_type[0] == 'video') 488 { 489 $media_type = 'flv'; 490 491 dcPage::message(__("Please note that you cannot insert video files with visual editor."),false); 492 493 echo 494 '<div class="two-boxes">'. 495 '<h3>'.__('Video size').'</h3>'. 496 '<p><label for="video_w" class="classic">'.__('Width:').'</label> '. 497 form::field('video_w',3,4,$core->blog->settings->system->media_video_width).' '. 498 '<label for="video_h" class="classic">'.__('Height:').'</label> '. 499 form::field('video_h',3,4,$core->blog->settings->system->media_video_height). 500 '</p>'. 501 '</div>'; 502 503 504 echo 505 '<div class="two-boxes">'. 506 '<h3>'.__('Video disposition').'</h3>'; 507 508 $i_align = array( 509 'none' => array(__('None'),($media_img_default_alignment == 'none' ? 1 : 0)), 510 'left' => array(__('Left'),($media_img_default_alignment == 'left' ? 1 : 0)), 511 'right' => array(__('Right'),($media_img_default_alignment == 'right' ? 1 : 0)), 512 'center' => array(__('Center'),($media_img_default_alignment == 'center' ? 1 : 0)) 513 ); 514 515 echo '<p>'; 516 foreach ($i_align as $k => $v) { 517 echo '<label class="classic">'. 518 form::radio(array('alignment'),$k,$v[1]).' '.$v[0].'</label><br /> '; 519 } 520 521 $public_player_style = unserialize($core->blog->settings->themes->flvplayer_style); 522 $public_player = dcMedia::videoPlayer($file->type,$file->file_url,$core->blog->getQmarkURL().'pf=player_flv.swf',$public_player_style,$core->blog->settings->system->media_flash_fallback); 523 echo form::hidden('public_player',html::escapeHTML($public_player)); 524 echo '</p>'; 525 echo '</div>'; 526 } 527 else 528 { 529 $media_type = 'default'; 530 echo '<p>'.__('Media item will be inserted as a link.').'</p>'; 531 } 532 533 echo 534 '<p>'. 535 '<button type="button" id="media-insert-ok" class="submit">'.__('Insert').'</button> '. 536 '<button type="button" id="media-insert-cancel">'.__('Cancel').'</button>'. 537 form::hidden(array('type'),html::escapeHTML($media_type)). 538 form::hidden(array('title'),html::escapeHTML($file->media_title)). 539 form::hidden(array('description'),html::escapeHTML($media_desc)). 540 form::hidden(array('url'),$file->file_url). 541 '</p>'; 542 543 echo '</form>'; 544 545 if ($media_type != 'default') { 546 echo 547 '<div class="border-top">'. 548 '<form id="save_settings" action="'.$core->adminurl->getBase('admin.media.item').'" method="post">'. 549 '<p>'.__('Make current settings as default').' '. 550 '<input class="reset" type="submit" name="save_blog_prefs" value="'.__('OK').'" />'. 551 form::hidden(array('pref_src'),''). 552 form::hidden(array('pref_alignment'),''). 553 form::hidden(array('pref_insertion'),''). 554 form::hidden(array('pref_legend'),''). 555 $core->adminurl->getHiddenFormFields('admin.media.item',$page_url_params). 556 $core->formNonce().'</p>'. 557 '</form>'.'</div>'; 558 } 559 560 echo '</div>'; 357 if ($popup && !$select) { 358 $media_desc = $file->media_title; 359 360 echo 361 '<div id="media-insert" class="multi-part" title="' . __('Insert media item') . '">' . 362 '<h3>' . __('Insert media item') . '</h3>' . 363 '<form id="media-insert-form" action="" method="get">'; 364 365 $media_img_default_size = $core->blog->settings->system->media_img_default_size; 366 if ($media_img_default_size == '') { 367 $media_img_default_size = 'm'; 368 } 369 $media_img_default_alignment = $core->blog->settings->system->media_img_default_alignment; 370 if ($media_img_default_alignment == '') { 371 $media_img_default_alignment = 'none'; 372 } 373 $media_img_default_link = (boolean) $core->blog->settings->system->media_img_default_link; 374 $media_img_default_legend = $core->blog->settings->system->media_img_default_legend; 375 if ($media_img_default_legend == '') { 376 $media_img_default_legend = 'legend'; 377 } 378 379 if ($file->media_type == 'image') { 380 $media_type = 'image'; 381 $media_desc = $get_img_title($file, 382 $core->blog->settings->system->media_img_title_pattern, 383 $core->blog->settings->system->media_img_use_dto_first, 384 $core->blog->settings->system->media_img_no_date_alone); 385 if ($media_desc == $file->basename) { 386 $media_desc = ''; 387 } 388 389 echo 390 '<div class="two-boxes">' . 391 '<h3>' . __('Image size:') . '</h3> '; 392 $s_checked = false; 393 echo '<p>'; 394 foreach (array_reverse($file->media_thumb) as $s => $v) { 395 $s_checked = ($s == $media_img_default_size); 396 echo '<label class="classic">' . 397 form::radio(array('src'), html::escapeHTML($v), $s_checked) . ' ' . 398 $core->media->thumb_sizes[$s][2] . '</label><br /> '; 399 } 400 $s_checked = (!isset($file->media_thumb[$media_img_default_size])); 401 echo '<label class="classic">' . 402 form::radio(array('src'), $file->file_url, $s_checked) . ' ' . __('original') . '</label><br /> '; 403 echo '</p>'; 404 echo '</div>'; 405 406 echo 407 '<div class="two-boxes">' . 408 '<h3>' . __('Image legend and title') . '</h3>' . 409 '<p>' . 410 '<label for="legend1" class="classic">' . form::radio(array('legend', 'legend1'), 'legend', 411 ($media_img_default_legend == 'legend')) . 412 __('Legend and title') . '</label><br />' . 413 '<label for="legend2" class="classic">' . form::radio(array('legend', 'legend2'), 'title', 414 ($media_img_default_legend == 'title')) . 415 __('Title') . '</label><br />' . 416 '<label for="legend3" class="classic">' . form::radio(array('legend', 'legend3'), 'none', 417 ($media_img_default_legend == 'none')) . 418 __('None') . '</label>' . 419 '</p>' . 420 '</div>'; 421 422 echo 423 '<div class="two-boxes">' . 424 '<h3>' . __('Image alignment') . '</h3>'; 425 $i_align = array( 426 'none' => array(__('None'), ($media_img_default_alignment == 'none' ? 1 : 0)), 427 'left' => array(__('Left'), ($media_img_default_alignment == 'left' ? 1 : 0)), 428 'right' => array(__('Right'), ($media_img_default_alignment == 'right' ? 1 : 0)), 429 'center' => array(__('Center'), ($media_img_default_alignment == 'center' ? 1 : 0)) 430 ); 431 432 echo '<p>'; 433 foreach ($i_align as $k => $v) { 434 echo '<label class="classic">' . 435 form::radio(array('alignment'), $k, $v[1]) . ' ' . $v[0] . '</label><br /> '; 436 } 437 echo '</p>'; 438 echo '</div>'; 439 440 echo 441 '<div class="two-boxes">' . 442 '<h3>' . __('Image insertion') . '</h3>' . 443 '<p>' . 444 '<label for="insert1" class="classic">' . form::radio(array('insertion', 'insert1'), 'simple', !$media_img_default_link) . 445 __('As a single image') . '</label><br />' . 446 '<label for="insert2" class="classic">' . form::radio(array('insertion', 'insert2'), 'link', $media_img_default_link) . 447 __('As a link to the original image') . '</label>' . 448 '</p>' . 449 '</div>'; 450 } elseif ($file_type[0] == 'audio') { 451 $media_type = 'mp3'; 452 453 echo 454 '<div class="two-boxes">' . 455 '<h3>' . __('MP3 disposition') . '</h3>'; 456 dcPage::message(__("Please note that you cannot insert mp3 files with visual editor."), false); 457 458 $i_align = array( 459 'none' => array(__('None'), ($media_img_default_alignment == 'none' ? 1 : 0)), 460 'left' => array(__('Left'), ($media_img_default_alignment == 'left' ? 1 : 0)), 461 'right' => array(__('Right'), ($media_img_default_alignment == 'right' ? 1 : 0)), 462 'center' => array(__('Center'), ($media_img_default_alignment == 'center' ? 1 : 0)) 463 ); 464 465 echo '<p>'; 466 foreach ($i_align as $k => $v) { 467 echo '<label class="classic">' . 468 form::radio(array('alignment'), $k, $v[1]) . ' ' . $v[0] . '</label><br /> '; 469 } 470 471 $public_player_style = unserialize($core->blog->settings->themes->mp3player_style); 472 $public_player = dcMedia::audioPlayer($file->type, $file->file_url, $core->blog->getQmarkURL() . 'pf=player_mp3.swf', $public_player_style, $core->blog->settings->system->media_flash_fallback); 473 echo form::hidden('public_player', html::escapeHTML($public_player)); 474 echo '</p>'; 475 echo '</div>'; 476 } elseif ($file_type[0] == 'video') { 477 $media_type = 'flv'; 478 479 dcPage::message(__("Please note that you cannot insert video files with visual editor."), false); 480 481 echo 482 '<div class="two-boxes">' . 483 '<h3>' . __('Video size') . '</h3>' . 484 '<p><label for="video_w" class="classic">' . __('Width:') . '</label> ' . 485 form::field('video_w', 3, 4, $core->blog->settings->system->media_video_width) . ' ' . 486 '<label for="video_h" class="classic">' . __('Height:') . '</label> ' . 487 form::field('video_h', 3, 4, $core->blog->settings->system->media_video_height) . 488 '</p>' . 489 '</div>'; 490 491 echo 492 '<div class="two-boxes">' . 493 '<h3>' . __('Video disposition') . '</h3>'; 494 495 $i_align = array( 496 'none' => array(__('None'), ($media_img_default_alignment == 'none' ? 1 : 0)), 497 'left' => array(__('Left'), ($media_img_default_alignment == 'left' ? 1 : 0)), 498 'right' => array(__('Right'), ($media_img_default_alignment == 'right' ? 1 : 0)), 499 'center' => array(__('Center'), ($media_img_default_alignment == 'center' ? 1 : 0)) 500 ); 501 502 echo '<p>'; 503 foreach ($i_align as $k => $v) { 504 echo '<label class="classic">' . 505 form::radio(array('alignment'), $k, $v[1]) . ' ' . $v[0] . '</label><br /> '; 506 } 507 508 $public_player_style = unserialize($core->blog->settings->themes->flvplayer_style); 509 $public_player = dcMedia::videoPlayer($file->type, $file->file_url, $core->blog->getQmarkURL() . 'pf=player_flv.swf', $public_player_style, $core->blog->settings->system->media_flash_fallback); 510 echo form::hidden('public_player', html::escapeHTML($public_player)); 511 echo '</p>'; 512 echo '</div>'; 513 } else { 514 $media_type = 'default'; 515 echo '<p>' . __('Media item will be inserted as a link.') . '</p>'; 516 } 517 518 echo 519 '<p>' . 520 '<button type="button" id="media-insert-ok" class="submit">' . __('Insert') . '</button> ' . 521 '<button type="button" id="media-insert-cancel">' . __('Cancel') . '</button>' . 522 form::hidden(array('type'), html::escapeHTML($media_type)) . 523 form::hidden(array('title'), html::escapeHTML($file->media_title)) . 524 form::hidden(array('description'), html::escapeHTML($media_desc)) . 525 form::hidden(array('url'), $file->file_url) . 526 '</p>'; 527 528 echo '</form>'; 529 530 if ($media_type != 'default') { 531 echo 532 '<div class="border-top">' . 533 '<form id="save_settings" action="' . $core->adminurl->getBase('admin.media.item') . '" method="post">' . 534 '<p>' . __('Make current settings as default') . ' ' . 535 '<input class="reset" type="submit" name="save_blog_prefs" value="' . __('OK') . '" />' . 536 form::hidden(array('pref_src'), '') . 537 form::hidden(array('pref_alignment'), '') . 538 form::hidden(array('pref_insertion'), '') . 539 form::hidden(array('pref_legend'), '') . 540 $core->adminurl->getHiddenFormFields('admin.media.item', $page_url_params) . 541 $core->formNonce() . '</p>' . 542 '</form>' . '</div>'; 543 } 544 545 echo '</div>'; 561 546 } 562 547 563 548 if ($popup || $select) { 564 565 '<div class="multi-part" title="'.__('Media details').'" id="media-details-tab">';549 echo 550 '<div class="multi-part" title="' . __('Media details') . '" id="media-details-tab">'; 566 551 } else { 567 echo '<h3 class="out-of-screen-if-js">'.__('Media details').'</h3>';552 echo '<h3 class="out-of-screen-if-js">' . __('Media details') . '</h3>'; 568 553 } 569 554 echo 570 '<p id="media-icon"><img src="' .$file->media_icon.'?'.time()*rand().'" alt="" /></p>';555 '<p id="media-icon"><img src="' . $file->media_icon . '?' . time() * rand() . '" alt="" /></p>'; 571 556 572 557 echo 573 '<div id="media-details">'. 574 '<div class="near-icon">'; 575 576 if ($file->media_image) 577 { 578 $thumb_size = !empty($_GET['size']) ? $_GET['size'] : 's'; 579 580 if (!isset($core->media->thumb_sizes[$thumb_size]) && $thumb_size != 'o') { 581 $thumb_size = 's'; 582 } 583 584 if (isset($file->media_thumb[$thumb_size])) { 585 echo '<p><a class="modal-image" href="'.$file->file_url.'">'. 586 '<img src="'.$file->media_thumb[$thumb_size].'?'.time()*rand().'" alt="" />'. 587 '</a></p>'; 588 } elseif ($thumb_size == 'o') { 589 $S = getimagesize($file->file); 590 $class = ($S[1] > 500) ? ' class="overheight"' : ''; 591 unset($S); 592 echo '<p id="media-original-image"'.$class.'><a class="modal-image" href="'.$file->file_url.'">'. 593 '<img src="'.$file->file_url.'?'.time()*rand().'" alt="" />'. 594 '</a></p>'; 595 } 596 597 echo '<p>'.__('Available sizes:').' '; 598 foreach (array_reverse($file->media_thumb) as $s => $v) 599 { 600 $strong_link = ($s == $thumb_size) ? '<strong>%s</strong>' : '%s'; 601 printf($strong_link,'<a href="'.$core->adminurl->get('admin.media.item',array_merge($page_url_params, 602 array("size" => $s,'tab' => 'media-details-tab'))).'">'.$core->media->thumb_sizes[$s][2].'</a> | '); 603 } 604 echo '<a href="'.$core->adminurl->get('admin.media.item',array_merge($page_url_params,array("size" => "o","tab"=>"media-details-tab"))).'">'.__('original').'</a>'; 605 echo '</p>'; 606 607 if ($thumb_size != 'o' && isset($file->media_thumb[$thumb_size])) { 608 $p = path::info($file->file); 609 $alpha = ($p['extension'] == 'png') || ($p['extension'] == 'PNG'); 610 $thumb = sprintf(($alpha ? $core->media->thumb_tp_alpha : $core->media->thumb_tp),$p['dirname'],$p['base'],'%s'); 611 $thumb_file = sprintf($thumb,$thumb_size); 612 $T = getimagesize($thumb_file); 613 $stats = stat($thumb_file); 614 echo 615 '<h3>'.__('Thumbnail details').'</h3>'. 616 '<ul>'. 617 '<li><strong>'.__('Image width:').'</strong> '.$T[0].' px</li>'. 618 '<li><strong>'.__('Image height:').'</strong> '.$T[1].' px</li>'. 619 '<li><strong>'.__('File size:').'</strong> '.files::size($stats[7]).'</li>'. 620 '<li><strong>'.__('File URL:').'</strong> <a href="'.$file->media_thumb[$thumb_size].'">'. 621 $file->media_thumb[$thumb_size].'</a></li>'. 622 '</ul>'; 623 } 558 '<div id="media-details">' . 559 '<div class="near-icon">'; 560 561 if ($file->media_image) { 562 $thumb_size = !empty($_GET['size']) ? $_GET['size'] : 's'; 563 564 if (!isset($core->media->thumb_sizes[$thumb_size]) && $thumb_size != 'o') { 565 $thumb_size = 's'; 566 } 567 568 if (isset($file->media_thumb[$thumb_size])) { 569 echo '<p><a class="modal-image" href="' . $file->file_url . '">' . 570 '<img src="' . $file->media_thumb[$thumb_size] . '?' . time() * rand() . '" alt="" />' . 571 '</a></p>'; 572 } elseif ($thumb_size == 'o') { 573 $S = getimagesize($file->file); 574 $class = ($S[1] > 500) ? ' class="overheight"' : ''; 575 unset($S); 576 echo '<p id="media-original-image"' . $class . '><a class="modal-image" href="' . $file->file_url . '">' . 577 '<img src="' . $file->file_url . '?' . time() * rand() . '" alt="" />' . 578 '</a></p>'; 579 } 580 581 echo '<p>' . __('Available sizes:') . ' '; 582 foreach (array_reverse($file->media_thumb) as $s => $v) { 583 $strong_link = ($s == $thumb_size) ? '<strong>%s</strong>' : '%s'; 584 printf($strong_link, '<a href="' . $core->adminurl->get('admin.media.item', array_merge($page_url_params, 585 array("size" => $s, 'tab' => 'media-details-tab'))) . '">' . $core->media->thumb_sizes[$s][2] . '</a> | '); 586 } 587 echo '<a href="' . $core->adminurl->get('admin.media.item', array_merge($page_url_params, array("size" => "o", "tab" => "media-details-tab"))) . '">' . __('original') . '</a>'; 588 echo '</p>'; 589 590 if ($thumb_size != 'o' && isset($file->media_thumb[$thumb_size])) { 591 $p = path::info($file->file); 592 $alpha = ($p['extension'] == 'png') || ($p['extension'] == 'PNG'); 593 $thumb = sprintf(($alpha ? $core->media->thumb_tp_alpha : $core->media->thumb_tp), $p['dirname'], $p['base'], '%s'); 594 $thumb_file = sprintf($thumb, $thumb_size); 595 $T = getimagesize($thumb_file); 596 $stats = stat($thumb_file); 597 echo 598 '<h3>' . __('Thumbnail details') . '</h3>' . 599 '<ul>' . 600 '<li><strong>' . __('Image width:') . '</strong> ' . $T[0] . ' px</li>' . 601 '<li><strong>' . __('Image height:') . '</strong> ' . $T[1] . ' px</li>' . 602 '<li><strong>' . __('File size:') . '</strong> ' . files::size($stats[7]) . '</li>' . 603 '<li><strong>' . __('File URL:') . '</strong> <a href="' . $file->media_thumb[$thumb_size] . '">' . 604 $file->media_thumb[$thumb_size] . '</a></li>' . 605 '</ul>'; 606 } 624 607 } 625 608 626 609 // Show player if relevant 627 if ($file_type[0] == 'audio') 628 { 629 echo dcMedia::audioPlayer($file->type,$file->file_url,$core->adminurl->get("admin.home",array('pf' => 'player_mp3.swf')), 630 null,$core->blog->settings->system->media_flash_fallback); 631 } 632 if ($file_type[0] == 'video') 633 { 634 echo dcMedia::videoPlayer($file->type,$file->file_url,$core->adminurl->get("admin.home",array('pf' => 'player_flv.swf')), 635 null,$core->blog->settings->system->media_flash_fallback); 610 if ($file_type[0] == 'audio') { 611 echo dcMedia::audioPlayer($file->type, $file->file_url, $core->adminurl->get("admin.home", array('pf' => 'player_mp3.swf')), 612 null, $core->blog->settings->system->media_flash_fallback); 613 } 614 if ($file_type[0] == 'video') { 615 echo dcMedia::videoPlayer($file->type, $file->file_url, $core->adminurl->get("admin.home", array('pf' => 'player_flv.swf')), 616 null, $core->blog->settings->system->media_flash_fallback); 636 617 } 637 618 638 619 echo 639 '<h3>'.__('Media details').'</h3>'. 640 '<ul>'. 641 '<li><strong>'.__('File owner:').'</strong> '.$file->media_user.'</li>'. 642 '<li><strong>'.__('File type:').'</strong> '.$file->type.'</li>'; 643 if ($file->media_image) 644 { 645 $S = getimagesize($file->file); 646 echo 647 '<li><strong>'.__('Image width:').'</strong> '.$S[0].' px</li>'. 648 '<li><strong>'.__('Image height:').'</strong> '.$S[1].' px</li>'; 649 unset($S); 620 '<h3>' . __('Media details') . '</h3>' . 621 '<ul>' . 622 '<li><strong>' . __('File owner:') . '</strong> ' . $file->media_user . '</li>' . 623 '<li><strong>' . __('File type:') . '</strong> ' . $file->type . '</li>'; 624 if ($file->media_image) { 625 $S = getimagesize($file->file); 626 echo 627 '<li><strong>' . __('Image width:') . '</strong> ' . $S[0] . ' px</li>' . 628 '<li><strong>' . __('Image height:') . '</strong> ' . $S[1] . ' px</li>'; 629 unset($S); 650 630 } 651 631 echo 652 '<li><strong>'.__('File size:').'</strong> '.files::size($file->size).'</li>'. 653 '<li><strong>'.__('File URL:').'</strong> <a href="'.$file->file_url.'">'.$file->file_url.'</a></li>'. 654 '</ul>'; 655 656 if (empty($_GET['find_posts'])) 657 { 658 echo 659 '<p><a class="button" href="'.$core->adminurl->get('admin.media.item',array_merge($page_url_params,array("find_posts"=>1,"tab"=>"media-details-tab"))).'">'. 660 __('Show entries containing this media').'</a></p>'; 661 } 662 else 663 { 664 echo '<h3>'.__('Entries containing this media').'</h3>'; 665 $params = array( 666 'post_type' => '', 667 'from' => 'LEFT OUTER JOIN '.$core->prefix.'post_media PM ON P.post_id = PM.post_id ', 668 'sql' => 'AND ('. 669 'PM.media_id = '.(integer) $id.' '. 670 "OR post_content_xhtml LIKE '%".$core->con->escape($file->relname)."%' ". 671 "OR post_excerpt_xhtml LIKE '%".$core->con->escape($file->relname)."%' " 672 ); 673 674 if ($file->media_image) 675 { # We look for thumbnails too 676 if (preg_match('#^http(s)?://#',$core->blog->settings->system->public_url)) { 677 $media_root = $core->blog->settings->system->public_url; 678 } else { 679 $media_root = $core->blog->host.path::clean($core->blog->settings->system->public_url).'/'; 680 } 681 foreach ($file->media_thumb as $v) { 682 $v = preg_replace('/^'.preg_quote($media_root,'/').'/','',$v); 683 $params['sql'] .= "OR post_content_xhtml LIKE '%".$core->con->escape($v)."%' "; 684 $params['sql'] .= "OR post_excerpt_xhtml LIKE '%".$core->con->escape($v)."%' "; 685 } 686 } 687 688 $params['sql'] .= ') '; 689 690 $rs = $core->blog->getPosts($params); 691 692 if ($rs->isEmpty()) 693 { 694 echo '<p>'.__('No entry seems contain this media.').'</p>'; 695 } 696 else 697 { 698 echo '<ul>'; 699 while ($rs->fetch()) { 700 $img = '<img alt="%1$s" title="%1$s" src="images/%2$s" />'; 701 switch ($rs->post_status) { 702 case 1: 703 $img_status = sprintf($img,__('published'),'check-on.png'); 704 break; 705 case 0: 706 $img_status = sprintf($img,__('unpublished'),'check-off.png'); 707 break; 708 case -1: 709 $img_status = sprintf($img,__('scheduled'),'scheduled.png'); 710 break; 711 case -2: 712 $img_status = sprintf($img,__('pending'),'check-wrn.png'); 713 break; 714 } 715 echo '<li>'.$img_status.' '.'<a href="'.$core->getPostAdminURL($rs->post_type,$rs->post_id).'">'. 716 $rs->post_title.'</a>'. 717 ($rs->post_type != 'post' ? ' ('.html::escapeHTML($rs->post_type).')' : ''). 718 ' - '.dt::dt2str(__('%Y-%m-%d %H:%M'),$rs->post_dt).'</li>'; 719 } 720 echo '</ul>'; 721 } 722 } 723 724 if ($file->type == 'image/jpeg') 725 { 726 echo '<h3>'.__('Image details').'</h3>'; 727 728 $details = ''; 729 if (count($file->media_meta) > 0) 730 { 731 foreach ($file->media_meta as $k => $v) 732 { 733 if ((string) $v) { 734 $details .= '<li><strong>'.$k.':</strong> '.html::escapeHTML($v).'</li>'; 735 } 736 } 737 } 738 if ($details) { 739 echo '<ul>'.$details.'</ul>'; 740 } else { 741 echo '<p>'.__('No detail').'</p>'; 742 } 632 '<li><strong>' . __('File size:') . '</strong> ' . files::size($file->size) . '</li>' . 633 '<li><strong>' . __('File URL:') . '</strong> <a href="' . $file->file_url . '">' . $file->file_url . '</a></li>' . 634 '</ul>'; 635 636 if (empty($_GET['find_posts'])) { 637 echo 638 '<p><a class="button" href="' . $core->adminurl->get('admin.media.item', array_merge($page_url_params, array("find_posts" => 1, "tab" => "media-details-tab"))) . '">' . 639 __('Show entries containing this media') . '</a></p>'; 640 } else { 641 echo '<h3>' . __('Entries containing this media') . '</h3>'; 642 $params = array( 643 'post_type' => '', 644 'from' => 'LEFT OUTER JOIN ' . $core->prefix . 'post_media PM ON P.post_id = PM.post_id ', 645 'sql' => 'AND (' . 646 'PM.media_id = ' . (integer) $id . ' ' . 647 "OR post_content_xhtml LIKE '%" . $core->con->escape($file->relname) . "%' " . 648 "OR post_excerpt_xhtml LIKE '%" . $core->con->escape($file->relname) . "%' " 649 ); 650 651 if ($file->media_image) { 652 # We look for thumbnails too 653 if (preg_match('#^http(s)?://#', $core->blog->settings->system->public_url)) { 654 $media_root = $core->blog->settings->system->public_url; 655 } else { 656 $media_root = $core->blog->host . path::clean($core->blog->settings->system->public_url) . '/'; 657 } 658 foreach ($file->media_thumb as $v) { 659 $v = preg_replace('/^' . preg_quote($media_root, '/') . '/', '', $v); 660 $params['sql'] .= "OR post_content_xhtml LIKE '%" . $core->con->escape($v) . "%' "; 661 $params['sql'] .= "OR post_excerpt_xhtml LIKE '%" . $core->con->escape($v) . "%' "; 662 } 663 } 664 665 $params['sql'] .= ') '; 666 667 $rs = $core->blog->getPosts($params); 668 669 if ($rs->isEmpty()) { 670 echo '<p>' . __('No entry seems contain this media.') . '</p>'; 671 } else { 672 echo '<ul>'; 673 while ($rs->fetch()) { 674 $img = '<img alt="%1$s" title="%1$s" src="images/%2$s" />'; 675 switch ($rs->post_status) { 676 case 1: 677 $img_status = sprintf($img, __('published'), 'check-on.png'); 678 break; 679 case 0: 680 $img_status = sprintf($img, __('unpublished'), 'check-off.png'); 681 break; 682 case -1: 683 $img_status = sprintf($img, __('scheduled'), 'scheduled.png'); 684 break; 685 case -2: 686 $img_status = sprintf($img, __('pending'), 'check-wrn.png'); 687 break; 688 } 689 echo '<li>' . $img_status . ' ' . '<a href="' . $core->getPostAdminURL($rs->post_type, $rs->post_id) . '">' . 690 $rs->post_title . '</a>' . 691 ($rs->post_type != 'post' ? ' (' . html::escapeHTML($rs->post_type) . ')' : '') . 692 ' - ' . dt::dt2str(__('%Y-%m-%d %H:%M'), $rs->post_dt) . '</li>'; 693 } 694 echo '</ul>'; 695 } 696 } 697 698 if ($file->type == 'image/jpeg') { 699 echo '<h3>' . __('Image details') . '</h3>'; 700 701 $details = ''; 702 if (count($file->media_meta) > 0) { 703 foreach ($file->media_meta as $k => $v) { 704 if ((string) $v) { 705 $details .= '<li><strong>' . $k . ':</strong> ' . html::escapeHTML($v) . '</li>'; 706 } 707 } 708 } 709 if ($details) { 710 echo '<ul>' . $details . '</ul>'; 711 } else { 712 echo '<p>' . __('No detail') . '</p>'; 713 } 743 714 } 744 715 745 716 echo '</div>'; 746 717 747 echo '<h3>'.__('Updates and modifications').'</h3>'; 748 749 if ($file->editable && $core_media_writable) 750 { 751 if ($file->media_type == 'image') 752 { 753 echo 754 '<form class="clear fieldset" action="'.$core->adminurl->get("admin.media.item").'" method="post">'. 755 '<h4>'.__('Update thumbnails').'</h4>'. 756 '<p class="more-info">'.__('This will create or update thumbnails for this image.').'</p>'. 757 '<p><input type="submit" name="thumbs" value="'.__('Update thumbnails').'" />'. 758 $core->adminurl->getHiddenFormFields('admin.media',$page_url_params). 759 $core->formNonce().'</p>'. 760 '</form>'; 761 } 762 763 if ($file->type == 'application/zip') 764 { 765 $inflate_combo = array( 766 __('Extract in a new directory') => 'new', 767 __('Extract in current directory') => 'current' 768 ); 769 770 echo 771 '<form class="clear fieldset" id="file-unzip" action="'.$core->adminurl->get("admin.media.item").'" method="post">'. 772 '<h4>'.__('Extract archive').'</h4>'. 773 '<ul>'. 774 '<li><strong>'.__('Extract in a new directory').'</strong> : '. 775 __('This will extract archive in a new directory that should not exist yet.').'</li>'. 776 '<li><strong>'.__('Extract in current directory').'</strong> : '. 777 __('This will extract archive in current directory and will overwrite existing files or directory.').'</li>'. 778 '</ul>'. 779 '<p><label for="inflate_mode" class="classic">'.__('Extract mode:').'</label> '. 780 form::combo('inflate_mode',$inflate_combo,'new'). 781 '<input type="submit" name="unzip" value="'.__('Extract').'" />'. 782 $core->adminurl->getHiddenFormFields('admin.media',$page_url_params). 783 $core->formNonce().'</p>'. 784 '</form>'; 785 } 786 787 echo 788 '<form class="clear fieldset" action="'.$core->adminurl->get("admin.media.item").'" method="post">'. 789 '<h4>'.__('Change media properties').'</h4>'. 790 '<p><label for="media_file">'.__('File name:').'</label>'. 791 form::field('media_file',30,255,html::escapeHTML($file->basename)).'</p>'. 792 '<p><label for="media_title">'.__('File title:').'</label>'. 793 form::field('media_title',30,255,html::escapeHTML($file->media_title)).'</p>'. 794 '<p><label for="media_dt">'.__('File date:').'</label>'. 795 form::field('media_dt',16,16,html::escapeHTML($file->media_dtstr)).'</p>'. 796 '<p><label for="media_private" class="classic">'.form::checkbox('media_private',1,$file->media_priv).' '. 797 __('Private').'</label></p>'. 798 '<p><label for="media_path">'.__('New directory:').'</label>'. 799 form::combo('media_path',$dirs_combo,dirname($file->relname)).'</p>'. 800 '<p><input type="submit" accesskey="s" value="'.__('Save').'" />'. 801 $core->adminurl->getHiddenFormFields('admin.media.item',$page_url_params). 802 $core->formNonce().'</p>'. 803 '</form>'; 804 805 echo 806 '<form class="clear fieldset" action="'.$core->adminurl->get("admin.media.item").'" method="post" enctype="multipart/form-data">'. 807 '<h4>'.__('Change file').'</h4>'. 808 '<div>'.form::hidden(array('MAX_FILE_SIZE'),DC_MAX_UPLOAD_SIZE).'</div>'. 809 '<p><label for="upfile">'.__('Choose a file:'). 810 ' ('.sprintf(__('Maximum size %s'),files::size(DC_MAX_UPLOAD_SIZE)).') '. 811 '<input type="file" id="upfile" name="upfile" size="35" />'. 812 '</label></p>'. 813 '<p><input type="submit" value="'.__('Send').'" />'. 814 $core->adminurl->getHiddenFormFields('admin.media',$page_url_params). 815 $core->formNonce().'</p>'. 816 '</form>'; 817 818 if ($file->del) { 819 echo 820 '<form id="delete-form" method="post" action="'.$core->adminurl->getBase("admin.media").'">'. 821 '<p><input name="delete" type="submit" class="delete" value="'.__('Delete this media').'" />'. 822 form::hidden('remove',rawurlencode($file->basename)). 823 form::hidden('rmyes',1). 824 $core->adminurl->getHiddenFormFields('admin.media',$media_page_url_params). 825 $core->formNonce().'</p>'. 826 '</form>'; 827 } 828 829 830 # --BEHAVIOR-- adminMediaItemForm 831 $core->callBehavior('adminMediaItemForm',$file); 718 echo '<h3>' . __('Updates and modifications') . '</h3>'; 719 720 if ($file->editable && $core_media_writable) { 721 if ($file->media_type == 'image') { 722 echo 723 '<form class="clear fieldset" action="' . $core->adminurl->get("admin.media.item") . '" method="post">' . 724 '<h4>' . __('Update thumbnails') . '</h4>' . 725 '<p class="more-info">' . __('This will create or update thumbnails for this image.') . '</p>' . 726 '<p><input type="submit" name="thumbs" value="' . __('Update thumbnails') . '" />' . 727 $core->adminurl->getHiddenFormFields('admin.media', $page_url_params) . 728 $core->formNonce() . '</p>' . 729 '</form>'; 730 } 731 732 if ($file->type == 'application/zip') { 733 $inflate_combo = array( 734 __('Extract in a new directory') => 'new', 735 __('Extract in current directory') => 'current' 736 ); 737 738 echo 739 '<form class="clear fieldset" id="file-unzip" action="' . $core->adminurl->get("admin.media.item") . '" method="post">' . 740 '<h4>' . __('Extract archive') . '</h4>' . 741 '<ul>' . 742 '<li><strong>' . __('Extract in a new directory') . '</strong> : ' . 743 __('This will extract archive in a new directory that should not exist yet.') . '</li>' . 744 '<li><strong>' . __('Extract in current directory') . '</strong> : ' . 745 __('This will extract archive in current directory and will overwrite existing files or directory.') . '</li>' . 746 '</ul>' . 747 '<p><label for="inflate_mode" class="classic">' . __('Extract mode:') . '</label> ' . 748 form::combo('inflate_mode', $inflate_combo, 'new') . 749 '<input type="submit" name="unzip" value="' . __('Extract') . '" />' . 750 $core->adminurl->getHiddenFormFields('admin.media', $page_url_params) . 751 $core->formNonce() . '</p>' . 752 '</form>'; 753 } 754 755 echo 756 '<form class="clear fieldset" action="' . $core->adminurl->get("admin.media.item") . '" method="post">' . 757 '<h4>' . __('Change media properties') . '</h4>' . 758 '<p><label for="media_file">' . __('File name:') . '</label>' . 759 form::field('media_file', 30, 255, html::escapeHTML($file->basename)) . '</p>' . 760 '<p><label for="media_title">' . __('File title:') . '</label>' . 761 form::field('media_title', 30, 255, html::escapeHTML($file->media_title)) . '</p>' . 762 '<p><label for="media_dt">' . __('File date:') . '</label>' . 763 form::field('media_dt', 16, 16, html::escapeHTML($file->media_dtstr)) . '</p>' . 764 '<p><label for="media_private" class="classic">' . form::checkbox('media_private', 1, $file->media_priv) . ' ' . 765 __('Private') . '</label></p>' . 766 '<p><label for="media_path">' . __('New directory:') . '</label>' . 767 form::combo('media_path', $dirs_combo, dirname($file->relname)) . '</p>' . 768 '<p><input type="submit" accesskey="s" value="' . __('Save') . '" />' . 769 $core->adminurl->getHiddenFormFields('admin.media.item', $page_url_params) . 770 $core->formNonce() . '</p>' . 771 '</form>'; 772 773 echo 774 '<form class="clear fieldset" action="' . $core->adminurl->get("admin.media.item") . '" method="post" enctype="multipart/form-data">' . 775 '<h4>' . __('Change file') . '</h4>' . 776 '<div>' . form::hidden(array('MAX_FILE_SIZE'), DC_MAX_UPLOAD_SIZE) . '</div>' . 777 '<p><label for="upfile">' . __('Choose a file:') . 778 ' (' . sprintf(__('Maximum size %s'), files::size(DC_MAX_UPLOAD_SIZE)) . ') ' . 779 '<input type="file" id="upfile" name="upfile" size="35" />' . 780 '</label></p>' . 781 '<p><input type="submit" value="' . __('Send') . '" />' . 782 $core->adminurl->getHiddenFormFields('admin.media', $page_url_params) . 783 $core->formNonce() . '</p>' . 784 '</form>'; 785 786 if ($file->del) { 787 echo 788 '<form id="delete-form" method="post" action="' . $core->adminurl->getBase("admin.media") . '">' . 789 '<p><input name="delete" type="submit" class="delete" value="' . __('Delete this media') . '" />' . 790 form::hidden('remove', rawurlencode($file->basename)) . 791 form::hidden('rmyes', 1) . 792 $core->adminurl->getHiddenFormFields('admin.media', $media_page_url_params) . 793 $core->formNonce() . '</p>' . 794 '</form>'; 795 } 796 797 # --BEHAVIOR-- adminMediaItemForm 798 $core->callBehavior('adminMediaItemForm', $file); 832 799 } 833 800 834 801 echo 835 '</div>';802 '</div>'; 836 803 if ($popup || $select) { 837 838 804 echo 805 '</div>'; 839 806 } 840 807
Note: See TracChangeset
for help on using the changeset viewer.