Модуль Audio :cp1251 в UTF-8

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

Аватар пользователя irbis_78 irbis_78 6 августа 2008 в 14:52

Задача: есть архив mp3 файлов, нужно создать такое же количество материалов типа AUDIO при помощи модуля AUDIO.
С вставкой файлов с русскими исполнителями встречаемся с с несколькими проблемами..

Проблема №1: При импортировании файла с русскоязычным названием пишет ошибки..
Решение:В файле audio.module перед каждым INSERT которым вставляется файл в базу пишем:

$f = $node->audio_file;

$f['file_name'] =mb_convert_encoding ( $f['file_name'] , 'UTF-8' , 'Cp-1251');
$f['file_path1']= $f['file_path'];
$f['file_path'] =mb_convert_encoding ( $f['file_path'] , 'UTF-8' , 'Cp-1251');

тоесть конвертим путь файла и имя файла в кодировку UTF-8, т.к. вся друпальская база у нас в кодировке UTF-8

Далее в этом же модуле , после каждого SELECT который возвращает имя файла или его путь
переводим путь обратно в cp1251 , я делаю это так:

$fields = db_fetch_array(db_query("SELECT * FROM {audio} WHERE vid=%d", $node->vid));
$fields['file_name'] =mb_convert_encoding ( $fields['file_name'] , 'Cp-1251' , 'UTF-8');
$fields['file_path'] =mb_convert_encoding ( $fields['file_path'] , 'Cp-1251' , 'UTF-8');

Проблема №2: Русско-буквенные тэги id3v1 mp3 отображаются не верно
Решение:
В файле getid3.php ищем строчку
'id3v1' => array('id3v1' , $this->encoding_id3v1),
и меняем ее на
'id3v1' => array('id3v1' , 'cp1251'),
и все.

Проблема №3: Русско-буквенные тэги id3v2 mp3 отображаются не верно
Решение:
в модуле module.tag.id3v2.php
ищем строчку
static $TextEncodingNameLookup = array(0=>'ISO-8859-1', 1=>'UTF-16', 2=>'UTF-16BE', 3=>'UTF-8', 255=>'UTF-16BE');
меняем ее на
static $TextEncodingNameLookup = array(0=>'сp1251', 1=>'UTF-16', 2=>'UTF-16BE', 3=>'UTF-8', 255=>'UTF-16BE');
и все.
возможны еще проблемы, но они уже более мелкие.. если что пишите разберемся...

ЗЫ я не описал как можно исправить форму для импорта .. там тоже косяк с кодировкой в путях... ну там по аналогии..
ЗЗЫ если нада могу описать как копировать файлы в определенные папки, что бы архив аплоадных фалов тоже был каталогизирован .... ну там в принципе просто..

Комментарии

Аватар пользователя НовичОК НовичОК 6 августа 2008 в 21:20

я отказался от модуля Audio. не гибкий он. Пользуйтесь ССК. Это гибко как угодно.
за теги - СПАСИБО! Работает! Только у меня в файле не было вашего кода. Я просто добавил : 'cp1251' сюда: // Check encoding/iconv support