Pages, Articles & News
Tools & Plugins
Example / Placeholder Title


Description as an example placeholder. Sample text content for further customization of the "Index36" template.

You are free to edit and customize the template however you like. If you don’t have time or enough knowledge — you can always order template adaptation by contacting me via GitHub or private messages on the digital goods marketplace.

2025-03-08 08:34

Интеграция модуля «Files» в шаблоны темы сайта, теги и конструкции для вызова функционала прикрепления и отображения, файлов и картинок к статьям сайта, в различных локациях, при использовании модуля "Pages".

И так, не будет лишним напомнить, если вы интегрируете модуль «Files» на рабочий проект, уже с приличным "багажом" данных, - делаем бекап сайта и разворачиваем его где-то на локалке или поддомене, чтобы затем "брать" те же картинки или файлы от-туда на рабочий проект.

Потому что первым делом, перед интеграцией модуля "Files" нам нужно удалить модуль "PFS"!

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

1. Создание статьи или новости, - шаблон page.add.tpl

находим код для модуля "PFS", в исходниках выглядит вот так:


        <!-- IF {PAGEADD_FORM_PFS} -->{PAGEADD_FORM_PFS}<!-- ENDIF -->
        <!-- IF {PAGEADD_FORM_SFS} --><span class="spaced">{PHP.cfg.separator}</span>
        {PAGEADD_FORM_SFS}<!-- ENDIF -->

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

Сейчас же модуль "PFS" должен быть деинсталирован в системе!

Чтобы применить условие, сделать это нужно вот так:

<!-- IF {PHP|cot_module_active('pfs')} -->
        <!-- IF {PAGEADD_FORM_PFS} -->{PAGEADD_FORM_PFS}<!-- ENDIF -->
        <!-- IF {PAGEADD_FORM_SFS} --><span class="spaced">{PHP.cfg.separator}</span>
        {PAGEADD_FORM_SFS}<!-- ENDIF -->
<!-- ENDIF -->

 

А вот после этого уже прописываем инструкцию для прикрепления к создаваемой статье файлов и картинок при помощи модуля «Files», добавив код:

<!-- IF {PHP|cot_module_active('files')} -->
<div class="uk-card uk-padding-small uk-background-default shadow-scmtdlight uk-border-rounded uk-margin-medium-bottom">
<div class="uk-margin">
  <h4 class="uk-heading-divider uk-text-primary uk-margin-remove">{PHP.L.Files}:</h4>
 {PHP|cot_filesFileBox('page', 0)}
</div>
<hr>
<div class="uk-grid-small uk-child-width-expand@s uk-text-center" uk-grid>
  <div>
    {PAGEADD_FORM_PFS}
  </div>
  <div>
    {PAGEADD_FORM_SFS}
  </div>
</div>
</div>
<!-- ENDIF -->

 


 

2. Редактирование статьи или новости, - шаблон page.edit.tpl

находим код для модуля "PFS", в исходниках выглядит вот так:

<!-- IF {PAGEEDIT_FORM_PFS} -->{PAGEEDIT_FORM_PFS}<!-- ENDIF -->
<!-- IF {PAGEEDIT_FORM_SFS} --><span class="spaced">{PHP.cfg.separator}</span>
{PAGEEDIT_FORM_SFS}<!-- ENDIF -->

удаляем этот код или обрамляем в условие с проверкой под модуль "PFS":

<!-- IF {PHP|cot_module_active('pfs')} -->
<!-- IF {PAGEEDIT_FORM_PFS} -->{PAGEEDIT_FORM_PFS}<!-- ENDIF -->
<!-- IF {PAGEEDIT_FORM_SFS} --><span class="spaced">{PHP.cfg.separator}</span>
{PAGEEDIT_FORM_SFS}<!-- ENDIF -->
<!-- ENDIF -->


Напоминаю, что модуль "PFS" не должен быть установлен в системе, потому что он несовместим с модулем «Files»!

Теперь смело прописываем инструкцию для редактирования и прикрепления, файлов и картинок в статье, которую редактируем, добавив код:

<!-- IF {PHP|cot_module_active('files')} -->
<div class="uk-margin">
  <h4 class="uk-heading-divider uk-text-primary uk-margin-remove">{PHP.L.Files}:</h4> {PAGEEDIT_FORM_ID|cot_filesFileBox('page', $this)}
</div>
<hr>
<div class="uk-grid-small uk-child-width-expand@s uk-text-center" uk-grid>
  <div>
    {PAGEEDIT_FORM_PFS}
  </div>
  <div>
    {PAGEEDIT_FORM_SFS}
  </div>
</div>
<hr>
<!-- ENDIF -->

 


3. Просмотр статьи или новости, (страница полной новости) - шаблон page.tpl

Вариант 1, как у меня, при использовании CSS/JS front-end framework UIkit3

Там, где будем выводить картинки галлереей, но в данном случае слайдером с лайтбоксом, вставляем код:

