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

Прислано: vb

ср, 19/12/2007 - 16: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 конечно не все делает так как хотелось бы, зато по стандарту :)
Приятного просмотра аудио материалов и их прослушивания!

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Dimm в ср, 19/12/2007 - 19:35.

Вот еще есть такой модуль http://drupal.org/project/file_translit


Опубликовано vb в ср, 19/12/2007 - 21:47.

Dimm написал(а):

Вот еще есть такой модуль http://drupal.org/project/file_translit

Это устаревшая разработка, теперь развивается Transliteration с расширением функций, поэтому file_translit не был рекомендован и код для него не приведен, но проверено также работает.
У кого есть file_translit, его нужно заменять на Transliteration.


Опубликовано НовичОК в чт, 20/12/2007 - 07:25.

очень важная тема.


Опубликовано demoemo в чт, 20/12/2007 - 12:25.

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


Опубликовано vb в чт, 20/12/2007 - 17:40.

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


Опубликовано demoemo в пт, 21/12/2007 - 13:35.

В блоге вывесил перевод. Все подробности там-с!


Опубликовано НовичОК в пт, 04/04/2008 - 16:42.

странно, вставляю этот код и сайт перестает работать.


Опубликовано taron13 в пн, 14/07/2008 - 10:58.

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

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

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


Опубликовано molatok в сб, 07/03/2009 - 08:55.

народ, пожалуйста, выложите кусочек с готовым кодом, как и где именно вставлялось...


Опубликовано composer_v@drup... в вт, 15/09/2009 - 22: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)) {
 
  // Вот вставляный код %)
if (module_exists('transliteration')) {
      require_once(drupal_get_path('module', 'transliteration') .'/transliteration.inc');
      $string = transliteration_clean_filename($string);
      return strtolower($string);
    }
  // Конец вставляному коду %)
 
    // 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@drup... в вт, 15/09/2009 - 22:48.

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


Опубликовано andydru в ср, 25/08/2010 - 21:45.

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

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


Новое на сайте

Ссылки партнёров