Форумы / National / Russian / Модули и плагины / Модуль Files от Alex300

Wilder
#40594 21.02.2015 11:19

Оказалось, что не только я атакую автора в личке одними и теми же вопросами, пожеланиями и сообщениями об ошибках. Поэтому выкладываю сюда часть нашей переписки - наверняка кому-то поможет.

 

Wilder:

Разбираюсь с модулем Файлы. Единственная вещь, которую не могу никак понять - как попасть в сам архив, т.е. туда, где находятся обещанные папки и галереи. Прикрепил к странице несколько изображений, теперь хочу их вставить в произвольные места текста страницы. Как я понял из описания, "где-то" есть интерфейс, наподобие PFS, в котором должны быть подобные кнопки для вставки и вообще - для управления файлами.

Кстати, придумал еще полезную функцию для твоего модуля. Часто, особенно, в новостных сайтах возникает необходимость реализации следующей схемы расположения картинок: первая картинка (аватар страницы) находится в начале статьи, а все остальные изображения - внизу текста. Казалось бы, все картинки вывести не проблема, да беда в том, что в при использовании функции cot_files_gallery будут выведены все изображения, прикрепленные к странице, а в данном случае надо вывести все, кроме первой (т.е., кроме "главного аватара"). Также было бы неплохо иметь возможность выбирать аватары вручную, как это сделано в Files Upload - часто бывает необходимо иметь аватаром не первую или последнюю картинку, а, например, из середины ряда, но в то же время, первой ее делать по какой-либо причине нельзя.

 

Alex300:

Чтобы иметь возможность вставлять файлы в редактор из личного файлового хранилища или файлового хранилища сайта,  на форме редактирования страницы нужно добавить теги {PAGEEDIT_FORM_PFS} {PAGEEDIT_FORM_SFS} - в форму редактирования и {PAGEADD_FORM_PFS} {PAGEADD_FORM_SFS} в форму добавления страницы.

Также мои файлы доступны на отдельной странице: http://<ваш_домен>/files?m=pfs - можно добавить ее в меню пользователя как "Мои файлы"

Файловый архив сайта: http://<ваш_домен>/files?m=pfs&uid=0

Документацию обновил.

> Кстати, придумал еще полезную функцию для твоего модуля.


Все уже сделано ))

Виджет функция cot_files_filebox третьим параметром принимает имя поля, к которому привязываются файлы. Имя поля - условное название, никаких экстраполей для этого создавать не нужно.

В шаблон page.add.tpl добавте код:
{PHP|cot_files_filebox('page', 0, 'logo')}
{PHP|cot_files_filebox('page', 0, 'gallery')}

а в шаблон page.edit.tpl
{PAGEEDIT_FORM_ID|cot_files_filebox('page', $this, 'logo')}
{PAGEEDIT_FORM_ID|cot_files_filebox('page', $this, 'gallery')}

И у вас будет 2 загрузчика. И это не предел )))

Картинку из первого можно выводить, например в списках страниц или сверху страницы

<!-- IF {LIST_ROW_ID|cot_files_count('page',$this,'logo','images')} > 0 -->
<div class="pull-left marginright10 marginbottom10">
    <a href="{LIST_ROW_URL}" title="{LIST_ROW_SHORTTITLE}" rel="bookmark" class="thumbnail"><img
                alt="{LIST_ROW_SHORTTITLE}" src="{LIST_ROW_ID|cot_files_get('page',$this,'logo')|cot_files_thumb($this,195,130,'crop')}" /></a>
</div>
<!-- ENDIF -->

а со второго загрузчика использовать как галерею:

<!-- IF {PAGE_ID|cot_files_count('page',$this,'gallery','images')} > 1 -->
{PAGE_ID|cot_files_gallery('page',$this,'gallery')}
<!-- ENDIF -->

P.S. Сегодня закончил поддержку экстраполей, так что можно скачать из репозитория актуальную версию.

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

  1. При вставке изображения из файлового архива в атрибуте ALT прописывается "undefined", независимо от заполненности названия иллюстрации. Казалось бы, ничего особо страшного, однако, это минус с точки зрения SEO.
  2. Еще хотелось бы, чтобы кроме ALT в тэг вставлялся и TITLE. Во-первых, для большей эффективности того же SEO, а во-вторых, для повышения юзабилити.
  3. Было бы нелишним опционально вставлять указанную в названии картинки подпись при вставке ее из файлового архива. Т.е. добавить в строку с кнопками вставки изображения чекбокс "Вставить подпись", которая бы добавляла описание картинки к миниатюре и оригинальному изображению.

P.S. По первому пункту разобрался, в чем проблема. У тебя несоответствие имен классов в files.js и HTML-коде поля. В скрипте:

var desc = parentTr.find('input.files-edit-title').val();

В HTML:

<input name="file_title" value="undefined" class="form-control file-edit" placeholder="Заголовок" type="text">