andreaskastl / calendarize-address
扩展EXT:calendarize事件,基于EXT:tt_address记录添加位置和组织者记录,并提供相应的位置和组织者视图。
5.0.0
2024-07-05 21:19 UTC
Requires
- php: ^8
- friendsoftypo3/tt-address: ^7 || ^8
- lochmueller/calendarize: ^12 || ^13
- typo3/cms-core: ^11.5 || ^12.4
Replaces
- typo3-ter/calendarize-address: 5.0.0
README
简介
- 扩展了 Typo3日历扩展
calendarize
,并基于流行的 Typo3地址扩展tt_address
添加位置和组织者记录。 - 包含适用于calendarize扩展的定制事件详情视图。
- 提供新的位置视图,包含地址详情和相关事件。可选地,可以通过Google Maps可视化位置。
- 提供新的组织者视图,包含地址详情和相关事件。
管理
先决条件
使用calendarize_address
扩展之前,必须满足以下先决条件:
calendarize
扩展已安装,请参阅https://extensions.typo3.org/extension/calendarize/tt_address
扩展已安装,请参阅https://extensions.typo3.org/extension/tt_address/- 可选:如果需要使用Google Maps可视化,请从Google获取API密钥,请参阅https://developers.google.com/maps/documentation/javascript/get-api-key
安装
此扩展需要像其他任何TYPO3 CMS扩展一样安装。获取扩展
- 通过composer命令安装扩展:前往包含根composer.json文件的文件夹。输入:
composer req andreaskastl/calendarize-address
以获取适用于您的TYPO3版本的最新版本。 - 从扩展管理器获取:按下检索/更新按钮,搜索扩展密钥
calendarize_address
,并从存储库导入扩展。 - 从typo3.org获取:您可以通过https://extensions.typo3.org/extension/calendarize_address/下载当前版本,无论是t3x还是zip版本。然后在扩展管理器中上传文件。
该扩展包含一些需要包含的TypoScript代码。
- 切换到您网站的根页面。
- 切换到模板模块并选择信息/修改。
- 按下链接编辑整个模板记录并切换到包含选项卡。
- 在包含静态(来自扩展)字段中选择Calendarize - Address Extension。
用户手册
创建地址记录
所有现有的地址记录都可以在事件中重复使用。要创建新的地址记录
- 切换到列表视图
- 创建一个新的类型为系统文件夹的页面
- 或
- 选择一个现有页面
- 点击“+”图标并选择地址。
创建包含位置或组织者的事件记录
所有现有的事件记录都可以根据地址记录扩展位置或组织者。要创建新事件并引用位置或组织者
- 切换到列表视图
- 创建一个新的类型为系统文件夹的页面
- 或
- 点击“+”图标并选择"事件"。
- 要将地址记录作为事件的位置添加,请转到字段位置来自地址并选择一个或多个地址记录
- 要将地址记录作为组织者添加到活动中,请转到字段“来自地址的组织者”并选择一个或多个地址记录
- 填写其他所需信息并保存。
创建插件内容元素
对于位置视图和组织者视图,需要两个独立的页面和独立的插件(除其他页面,如列表和详细视图)。推荐页面结构和相应的插件/视图
List (use normal Calendarize plugin with Calendar->list view)
-- Detail (use normal Calendarize plugin with Calendar->detail view)
-- Month (use normal Calendarize plugin with Calendar->month view)
-- Day (use normal Calendarize plugin with Calendar->day view)
-- ...
-- Location (use Calendarize Location view plugin (A))
-- Organizer (use Calendarize Organizer view plugin (B))
(A) 位置视图
- 切换到页面视图
- 创建一个新的位置视图页面或
- 选择一个现有页面以插入位置视图
- 创建一个新的内容元素,在“新建内容元素向导”中滚动到插件部分并选择"Calendarize - 位置视图"
- 切换到插件选项卡,在"所选插件"字段中选择"Calendarize 位置视图",配置存储事件记录的sysfolder并保存。
(B) 组织者视图
- 切换到页面视图
- 创建一个新的组织者视图页面或
- 选择一个现有页面以插入组织者视图
- 创建一个新的内容元素,在“新建内容元素向导”中滚动到插件部分并选择"Calendarize - 组织者视图"
- 切换到插件选项卡,配置存储事件记录的sysfolder并保存。
激活和模板配置为了最终激活从事件详细视图到位置和组织者视图的链接,请配置页面ID
- 切换到您网站的根页面。
- 切换到模板模块并选择"常量编辑器"。
- 在"分类"字段中选择"Calendarize"。
- 在locationPid字段中填写(A)的页面ID。
- 在organizerPid字段中填写(B)的页面ID。
- 可选:添加您的Google Maps API密钥以在位置视图中启用地图。
- 保存模板并转到前端以验证事件详细页面、位置视图和组织者视图是否按预期工作。当您在事件详细视图中单击位置或组织者条目时,将显示位置或组织者详情。
配置
路由
如果需要为位置或组织者记录进行路由,以下配置将为您的配置提供一个良好的起点。
CalendarizeLocation:
type: Extbase
extension: Calendarize
plugin: Location
limitToPages:
- 10 <= INSERT HERE ID OF PAGE A
routes:
- routePath: '/{location}'
_controller: 'Address::location'
- routePath: '/{location}/page/{currentPage}'
_controller: 'Address::location'
defaultController: 'Address::location'
aspects:
location:
type: PersistedAliasMapper
tableName: tt_address
routeFieldName: slug
currentPage:
type: StaticRangeMapper
start: '1'
end: '31'
CalendarizeOrganizer:
type: Extbase
extension: Calendarize
plugin: Organizer
limitToPages:
- 11 <= INSERT HERE ID OF PAGE B
routes:
- routePath: '/{organizer}'
_controller: 'Address::organizer'
- routePath: '/{organizer}/page/{currentPage}'
_controller: 'Address::organizer'
defaultController: 'Address::organizer'
aspects:
organizer:
type: PersistedAliasMapper
tableName: tt_address
routeFieldName: slug
currentPage:
type: StaticRangeMapper
start: '1'
end: '31'
变更日志
请参阅https://github.com/andreaskastl/calendarize_address/releases上的发布文档