TYPO3 4.7.2 включает плагин extbase через typoscript

Написал расширение и реализация Плагина через бэкенд все делает правильно.

Но когда я пытаюсь реализовать свое расширение через typoscript, я каждый раз получаю эту ошибку:

Упс, произошла ошибка!

Контроллер по умолчанию не может быть определен. Пожалуйста, проверьте Tx_Extbase_Utility_Extension::configurePlugin() в вашем ext_localconf.php.

и я не знаю, почему.. Я пробовал разные реализации (на tx_extbase_core_bootstrap->run или tx_extbase_dispatcher->dispatch и с дополнительной информацией и без), и текущий типоскрипт выглядит так:

plugin.tx_graphichmenu {
    settings {
        menuUid = 1
    }
}

lib.tx_graphichmenu = USER
lib.tx_graphichmenu {
    userFunc = tx_extbase_core_bootstrap->run
    extensionName = Graphichmenu
    pluginName = Graphicmenu
    controller = MenuController
    action = showAction
}

temp.mainTemplate.subparts.stickyfooter < lib.tx_graphichmenu

я все перепроверил дважды и трижды и не нашел ни одной ошибки... попробовал без части "действие" и "контроллер" и ничего не изменилось

моя часть configurePlugin в ext_localconf.php выглядит так:

Tx_Extbase_Utility_Extension::configurePlugin(
    $_EXTKEY,
    'Graphicmenu',
    array(
        'Menu' => 'show',
    ),
    // non-cacheable actions
    array(
        'Menu' => '',
    )
);

Действие "показать" не имеет параметров. там я загружаю настройки ts, откуда я беру Uid объекта для отображения

PS: после каждого изменения я очищал кеш и удалял файлы "temp_CACHED_..." в typo3conf


person Kai    schedule 05.09.2012    source источник


Ответы (1)


Вам нужно изменить свой бутстрап, есть общий синтаксис:

lib.foo = USER
lib.foo {
    userFunc = tx_extbase_core_bootstrap->run
    extensionName = YourExtension
    pluginName = YourPlugin
    vendorName = YourVendor
    switchableControllerActions {
        Standard {
            1 = action2
            2 = action3
        }
    }
}

Примечание. CamelCase в значении extensionName важен! (Спасибо Каю за подтверждение) поэтому, если extkey: kai_some_extension, он должен быть записан как KaiSomeExtension

Итак, в вашем случае это должно быть что-то вроде:

lib.foo = USER
lib.foo {
    userFunc = tx_extbase_core_bootstrap->run
    extensionName = GraphicHmenu
    pluginName = Graphicmenu
    switchableControllerActions {
        Menu {
            1 = show
        }
    }
}
person biesior    schedule 05.09.2012
comment
Может ли кто-нибудь направить меня к справочному материалу по этому вопросу? Что переключается с помощью переключаемых действий контроллера? Почему они организованы в виде массива массивов, когда кажется, что большинство людей используют только действие 1 =, чтобы заставить действие по умолчанию стать тем, которое им нужно? Итак, мой следующий вопрос: где я могу найти общий синтаксис (и его варианты), упомянутый здесь? - person norwebian; 21.11.2013
comment
Это типичный TypoScript, вы можете написать его и таким образом: switchableControllerActions.Menu.1 = show - person biesior; 21.11.2013
comment
Спасибо, @biesior, но позвольте мне перефразировать вопрос: где вы найдете общий синтаксис, на который вы ссылаетесь? Я понимаю, что это опечатка, но я не могу найти, так сказать, ExtBase TSref. Я создал новый вопрос, чтобы учесть мои исследования и выводы: Доступны справочные материалы по extbase"> stackoverflow.com/questions/20123037/ - person norwebian; 21.11.2013