MisterN 10 сентября 2013 1 13
С подачи dashukin, воспользовался этой инструкцией rtfm.modx.com/extras/revo/migx/migx.tutorials/migx.use-resource-specific-media-source-and-multifile-uploader
Создал источник файлов ResourceMediaPath, MIGX — TV resourcealbum, конфигурацию resourcealbum
Источники файлов создавал немного творчески, т.е. не [[migxResourceMediaPath? &pathTpl=`assets/resourceimages/{id}/`]], а [[migxResourceMediaPath? &pathTpl=`assets/img/rooms/{id}-{alias}/`]]
. Кроме того, я переименовал некоторые столбцы в таблицах на русский и добавил один свой новый столбец.
Проблема в том, что если жмякнуть на Upload Files, то в вызванном окне в ссылках отсутствует assets/img/rooms/. Т.е. домен_сайта//дальнейший адрес. Тогда как по-логике там должно быть домен_сайта/assets/img/rooms/дальнейший адрес.
Выглядит это примерно так




Если у resourcealbum сменить источник файлов на дефолтный, то Ajax-Upload вроде работает. Но не грузить же теперь фотки в корень.
Собственно, о проблеме писал в другом сообществе
modx.im/blog/questions/1281.html
Но я после этого перелапатил все сообщества по Modx, которые знал. Заметил, что на вопросы по этой теме отвечают долго и вот решил т.о. немного ускорить ответ. Вдруг здесь я его быстрее получу.
13 комментариев
Fi1osof1
Fi1osof 10 сентября 2013г в 20:17 #
Шли в личку логин/пароль и ссылку на админку (прям на страницу, где эта мультизагрузка используется). Только так, чтобы там уже была эта ошибка с путями.
Fi1osof1
Fi1osof 10 сентября 2013г в 20:54 #
Все очень просто: в источниках надо выставлять не только путь на диске, но и УРЛ-путь. Они могут отличаться, но надо знать когда и как. А то так получается, что дисковая папка отличается, а УРЛ считается от коря.



P.S. сейчас все работает.
M
MisterN 10 сентября 2013г в 21:01 #
Поклон вам, выручили.
Fi1osof1
Fi1osof 10 сентября 2013г в 21:06 #
Не за что.
M
MisterN 10 сентября 2013г в 21:29 #
Продолжая тему хостингов, у нас на таймвебе было 15 сайтов на Millennium timeweb.ru/services/hosting/
Я читал раньше ваши отзывы о нём, но что-то не ахти он быстро работает. А на том, что вы видели, эво летает. Это с Рево такие проблемы. Кстати, было б здорово найти где-нибудь минимальные требования по оперативной памяти для рево.
А насчёт Ajax-Upload, как бы переименовать кнопки Upload Files и Load from mediasource? В /assets/components/migx/imageupload нашёл css и js, думал через скрипты загружается, так не нашёл, где они там прописаны…
Fi1osof1
Fi1osof 10 сентября 2013г в 22:01 #
Эво везде летает. Что ему не летать? Там весь двиг — несколько файлов. Рево гораздо более требовательный.
Минимальные требования Рево проверяет при установке.

А насчёт Ajax-Upload, как бы переименовать кнопки Upload Files и Load from mediasource?
Сорри, но это не полезу ковырять. Это приятности, а не критическая поломка.
M
MisterN 10 сентября 2013г в 21:59 #
Я тут высыплю ещё ворох вопросов, если на что-нибудь ответите — сделаете мне хорошо. Ну а нет — нету в ответах острой необходимости.
По внешнему виду, длинна инпутов в окне MIGX, которое появляется, когда добавляешь фото обычным способом, не мультизагрузкой, чуть больше необходимого из-за этого оно не помещается в свой контейнер, вылезает, из-за этого не видно бордера справа.
Тоже при переносе TV с помощью настройки форм.


Ещё вот какое дело, у меня в таблице есть столбец «Метка». По умолчанию о 1 и нужен, чтобы можно было разделить фотографии метками на группу и вывести в разных частях страницы группы фоток с разными метками.
Так вот, при массовой загрузке она не устанавливается автоматом. Первое, что приходит в голову, добавить плагин, который будет проверять поле на пустату при сохранении и если пусто — ставить 1. Но может есть способ лучше?
Возможно ли добавить массовое действие, удаление отмеченных чекбоксом, скажем?
Самый последний вопрос: созданные по инструкции параметры Источников файлов
Add three new settings to the media source:

thumbX: 200
thumbY: 200
maxFiles: 20

Почему-то невозможно редактировать. Нажимаю " редактировать — появляется меню — меняю параметры — жму «выполнить» — ничего не происходит и не меняется.


Ещё раз спасибо, что выручили. И извиняюсь, за назойливость — приставучисть. ))
Fi1osof1
Fi1osof 10 сентября 2013г в 22:03 #
За красотой ко мне не обращайтесь. Я даже не прочитаю такое. Я серверный программист, а не верстальщик, дизайнер или типа того. Мне это все не интересно.
M
MisterN 11 сентября 2013г в 09:18 #
Не буду. Это ж админка, я предположил, что кривость в ней — результат того, что я там что-то поставил не так. Но если это нормально, то стили-то я подправлю.
Fi1osof1
Fi1osof 11 сентября 2013г в 11:48 #
А я не знаю нормально или нет. Я за такими вещами не слежу. А MigX вообще всего пару раз использовал, почти по принуждению.
M
MisterN 11 сентября 2013г в 13:15 #
А не подскажете, как в плагине получить Источник файлов для ресурса? Я там выше заикнулся про плагин по некоторым дополнительным полям. Хочу по дороге ещё фото на ресайз отправить и в ячейке migx сохранить. Как-то так. Мне на 'input' => $photo нужно подать картинку и путь к ней. Но в migx же путь не храниться, у неё свой источник файлов Можно собирать это assets/img/rooms/{id}-{alias} как-то так.
$id=$resource-&get('id');
$alias=$resource-&get('alias');
$patch= 'assets/img/rooms/'.$id.'-'.$alias;

Но наверно более правильно было бы получить путь, как-то обратившись к TV resourcealbum?

Честно гуглил на тему русскоязычные ресурсы. Английского хватает. чтобы понять конкретные страницы документации, но копаться, искать что-то в документации тяжело.
Как вообще получить все параметры тв? Пробовал в консоли ввести

$tv = $modx->getObject('modTemplateVar',array('name'=>'resourcealbum'));
    echo '<pre>';
    print_r($tv);
    echo '</pre>';

Пути там точно не увидел.
Fi1osof1
Fi1osof 11 сентября 2013г в 14:04 #
Я точно не знаю твоей задачи (и уже давай на Ты). Но в общих чертах дам наколку:
TV не хранит пути самого сурса. Все берется из него. То есть в момент рендеринга TV-шки, она смотрит какой медиасурс назначен ей, и обращается уже к нему, чтобы плучить актуальное значение пути. Следовательно, всегда и нужно работать с медиасурсом непосредственно. Я вот так это делаю:
// Получаем объект
if(!$id OR !$source = $modx->getObject('sources.modMediaSource', $id)){return '';};
// Инициализируем 
$source->initialize(); 
// $callback - getBaseUrl или getBasePath
$result = $source->$callback($params);
unset($source);
return $result;
Fi1osof1
Fi1osof 11 сентября 2013г в 14:05 #
P.S. следует учитывать, что в данном случае используется текущий контекст.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.