Страницы, статьи и новости
Инструменты и плагины
Заготовка заголовок


Описание как пример заготовки. Пример текстового контента для дальнейшей кастомизации шаблона "Index36".

Редактировать шаблон вы можете на свое усмотрение и как вам угодно. Если у вас на это нет времени или недостаточно знаний - вы всегда можете заказать адаптацию шаблона сайта написав мне по контактам на GitHub или в личные сообщения на публичной странице сайта маркетплейса цифровых товаров

08.03.2025 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 -->

 

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

 

 

 

 

Отредактировано: webitproff (09.03.2025 01:27, 1 год назад)
Аккаунт