sypets/cal2calendarize

将cal插件迁移到calendarize

安装: 785

依赖: 0

建议者: 0

安全: 0

星标: 2

关注者: 3

分支: 1

开放问题: 1

类型:typo3-cms-extension

v0.0.5 2021-05-29 12:16 UTC

This package is auto-updated.

Last update: 2024-08-30 01:23:33 UTC


README

从cal迁移插件到calendarize。

!!! 重要:cal事件和类别关系已在calendarize升级向导中处理。本扩展处理向导未处理的一些事情,例如插件迁移。

!!! 警告:这是插件迁移的初步尝试,它大大简化了迁移过程,并未考虑所有配置选项。插件迁移不可逆。使用时请自担风险。在生产环境中使用前请测试。请备份。

提示:有一个名为“cal2calendarize”的后端模块,可以在迁移后列出和可视化存在问题的迁移插件。目前,仅列出了几个问题,例如缺少detailPid和缺少storagePid。查看扩展配置以获取选项。

已知问题

  • 仅考虑flexform(以及tt_content.pages和递归),不考虑flexform和TypoScript中的TypoScript。
  • 无法完全映射视图(switchableControllerActions)
  • cal有更多类别模式,而calendarize只有使用类别或不使用类别
  • 并非所有配置都考虑并迁移
  • 在cal中,可以选择“日历”。这被忽略。
  • 在cal中,类别可以在FlexFrom 标签“类别”中选择。对于迁移,我们忽略标签中设置的类别。我们只考虑flexform中选择的类别。

用法

要运行控制台命令,使用没有Composer的安装设置

php typo3/sysext/core/bin/typo3

或与Composer一起

php vendor/bin/typo3

通常,用法是

php vendor/bin/typo3 cal2calendarize:migrateCalPlugins [options] [uid]

选项和uid参数是可选的。

显示帮助

php vendor/bin/typo3 cal2calendarize:migrateCalPlugins -h

模拟运行:显示将要迁移的内容

php vendor/bin/typo3 cal2calendarize:migrateCalPlugins --dry-run

迁移所有(增加详细程度)

php vendor/bin/typo3 cal2calendarize:migrateCalPlugins -vvv

抑制确认(不要求确认)

php vendor/bin/typo3 cal2calendarize:migrateCalPlugins -n

迁移所有,详细,不确认(使用所有动作,描述见下文)

php vendor/bin/typo3 cal2calendarize:migrateCalPlugins -v -n --all-actions

仅迁移tt_content中的uid=13221的一个记录(例如用于测试)

php vendor/bin/typo3 cal2calendarize:migrateCalPlugins 13221

命令选项

--all-actions

这将尝试将所有现有的Controller操作迁移到calendarize中相应的Controller操作,而不仅仅是calendarize中定义的Controller操作组合。结果是可能会激活更多操作,但在编辑插件时您会看到警告,您应手动修复并将它们转换为现有的控制器操作。这是一个快速而粗略的解决方案,可能直接在迁移后减少问题,但长远来看可能会产生更多问题。

映射

在这里我们不使用配置设置的完整名称。

  • TS:TypoScript
  • flex:Flexform

allowedViews的映射

在cal中,可以组合任何允许的视图。在calendarize中,我们有一组定义的可切换控制器操作(例如“list”,“detail”,“list+detail”,但不能是“month+detail”)。

对于list、detail和list+detail,我们得到精确匹配。对于年、月等,没有与detail结合的视图。建议为detail视图创建单独的页面。

我们尽可能进行映射,请参阅源代码。有关选项,请参阅--all-actions。

类别模式的映射

在cal中,有几个类别模式

  • 类别模式=0(显示所有)
  • 类别模式=1(精确):精确匹配
  • 类别模式=2(无):显示不包含所选任何一个类别的所有事件
  • 类别模式=3(任意):显示至少包含一个所选类别的所有事件
  • 类别模式=4(最小):仅显示包含(至少)插件中所有所选类别的所有事件。

https://docs.typo3.org/typo3cms/extensions/cal/stable/_sources/ConfigureThePlugin/FiltersTab/Index.rst.txt

