Dotclear


Ignore:
Timestamp:
01/06/17 12:46:18 (9 years ago)
Author:
franck <carnet.franck.paul@…>
Branch:
default
Message:

Typo, fix #2235

File:
1 edited

Legend:

Unmodified
Added
Removed
  • admin/media.php

    r3491 r3501  
    148148} 
    149149 
    150 # Zip download 
    151 if (!empty($_GET['zipdl']) && $core->auth->check('media_admin',$core->blog->id)) 
    152 { 
    153      try 
    154      { 
    155           if (strpos(realpath($core->media->root.'/'.$d),realpath($core->media->root)) === 0) { 
    156                // Media folder or one of it's sub-folder(s) 
    157                @set_time_limit(300); 
    158                $fp = fopen('php://output','wb'); 
    159                $zip = new fileZip($fp); 
    160                $zip->addExclusion('#(^|/).(.*?)_(m|s|sq|t).jpg$#'); 
    161                $zip->addDirectory($core->media->root.'/'.$d,'',true); 
    162  
    163                header('Content-Disposition: attachment;filename='.date('Y-m-d').'-'.$core->blog->id.'-'.($d ?: 'media').'.zip'); 
    164                header('Content-Type: application/x-zip'); 
    165                $zip->write(); 
    166                unset($zip); 
    167                exit; 
    168           } else { 
    169                $d = null; 
    170                $core->media->chdir($d); 
    171                throw new Exception(__('Not a valid directory')); 
    172           } 
    173      } 
    174      catch (Exception $e) 
    175      { 
    176           $core->error->add($e->getMessage()); 
    177      } 
    178 } 
    179  
    180 # Cope with fav/unfav dir 
    181 $fav_dirs = null; 
    182 if (!empty($_GET['fav'])) { 
    183      if (!$q) { // Ignore search results 
    184           $fav_dir = rtrim($d,'/'); 
    185           $core->auth->user_prefs->addWorkspace('interface'); 
    186           $nb_last_dirs = (integer)($core->auth->user_prefs->interface->media_nb_last_dirs); 
    187           if ($nb_last_dirs > 0) { 
    188                $fav_dirs = $core->auth->user_prefs->interface->media_fav_dirs; 
    189                if (!is_array($fav_dirs)) { 
    190                     $fav_dirs = array(); 
    191                } 
    192                if (!in_array($fav_dir,$fav_dirs) && $_GET['fav'] == 'y') { 
    193                     // Add directory in favorites 
    194                     array_unshift($fav_dirs,$fav_dir); 
    195                } elseif (in_array($fav_dir,$fav_dirs) && $_GET['fav'] == 'n') { 
    196                     // Remove directory from favorites 
    197                     unset($fav_dirs[array_search($fav_dir,$fav_dirs)]); 
    198                } 
    199                // Store new list 
    200                $core->auth->user_prefs->interface->put('media_fav_dirs',$fav_dirs,'array'); 
    201                $core->adminurl->redirect('admin.media',$page_url_params); 
    202           } 
    203      } 
    204 } 
    205  
    206 # Recent media dirs 
    207 $last_dirs = null; 
    208 if (!$q) {     // Ignore search results 
    209      $recent_dir = rtrim($d,'/'); 
    210      $core->auth->user_prefs->addWorkspace('interface'); 
    211      $nb_last_dirs = (integer)($core->auth->user_prefs->interface->media_nb_last_dirs); 
    212      if ($nb_last_dirs > 0) { 
    213           $last_dirs = $core->auth->user_prefs->interface->media_last_dirs; 
    214           if (!is_array($last_dirs)) { 
    215                $last_dirs = array(); 
    216           } 
    217           if (!in_array($recent_dir,$last_dirs)) { 
    218                // Add new dir at the top of the list 
    219                array_unshift($last_dirs,$recent_dir); 
    220                // Remove oldest dir(s) 
    221                while (count($last_dirs) > $nb_last_dirs) { 
    222                     array_pop($last_dirs); 
    223                } 
    224           } else { 
    225                // Move current dir at the top of list 
    226                unset($last_dirs[array_search($recent_dir,$last_dirs)]); 
    227                array_unshift($last_dirs,$recent_dir); 
    228           } 
    229           // Store new list 
    230           $core->auth->user_prefs->interface->put('media_last_dirs',$last_dirs,'array'); 
    231      } 
    232 } 
    233  
    234 # New directory 
    235 if ($dir && !empty($_POST['newdir'])) 
    236 { 
    237      try { 
    238           $core->media->makeDir($_POST['newdir']); 
    239           dcPage::addSuccessNotice(sprintf( 
    240                __('Directory "%s" has been successfully created.'), 
    241                html::escapeHTML($_POST['newdir'])) 
    242           ); 
    243           $core->adminurl->redirect('admin.media',$page_url_params); 
    244      } catch (Exception $e) { 
    245           $core->error->add($e->getMessage()); 
    246      } 
    247 } 
    248  
    249 # Adding a file 
    250 if ($dir && !empty($_FILES['upfile'])) { 
    251      // only one file per request : @see option singleFileUploads in admin/js/jsUpload/jquery.fileupload 
    252      $upfile = array('name' => $_FILES['upfile']['name'][0], 
    253           'type' => $_FILES['upfile']['type'][0], 
    254           'tmp_name' => $_FILES['upfile']['tmp_name'][0], 
    255           'error' => $_FILES['upfile']['error'][0], 
    256           'size' => $_FILES['upfile']['size'][0] 
    257           ); 
    258  
    259      if (!empty($_SERVER['HTTP_X_REQUESTED_WITH'])) { 
    260           header('Content-type: application/json'); 
    261           $message = array(); 
    262  
    263           try { 
    264                files::uploadStatus($upfile); 
    265                $new_file_id = $core->media->uploadFile($upfile['tmp_name'], $upfile['name']); 
    266  
    267                $message['files'][] = array( 
    268                     'name' => $upfile['name'], 
    269                     'size' => $upfile['size'], 
    270                     'html' => mediaItemLine($core->media->getFile($new_file_id),1,$query) 
    271                ); 
    272           } catch (Exception $e) { 
    273                $message['files'][] = array('name' => $upfile['name'], 
    274                     'size' => $upfile['size'], 
    275                     'error' => $e->getMessage() 
    276                     ); 
    277           } 
    278           echo json_encode($message); 
    279           exit(); 
    280      } else { 
    281           try { 
    282                files::uploadStatus($upfile); 
    283  
    284                $f_title = (isset($_POST['upfiletitle']) ? html::escapeHTML($_POST['upfiletitle']) : ''); 
    285                $f_private = (isset($_POST['upfilepriv']) ? $_POST['upfilepriv'] : false); 
    286  
    287                $core->media->uploadFile($upfile['tmp_name'],$upfile['name'],$f_title,$f_private); 
    288  
    289                dcPage::addSuccessNotice(__('Files have been successfully uploaded.')); 
    290                $core->adminurl->redirect('admin.media',$page_url_params); 
    291           } catch (Exception $e) { 
    292                $core->error->add($e->getMessage()); 
    293           } 
    294      } 
    295 } 
    296  
    297 # Removing items 
    298 if ($dir && !empty($_POST['medias']) && !empty($_POST['delete_medias'])) { 
    299      try { 
    300           foreach ($_POST['medias'] as $media) { 
    301                $core->media->removeItem(rawurldecode($media)); 
    302           } 
    303           dcPage::addSuccessNotice( 
    304                sprintf(__('Successfully delete one media.', 
    305                             'Successfully delete %d medias.', 
    306                             count($_POST['medias']) 
    307                             ), 
    308                             count($_POST['medias']) 
    309                ) 
    310           ); 
    311           $core->adminurl->redirect('admin.media',$page_url_params); 
    312      } catch (Exception $e) { 
    313           $core->error->add($e->getMessage()); 
    314      } 
    315 } 
    316  
    317 # Removing item from popup only 
    318 if ($dir && !empty($_POST['rmyes']) && !empty($_POST['remove'])) 
    319 { 
    320      $_POST['remove'] = rawurldecode($_POST['remove']); 
    321  
    322      try { 
    323           if (is_dir(path::real($core->media->getPwd().'/'.path::clean($_POST['remove'])))) { 
    324                $msg = __('Directory has been successfully removed.'); 
    325           } else { 
    326                $msg = __('File has been successfully removed.'); 
    327           } 
    328           $core->media->removeItem($_POST['remove']); 
    329           dcPage::addSuccessNotice($msg); 
    330           $core->adminurl->redirect('admin.media',$page_url_params); 
    331      } catch (Exception $e) { 
    332           $core->error->add($e->getMessage()); 
    333      } 
    334 } 
    335  
    336 # Rebuild directory 
    337 if ($dir && $core->auth->isSuperAdmin() && !empty($_POST['rebuild'])) 
    338 { 
    339      try { 
    340           $core->media->rebuild($d); 
    341  
    342           dcPage::success(sprintf( 
    343                __('Directory "%s" has been successfully rebuilt.'), 
    344                html::escapeHTML($d)) 
    345           ); 
    346           $core->adminurl->redirect('admin.media',$page_url_params); 
    347      } catch (Exception $e) { 
    348           $core->error->add($e->getMessage()); 
    349      } 
    350 } 
    351  
    352 # DISPLAY confirm page for rmdir & rmfile 
    353 if ($dir && !empty($_GET['remove']) && empty($_GET['noconfirm'])) 
    354 { 
    355      call_user_func($open_f,__('Media manager'),'', 
    356           dcPage::breadcrumb( 
    357                array( 
    358                     html::escapeHTML($core->blog->name) => '', 
    359                     __('Media manager') => '', 
    360                     __('confirm removal') => '' 
    361                ), 
    362                array('home_link' => !$popup) 
    363           ) 
    364      ); 
    365  
    366      echo 
    367      '<form action="'.html::escapeURL($core->adminurl->get('admin.media')).'" method="post">'. 
    368      '<p>'.sprintf(__('Are you sure you want to remove %s?'), 
    369           html::escapeHTML($_GET['remove'])).'</p>'. 
    370      '<p><input type="submit" value="'.__('Cancel').'" /> '. 
    371      ' &nbsp; <input type="submit" name="rmyes" value="'.__('Yes').'" />'. 
    372      form::hidden('d',$d). 
    373      form::hidden('q',$q). 
    374      $core->adminurl->getHiddenFormFields('admin.media',$page_url_params). 
    375      $core->formNonce(). 
    376      form::hidden('remove',html::escapeHTML($_GET['remove'])).'</p>'. 
    377      '</form>'; 
    378  
    379      call_user_func($close_f); 
    380      exit; 
    381 } 
    382  
    383 /* DISPLAY Main page 
    384 -------------------------------------------------------- */ 
    385 $core->auth->user_prefs->addWorkspace('interface'); 
    386 $user_ui_enhanceduploader = $core->auth->user_prefs->interface->enhanceduploader; 
     150// Local functions 
    387151 
    388152$mediaItemLine = function($f,$i,$query,$table=false) 
     
    519283     return $res; 
    520284}; 
     285 
     286// Actions 
     287 
     288# Zip download 
     289if (!empty($_GET['zipdl']) && $core->auth->check('media_admin',$core->blog->id)) 
     290{ 
     291     try 
     292     { 
     293          if (strpos(realpath($core->media->root.'/'.$d),realpath($core->media->root)) === 0) { 
     294               // Media folder or one of it's sub-folder(s) 
     295               @set_time_limit(300); 
     296               $fp = fopen('php://output','wb'); 
     297               $zip = new fileZip($fp); 
     298               $zip->addExclusion('#(^|/).(.*?)_(m|s|sq|t).jpg$#'); 
     299               $zip->addDirectory($core->media->root.'/'.$d,'',true); 
     300 
     301               header('Content-Disposition: attachment;filename='.date('Y-m-d').'-'.$core->blog->id.'-'.($d ?: 'media').'.zip'); 
     302               header('Content-Type: application/x-zip'); 
     303               $zip->write(); 
     304               unset($zip); 
     305               exit; 
     306          } else { 
     307               $d = null; 
     308               $core->media->chdir($d); 
     309               throw new Exception(__('Not a valid directory')); 
     310          } 
     311     } 
     312     catch (Exception $e) 
     313     { 
     314          $core->error->add($e->getMessage()); 
     315     } 
     316} 
     317 
     318# Cope with fav/unfav dir 
     319$fav_dirs = null; 
     320if (!empty($_GET['fav'])) { 
     321     if (!$q) { // Ignore search results 
     322          $fav_dir = rtrim($d,'/'); 
     323          $core->auth->user_prefs->addWorkspace('interface'); 
     324          $nb_last_dirs = (integer)($core->auth->user_prefs->interface->media_nb_last_dirs); 
     325          if ($nb_last_dirs > 0) { 
     326               $fav_dirs = $core->auth->user_prefs->interface->media_fav_dirs; 
     327               if (!is_array($fav_dirs)) { 
     328                    $fav_dirs = array(); 
     329               } 
     330               if (!in_array($fav_dir,$fav_dirs) && $_GET['fav'] == 'y') { 
     331                    // Add directory in favorites 
     332                    array_unshift($fav_dirs,$fav_dir); 
     333               } elseif (in_array($fav_dir,$fav_dirs) && $_GET['fav'] == 'n') { 
     334                    // Remove directory from favorites 
     335                    unset($fav_dirs[array_search($fav_dir,$fav_dirs)]); 
     336               } 
     337               // Store new list 
     338               $core->auth->user_prefs->interface->put('media_fav_dirs',$fav_dirs,'array'); 
     339               $core->adminurl->redirect('admin.media',$page_url_params); 
     340          } 
     341     } 
     342} 
     343 
     344# Recent media dirs 
     345$last_dirs = null; 
     346if (!$q) {     // Ignore search results 
     347     $recent_dir = rtrim($d,'/'); 
     348     $core->auth->user_prefs->addWorkspace('interface'); 
     349     $nb_last_dirs = (integer)($core->auth->user_prefs->interface->media_nb_last_dirs); 
     350     if ($nb_last_dirs > 0) { 
     351          $last_dirs = $core->auth->user_prefs->interface->media_last_dirs; 
     352          if (!is_array($last_dirs)) { 
     353               $last_dirs = array(); 
     354          } 
     355          if (!in_array($recent_dir,$last_dirs)) { 
     356               // Add new dir at the top of the list 
     357               array_unshift($last_dirs,$recent_dir); 
     358               // Remove oldest dir(s) 
     359               while (count($last_dirs) > $nb_last_dirs) { 
     360                    array_pop($last_dirs); 
     361               } 
     362          } else { 
     363               // Move current dir at the top of list 
     364               unset($last_dirs[array_search($recent_dir,$last_dirs)]); 
     365               array_unshift($last_dirs,$recent_dir); 
     366          } 
     367          // Store new list 
     368          $core->auth->user_prefs->interface->put('media_last_dirs',$last_dirs,'array'); 
     369     } 
     370} 
     371 
     372# New directory 
     373if ($dir && !empty($_POST['newdir'])) 
     374{ 
     375     try { 
     376          $core->media->makeDir($_POST['newdir']); 
     377          dcPage::addSuccessNotice(sprintf( 
     378               __('Directory "%s" has been successfully created.'), 
     379               html::escapeHTML($_POST['newdir'])) 
     380          ); 
     381          $core->adminurl->redirect('admin.media',$page_url_params); 
     382     } catch (Exception $e) { 
     383          $core->error->add($e->getMessage()); 
     384     } 
     385} 
     386 
     387# Adding a file 
     388if ($dir && !empty($_FILES['upfile'])) { 
     389     // only one file per request : @see option singleFileUploads in admin/js/jsUpload/jquery.fileupload 
     390     $upfile = array('name' => $_FILES['upfile']['name'][0], 
     391          'type' => $_FILES['upfile']['type'][0], 
     392          'tmp_name' => $_FILES['upfile']['tmp_name'][0], 
     393          'error' => $_FILES['upfile']['error'][0], 
     394          'size' => $_FILES['upfile']['size'][0] 
     395          ); 
     396 
     397     if (!empty($_SERVER['HTTP_X_REQUESTED_WITH'])) { 
     398          header('Content-type: application/json'); 
     399          $message = array(); 
     400 
     401          try { 
     402               files::uploadStatus($upfile); 
     403               $new_file_id = $core->media->uploadFile($upfile['tmp_name'], $upfile['name']); 
     404 
     405               $message['files'][] = array( 
     406                    'name' => $upfile['name'], 
     407                    'size' => $upfile['size'], 
     408                    'html' => $mediaItemLine($core->media->getFile($new_file_id),1,$query) 
     409               ); 
     410          } catch (Exception $e) { 
     411               $message['files'][] = array('name' => $upfile['name'], 
     412                    'size' => $upfile['size'], 
     413                    'error' => $e->getMessage() 
     414                    ); 
     415          } 
     416          echo json_encode($message); 
     417          exit(); 
     418     } else { 
     419          try { 
     420               files::uploadStatus($upfile); 
     421 
     422               $f_title = (isset($_POST['upfiletitle']) ? html::escapeHTML($_POST['upfiletitle']) : ''); 
     423               $f_private = (isset($_POST['upfilepriv']) ? $_POST['upfilepriv'] : false); 
     424 
     425               $core->media->uploadFile($upfile['tmp_name'],$upfile['name'],$f_title,$f_private); 
     426 
     427               dcPage::addSuccessNotice(__('Files have been successfully uploaded.')); 
     428               $core->adminurl->redirect('admin.media',$page_url_params); 
     429          } catch (Exception $e) { 
     430               $core->error->add($e->getMessage()); 
     431          } 
     432     } 
     433} 
     434 
     435# Removing items 
     436if ($dir && !empty($_POST['medias']) && !empty($_POST['delete_medias'])) { 
     437     try { 
     438          foreach ($_POST['medias'] as $media) { 
     439               $core->media->removeItem(rawurldecode($media)); 
     440          } 
     441          dcPage::addSuccessNotice( 
     442               sprintf(__('Successfully delete one media.', 
     443                            'Successfully delete %d medias.', 
     444                            count($_POST['medias']) 
     445                            ), 
     446                            count($_POST['medias']) 
     447               ) 
     448          ); 
     449          $core->adminurl->redirect('admin.media',$page_url_params); 
     450     } catch (Exception $e) { 
     451          $core->error->add($e->getMessage()); 
     452     } 
     453} 
     454 
     455# Removing item from popup only 
     456if ($dir && !empty($_POST['rmyes']) && !empty($_POST['remove'])) 
     457{ 
     458     $_POST['remove'] = rawurldecode($_POST['remove']); 
     459 
     460     try { 
     461          if (is_dir(path::real($core->media->getPwd().'/'.path::clean($_POST['remove'])))) { 
     462               $msg = __('Directory has been successfully removed.'); 
     463          } else { 
     464               $msg = __('File has been successfully removed.'); 
     465          } 
     466          $core->media->removeItem($_POST['remove']); 
     467          dcPage::addSuccessNotice($msg); 
     468          $core->adminurl->redirect('admin.media',$page_url_params); 
     469     } catch (Exception $e) { 
     470          $core->error->add($e->getMessage()); 
     471     } 
     472} 
     473 
     474# Rebuild directory 
     475if ($dir && $core->auth->isSuperAdmin() && !empty($_POST['rebuild'])) 
     476{ 
     477     try { 
     478          $core->media->rebuild($d); 
     479 
     480          dcPage::success(sprintf( 
     481               __('Directory "%s" has been successfully rebuilt.'), 
     482               html::escapeHTML($d)) 
     483          ); 
     484          $core->adminurl->redirect('admin.media',$page_url_params); 
     485     } catch (Exception $e) { 
     486          $core->error->add($e->getMessage()); 
     487     } 
     488} 
     489 
     490# DISPLAY confirm page for rmdir & rmfile 
     491if ($dir && !empty($_GET['remove']) && empty($_GET['noconfirm'])) 
     492{ 
     493     call_user_func($open_f,__('Media manager'),'', 
     494          dcPage::breadcrumb( 
     495               array( 
     496                    html::escapeHTML($core->blog->name) => '', 
     497                    __('Media manager') => '', 
     498                    __('confirm removal') => '' 
     499               ), 
     500               array('home_link' => !$popup) 
     501          ) 
     502     ); 
     503 
     504     echo 
     505     '<form action="'.html::escapeURL($core->adminurl->get('admin.media')).'" method="post">'. 
     506     '<p>'.sprintf(__('Are you sure you want to remove %s?'), 
     507          html::escapeHTML($_GET['remove'])).'</p>'. 
     508     '<p><input type="submit" value="'.__('Cancel').'" /> '. 
     509     ' &nbsp; <input type="submit" name="rmyes" value="'.__('Yes').'" />'. 
     510     form::hidden('d',$d). 
     511     form::hidden('q',$q). 
     512     $core->adminurl->getHiddenFormFields('admin.media',$page_url_params). 
     513     $core->formNonce(). 
     514     form::hidden('remove',html::escapeHTML($_GET['remove'])).'</p>'. 
     515     '</form>'; 
     516 
     517     call_user_func($close_f); 
     518     exit; 
     519} 
     520 
     521/* DISPLAY Main page 
     522-------------------------------------------------------- */ 
     523$core->auth->user_prefs->addWorkspace('interface'); 
     524$user_ui_enhanceduploader = $core->auth->user_prefs->interface->enhanceduploader; 
    521525 
    522526if (!isset($core->media)) { 
Note: See TracChangeset for help on using the changeset viewer.

Sites map