Названия загружаемых картинок на DLE сделать на русском
(Ответов: 1, Просмотров: 1480)
- 11.10.2013 15:53
- 11.10.2013 17:15
Для этого надо подправить файл 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 версии движка, в любом случае надо пробовать:)Последний раз редактировалось OKyJIucT; 11.10.2013 в 17:18.
Похожие темы
Темы | Раздел | Ответов | Последний пост |
---|---|---|---|
Подскажите как сделать ротацию картинок. | Web программирование | 5 | 03.10.2013 23:39 |
Где добавить расширения загружаемых файлов? | DLE | 2 | 25.05.2013 10:54 |
Необычные названия доменов. Я бы взял gad.com | Оффтоп и свободные темы | 7 | 21.01.2013 23:01 |
Оцените названия домена | Оффтоп и свободные темы | 7 | 05.01.2012 21:24 |
Проблема с выводом названия поста. | Оффтоп и свободные темы | 5 | 21.09.2011 00:56 |