Транслитерируем русские clean тэги в модуле audio

Главные вкладки

Аватар пользователя vb vb 19 декабря 2007 в 19:19

В модуле audio из Id3 тегов делаются clean тэги для просмотра.
При русских тегах они делаются неправильно, по крайней мере у меня, урезаются до одной буквы.
Если у кого тоже есть такая проблема, то вот первое попавшееся в голову и сделанное решение и заплатка.

1. Установить модуль Transliteration http://drupal.org/project/transliteration, активировать его.
2. В модуле audio.module ищем функцию audio_clean_tag($string).
3. После строчки if (preg_match... вставляем if из пяти строчек.
4. Всё.

function audio_clean_tag($string) {
  // If we've got characters besides 0-9 A-Z a-z hyphen and underscore, replace
  // them.
  if (preg_match('/[^-\w]/', $string)) {
    if (module_exists('transliteration')) {
      require_once(drupal_get_path('module', 'transliteration') .'/transliteration.inc');
      $string = transliteration_clean_filename($string);
      return strtolower($string);
    }

Полноценного тестирования не проводил. Не могу, На ваше усмотрение. Ну сами знаете, где менять, если что.
Модуль Transliteration конечно не все делает так как хотелось бы, зато по стандарту Smile
Приятного просмотра аудио материалов и их прослушивания!

Комментарии

Аватар пользователя vb vb 20 декабря 2007 в 0:47

Dimm wrote:
Вот еще есть такой модуль http://drupal.org/project/file_translit[/quote]
Это устаревшая разработка, теперь развивается Transliteration с расширением функций, поэтому file_translit не был рекомендован и код для него не приведен, но проверено также работает.
У кого есть file_translit, его нужно заменять на Transliteration.

Аватар пользователя demoemo demoemo 20 декабря 2007 в 15:25

2vb: очень актуально. Думаю слить в едино и ваш труд к переводу и сделать типа мини патча. Большое спасибо!

Аватар пользователя vb vb 20 декабря 2007 в 20:40

к сожаления не могу занятся переводом в полной мере, я ваш жду:) а в нем исправлю юзеру видные строчки, а с патчем правильная идея, но у меня и на нее нет времени, работает и хорошо.

Аватар пользователя taron13 taron13 14 июля 2008 в 14:58

Кто-нибудь нашел решение к этой проблеме или может подтвердить, что вышеуказанный код решает её в 5.х или 6.х?

Может ещё и ссылку на полный перевод кто кинет?

Заранее благодарен.

Аватар пользователя composer_v@drupal.org composer_v@drup... 16 сентября 2009 в 2:44

Вот как код смотрится когда его вставишь....

function audio_clean_tag($string) {
  // If we've got characters besides 0-9 A-Z a-z hyphen and underscore, replace
  // them.
  if (preg_match('/[^-\w]/', $string)) {

  // Вот вставляный код Wacko
if (module_exists('transliteration')) {
      require_once(drupal_get_path('module', 'transliteration') .'/transliteration.inc');
      $string = transliteration_clean_filename($string);
      return strtolower($string);
    }
  // Конец вставляному коду Wacko

    // Remove accents...
    $string = strtr($string, '????????????????????????????????????????????????????????????', 'SZszYAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy');
    // ...convert to equivalent chars...
    $string = strtr($string, array('?' => 'TH', '?' => 'th', '?' => 'DH', '?' => 'dh', '?' => 'ss', '?' => 'OE', '?' => 'oe', '?' => 'AE', '?' => 'ae', '?' => 'u'));
    // ... and remove anything else that's not alphanumeric and replace it with an underscore.
    $string = preg_replace('/[^-\w]+/', '_', $string);
  }
  // Remove leading and trailing underscores.
  $string = trim($string, '_');
  // Finally, make it to lower case.
  return strtolower($string);
}

Аватар пользователя composer_v@drupal.org composer_v@drup... 16 сентября 2009 в 2:48

В общем работает без проблем только как сделать чтобы когда нажимаешь аудио тэги происходила сортировка на русском языка, а не транслитнутом русском латинскими буквами.

Аватар пользователя andydru andydru 26 августа 2010 в 1:45

Ребят подскажите - я только начинаю разбираться с друпалом и вот закопался с синонимами.
Поставил себе последнюю версию pathauto и модуль транслитерации.

Появилась галочка - поставил
Но урл создаються стандартные, почему то не создаёт синонимы автоматом Sad