<!-- IF {PHP|cot_module_active('files')} -->
    <!-- IF {PAGE_ID|cot_filesCount('page',$this,'','images')} > 0 -->
    <div class="uk-card uk-margin-medium-bottom"> {PAGE_ID|cot_filesGallery('page',$this,'','files.gallery.page_page_full')} </div>
    <!-- ELSE -->
    <!-- Заглушка. Если не прикреплена хоть одна картинка -->
    <div class="uk-card uk-card-body uk-card-small uk-background-default uk-margin-medium-bottom uk-border-rounded shadow-sldlight">
    <div class="uk-inline thumbnail uk-cover-container">
      <canvas width="900" height="420"></canvas>
      <img uk-cover class="" alt="" src="themes/{PHP.theme}/img/icon/gallery-empty.svg" uk-img>
    </div>
    </div>
    <!-- ENDIF -->
<!-- ENDIF -->

Затем, по адресу:
 

/themes/ИМЯ_ВАШЕЙ_ТЕМЫ/modules/files

создаем файл с именем
files.gallery.page_page_full.tpl

а в него, помещаем код:

<!-- BEGIN: MAIN -->
<div class="uk-position-relative uk-visible-toggle uk-light" tabindex="-1" uk-slider="center: true">
    <ul class="uk-slider-items uk-grid uk-grid-match" uk-height-viewport="min-height: 420; offset-top: true; offset-bottom: 30" uk-lightbox>
        <!-- BEGIN: FILES_ROW -->
        <!-- IF {FILES_ROW_IMG} -->
        <li class="uk-width-1-1 uk-width-3-4@m">
            <div class="uk-cover-container">
                <canvas width="640" height="420"></canvas>
                <a href="{FILES_ROW_URL}" data-caption="{PAGE_SHORTTITLE} {FILES_ROW_TITLE} - {FILES_ROW_FILENAME}" alt="{FILES_ROW_TITLE}">
                    <img uk-cover src="{FILES_ROW|cot_filesThumbnailUrl($this,1153,523,'outbound')}" alt="{FILES_ROW_TITLE} - {FILES_ROW_FILENAME}" title="{FILES_ROW_TITLE} - {FILES_ROW_FILENAME}" />
                </a>
                <div class="uk-position-small uk-position-bottom-center uk-panel"><span class="uk-icon-button uk-button-primary">{FILES_ROW_NUM} </span></div>
            </div>
        </li>
        <!-- ENDIF -->
        <!-- END: FILES_ROW -->
    </ul>
    <div class="uk-visible@m">
        <a class="uk-position-center-left uk-position-small uk-hidden-hover" href="#" uk-slidenav-previous uk-slider-item="previous"></a>
        <a class="uk-position-center-right uk-position-small uk-hidden-hover" href="#" uk-slidenav-next uk-slider-item="next"></a>
    </div>
</div>
<!-- END: MAIN -->

Результат такого дела можно увидеть, например на этой странице.

 

Вариант 2.

Это если вы используете  CSS/JS front-end framework Bootstrap, то :

Там, где будем выводить картинки, в нашем шаблоне шаблон page.tpl вставляем код:

<!-- IF {PAGE_ID|cot_filesCount('page', $this, '', 'images')} > 0 -->
{PAGE_ID|cot_filesGallery('page', $this, '', 'files.gallery')}
<!-- ENDIF -->

Чтобы отредактировать вывод картинок в нашем втором варианте:

A.  из папки public_html/modules/files/tpl

файл files.gallery.tpl

копируем в папку:

/themes/ИМЯ_ВАШЕЙ_ТЕМЫ/modules/files

B.  затем открываем его и редактируем под себя. 

И так, как у вас Bootstrap можно легко сделать галлерею в виде слайдера (карусели).

 


4. Просмотр статей или новостей в списках, (листинг в категории) - шаблон page.list.tpl

<!-- IF {PHP|cot_module_active('files')} -->
    <!-- IF {LIST_ROW_ID|cot_filesCount('page', $this, '', 'images')} > 0 -->
      <div class="uk-inline uk-cover-container">
        <canvas width="330" height="320"></canvas>
        <a href="{LIST_ROW_URL}" title="{LIST_ROW_SHORTTITLE}" rel="bookmark" class="thumbnail">
          <img alt="{LIST_ROW_SHORTTITLE}" src="{LIST_ROW_ID|cot_filesGet('page', $this, '')|cot_filesThumbnailUrl($this, '800', '600', 'outbound')}" uk-cover />
        </a>
      </div>
    <!-- ENDIF -->
<!-- ENDIF -->

 

 

Добавление списка файлов для скачивания

Иногда, к той или иной странице нужно добавить файлы или несколько файлов для скачивания. 

Такими файлами могут быть документы или архивы, как пример файлы с расширениямиzip, rar, 7z, pdf, djvu, txt, doc, docx, xls, xlsx и других, которые указаны в конфигурации модуля «Files».

В нужно месте шаблона полной новости/страницы - page.tpl добавляем код:

  

<!-- IF {PAGE_ID|cot_filesCount('page',$this,'','files')} > 0 -->
<div class="block">
    <h3>{PHP.L.files_downloads}</h3>
    {PAGE_ID|cot_filesDownloads('page',$this)}
</div>
<!-- ENDIF -->

 

примерно так:

 

 

 

 

This post was edited by webitproff (2025-03-09 01:27, 1 year ago)
Account