Модуль «Files»

Применение модуля и вопросы по использованию
Быстрый переход:
Yalovoy Evgeniy

Yalovoy Evgeniy

Member
#31   12 декабря 2016 10:41

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

Пробовал с помощью 

{PAGE_ID|cot_files_widget('page',$this,'','files.link')}

Но файлы отказываются загружаться(

Алексей

Алексей

Administrator
#32   12 декабря 2016 13:09

Этот модуль позволяет прикреплять файлы к любым формам. Но. Чтобы файл прикрепился после отправки формы - для этого нужно сделать несложный плагин, который следает это при помощи функции cot_files_linkFiles(). Также нужно предусмотреть случай, когда объект удаляется - Ваш плагин должен удалить прикрепленные к нему файлы.

Судя по Вашему посту, вы вообще использовали код для прикрепления файлов к страницам. Да, есть разница.

Подробнее об использовании модуля.

Быстрота и надежность... Ну и красота тоже, конечно

Yalovoy Evgeniy

Yalovoy Evgeniy

Member
#33   12 декабря 2016 13:43
#10410 Alex:

Этот модуль позволяет прикреплять файлы к любым формам. Но. Чтобы файл прикрепился после отправки формы - для этого нужно сделать несложный плагин, который следает это при помощи функции cot_files_linkFiles(). Также нужно предусмотреть случай, когда объект удаляется - Ваш плагин должен удалить прикрепленные к нему файлы.

Судя по Вашему посту, вы вообще использовали код для прикрепления файлов к страницам. Да, есть разница.

Подробнее об использовании модуля.

Понял, спасибо.

Аватар

Sudba

Member
#34   06 января 2017 23:27

Здравствуйте, залил files в плагины и в модули, установил библиотеки.

Но у меня возникает такая ошибка:

Fatal error: Cannot redeclare cot_files_ajax_die() (previously declared in /home/c/*****/public_html/modules/files/inc/files.functions.php:42) in /home/c/******/public_html/plugins/files/inc/files.functions.php on line 58

Алексей

Алексей

Administrator
#35   08 января 2017 20:37
#10413 Sudba:

Здравствуйте, залил files в плагины и в модули

 

Зачем? Files - это модуль. Его следует копировать в папку modules. В папке plugins он не нужен. Перед удалением из папки plugins - не забудьте удалить его (плагин) из админки.

Отредактировано: Alex (08.01.2017 20:42, 8 месяцев назад)

Быстрота и надежность... Ну и красота тоже, конечно

Липницки Андрей

Липницки Андрей

Member
#36   25 февраля 2017 00:28

Плагин отличный. Спасибо!  Но есть ряд вопросов)
Первый - даже на этом сайте я не могу создать свои каталоги
- перехожу на http://portal30.ru/files
- жму Создать новый каталог
- 404

Надо не для админа как то подключать это? Спасибо!

Добавлено 1 день спустя:

Разобрался, если дать пользователю право на администрацию плагина то он так же может создавать каталоги, но и так же управлять каталогами и альбомами других пользователей. Как настроить только управление своими файлами?

Отредактировано: Kopusha (26.02.2017 08:42, 7 месяцев назад)
Аватар

Yaroslav

Member
#37   27 февраля 2017 11:30

Кажется ошибка в строке тут, не инициализиован $folder/отсутствует свойство $folder->user_id  и потому условие $folder->user_id != $usr['id'] не срабатывает. Можно подставить $uid как временное решение

Алексей

Алексей

Administrator
#38   27 февраля 2017 12:43

https://github.com/Alex300/files/issues/26

Исправлено. Скачайте обновленную версию из гитахаба.

Отредактировано: Alex (27.02.2017 13:36, 7 месяцев назад)

Быстрота и надежность... Ну и красота тоже, конечно

Аватар

Yaroslav

Member
#39   28 февраля 2017 10:53

Спасибо за фикс!

