Разбираюсь с прроблемой потерявшейся кнопкой BROWSE, при мультизагрузке файлов модулем Uploadify.
Столкнулся с проблемой тут: http://www.drupal.ru/node/66703
Нашел корень проблемы и решение типа "костыль".
"Предлагаю решение" и прошу прокомментировать. Может есть более грамотный подход к лечению.
Проблема:
На странице добавления/редактировании материала, у которого есть CCK-поля filefield и imagefield организованна мультизагрузка файлов и изображений в эти поля. Для этого используется модуль Uploadify, который, я так понимаю, портирует на Drupal мультизагрузчик Uploadify. Так вот на этой странице не отображается кнопка BROWSE. Проблема возникает только на мультиязычных сайтах (модуль i18n).
Корень проблемы:
Для работы загрузчика необходимы некоторые файлы, типа uploadify.swf. Хранятся они в папке самого загрузчика (подпапка модуля). В коде страницы имеем:
<object ... type="application/x-shockwave-flash" data="http://localhost/mysite/
en/sites/all/modules/uploadify/uploadify/uploadify.swf" style="visibility: visible;">
Если фаябагом убрать en/ то все встает на свои места и начинает замечательно работать.
Так же на странице:
jQuery.extend(Drupal.settings,
{
...
"uploadify":
{
"uploadify-field-portfolio-gallery":
{
"uploadifyHide": [ ],
"uploadifyReplace": "field-portfolio-gallery-items",
"scriptData": { ... },
"uploader": "http://localhost/mysite/en/sites/all/modules/uploadify/uploadify/uploadi...,
"script": "http://localhost/mysite/ru/uploadify",
"fileDataName": "files[field_portfolio_gallery]",
"cancelImg": "http://localhost/mysite/en/sites/all/modules/uploadify/uploadify/cancel....,
"hideButton": false,
"auto": false
}
},
},
Обратите внимание на пути. Та же ошибка. Разумеется папок en/sites/... не существует.
Решение
Лезем в файл (корневой каталог модуля) uploadify.module и видим там строчки типа:
<?php
'uploader' => url($lib['path'] .'/uploadify.swf', array('absolute' => TRUE, 'language' => language_default()))
?>
в указываемом параметре 'language' => language_default() и кроется беда.
Заменяем вхождения
'language' => language_default()
на
'language' => 'none'
или
'language' => false
кнопка лечится
Хотелось бы:
Найти грамотное решение решение. Не хорошо, наверное, вносить корректировки в используемый модуль. Вдруг придется переустанавливать да переподключать модули.
Нужно ли поставить в известность разработчиков (модуль все таки помечен как dev)?
Комментарии
Я там вроде уже писал, и разработчик должен вроде в деве был подправить - http://drupal.org/node/739532
Ну да и решение собственно:
So I change:
481 'uploader' => url($path .'/uploadify/uploadify.swf', array('absolute' => TRUE)),
482 'script' => url('uploadify', array('absolute' => TRUE)),
to
481 'uploader' => url($path .'/uploadify/uploadify.swf', array('absolute' => TRUE, 'language' => '')),
482 'script' => url('uploadify', array('absolute' => TRUE, 'language' => '')),
Грац!
Странно, что не перезалили обновленную версию модуля.
Бывает, модуль почти не сопровождается.
Под 7 вышле другие - лучше.
Понятно. Думаю, что последний сайт делаю на шестерке. Вот на прошлой неделе сам i18n обновился для семерки. В скором времени буду пробовать.
Да, однозначно пора уже на семерку переходить
Да, с каждым днем все больше необходимых модулей вижу под семерку. Даже без поиска,сами на глаза попадаются
Я почти закончил свой мультиязычный сайт. Освоить информации пришлось много
Хотелось бы выложить все это в статейку типа "Делаем мультиязычный сайт на Drupal 6". Но сейчас сомневаюсь, стоит ли писать?
С учетом цифры "6".
Стоит) Шестерка еще будет жить. Вот проблему пытаюсь решить. Есть тип материала, у него есть основной язык - русский и перевод, английский (с префиксом ../en/..).
Есть вьюха, выводит список ссылок на материалы, но ссылки независимо от активного в данный момент языка на сайте, выводятся по умолчанию, на русский вариант ноды, то есть без en/, но если поставить ноде галочку "language neutral", то ссылки во вьюз формируются правильно, но нода то становить одноязычная.
В общем я в тупике, есть у кого то мысли как решить это? Или кто то может уже даже и решал? И наверняка решал ))
Не стоит - жаль времени. В целом информации достаточно, хотя хорошо обобщенной может и нет.
Шестерка уже мертва, новых проектов на ней не будет, во всяком случае среди тех кому будет необходимо подобное описание - т.е. новичкам.
Поставьте во вьюхе current language - будут показаны только ноды с текущим выбранным языком
Так же делал. Если я правильно понял вопрос
Статейку я наверное попробую набить и посмотрю как будет получатся. Если дело пойдет быстро и увижу в этом смысл, то допишу
Если залипну на переписывание очевидных вещей, то лучше начну посвещать время изучению семерки.