TYPO3 8.7.x / Typoscript:扩展ajax调用,从特定页面上插入的插件获取设置

时间:2019-05-02 10:18:46

标签: javascript php typo3 typoscript extbase

我有一个扩展名,其中包含ajax调用的操作,该操作返回json字符串。在特定页面上还插入了一个插件供用户输入。该插件有一些设置(通过flexform),我想在ajax调用中获得这些设置,但是我不知道如何设置。

ajaxCall = PAGE
ajaxCall {
    typeNum = 1000
    config {
        disableAllHeaderCode = 1
        metaCharset = UTF-8
        no_cache = 1
        debug = 0
    }

    10 = USER
    10 {
        userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
        vendorName = Vendor
        pluginName = SomePlugin
        extensionName = SomeExtension
        controller = MyController
        action = ajax
        switchableControllerActions {
            MyController {
                1 = ajax
            }
        }
    }
}

3 个答案:

答案 0 :(得分:0)

我认为有两种方法可以解决您的问题:

  1. 将插件的uid(这是一个内容元素,由表tt_content中的记录表示)放在您对控制器的调用参数中,以便控制器可以读取该记录并获取数据。

  1. 代替对控制器的调用来显式呈现插件。
    根据插件存储页面的配置,您可能会呈现整个页面,整个列或仅呈现内容元素。 (使用您的打字稿中的CONTENT对象。)

答案 1 :(得分:0)

谢谢,我尝试了类似2的方法,但是我遇到了问题,我也得到了标题和换行符,这对于json输出是不切实际的

....
#page Type 1000
10 = CONTENT
10 {
    table = tt_content
    select {
        where = list_type="someextension_someplugin"
    }
...

答案 2 :(得分:0)

这是https://extensions.typo3.org/extension/typoscript_rendering/的完美用例,使用提供的视图帮助器创建要通过Ajax调用的动作的链接,并且动作将完全按预期呈现(包括受尊重的flexform内容)。