Forums / National / Russian / Модули и плагины / [Release] Files Module

123>>>

Модуль файлов для Cotonti. Он является заменой модуля PFS, плагина «User images», входящих в «коробку» Cotonti и плагина «Attach2».

Alex300
#1 2014-04-08 20:48

Всем привет!

Новый модуль файлов для Cotonti.

Модуль организует управление вложениями к страницам, постам и любым другим объектам, создание фотогалерей на страницах и постах. А также совмещает в себе персональное файловое хранилище пользователей, файловое хранилище сайта для администраторов, управление аватарами и альбомами пользователей.
Он является заменой модуля PFS, плагина «User images», входящих в «коробку» Cotonti и плагина «Attach2».

GitHub: https://github.com/Alex300/files
Страница модуля: https://lily-software.com/free-scripts/cotonti-files

 

Особенности

  • Хранение файлов как в локальной файловой системе на сервере, так и в удаленных файловых хранилищах, таких как Amazon AWS S3, Azure Blob Storage, Yandex Objet Storage, BunnyCdn, Google Cloud Storage, WebDav, FTP, SFTP и др.
  • Современный механизм загрузки основанный на jQuery File Upload
  • Поддержка мультизагрузки.
  • Петаскивание файлов мышью прямо на форму загрузки.
  • Загрузка файлов по-частям («Чанками») позволяет обойти ограничение на загрузку файла через $_POST в 2 мб.
  • Использование для обработки изображений как библиотеки GD, так и ImageMagick. Последняя поддерживает большее количество форматов изображений, в т.ч. HEIC/HEIF, которые используются в смартфонах iPhone от Apple.
  • Уменьшение больших изображений до указанных размеров при загрузке.
  • Использование водяного знака (watermark) для изображений.
  • Простая интергация через обратный вызов функций из шаблона.
  • Загрузки подсчитываются и происходят с оригинальным именем файла.
  • Создание изображений для предпросмотра (thumbnail) и простая его настройка.
  • Поддержка экстраполей.
  • Специальные ББкоды для вставки изображений и галлерей в текст страниц вне зависимости от выбранного парсера.
  • Поддерживаемые форматы изображений библиотекой GD: .avif, .bmp, .gif, .jpg, .png, .tga, .tpic, .wbmp, .webp, .xbm
  • Поддерживаемые форматы изображений библиотекой Imagick.

 

Подробное описание и системные требования: https://lily-software.com/free-scripts/cotonti-files

 

Помогите протестировать данный модуль. И, если он кому-то понравится, было бы здорово, если поможете с переводом описания на английский репозитория расширений.

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
This post was edited by Alex300 (2023-10-28 09:15, 5 months ago)
Trustmaster
#2 2014-04-09 17:06

Огромное спасибо за проделанную работу! С переводом описания поможем обязательно, и если модуль придется всем по вкусу, то можно будет его включить в обновленную сборку движка (1.0). Но сначала придется скинуться на разработку конверторов с PFS и Attach2.

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

Еще хорошо бы описать отдельно библиотеку cotonti-lib.

May the Source be with you!
Alex300
#3 2014-04-09 18:15
#39409 Trustmaster:

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

Что то я упустил этот момент. Да, модуль является полноценной заменой PFS, плюс позволяет выводить просматривать альбомы и папки пользователей, помеченные как "Публичные". В старом PFS это был просто "задел" под плагин галереи. Описние обязательно на днях дополню.

Еще хорошо бы описать отдельно библиотеку cotonti-lib.

Это сложнее )), но обязательно сделаю.

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
Macik
#4 2014-04-09 22:12

Идея давно просилась, чтобы ее кто-то реализовал. Спасибо. Огромная работа.

