Как отобразить окно поиска во всей боковой панели страницы внешнего интерфейса typo3

Мы разработали сайт с typo3 v8.7.11. Мы хотим отобразить окно поиска в разделе боковой панели, для этого мы установили расширение indexed_search. В

Как отобразить окно поиска во всех разделах боковой панели страницы веб-интерфейса?

6 ответов

Начиная с версии TYPO3 12, f:form Fluid ViewHelper больше не работает («ViewHelper f:form может использоваться только в контексте extbase и требует запроса, реализующего extbase RequestInterface.»). Решением является статическая форма с динамически генерируемым URL-адресом:

      <form method="post" action="{f:uri.page(pageUid:'123',additionalParams:'{tx_indexedsearch_pi2: {action:\'search\',controller:\'Search\'}}')}">
    <input type="text" name="tx_indexedsearch_pi2[search][sword]" value="">
    <input type="submit" value="Suchen" name="tx_indexedsearch_pi2[search][submitButton]">
</form>

Мой совет - создать объект TypoScript, который фактически включает в себя плагин, например:

lib.headerSearch = USER
lib.headerSearch {
    userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
    extensionName = IndexedSearch
    pluginName = Pi2
    vendorName = TYPO3\CMS
    switchableControllerActions {
        Search {
            1 = form
            2 = search
        }
    }
    features {
        requireCHashArgumentForActionArguments = 0
    }
    view < plugin.tx_indexedsearch.view
    view.partialRootPaths.10 = Path/To/Partial/
    view.templateRootPaths.10 = Path/To/Template/

    settings =< plugin.tx_indexedsearch.settings
}

Затем в свой шаблон включите его вот так

<f:cObject typoscriptObjectPath="lib.headerSearch" />

Обратите внимание, что вы должны создать новый шаблон "Search.html" в Path/To/Template/Search/ для этого TS-плагина, чтобы он не мешал работе обычного плагина. Также будьте осторожны, если вы включаете слот поиска на той же странице, что и сам плагин поиска.

У вас есть несколько вариантов:

  1. скопируйте HTML-код формы из поискового плагина в обычном контенте и вставьте его в свой шаблон страницы (html-).

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

  3. сделать специальную страницу невидимой в FE, где вы вставляете поисковый плагин и включаете этот специальный CE в рендеринг каждой страницы (используйте объект CONTENT в typoscript, чтобы выбрать этот специальный CE)

  4. включить и настроить плагин в typoscript. (см. ответ Томаса Леффлера)

Я предпочитаю вариант 2, так как он наиболее гибкий и не требует каких-либо специальных идентификаторов страниц или содержимого, которые могут изменяться со временем (вариант 3). Это также может обращаться с любым видом CE.
Вариант 1 требует ручного исправления, если, например, в обновлении плагина произошли изменения после обновления.
Вариант 4 не может наследоваться каждым плагином или CE. Если вы можете настроить плагин с Typoscript, это хороший вариант, потому что вам не нужна запись (из tt_content)

для варианта 2:

temp.inheritedContent = CONTENT
temp.inheritedContent {
    table = tt_content
    select.orderBy = sorting
    // -- use your own column id: --
    select.where = colPos = 100
    select.languageField = sys_language_uid
    slide = -1
}

Используйте расширение TYPO3, которое может быть копией (вилкой) недавно разработанной версии macina_searchbox

Модуль шаблона: добавьте "Macina Searchbox" в "Включить статические данные из расширений" . Используйте этот или аналогичный TypoScript, чтобы включить его, где "6" в этом примере - страница поиска. Вместо этого используйте свой собственный идентификатор страницы.

Константы:

lib.macina_searchbox {
   pidSearchpage = 6
}

Настроить:

10 = TEMPLATE
10.template = FILE
10.template.file = fileadmin/template/template.html
10.workOnSubpart = DOKUMENT
10.marks {
   SUCHE < lib.macina_searchbox
   LOGO = TEXT
   LOGO.value = <a href="/" title="Startseite"><img src="fileadmin/template/img/logo.png"></a>


 NAVI= HMENU
 NAVI {

Затем вы можете редактировать файлы шаблонов Fluid в папках ниже macina_searchbox/Resources/Private/, чтобы изменить вывод окна поиска. Этот способ необходим для того, чтобы список результатов поиска не отображался на странице. Вместо этого вы должны вставить плагин индексированного поиска на свою страницу поиска, у которого в этом примере id=6. ТАКОЕ - маркер в основном шаблоне сайта. Используйте свой собственный маркер.

Тем временем switchableControllerActions устарел.

Мой любимый: https://github.com/benjaminkott/bootstrap_package/wiki/Add-Indexed-Search-to-Navbar

Самый простой способ - скопировать данный плагин из indexed_search к переменной, которую вы используете в своем шаблоне.

Например, когда вы используете FLUIDTEMPLATE:

page.10 = FLUIDTEMPLATE
page.10.variable.searchBox < plugin.tx_indexedsearch

После этого вы можете назначить отдельный шаблон и внести другие изменения, изменив page.10.variable.searchBox с возможной конфигурацией здесь: https://docs.typo3.org/typo3cms/extensions/indexed_search/8.7/Configuration/Index.html

Другие вопросы по тегам