我们无法将其完全映射到calendarize:在calendarize中,只有一个类别模式。

模式0和3可以相当好地映射。对于其他模式,我们使用最合适的模式 - 要么使用现有的类别,要么不使用。

类别映射

cal中的类别可以在flexform和“类别”标签中定义。我们只考虑flexform。但现有的类别关系将保持不变。

由于类别模式(不完整)的映射以及cal中设置类别的方式,类别的行为可能与cal中的行为有很大不同。

起始时间/结束时间映射

起始时间

  • cal:flexform:view.list.starttime
  • cal:TypoScript:plugin.tx_cal_controller.view.list.event.starttime
  • calendarize
    • useRelativeDate=1:settings.overrideStartRelative
    • useRelativeDate=0:settings.overrideStartdate

这可以在cal的三个地方定义:在flexform view.list.starttime、在“TypoScript”标签中、在Flexform中或在TypoScript中。结束时间

  • cal:flexform:view.list.endtime
  • cal:TypoScript:plugin.tx_cal_controller.view.list.event.endtime
  • calendarize
    • useRelativeDate=1:settings.overrideEndRelative
    • useRelativeDate=0:settings.overrideEnddate

cal

view.list.starttime=2011-04-01
settings.overrideStartdate = 00:00 1-4-2011

cal配置

可以是以下之一

  • flexform
  • 在flexform中的TypoScript
  • TypoScript

我们目前只考虑flexform。

calendarize配置

可以是以下之一

  • flexform
  • 配置记录
  • TypoScript

示例

“旧”cal Flexform

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3FlexForms>
    <data>
        <sheet index="sDEF">
            <language index="lDEF">
                <field index="allowedViews">
                    <value index="vDEF">list,search_all,ics~icslist~single_ics,event</value>
                </field>
                <field index="calendarName">
                    <value index="vDEF">My Calendar</value>
                </field>
                <field index="subscription">
                    <value index="vDEF">0</value>
                </field>
                <field index="weekStartDay">
                    <value index="vDEF"></value>
                </field>
                <field index="calendarDistance">
                    <value index="vDEF">50</value>
                </field>
                <field index="subscribeWithCaptcha">
                    <value index="vDEF">0</value>
                </field>
            </language>
        </sheet>
        <sheet index="s_Cat">
            <language index="lDEF">
                <field index="calendarMode">
                    <value index="vDEF">0</value>
                </field>
                <field index="calendarSelection">
                    <value index="vDEF"></value>
                </field>
                <field index="categoryMode">
                    <value index="vDEF">3</value>
                </field>
                <field index="categorySelection">
                    <value index="vDEF">359</value>
                </field>
            </language>
        </sheet>
        <sheet index="s_Year_View">
            <language index="lDEF">
                <field index="yearViewPid">
                    <value index="vDEF"></value>
                </field>
            </language>
        </sheet>
        <sheet index="s_Month_View">
            <language index="lDEF">
                <field index="monthViewPid">
                    <value index="vDEF"></value>
                </field>
                <field index="monthShowListView">
                    <value index="vDEF">0</value>
                </field>
                <field index="monthMakeMiniCal">
                    <value index="vDEF">0</value>
                </field>
            </language>
        </sheet>
        <sheet index="s_Week_View">
            <language index="lDEF">
                <field index="weekViewPid">
                    <value index="vDEF"></value>
                </field>
            </language>
        </sheet>
        <sheet index="s_Day_View">
            <language index="lDEF">
                <field index="dayViewPid">
                    <value index="vDEF"></value>
                </field>
                <field index="dayStart">
                    <value index="vDEF">0700</value>
                </field>
                <field index="dayEnd">
                    <value index="vDEF">2300</value>
                </field>
                <field index="gridLength">
                    <value index="vDEF">15</value>
                </field>
            </language>
        </sheet>
        <sheet index="s_List_View">
            <language index="lDEF">
                <field index="listViewPid">
                    <value index="vDEF">53864</value>
                </field>
                <field index="starttime">
                    <value index="vDEF">cal:weekstart</value>
                </field>
                <field index="endtime">
                    <value index="vDEF">+1 year</value>
                </field>
                <field index="maxEvents">
                    <value index="vDEF"></value>
                </field>
                <field index="maxRecurringEvents">
                    <value index="vDEF"></value>
                </field>
                <field index="usePageBrowser">
                    <value index="vDEF"></value>
                </field>
                <field index="recordsPerPage">
                    <value index="vDEF"></value>
                </field>
                <field index="pagesCount">
                    <value index="vDEF"></value>
                </field>
            </language>
        </sheet>
        <sheet index="s_Event_View">
            <language index="lDEF">
                <field index="eventViewPid">
                    <value index="vDEF">61579</value>
                </field>
                <field index="isPreview">
                    <value index="vDEF">1</value>
                </field>
            </language>
        </sheet>
        <sheet index="s_Ics_View">
            <language index="lDEF">
                <field index="showIcsLinks">
                    <value index="vDEF">0</value>
                </field>
            </language>
        </sheet>
        <sheet index="s_Other_View">
            <language index="lDEF">
                <field index="showSearch">
                    <value index="vDEF">0</value>
                </field>
                <field index="showJumps">
                    <value index="vDEF">0</value>
                </field>
                <field index="showCalendarSelection">
                    <value index="vDEF">0</value>
                </field>
                <field index="showCategorySelection">
                    <value index="vDEF">1</value>
                </field>
                <field index="showTomorrowEvents">
                    <value index="vDEF">0</value>
                </field>
                <field index="showLogin">
                    <value index="vDEF">0</value>
                </field>
            </language>
        </sheet>
        <sheet index="s_TS_View">
            <language index="lDEF">
                <field index="myTS">
                    <value index="vDEF"></value>
                </field>
            </language>
        </sheet>
    </data>