Тестим. Пока вот такие предложения и замечания:

  1. Нет описания опции «pfs_winclose:» в настройках.
  2. Вот такую картиину с предупреждениями получаю на странице /files
  3. Возможно поэтому не идет загрузка — см. илл
  4. Иконки файлов заменил бы на более информативные (в этих уж очень мелко расширение прописано). типа https://www.iconfinder.com/search/?q=iconset%3Asimple-files&style=flat
  5. Ссылки из комментариаев не сработали (возможно тот же баг) иллюстрация 
  6. Та же ситуация на странице редактирования статьи.

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

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

В догонку:

  1. Не разобрался как для группы настроить ограничение на «максимальное кол-во вложений для одного объекта»
  2. В качестве рекомендации — использовать единую установку для Bootstrap — https://github.com/macik/cot-bootstrap/blob/master/README_ru.md
https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
This post was edited by Macik (2014-04-09 22:24, 10 years ago)
Alex300
#5 2014-04-10 06:12
Не разобрался как для группы настроить ограничение на «максимальное кол-во вложений для одного объекта»

Добавлю в описание. Но странице модуля в админке admin/extensions?a=details&mod=files в разделе «Теги» должно быть указано на отсутсвтие тегов {ADMIN_USERS_NGRP_ATTACH_PER_POST} и {ADMIN_USERS_EDITFORM_GRP_ATTACH_PER_POST} в шаблонах «system/admin/tpl/admin.users.tpl» и «system/admin/tpl/admin.users.tpl»

В качестве рекомендации — использовать единую установку для Bootstrap — https://github.com/macik/cot-bootstrap/blob/master/README_ru.md

Идея не плоха, но хочется более универсального решения. Пока не пришли к стандарту не хотелось бы добавлять дополнительное системное требование

Вот такую картиину с предупреждениями получаю на странице /files

Похоже на то, что либо сайт находится не в корне сервера, либо что то не то с настройками include_path. Самому заполучить такую ошибку не получилось, как ни старался, но попробовал пофиксить. Обновите файл «Loader.php» из cotonti-lib.

Да, при такой ошибке сохранение файла невозможно т.к. система не может подключить модели.

#39412 Macik: Нет описания опции «pfs_winclose:» в настройках.

Исправлено.

Спасибо за баг репорт ))

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

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
This post was edited by Alex300 (2014-04-10 06:58, 10 years ago)
Roffun
#6 2014-04-10 07:13
#39405 Alex300:

Всем привет!

Новый модуль файлов для Cotonti.

Хорошая новость. Исходя из описания модуль полезный, нужно будет тоже потестить. 

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
Macik
#7 2014-04-10 23:47
#39413 Alex300:
В качестве рекомендации — использовать единую установку для Bootstrap — https://github.com/macik/cot-bootstrap/blob/master/README_ru.md

Идея не плоха, но хочется более универсального решения. Пока не пришли к стандарту не хотелось бы добавлять дополнительное системное требование

1. Если мы не будем двигаться в сторону создания универсального решения его и не будет.

2. К тому же это не требование, а возможность интеграции с `cot-bootstrap` на уровне рекомендаций. Т.е. пишем `Recommends_plugins=bootstrap`, а в коде  (файл `files.files.tpl`) простая проверка на случай, если в системе установлен «общий» бутстрап (если его нет — ничего не измениться, используем тот что в модуле): 

<!-- IF {PHP.cfg.bootstrap} -->
<link rel="stylesheet" href="{PHP.cot_bootstrap.css_file}?{PHP.cfg.bootstrap}">
<link rel="stylesheet" href="{PHP.cot_bootstrap.theme_file}?{PHP.cfg.bootstrap}">
<!-- ELSE -->
<link rel="stylesheet" href="{PHP.cfg.modules_dir}/files/lib/bootstrap/css/bootstrap.min.css?{PHP.cot_modules.files.version}">
<link rel="stylesheet" href="{PHP.cfg.modules_dir}/files/lib/bootstrap/css/bootstrap-theme.min.css?{PHP.cot_modules.files.version}">
<!-- ENDIF -->

// …skipped

