Загрузка содержимого Typo3 OnePager с помощью Fluidtemplate - PullRequest
0 голосов
/ 06 января 2019

Я создаю сайт Typo3 OnePager с помощью этого сообщения в блоге . Он загружает все подстраницы корневой страницы в виде разделов в OnePager. Это работает как объяснено, но загружает контент только из tt_content, а не через Fluidtemplate. Я хочу, чтобы он загружался с Fuildtemplate, потому что у меня есть несколько разных шаблонов, которые можно выбрать в бэкэнде.

Таким образом, весь TS, который загружает контент и шаблон, выглядит следующим образом:

lib.sectionContent = HMENU
lib.sectionContent {
  1 = TMENU
  1 {
    NO = 1
    NO {
      doNotLinkIt = 1
      stdWrap >
      stdWrap {
        cObject = COA
        cObject {
          if.value = 4
          if.equals.field = doktype
          if.negate = 1
          10 < temp.titleSectionId
          10.wrap = <section id="|">
          20 = CONTENT
          20 < styles.content.get
          20 {
                table = tt_content
                select.where.field = column
                select.where.wrap = colPos = |
            }
          }
          30 = TEXT
          30 {
            wrap = </section>
          }
        }
      }
    }
  }
}

lib.mainTemplate = FLUIDTEMPLATE
lib.mainTemplate{

        templateName = TEXT
        templateName.stdWrap{
            cObject = TEXT
            cObject{
               data = levelfield:-2,backend_layout_next_level,slide
                override.field = backend_layout
                split {
                    token = pagets__
                    1.current = 1
                    1.wrap = |
            }
        }   
        ifEmpty = contentPage1column
    }

    templateRootPaths {
    10 = {$path.privat}Templates/Page/
    }
    layoutRootPaths {
        10 = {$path.privat}Layouts/Page/
    }
    partialRootPaths {
        10 = {$path.privat}Partials/Page/
    }

}

В шаблоне я загружаю контент с

<f:format.raw><f:cObject typoscriptObjectPath="lib.sectionContent" data="{column:0}" /></f:format.raw>

Но когда я пытаюсь загрузить FE, я получаю эту ошибку:

Возникла исключительная ситуация при выполнении операции SELECT * FROM tt_content WHERE (tt_content. pid IN (1)) И (colPos =) И (tt_content. sys_language_uid = 0) И ((tt_content. deleted = 0) И (tt_content. t3ver_state <= 0) И (<code>tt_content. pid <> -1) И (tt_content. hidden = 0) И ( tt_content. starttime <= 1546847160) И (((<code>tt_content. endtime = 0) ИЛИ (tt_content. endtime> 1546847160)) И (((* tt_content. fe_group = ' ') ИЛИ (tt_content. fe_group НУЛЬ) ИЛИ (tt_content. fe_group =' 0 ') ИЛИ (FIND_IN_SET (' 0 ', tt_content. fe_group)) ИЛИ (FIND_IN_SET (' -1 ', tt_content. fe_group))))) ORDER BY sorting ASC': в синтаксисе SQL имеется ошибка; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования рядом с ') И (tt_content. sys_language_uid = 0) И ((tt_content. deleted = 0) AN' в строке 1

Что я делаю не так?

Спасибо!

1 Ответ

0 голосов
/ 07 января 2019

как видите, в запросе нет значения для столбца:

[...] WHERE (tt_content.pid IN (1)) AND (colPos =) AND [...]
                                                 ^

и когда вы проверяете, где вы строите свой запрос:

lib.sectionContent = HMENU
lib.sectionContent {
  1 = TMENU
  1 {
    NO = 1
    NO {
      stdWrap {
        cObject = COA
        cObject {
          20 = CONTENT
          20 {
            select.where.field = column
            select.where.wrap = colPos = |
            :

вы можете видеть контекст TMENU. Там у вас есть pages запись в качестве текущих данных. А в pages нет поля column.

вы можете изменить lib.sectionContent на COA с первой записью для сохранения «параметра» column в регистре, который позже вы можете использовать как register:column

lib.sectionContent = COA
lib.sectionContent {
  10 = LOAD_REGISTER
  10 {
    column.cObject = TEXT
    column.cObject.field = column
  }
  20 = HMENU
  20 {
    :
          select.where.data = register:column
          select.where.wrap = colPos = |
    :
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...