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;
<?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); }