Как настроить список категорий (расширение новостей TYPO3) с помощью TypoScript

#typo3 #typoscript #tx-news #typo3-10.x

#typo3 #typoscript #tx-новости #typo3-10.x

Вопрос:

У меня есть страница блога на одном из веб-сайтов, которая выполняется с помощью TypoScript, чтобы избежать наличия страницы списка и сведений.

Я вызвал TypoScript как объект : lib.newslist .

 plugin.tx_news.settings.list.paginate.itemsPerPage = 6
lib.news = USER_INT
lib.news {
    userFunc = TYPO3CMSExtbaseCoreBootstrap->run
    pluginName = Pi1
    vendorName = GeorgRinger
    extensionName = News
    controller = News
    settings < plugin.tx_news.settings
    settings {
          categories = 1
          #limit = 6
          detailPid = 6
          overrideFlexformSettingsIfEmpty := addToList(detailPid)
          startingpoint = 21
          hidePagination = 0
          categoryConjunction = or
    }
    persistence =< plugin.tx_news.persistence
    view =< plugin.tx_news.view
}

[(request.getQueryParams()['tx_news_pi1'])['news'] > 0 || (request.getParsedBody()['tx_news_pi1'])['news'] > 0]
    lib.newslist = COA
    lib.newslist {
        10 < lib.news
        10 {
            action = detail
            switchableControllerActions.News.1 = detail
            stdWrap.wrap = <section class="blog-section"><div class="container">|</div></section>
        }
        20 = RECORDS
        20 {
            source = 307
            dontCheckPid = 1
            tables = tt_content
        } 
    }
[else]
    lib.newslist < lib.news
    lib.newslist {
        action = list
        switchableControllerActions.News.1 = list
        stdWrap.wrap = <div class="section-heading mb-5"><h2>Blog</h2></div>|
    }
[end]

[else]
    lib.newslist = COA
    lib.newslist {
        action = list
        switchableControllerActions.News.1 = list
        stdWrap.wrap = <div class="section-heading mb-5"><h2>Blog</h2></div>|
    }
[end]  

Теперь мне нужно добавить к этому список категорий. Итак, я добавил следующий TypoScript:

 lib.categoryMenu = USER
lib.categoryMenu {
        userFunc = TYPO3CMSExtbaseCoreBootstrap->run
        extensionName = News
        pluginName = Pi1
        vendorName = GeorgRinger

        action = category
        switchableControllerActions {
                Category {
                        1 = list
                }
        }
           
        settings < plugin.tx_news.settings
        settings {
                listPid = 6
        }
}  

Проблема в том, что здесь нет страницы списка или страницы сведений, так что я дам вместо listPid = 6 (6 — страница, с которой я вызвал объекты TypoScript).

И, пожалуйста, предложите, есть ли какой-либо другой способ реализовать этот выбор категории без указания страницы списка.

Комментарии:

1. Я не понимаю, почему здесь используется listPid. Но ваш CObject вызывается со страницы. Так почему бы не установить listPid динамически на UID вызывающей страницы?

2. 6 — это PID этой вызывающей страницы. Это приведет к ошибке, поскольку отсутствует конфигурация для категорий