You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TYPO3 13.4中自定义sf_event_mgt的EventController的icalAction被忽略问题求助

TYPO3 13.4中自定义sf_event_mgt的EventController的icalAction被忽略问题求助

大家好,我最近在给TYPO3 13.4的站点做功能,想加一个按钮让用户通过webcall://链接订阅活动日历,用type=9819来触发对应的功能。但现在遇到个麻烦:我自定义的icalAction完全被忽略了,TYPO3反而用了sf_event_mgt扩展自带的listAction。我用的是自己的站点包,希望能通过Fluid模板来控制输出。

先给大家看下我的文件夹结构:

/packages
└── studilife
    ├── Classes
    │   └── Controller
    │       └── EventController.php
    ├── Configuration
    │   └── Sets
    │       └── Studilife
    │           └── TyposScript
    │               └── setup.typoscript
    ├── Resources
    │   └── Private
    │       └── Extensions
    │           └── SfEventMgt
    │               └── Templates
    │                   └── Event
    │                       └── Ical.html
    └── ext_localconf.php

下面是我目前写的代码:

ext_localconf.php

$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'][\DERHANSEN\SfEventMgt\Controller\EventController::class] = [
    'className' => \Student\Studilife\Controller\EventController::class,
];

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    'SfEventMgt',
    'Event',
    [
        \DERHANSEN\SfEventMgt\Controller\EventController::class => 'list,detail,register,ical'
    ],
    []
);

setup.typoscript

plugin.tx_sfeventmgt {
    view {
        templateRootPaths {
            100 = EXT:studilife/Resources/Private/Extensions/SfEventMgt/Templates/
        }
        partialRootPaths {
            100 = EXT:studilife/Resources/Private/Extensions/SfEventMgt/Partials/
        }
        layoutRootPaths {
            100 = EXT:studilife/Resources/Private/Extensions/SfEventMgt/Layouts/
        }
    }
    settings {
        calendar{
            showWeekNumber = 0
        }
    }
}

pageEventICalendar = PAGE
pageEventICalendar {
    typeNum = 9819
    settings.format = txt
    config {
        disableAllHeaderCode = 1
        xhtml_cleaning = none
        admPanel = 0
        metaCharset = utf-8
        locale_all = en_EN
        additionalHeaders.10.header = Content-Type:text/calendar;charset=utf-8
        disablePrefixComment = 1
        linkVars >
    }
    10 = USER
    10 {
        userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
        extensionName = SfEventMgt
        pluginName = Event
        vendorName = DERHANSEN
        controller = Event
        action = ical
    }
}

EventController.php

<?php
namespace Student\Studilife\Controller;

class EventController extends \DERHANSEN\SfEventMgt\Controller\EventController {

    public function icalAction() {
        $events = $this->eventRepository->findAll();
        $this->view->assign('events', $events);
        $this->view->setFormat('txt');
        header('Content-Type: text/calendar; charset=utf-8');
        header('Content-Disposition: attachment; filename="events.ics"');
    }
}

我现在的核心问题就是想让TYPO3识别到我自定义的这个icalAction,目前TypoScript看起来是正常的,但我的EventController.php完全没起作用。这是我第一次尝试修改扩展的默认行为,估计是漏掉了某个基础的配置步骤。我也去查了TYPO3的官方文档关于Xclasses的部分,但还是没找到问题所在。

有没有大佬能帮我看看哪里错了呀?谢谢大家!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 13:14:34