<!-- IF {PHP.cfg.bootstrap} -->
<script src="{PHP.cot_bootstrap.js_file}?{PHP.cfg.bootstrap}"></script>
<!-- ELSE -->
<script src="{PHP.cfg.modules_dir}/files/lib/bootstrap/js/bootstrap.min.js?{PHP.cot_modules.files.version}"></script>
<!-- ENDIF -->

Исправлено.

Спасибо за баг репорт ))

Проверю чуть позже.

А пока вопрос: 

В коде есть проверка на `COT_HEADER_COMPLETE`, однако нигде не нашел определения этой константы. 

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

Я не предлагаю именно эти, суть в другом — на них крупно написано расширение файла и его срезу видно. А так можно подыскать и цветные.

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Alex300
#8 2014-04-11 05:33

COT_HEADER_COMPLETE определена в самой последней строке файла /system/header.php. ( https://github.com/Cotonti/Cotonti/blob/master/system/header.php )  Она является флагом того, что header уже выполнен и подключить js и css через него уже невозможно.

 

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
Macik
#9 2014-04-11 10:44
#39424 Alex300:

COT_HEADER_COMPLETE определена в самой последней строке файла /system/header.php. ( https://github.com/Cotonti/Cotonti/blob/master/system/header.php )  Она является флагом того, что header уже выполнен и подключить js и css через него уже невозможно.

Ага. А какой смысл вот этой строки:

$jsFunc = (!defined('COT_HEADER_COMPLETE')) ? 'cot_rc_link_file': 'cot_rc_link_footer';

Разве мы не можем все библиотеки грузить в футере? 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Alex300
#10 2014-04-11 10:58

CSS. Если их грузить в футере, то стили, объявленные в них начнут действовать только после их загрузки. Когда хедер выполнился - еща ладно. А вот когда нет, то их лучше грузить по раньше.

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
Macik
#11 2014-04-11 16:28
#39427 Alex300:

CSS. Если их грузить в футере, то стили, объявленные в них начнут действовать только после их загрузки. Когда хедер выполнился - еща ладно. А вот когда нет, то их лучше грузить по раньше.

C CSS все понятно. Но здесь то речь идет именно о JS. Т.е. сне не понятна логика по которой в разных случаях (действительно ли они случаются?) мы для JS используем разные функции. Я бы понял, если бы это использовалось для поддержки старых версий сиены, где какие-то проблемы были. Но для этого случая такая строка все равно не работает.

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Alex300
#12 2014-04-11 21:07

Посмотрите внимательнее. https://github.com/Alex300/files/blob/master/files/inc/files.functions.php строки с 1149 по 1225. CSS грузится в хедер, если он не выполнен иначе в футер. А JS только в футер.

P.S. В данном случае это допустимо. Но встречаются задачи, которые выполняются не по document ready а сразу и тут подключение возможно только в хедер.

Добавлено 1 месяца спустя:

Как и обещал описание библиотеки Cotonti Lib. Описание пока не полное, но основные возможности описаны. Будет пополняться по мере возможности.

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
This post was edited by Alex300 (2014-05-13 08:15, 9 years ago)
kushelbek
#13 2015-07-06 14:29

День добрый.

Поставил модуль, пишет при загрузке картинок ошибкуInternal Server Error

Куда копать?

Roffun
#14 2015-07-06 20:49

Библиотеку Cotonti Lib установили ? 

Модуль pfs и плагин userimage удалили?

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
Patriciussanctus
#15 2015-07-28 14:39

очень крутой модуль, благодарю!
пару вопросов)

1. Могу ли я создать дефолтные папки для пользователей?
2. Есть ли возможность вывести несколько форм на одной странице с разными настройками: разные типы файлов (прямо по расширениям) и сохранение в разные папки соответсвенно первому вопросу?
3. И ещё что же с лимитом в функции widget? никак?

This post was edited by Patriciussanctus (2015-07-28 15:25, 8 years ago)

123>>>