Показать названия категорий текущей страницы в TYPO3 8 - PullRequest
0 голосов
/ 30 декабря 2018

Я пытаюсь отобразить названия категорий текущей страницы в установке TYPO3 8.В TYPO3 7 он работал так (см. Ниже), однако теперь я получаю только случайный код ошибки и никакого вывода текста.Любые идеи?

lib.catclass = CONTENT
lib.catclass {

wrap = <div class="categories">|</div>

table = sys_category
select {
  pidInList = 35 // UiD of your category_page
  join = sys_category_record_mm ON(sys_category_record_mm.uid_local=sys_category.uid)
  where = sys_category_record_mm.tablenames='pages'
  andWhere.dataWrap = sys_category_record_mm.uid_foreign = {TSFE:id}
}

renderObj = TEXT
renderObj.field = title
renderObj.wrap = <li class="category {field:title}">|</li>
renderObj.insertData = 1

}

Соответствующий вывод ошибки выглядит следующим образом:

    An exception occurred while executing 'SELECT * FROM `sys_category` INNER JOIN `sys_category_record_mm`
    `ON(sys_category_record_mm`.`uid_local=sys_category`.`uid)` ON WHERE 
    (`sys_category`.`pid` IN (35)) AND 
    (sys_category_record_mm.tablenames='pages') AND (`sys_category`.`sys_language_uid` IN (0, -1)) AND 
((`sys_category`.`deleted` = 0) AND (`sys_category`.`t3ver_state` <= 0) AND (`sys_category`.`pid` <> -1) AND (`sys_category`.`hidden` = 0) AND (`sys_category`.`starttime` <= 1546204860) AND
 ((`sys_category`.`endtime` = 0) OR (`sys_category`.`endtime` > 1546204860)))': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version 
for the right syntax to use near '.`uid_local=sys_category`.`uid)` ON WHERE (`sys_category`.`pid` IN (35)) AND (s' at line 1

1 Ответ

0 голосов
/ 31 декабря 2018

Попробуйте добавить пробел после ON, поэтому:

join = sys_category_record_mm ON (sys_category_record_mm.uid_local=sys_category.uid)

Кроме того, andWhere устарело с TYPO3 7.1 и удалено в 8. Вы должны добавить это к whereи используйте markers, чтобы добавить идентификатор страницы.От макушки моей головы, это было бы так:

lib.catclass = CONTENT
lib.catclass {
  wrap = <div class="categories">|</div>

  table = sys_category
  select {
    pidInList = 35 // UiD of your category_page
    join = sys_category_record_mm ON (sys_category_record_mm.uid_local=sys_category.uid)
    where = sys_category_record_mm.tablenames='pages' AND sys_category_record_mm.uid_foreign = ###pageuid###
    markers {
      pageuid.data = TSFE:id
    }
  }

  renderObj = TEXT
  renderObj.field = title
  renderObj.wrap = <li class="category {field:title}">|</li>
  renderObj.insertData = 1
}

Подробнее о markers

см. https://docs.typo3.org/typo3cms/TyposcriptReference/8.7/Functions/Select/#markers
...