Dotclear

source: admin/media_item.php @ 2858:6f06ad9c208a

Revision 2858:6f06ad9c208a, 22.7 KB checked in by franck <carnet.franck.paul@…>, 11 years ago (diff)

Less dirty hack for URLs used as format with (s)printf() functions.

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

Sites map