如何使用typoscript中的多个操作来运行小部件?

问题描述 投票:1回答:1

在为前端登录/注销/注册用户创建新的未缓存小部件时,我无法使其工作。如何从typoscript中调用两个不同的控制器(参见下面的代码)?

我使用的是TYPO3 9.5。知道如何创建一个很重要,因为我需要这些信息来创建许多其他用途的信息。我以前在TYPO3中创建了一个没有widget / controller / action的复杂登录系统。

ext_localconf.php,有;

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    VendorName.ExtensionName, 
    PluginName, 
    [
    'Frontend' => 'index',
    'Account' => 'index,login,logout,register'
], [
    'Account' => 'login,logout,register'
]);

在文件夹结构Classes/Controller下有类VendorName\ExtensionName\Controller\AccountController有;

class AccountController extends AbstractWidgetController {

    /**
     * @var array
     */
    protected $supportedRequestTypes = [
        Request::class,
        WidgetRequest::class
    ];


    public function initializeAction() {

    }

    public function indexAction() {

    }

    public function loginAction() {

        return $this->view->assign('raw', 'Hello World');
    }

    public function logoutAction() {

    }

    public function registerAction() {

    }


    /**
     * Handles a request. The result output is returned by altering the given response.
     *
     * @param \TYPO3\CMS\Extbase\Mvc\RequestInterface $request The request object
     * @param \TYPO3\CMS\Extbase\Mvc\ResponseInterface $response The response, modified by this handler
     *
     * @return void
     * @api
     */
    public function processRequest(RequestInterface $request, ResponseInterface $response) {

        #ActionController::processRequest($request, $response);
    }
}

并且在ts文件中有;

page = PAGE
page {
    ...

    10 = USER
    10 {
        ...

        userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
        vendorName = VendorName
        extensionName = ExtensionName
        pluginName = PluginName

    }
}

...

5 = USER_INT
5 {
    userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
    vendorName = VendorName
    extensionName = ExtensionName
    pluginName = PluginName
    controller = Account
    action = login
}

运行此代码时,PAGE ts使用前端控制器索引操作生成页面,该操作通过流体模板返回原始html。但是当我添加USER_INT部分时,TYPO3会耗尽内存并显示空白页面。

widget typo3 fluid extbase typo3-9.x
1个回答
2
投票

窗口小部件是流体模板中使用的一种ViewHelper。根据你的描述,我认为你想要一个插件。你的Controller类需要扩展TYPO3\CMS\Extbase\Mvc\Controller\ActionController,而不是TYPO3\CMS\Fluid\ViewHelpers\Widget\Controller\AbstractWidgetController

© www.soinside.com 2019 - 2024. All rights reserved.