</T3FlexForms>

calendarize Flexform

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3FlexForms>
 <data>
     <sheet index="main">
         <language index="lDEF">
             <field index="settings.pluginConfiguration">
                 <value index="vDEF"></value>
             </field>
             <field index="settings.useRelativeDate">
                 <value index="vDEF">0</value>
             </field>
             <field index="settings.limit">
                 <value index="vDEF"></value>
             </field>
             <field index="settings.hidePagination">
                 <value index="vDEF">0</value>
             </field>
             <field index="settings.overrideStartdate">
                 <value index="vDEF"></value>
             </field>
             <field index="settings.overrideEnddate">
                 <value index="vDEF"></value>
             </field>
             <field index="switchableControllerActions">
                 <value index="vDEF">Calendar-&gt;list;Calendar-&gt;detail</value>
             </field>
             <field index="settings.overrideStartRelative">
                 <value index="vDEF"></value>
             </field>
             <field index="settings.overrideEndRelative">
                 <value index="vDEF"></value>
             </field>
         </language>
     </sheet>
     <sheet index="general">
         <language index="lDEF">
             <field index="settings.configuration">
                 <value index="vDEF">Event</value>
             </field>
             <field index="settings.sortBy">
                 <value index="vDEF">start</value>
             </field>
             <field index="settings.sorting">
                 <value index="vDEF">ASC</value>
             </field>
             <field index="persistence.storagePid">
                 <value index="vDEF"></value>
             </field>
             <field index="persistence.recursive">
                 <value index="vDEF"></value>
             </field>
         </language>
     </sheet>
     <sheet index="pages">
         <language index="lDEF">
             <field index="settings.detailPid">
                 <value index="vDEF"></value>
             </field>
             <field index="settings.listPid">
                 <value index="vDEF"></value>
             </field>
             <field index="settings.yearPid">
                 <value index="vDEF"></value>
             </field>
             <field index="settings.quarterPid">
                 <value index="vDEF"></value>
             </field>
             <field index="settings.monthPid">
                 <value index="vDEF"></value>
             </field>
             <field index="settings.weekPid">
                 <value index="vDEF"></value>
             </field>
             <field index="settings.dayPid">
                 <value index="vDEF"></value>
             </field>
             <field index="settings.bookingPid">
                 <value index="vDEF"></value>
             </field>
         </language>
     </sheet>
 </data>
</T3FlexForms>