WordPress.org

Ready to get started?Download WordPress

Forums

NextGEN Gallery
A solution for accented characters in uploaded filenames (1 post)

  1. tenchi39
    Member
    Posted 2 years ago #

    Uploading files with hungarian accented filenames resulted in the images not appearing in the gallery. My not so elegant solution was to add this function in the current theme's function.php:

    function correct_filename($filename) {
    $accented = array("ö", "ü", "ó", "ő", "ú", "é", "á", "ű", "í", "Ö", "Ü", "Ó", "Ő", "Ú", "É", "Á", "Ű");
    $non_accented = array("o", "u", "o", "o", "u", "e", "a", "u", "i", "O", "U", "O", "O", "U", "E", "A", "U");
    $filename = str_replace($accented, $non_accented, $filename);
    $characters = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '-', '_', '.', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '&');
    $correct_filename = '';
    for($i=0;$i<strlen($filename);$i++) {
    if(in_array($filename[$i], $characters)) {
    $correct_filename .= $filename[$i];
    } else {
    $correct_filename .= '-';
    };
    };
    return $correct_filename;
    };

    This changes the hungarian accented characters to the non-accented versions and changes every character that is not in the allowed array to a dash.

    In NextGen Gallery's function file (wp-content/plugins/nextgen-gallery/admin/functions-php) I added the following line:
    $filename = correct_filename($filename);

    Before this line:
    $dest_file = WINABSPATH . $gallery->path . '/' . $filename;
    (Line 1085 in my case)

    This solved the problem.

    Could the dev team solve this problem without hacks like this in future releases?

    T.

    http://wordpress.org/extend/plugins/nextgen-gallery/

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic