Forums / National / Russian / Тех. поддержка / Больная тема hook

Kort
#47443 2023-11-23 16:23

В самом простом варианте это можно сделать, например, через плагин Pagelist:

  1. Создаем страничное экстраполе для указания ID страницы, с которой будем брать информацию (например, page_getpagedata).В шаблон page.tpl добавляем следующую конструкцию:
    <!-- IF {PAGE_GETPAGEDATA} -->
       {PAGE_GETPAGEDATA|sedby_pagelist('pagelist.getpagedata', 1, '', 'page_id = $this')}
    <!-- ENDIF -->
  2. В папке plugins/pagelist темы создаем файл pagelist.getpagedata.tpl:
    <!-- BEGIN: MAIN -->
    <!-- BEGIN: PAGE_ROW -->
       <div>
          {PAGE_ROW_TEXT}
       </div>
    <!-- END: PAGE_ROW -->
    <!-- END: MAIN -->
  3. В файл page.edit.tpl добавляем TPL-теги для правки нашего экстраполя:
    <tr>
      <td>
        {PAGEEDIT_FORM_GETPAGEDATA_TITLE}
      </td>
      <td>
        {PAGEEDIT_FORM_GETPAGEDATA}
      </td>
    </tr>

Теперь, если при правке страницы указать id страницы-донора, то конструкция из п. 1 выведет в соответствующем месте текст страницы-донора.

Естественно, в шаблоне pagelist.getpagedata.tpl можно использовать любое поле или экстраполе.

Если хочется в header.tpl / footer.tpl, то логика будет такая:

<!-- IF {PHP.pag.page_getpagedata} -->
  {PHP.pag.page_getpagedata|sedby_pagelist('pagelist.getpagedata', 1, '', 'page_id = $this')}
<!-- ENDIF -->

Если надо вообще отвязаться от текущей страницы и глобально вставлять страничное поле/экстраполе, тогда так:

{PHP|sedby_pagelist('pagelist.getpagedata', 1, '', 'page_id = 11')}

Пункты 1 и 3 в этом случае не нужны, вместо 11 указать id страницы-донора, а условие (если необходимо) придумать свое.

SED.by - создание сайтов, разработка плагинов и тем для Котонти
This post was edited by Kort (2023-11-23 16:57, 5 months ago)