Как на счет возможности определять шаблоны для этой части ? К примеру мне для разных модулей необходимы разные списки загруженых файлов (в них я определяю еще кнопочки для работы с картинками). Ну и разный размер загружаемого файла в разных модулях, еще одним параметром для переопределения дефолтного значения. 

Алексей

Алексей

Administrator
#40   02 марта 2017 11:16

Это в будущем :)

Быстрота и надежность... Ну и красота тоже, конечно

Липницки Андрей

Липницки Андрей

Member
#41   05 марта 2017 16:28

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

Я создал radio 

<label><input type="radio" name="{$name}" value="{$value}"{$checked} /> {$title}</label>

в модуле добавления появилось экстраполе, добавил ему  class="file-edit" и стало реагировать ajax на манипуляции. Значение - cover photo, дефолтное - пусто.

Проблема первая - я выбираю 1 рабио и его выбирает, затем другой, публикую page, стоит выбранный, но в БД при выборе элемента 1 и затем элемента 2 у обоих стоит cover photo.  Хотя опять зайдя в редактирование я вижу что горит радио только у последнего выбранного элемента. Видимо я что то не так поинмаю и делаю или из за ajax в БД не приходит отмена предыдущего.

Проблема вторая - что мне делать дальше с этим полем. 

Планировалась конструкция наподобии

<img alt="{PRD_SHORTTITLE}" src="{PRD_ID|cot_files_get('folio', $this, 'gallery', 'file_cover = cover photo', '')|cot_files_thumb($this)}" />

но она не заработала. Собственно из проблемы 1 я мало эксперементировал с синтаксисом и вероятно что то напутал. Спасибо заранее за советы!

Алексей

Алексей

Administrator
#42   16 марта 2017 12:54

Не могу уловить суть вопроса.

Чтобы работал переключатель radio, у группы элемнтов должно быть общее имя и разные значение. При отправке формы на сервер уйдет параметр с именем этой группы и значением равным значению выбранного элемента.

http://htmlbook.ru/samhtml5/formy/pereklyuchateli

Из Вашего вопроса не понятно, где вы создали элемент radio. Это экстраполе для таблицы cot_files?

Клас элемета "file-edit" сработает для текстовых полей ввода. Для которых значение может быть получено при помощу jQuery так: $(this).val(). По крайней мере пока.

В Вашем случае нужно писать свой обработчик на JS.

Получить значение выбранного radio элемента для отправки на сервер можно примерно так:

$('input[name=radioName]:checked').val(); 
$('input[name=radioName]:checked', '#myForm').val(); // Только для элементов формы с id "myForm"

 

Второрая конструкция тоже не верная.

Файла с заданными параметрами может попросту не оказаться. В этом случае Вы можете получить что то вроде:

<img alt="Some Title" src="NULL" />

Или

<img alt="Some Title" src="" />

Это наверное не то что вы ожидали. Сначала нужно получить файл. Если он существует, то генерировать миниатюру и выводить тег <img>, если нет, то ничего не делать или вывести что то другое.

Да и функция cot_files_get() так не работает. Она не поддерживает дополнительные параметры.

Если бы Вы использовали шаблонизатор View, то все было бы просто:

<?php
$file = files_model_File::fetchOne([
	['file_source', 'folio'],
	['file_item', 'itemID'],
	['file_field', 'gallery'],
	['file_cover', 'cover_photo'],
]);
if(!empty($file)) { ?>
	<img src="<?=cot_files_thumb($file,335,197,'crop')?>">
<?php } ?>

Но, судя по Вашему вопросу Вы используете coTemplate. В этом случае Вам нужно написать callback функию для него, которая выполнит аналогичные действия и вызвать ее из шаблона.

 

 

Но, Вашу задачу, насколько я ее понимаю можно решить и по-другому.

Для заглавной каринки используйте другое знячение для "file_field". Например 'main', а для галереи так и оставте 'gallery'. Тогда на страницу редактирования объекта просто добавлете 2 блока загрузки файлов. Для заглавной картинки и для галереи.

