Категории форума

Модуль "Forums". Интеграция модуля «Files».

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

webitproff
webitproff • 09.03.2025 02:41 #305

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

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

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

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

Пункт A.

Для новичков в Cotonti, и если кто не знает, стараюсь всегда напоминать, - никогда не лезем под капот движка, что-бы там что-то отрихтовать под себя. После обновления всё слетит. Поэтому, идем в папку своей темы (основной шаблон сайта), по-умолчанию это:

/public_html/themes/nemesis/

*nemesis - это название дефолтной темы для фронт-энда в Cotonti. Она почти пустая и по большей части как пример, но при этом выступает фундаментом, на котором можно построить что угодно!

Пункт B.

И так, если папке "nemesis" нет папки "modules", а в ней папки "forums", с HTML-шаблонами (файлы .tpl) для модуля "Forums", то создаем все эти папки, чтобы мы получили такой адрес:

/public_html/themes/nemesis/modules/forums

Пункт C.

Теперь идем под капот движка, по адресу:

/public_html/modules/forums/tpl

и из этой папки копируем все шаблоны в папку "forums", которую мы создали в пункте "B".
Шаблон forums.admin.tpl копировать не нужно - это шаблон модуля для админки.

Пункт D.

Когда мы шаблоны модуля или плагина перенесли в свою тему - теперь можно "рихтовать" и "тюнинговать" насколько хватит воображения и знаний! - Движок вы не поломаете!

Переходим к интеграции управления файлами на форуме.

1. Создание топика (темы) на форуме, - шаблон forums.newtopic.tpl

находим код:

<!-- IF {FORUMS_NEWTOPIC_PFS} --><span class="marginright10">{FORUMS_NEWTOPIC_PFS}</span><!-- ENDIF -->
<!-- IF {FORUMS_NEWTOPIC_SFS} -->{FORUMS_NEWTOPIC_SFS}<!-- ENDIF -->

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

<!-- IF {PHP|cot_module_active('pfs')} -->
    <!-- IF {FORUMS_NEWTOPIC_PFS} -->
    <span class="marginright10">{FORUMS_NEWTOPIC_PFS}</span>
    <!-- ENDIF -->
    <!-- IF {FORUMS_NEWTOPIC_SFS} -->
    {FORUMS_NEWTOPIC_SFS}
    <!-- ENDIF -->
<!-- ENDIF -->

 

И так как, в исходниках, в форму создания топика встроена таблица, то к примеру перед кодом начала блока опросов
 

<!-- BEGIN: POLL -->

 

вставляем код со строкой таблицы:

<!-- IF {PHP|cot_module_active('files')} -->
<tr>
    <td>{FORUMS_NEWTOPIC_PFS}</td>
    <td>{FORUMS_NEWTOPIC_SFS}</td> <!-- FORUMS_NEWTOPIC_SFS не обязательно, это общие файлы -->
</tr>
<!-- ENDIF -->

 


 

2. Редактирование сообщений (постов) в какой-либо теме на форуме, - шаблон forums.editpost.tpl

находим код:

<!-- IF {FORUMS_EDITPOST_PFS} --><span class="marginright10">{FORUMS_EDITPOST_PFS}</span><!-- ENDIF -->
<!-- IF {FORUMS_EDITPOST_SFS} -->{FORUMS_EDITPOST_SFS}<!-- ENDIF -->

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

<!-- IF {PHP|cot_module_active('pfs')} -->
    <!-- IF {FORUMS_EDITPOST_PFS} -->
    <span class="marginright10">{FORUMS_EDITPOST_PFS}</span>
    <!-- ENDIF -->
    <!-- IF {FORUMS_EDITPOST_SFS} -->
    {FORUMS_EDITPOST_SFS}
    <!-- ENDIF -->
<!-- ENDIF -->

И так как, в исходниках, в форму создания топика встроена таблица, то к примеру перед кодом начала блока опросов

<!-- BEGIN: POLL -->

вставляем код со строками таблицы:

<!-- IF {PHP|cot_module_active('files')} -->
<tr>
    <td>{PHP.L.Files}:</td>
    <td>{PHP.p|cot_filesFileBox('forums', $this)}</td>
</tr>
<tr>
    <td>{FORUMS_EDITPOST_PFS}</td>
    <td>{FORUMS_EDITPOST_SFS}</td> <!-- FORUMS_EDITPOST_SFS не обязательно -->
</tr>
<!-- ENDIF -->

У меня, например, сделано так:

<!-- 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>
  {PHP.p|cot_filesFileBox('forums', $this)}
</div>
<hr>
<div class="uk-grid-small uk-child-width-expand@s uk-text-center" uk-grid>
  <div>
    {FORUMS_EDITPOST_PFS}
  </div>
  <div>
    {FORUMS_EDITPOST_SFS}
  </div>
