Маршрутизация TYPO3: действие со списком и деталями на той же странице - PullRequest
0 голосов
/ 06 февраля 2019

При доступе к странице сведений выдается исключение: The action "details" (controller "Products") is not allowed by this plugin.

Мой Enhancer Route выглядит следующим образом:

ProductsPlugin:
  type:              Extbase
  extension:         Myext
  plugin:            Products
  routes:
    -
      routePath:   '/{product_slug}'
      _controller: 'Products::details'
      _arguments:
        product_slug: productId
  defaultController: 'Products::list'
  defaults:
    productId: '0'
  aspects:
    product_slug:
      type: ProductsValueMapper

Плагин 1010 * встроен через TypoScript :

lib.productsContent = USER
lib.productsContent {
    userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
    extensionName = Myext
    pluginName = Products
    vendorName = Vendor

    switchableControllerActions {
        Products {
            1 = list
        }
    }
}

[request.getQueryParams()['tx_myext_products']['productId'] > 0]
    lib.productsContent.switchableControllerActions.Products.1 = details
[end]

Ссылки в Fluid-Template создаются:

<f:link.action class="button more" pageUid="38" action="details" arguments="{productId: '{product.product.id}'}">Mehr</f:link.action>

Я пыталсяпереключение между списком и деталями для _controller и defaultController.Я также попытался удалить одно или оба, но сгенерированные ссылки содержат GET-Params или Detailview создает сообщение об ошибке выше.

Может кто-нибудь подтолкнуть меня в правильном направлении?

Спасибо взаранее!

РЕДАКТИРОВАТЬ: Когда я удаляю _controller: 'Products::details', сообщение об ошибке исчезло, и мое действие подробности вызывается правильно.Но тогда ссылки на действие details содержат обычные GET-параметры.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Проблема заключалась в том, что плагин несколько раз вставлялся на одну и ту же страницу, что вызывает проблемы.

Чтобы решить эту проблему, вы можете создать разные плагины или установить plugin.tx_myext_products.mvc.callDefaultActionIfActionCantBeResolved = 1

См.https://wiki.typo3.org/Exception/CMS/1313855175

0 голосов
/ 06 февраля 2019

Можете ли вы проверить этот патч?https://review.typo3.org/c/59343/ У двух человек, включая меня, была такая же проблема.

...