Если же заглавную картинку обязательно нужно выбирать из списка загруженных - то способ описанный выше.

Отредактировано: Alex (16.03.2017 13:45, 6 месяцев назад)

Быстрота и надежность... Ну и красота тоже, конечно

Аватар

IG050

Member
#43   25 марта 2017 15:00

Что надо сделать чтобы использовать скажем Fancybox? Указать rel = ... в tpl-файле или ещё что?

почему то у меня никак не получается открыть в модальном окне

Липницки Андрей

Липницки Андрей

Member
#44   03 апреля 2017 22:58

Алексей, спасибо что оперативно стараетесь править на гитхабе и реагировать на мои изыскания) Я опять там чуть отписался)

Такой вопрос - отчего у меня регулярно возникают не привязанные ни к чему файлы и они не удаляются через cleanup, при этом другие - например я снес стр - удаляются.

вот как тут внизу 2 файла. Я не могу никак выловить откуда такое лезет...

Добавлено 35 минут спустя:

#10424 IG050:

Что надо сделать чтобы использовать скажем Fancybox? Указать rel = ... в tpl-файле или ещё что?

почему то у меня никак не получается открыть в модальном окне

Тут готовый плаг последнего фансибокса, у меня с файлз работает на ура

https://yadi.sk/d/IgxscQnB3GESPM

Как оформлять thumbs читайте в http://fancyapps.com/fancybox/3/

Добавлено 2 минуты спустя:

 

Если бы Вы использовали шаблонизатор View, то все было бы просто:

Но, судя по Вашему вопросу Вы используете coTemplate. 

А такой вопрос - мне что бы установить в принципе файлз надо установить доп библиотеку в которой есть View. Но это не значит что я его могу напрямую использовать уже?

Добавлено 2 дня спустя:

 

Отредактировано: Kopusha (06.04.2017 09:53, 5 месяцев назад)
Anonymous

Anonymous

Member
#45   06 апреля 2017 11:33

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

Error SyntaxError: Unexpected token < in JSON at position 0

Загрузка идет нормально

Но по оканчанию загрузки получаю ошибку

Не смотря на то что ошибка появляется, фаийл подгружается. Это становится понятно только после того как страница опубликована.

Все версии беру с github и ставлю на чистую Cotonti, использую последнюю версию CMF (не биржу).

Подскажите пожайлуста, где посмотреть больше данных для диагностики?

При замене файла, ошибки нет.

Попробовал поискать результат ответа JSON, нашел вот такое:

Warning: is_writable(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/site/data:.) in /var/www/site/data/www/site.ru/modules/files/inc/files.functions.php on line 569

Warning: is_writable(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/site/data:.) in /var/www/site/data/www/site.ru/modules/files/inc/files.functions.php on line 569


{"files":[{"name":"ftr-jump.png","size":29081,"type":"image\/png","ext":"jpg","isImage":true,"url":"http:\/\/site.ru\/datas\/files\/pfs\/1\/0\/file_34.jpg","thumbnail":"http:\/\/site.ru\/datas\/files\/_thumbs\/34\/file_34-160x160-auto.jpg","thumbnailUrl":"http:\/\/site.ru\/datas\/files\/_thumbs\/34\/file_34-160x160-auto.jpg","id":"34","deleteUrl":"http:\/\/site.ru\/index.php?e=files&m=upload&id=34&_method=DELETE&x=dbb5aec14975fd56","deleteType":"POST","editForm":[{"title":"\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a","element":"
\"\"
"}]}]}

Ошибку удалось побороть настройкой конфигурации Apache, для этого заменил

    <IfModule php5_module>
        php_admin_value open_basedir "/var/www/site/data:."
    </IfModule>

на

    <IfModule php5_module>
        php_admin_value open_basedir none
    </IfModule>

Насколько это правильно и безопасно? 

Отредактировано: Anonymous (06.04.2017 13:59, 5 месяцев назад)