</div>
<hr>
<!-- ENDIF -->

 

3. Список сообщений (постов) в какой-либо теме на форуме, - шаблон forums.posts.tpl

находим код:

<tr>
    <td class="{FORUMS_POSTS_ROW_ODDEVEN}">
        <p><!-- IF {FORUMS_POSTS_ROW_USER_AVATAR} -->{FORUMS_POSTS_ROW_USER_AVATAR}<!-- ELSE -->{PHP.R.forums_noavatar}<!-- ENDIF -->
        <p>{FORUMS_POSTS_ROW_USER_MAIN_GROUP_TITLE}</p>
    </td>
    <td class="{FORUMS_POSTS_ROW_ODDEVEN}">
        <div>
            {FORUMS_POSTS_ROW_TEXT}
        </div>
        <!-- IF {FORUMS_POSTS_ROW_UPDATEDBY} -->
        <div class="italic margintop10 grey">{FORUMS_POSTS_ROW_UPDATEDBY}</div>
        <!-- ENDIF -->
    </td>
</tr>


И так как, в исходниках, шаблон списка постов выполнен таблицей, то сразу после кода выше, вставляем код:
 

<!-- IF {PHP|cot_module_active('files')} -->

    <!-- в этой строке, согласно условию, - получаем файлы, кроме изображений -->
    <!-- IF {FORUMS_POSTS_ROW_ID|cot_filesCount('forums',$this,'','files')} > 0 -->
    <tr>
        <td><h3>{PHP.L.files_downloads}</h3></td>
        <td>{FORUMS_POSTS_ROW_ID|cot_filesDisplay('forums', $this)}</td>
    </tr>
    <!-- ENDIF -->
    
    <!-- в этой строке, согласно условию, - получаем только изображения -->
    <!-- IF {FORUMS_POSTS_ROW_ID|cot_filesCount('forums', $this, '', 'images')} > 0 -->
    <tr>
        <td>{PHP.L.Image}</td>
        <td>{FORUMS_POSTS_ROW_ID|cot_filesGallery('forums', $this)}</td>
    </tr>
    <!-- ENDIF -->
    
<!-- ENDIF -->

 

Но у меня в шаблоне forums.posts.tpl сделано так:

<!-- IF {PHP|cot_module_active('files')} -->
	<!-- IF {FORUMS_POSTS_ROW_ID|cot_filesCount('forums',$this,'','files')} > 0 -->
	<div class="uk-margin">
	<label class="uk-form-label"><h3>{PHP.L.files_downloads}</h3></label>
	<div class="uk-form-controls">
	  {FORUMS_POSTS_ROW_ID|cot_filesDisplay('forums',$this,'','files.downloads.forums_posts_files','files')}
	  <!-- я создал новый шаблон для списка файлов files.downloads.forums_posts_files.tpl и подключил его здесь -->
	</div>
	</div>
	<!-- ENDIF -->
	<!-- IF {FORUMS_POSTS_ROW_ID|cot_filesCount('forums', $this, '', 'images')} > 0 -->
	<div class="uk-margin">
	<label class="uk-form-label"><h3>{PHP.L.Image}</h3></label>
	<div class="uk-form-controls">
	  {FORUMS_POSTS_ROW_ID|cot_filesGallery('forums',$this,'','files.gallery.forums_posts_images')}
	  <!-- я создал новый шаблон для галлереи изображений files.gallery.forums_posts_images.tpl и подключил его здесь -->
	</div>
	</div>
	<!-- ENDIF -->
<!-- ENDIF -->

 

 

 

 

Отредактировано: webitproff (11.03.2025 11:26, 1 год назад)
🗿

🧙‍♂️ Радуйся, странниче добрый и честный! Не понапрасну привела тя стезя в земли сии. Зде бо мужи мудры и искусники дела писменнаго и численнаго, что куют словеса и плетут узоры кода, тайны разгадывают и знанием делятся, летописи множа и ремесло цифровое творя.
⬅️ Аще налево пойдеши — обрящеши грамоты древния, писания старинныя и свитки учения. ⬆️ Аще прямо — слово мудрое и совет от мужей разумеющих, что в деле кодописном искусны, получиши. ➡️ Аще направо — сам в писцы и летописцы внидеши, и в ремесло цифровое, где строки и знаки в дело живое обращаются, слово свое в память веков вложиши.
📝 Не медли же — нареки имя свое, и вниди в чин наш, и стань с нами в братстве, где код есть магия, а строки — заклятия живыя, числом и буквою слово едины суть.
🏰 Не тайно есть собрание сие, и не инициации в нем, но многое сокрыто от пришлых и ступалого, понеже не всякому открывается знание, но токмо ищущим и пребывающим в деле сем.