Названия загружаемых картинок на DLE сделать на русском - Webmasters.ru - RSS http://webmasters.ru/forum/showthread.php?t=49997 SEO форум вебмастеров - Поисковые системы, оптимизация, раскрутка сайта, оптимизация и продвижение сайта в поисковых системах 1743358197 Elesite CMS 60 http://webmasters.ru/forum/images/wm/misc/rss.png SEO форум вебмастеров Webmasters.ru http://webmasters.ru/forum Названия загружаемых картинок на DLE сделать на русском by anjunaboy http://webmasters.ru/forum/showpost.php?p=525538 Fri, 11 Oct 2013 10:53:36 GMT Как при загрузке картинок сделать так чтобы названия автоматом оставались на русском? а не так как на скрине: 11820 Названия загружаемых картинок на DLE сделать на русском by OKyJIucT http://webmasters.ru/forum/showpost.php?p=525558 Fri, 11 Oct 2013 12:15:14 GMT Для этого надо подправить файл engine/classes/uploads/upload.class.php, там есть функция totranslit, которая и отвечает за создание названия файлов и перевода их названия в транслит. Пример строки из этого файла с данной функцией $filename = totranslit( $file_prefix.$filename ); Эта функция вызывается в нескольких местах, поэтому заменить надо именно эту строку (данная функция встречается еще в нескольких местах в другом контексте, там ее трогать не надо). она выглядит примерно так (может отличаться, в зависимости от версии) function totranslit($var, $lower = true, $punkt = true) { global $langtranslit; if ( is_array($var) ) return ""; if (!is_array ( $langtranslit ) OR !count( $langtranslit ) ) { $var = trim( strip_tags( $var ) ); if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var ); else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var ); $var = preg_replace( '#[.]+#i', '.', $var ); $var = str_ireplace( ".php", ".ppp", $var ); if ( $lower ) $var = strtolower( $var ); return $var; } $var = trim( strip_tags( $var ) ); $var = preg_replace( "/\s+/ms", "-", $var ); $var = str_replace( "/", "-", $var ); $var = strtr($var, $langtranslit); if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var ); else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var ); $var = preg_replace( '#[\-]+#i', '-', $var ); $var = preg_replace( '#[.]+#i', '.', $var ); if ( $lower ) $var = strtolower( $var ); $var = str_ireplace( ".php", "", $var ); $var = str_ireplace( ".php", ".ppp", $var ); if( strlen( $var ) > 200 ) { $var = substr( $var, 0, 200 ); if( ($temp_max = strrpos( $var, '-' )) ) $var = substr( $var, 0, $temp_max ); } return $var; } как вариант, можете создать аналог этой функции для загрузки файлов, назвать ее, скажем, notranslit, с таким же содержимым, что и функция totranslit, только закомментируйте строку, которая отвечает за замену символов кириллицы на латинницу (эта строка выглядит вот так $var = strtr($var, $langtranslit);), то есть вот так function notranslit($var, $lower = true, $punkt = true) { global $langtranslit; if ( is_array($var) ) return ""; if (!is_array ( $langtranslit ) OR !count( $langtranslit ) ) { $var = trim( strip_tags( $var ) ); if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var ); else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var ); $var = preg_replace( '#[.]+#i', '.', $var ); $var = str_ireplace( ".php", ".ppp", $var ); if ( $lower ) $var = strtolower( $var ); return $var; } $var = trim( strip_tags( $var ) ); $var = preg_replace( "/\s+/ms", "-", $var ); $var = str_replace( "/", "-", $var ); //$var = strtr($var, $langtranslit); if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var ); else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var ); $var = preg_replace( '#[\-]+#i', '-', $var ); $var = preg_replace( '#[.]+#i', '.', $var ); if ( $lower ) $var = strtolower( $var ); $var = str_ireplace( ".php", "", $var ); $var = str_ireplace( ".php", ".ppp", $var ); if( strlen( $var ) > 200 ) { $var = substr( $var, 0, 200 ); if( ($temp_max = strrpos( $var, '-' )) ) $var = substr( $var, 0, $temp_max ); } return $var; } которая и отвечает за замену кириллицы латинницей. Данная функция находится в engine/modules/function.php Итак, подведем итог: заходим в файл engine/classes/uploads/upload.class.php и заменяем там totranslit на notranslit Заходим в engine/modules/function.php и копируем функцию totranslit и называем ее notranslit И все, после этих действий названия загружаемых картинок должны быть на русском. На практике не проверял, но в теории должно работать:) Это способ на скорую руку, наверняка новую функцию можно подчистить от лишнего кода, но и с ним работать будет так же. Кроме того, не факт, что используя данный способ, картинки будут нормально отображаться в UTF-8 версии движка, в любом случае надо пробовать:) 200 ) { $var = substr( $var, 0, 200 ); if( ($temp_max = strrpos( $var, '-' )) ) $var = substr( $var, 0, $temp_max ); } return $var; } как вариант, можете создать аналог этой функции для загрузки файлов, назвать ее, скажем, notranslit, с таким же содержимым, что и функция totranslit, только закомментируйте строку, которая отвечает за замену символов кириллицы на латинницу (эта строка выглядит вот так $var = strtr($var, $langtranslit);), то есть вот так function notranslit($var, $lower = true, $punkt = true) { global $langtranslit; if ( is_array($var) ) return ""; if (!is_array ( $langtranslit ) OR !count( $langtranslit ) ) { $var = trim( strip_tags( $var ) ); if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var ); else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var ); $var = preg_replace( '#[.]+#i', '.', $var ); $var = str_ireplace( ".php", ".ppp", $var ); if ( $lower ) $var = strtolower( $var ); return $var; } $var = trim( strip_tags( $var ) ); $var = preg_replace( "/\s+/ms", "-", $var ); $var = str_replace( "/", "-", $var ); //$var = strtr($var, $langtranslit); if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var ); else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var ); $var = preg_replace( '#[\-]+#i', '-', $var ); $var = preg_replace( '#[.]+#i', '.', $var ); if ( $lower ) $var = strtolower( $var ); $var = str_ireplace( ".php", "", $var ); $var = str_ireplace( ".php", ".ppp", $var ); if( strlen( $var ) > 200 ) { $var = substr( $var, 0, 200 ); if( ($temp_max = strrpos( $var, '-' )) ) $var = substr( $var, 0, $temp_max ); } return $var; } которая и отвечает за замену кириллицы латинницей. Данная функция находится в engine/modules/function.php Итак, подведем итог: заходим в файл engine/classes/uploads/upload.class.php и заменяем там totranslit на notranslit Заходим в engine/modules/function.php и копируем функцию totranslit и называем ее notranslit И все, после этих действий названия загружаемых картинок должны быть на русском. На практике не проверял, но в теории должно работать:) Это способ на скорую руку, наверняка новую функцию можно подчистить от лишнего кода, но и с ним работать будет так же. Кроме того, не факт, что используя данный способ, картинки будут нормально отображаться в UTF-8 версии движка, в любом случае надо пробовать:)]]>