FEATURE Handling svg support
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Nonimart 2025-07-01 17:34:39 +02:00
parent 882c227386
commit ede021029a
2 changed files with 61 additions and 22 deletions

View File

@ -3,6 +3,7 @@
require_once(__DIR__ . '/includes/errorlog.php');
require_once(__DIR__ . '/includes/init.php');
require_once(__DIR__ . '/includes/post_types.php');
require_once(__DIR__ . '/includes/logos.php');
require_once(__DIR__ . '/includes/columns.php');
require_once(__DIR__ . '/includes/revue.php');
require_once(__DIR__ . '/includes/auteurs.php');
@ -10,3 +11,20 @@ require_once(__DIR__ . '/includes/article.php');
require_once(__DIR__ . '/includes/api.php');
require_once(__DIR__ . '/includes/renderPostsDatas.php');
require_once(__DIR__ . '/includes/utilities.php');
// Support SVG - Solution de secours
add_filter('upload_mimes', function ($mimes) {
$mimes['svg'] = 'image/svg+xml';
$mimes['svgz'] = 'image/svg+xml';
return $mimes;
}, 999);
// Forcer la reconnaissance des fichiers SVG
add_filter('wp_check_filetype_and_ext', function ($data, $file, $filename, $mimes) {
if (strtolower(pathinfo($filename, PATHINFO_EXTENSION)) === 'svg') {
$data['ext'] = 'svg';
$data['type'] = 'image/svg+xml';
$data['proper_filename'] = $filename;
}
return $data;
}, 10, 4);

View File

@ -4,31 +4,52 @@
ENABLE SVG
------------------------------*/
/* <?xml version="1.0" encoding="utf-8"?> */
function cc_mime_types($mimes)
function dynamiques_allow_svg_upload($mimes)
{
$mimes['svg'] = 'image/svg+xml';
return $mimes;
// Autoriser SVG pour tous les utilisateurs connectés
$mimes['svg'] = 'image/svg+xml';
$mimes['svgz'] = 'image/svg+xml';
return $mimes;
}
add_filter('upload_mimes', 'cc_mime_types');
add_filter('upload_mimes', 'dynamiques_allow_svg_upload', 10, 1);
// Vérifier les permissions utilisateur pour SVG
function dynamiques_check_svg_permissions($file)
{
if ($file['type'] === 'image/svg+xml') {
// Autoriser pour les administrateurs et éditeurs
if (current_user_can('upload_files')) {
return $file;
} else {
$file['error'] = 'Vous n\'avez pas les permissions pour uploader des fichiers SVG.';
}
}
return $file;
}
add_filter('wp_handle_upload_prefilter', 'dynamiques_check_svg_permissions');
// #############################
// AJOUT D'UN ESPACE LOGO CUSTOM
// #############################
// Debug: afficher les types MIME autorisés
// write_log(get_allowed_mime_types());
// function add_logo_customizer_settings($wp_customize)
// {
// $wp_customize->add_setting('logo_semlex_dark');
// Solution alternative : utiliser un hook plus tôt
function dynamiques_early_svg_support()
{
add_filter('upload_mimes', function ($mimes) {
$mimes['svg'] = 'image/svg+xml';
$mimes['svgz'] = 'image/svg+xml';
return $mimes;
}, 1);
}
add_action('init', 'dynamiques_early_svg_support', 1);
// // Add a control to upload the hover logo
// $wp_customize->add_control(new WP_Customize_Image_Control($wp_customize, 'logo_semlex_dark', array(
// 'label' => 'Logo Semlex Sombre',
// 'section' => 'title_tagline', //this is the section where the custom-logo from WordPress is
// 'settings' => 'logo_semlex_dark',
// 'priority' => 8 // show it just below the custom-logo
// )));
// }
// add_action('customize_register', 'add_logo_customizer_settings');
// Désactiver la vérification stricte des types MIME pour SVG
function dynamiques_disable_mime_check($data, $file, $filename, $mimes)
{
if (pathinfo($filename, PATHINFO_EXTENSION) === 'svg') {
$data['ext'] = 'svg';
$data['type'] = 'image/svg+xml';
$data['proper_filename'] = $filename;
}
return $data;
}
add_filter('wp_check_filetype_and_ext', 'dynamiques_disable_mime_check', 10, 4);