require_once ABSPATH . '/wp-admin/includes/image.php';
 $upload_dir = WP_CONTENT_DIR . '/uploads';
 $i = 0;
 // para cada arquivo que foi enviado
 foreach ($_FILES as $index => $file) {
     // se não foi enviado o arquivo ou se é a foto de perfil? pula pro próximo arquivo
     if ($file['error'] == UPLOAD_ERR_NO_FILE || $index == 'userphoto_image_file') {
         continue;
     }
     // descobre o index do arquivo
     $index_nr = preg_replace("/([^0-9])/", '', $index);
     // descobre o tipo do arquivo (rider, mapa de palco, imagem ou música)
     $type = preg_replace('/(_[0-9])/', '', $index);
     $media_title = $file['name'];
     // echo $file['name'];
     $file['name'] = toquenobrasil_sanitize_file_name($file['name']);
     $_FILES[$index]['name'] = $file['name'];
     // echo ' ', $file['name']; die;
     $post = array("post_title" => $media_title, "post_content" => $file['name'], "post_excerpt" => $file['name'], "post_author" => $user_ID, "post_status" => 'publish');
     $acceptedFormats = array('rider' => array('application/pdf', 'application/x-pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.oasis.opendocument.text', 'image/gif', 'image/png', 'image/jpeg', 'image/pjpeg', 'image/x-png'), 'mapa_palco' => array('application/pdf', 'application/x-pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.oasis.opendocument.text', 'image/gif', 'image/png', 'image/jpeg', 'image/pjpeg', 'image/x-png'));
     $errors = array(1 => __('O tamanho do arquivo não pode ser maior do que ', 'tnb') . ini_get('upload_max_filesize') . 'B', 2 => __('O tamanho do arquivo não pode ser maior do que ', 'tnb') . ini_get('upload_max_filesize') . 'B', 3 => __('Um erro ocorreu e apenas parte do arquivo foi enviado. Tente novamente.', 'tnb'), 4 => __('Nenhum arquivo foi enviado!', 'tnb'));
     if ($file['error'] == 0) {
         if (in_array($file['type'], $acceptedFormats[$type])) {
             unset($GLOBALS['post']);
             $media_id = media_handle_upload($index, $galeriasId[$type]->ID, $post);
             if ($media_id->errors) {
                 $msg['error'][] = implode(' ', $media_id->errors['upload_error']);
             }
         } else {
             $msg['error'][] = __('Tipo de arquivo não permitido', 'tnb');
         }
    die;
}
chdir($uploadsDir);
$result = mysql_query("select option_value from wp_options where option_name = 'siteurl'");
$siteurl = mysql_result($result, 0);
$uploadsUrl = $siteurl . $uploadsDir;
// seleciona o nome de todos os arquivos do tipo musica ou radio
$query = mysql_query("select pm.meta_value, post_id from wp_postmeta pm, wp_posts p where pm.post_id = p.ID AND pm.meta_key = '_wp_attached_file' AND p.post_type IN ('music') ORDER BY p.post_date ASC");
while ($res = mysql_fetch_row($query)) {
    preg_match('|(.+/)(.*)|', $res[0], $matches);
    $dir = $matches[1];
    $fileName = $matches[2];
    $filePath = $dir . $fileName;
    $postName = mysql_result(mysql_query("SELECT post_name FROM wp_posts WHERE ID = '{$res[1]}'"), 0);
    echo "Convertendo arquivo " . $siteurl . '/acervo/musica/' . $dir . $postName . "\n";
    $newFileName = toquenobrasil_sanitize_file_name($fileName);
    $newFilePath = $dir . $newFileName;
    var_dump($filePath, $newFilePath);
    if (file_exists($filePath)) {
        rename($filePath, $newFilePath);
        mysql_query("UPDATE wp_postmeta SET meta_value = '{$newFilePath}' WHERE meta_value = '{$filePath}'");
        mysql_query("UPDATE wp_posts SET guid = '{$uploadsUrl}{$newFilePath}' WHERE guid = '{$uploadsUrl}{$filePath}'");
    }
    /*
        // queremos mexer apenas com os arquivos que possuem acento no nome
        if (preg_match('/[áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ]/', $fileName)) {
            $postName = mysql_result(mysql_query("SELECT post_name FROM wp_posts WHERE guid = '$uploadsUrl$filePath'"), 0);
            echo "Convertendo arquivo " . $siteurl . '/acervo/musica/' . $dir . $postName . "\n";
    
            $newFileName = sanitize_file_name($fileName);
            $newFilePath = $dir . $newFileName;
Пример #3
0
<?php

global $current_user;
if ($current_user && isset($_REQUEST['tnb_user_action'])) {
    require_once ABSPATH . WPINC . '/registration.php';
    require_once ABSPATH . '/wp-admin/includes/media.php';
    require_once ABSPATH . '/wp-admin/includes/file.php';
    require_once ABSPATH . '/wp-admin/includes/image.php';
    if (isset($_FILES)) {
        foreach ($_FILES as $fname => $file) {
            $_FILES[$fname]['name'] = toquenobrasil_sanitize_file_name($file['name']);
        }
    }
    $upload_dir = WP_CONTENT_DIR . '/uploads';
    switch ($_REQUEST['tnb_user_action']) {
        case 'contrato-oportunidade-aceitar':
            set_contrato_inscricao_aceito($_POST['evento_id']);
            break;
        case 'contrato-oportunidade-recusar':
            set_contrato_inscricao_recusado($_POST['evento_id']);
            break;
        case 'delete-media':
            $media_id = $_REQUEST['mid'];
            $media_type = $_REQUEST['mtype'];
            if (current_user_can('delete_post', $media_id)) {
                $post = get_post($media_id);
                if ($post) {
                    $types = array('mapa_palco' => __('Mapa do palco', 'tnb'), 'rider' => __('Rider', 'tnb'), 'images' => __('Imagem', 'tnb'), 'music' => __('Música', 'tnb'));
                    $msg['notice'][] = sprintf(__('%s (%s) excluído com sucesso.', 'tnb'), $types[$media_type], $post->post_title);
                    wp_delete_attachment($media_id);
                }