定制 andreaskastl/calendarize-address 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

andreaskastl/calendarize-address

Composer 安装命令:

composer require andreaskastl/calendarize-address

包简介

Extends EXT:calendarize events with location and organizer records based on EXT:tt_address records and provides corresponding location and organizer views.

README 文档

README

Introduction

  • Extends Typo3 Calendar extension calendarize with location and organizer records based on popular Typo3 Address extension tt_address
  • Includes adapted event detail view for calendarize extension
  • Provides new location view with address details and related events. Optionally a Google Maps visualisation of the location is possible.
  • Provides new organizer view with address details and related events

Administration

Prerequisites

The following prerequisites must be fulfilled to use calendarize_address extension

  1. calendarize extension is installed, see https://extensions.typo3.org/extension/calendarize/
  2. tt_address extension is installed, see https://extensions.typo3.org/extension/tt_address/
  3. optionally: get an API key from Google, if Google Maps visualisation should be used, see https://developers.google.com/maps/documentation/javascript/get-api-key

Installation

The extension needs to be installed as any other extension of TYPO3 CMS. Get the extension

  1. Install extension via composer command: Go to your folder where the root composer.json file is located. Type: composer req andreaskastl/calendarize-address to get the latest version that runs on your TYPO3 version.
  2. Get it from the Extension Manager: Press the Retrieve/Update button and search for the extension key calendarize_address and import the extension from the repository.
  3. Get it from typo3.org: You can always get current version from https://extensions.typo3.org/extension/calendarize_address/ by downloading either the t3x or zip version. Upload the file afterwards in the Extension Manager.

The extension ships some TypoScript code which needs to be included.

  1. Switch to the root page of your site.
  2. Switch to the Template module and select Info/Modify.
  3. Press the link Edit the whole template record and switch to the tab Includes.
  4. Select Calendarize - Address Extension at the field Include static (from extensions).

Users Manual

Creating Address Records

All existing address records can be reused in the events. To create new address records:

  1. Switch to the list view
    1. Create a new page with type Sysfolder or
    2. Select an existing page
  2. Click the “+” icon and select Address.
  3. Fill out all information you need and save.

Creating Event Records including Locations or Organizers

All existing event records can be extended with locations or organizers based on address records. To create a new event and reference locations or organizers:

  1. Switch to the list view
    1. Create a new page with type Sysfolder or
    2. Select an existing page
  2. Click the “+” icon and select "Event".
  3. To add an address record as location to the event, go to the field Location from Addresses and select one ore more address records
  4. To add an address record as organizer to the event, go to the field Organizer from Addresses and select one ore more address records
  5. Fill out other information you need and save.

Creating a Plugin Content Element

For location view and organizer view two separate pages with separate plugins are required - in addition to other pages for e.g. list and detail view. Recommended page structure and corresponding plugins / views:

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) Location View:

  1. Switch to the page view
    1. Create a new page for the location view or
    2. Select an existing page where you want to insert the location view
  2. Create a new content element and in the “new content element wizard” scroll down to the Calendarize Elements section and select "Calendarize - Location View"
  3. Switch to the Plugin tab, select "Calendarize location view" in the "Selected Plugin" field, configure the sysfolder where event records are stored and save.

(B) Organizer View:

  1. Switch to the page view
    1. Create a new page for the organizer view or
    2. Select an existing page where you want to insert the organizer view
  2. Create a new content element and in the “new content element wizard” scroll down to the Calendarize Elements section and select "Calendarize - Organizer View"
  3. Switch to the Plugin tab, configure the sysfolder where event records are stored and save.

Activation and Template Configuration To finally activate the links from event detail view to location and organizer view, please configure the page ids:

  1. Switch to the root page of your site.
  2. Switch to the Template module and select "Constant Editor".
  3. Select "Calendarize" in the field "Category".
  4. Fill in the page id of (A) in the field locationPid.
  5. Fill in the page id of (B) in the field organizerPid.
  6. Optionally: add your Google Maps API key to enable maps in location view.
  7. Save the template and go to the frontend to verify if event detail page, location view and organizer view are working as expected. When you click on a location or organizer entry in the event detail view, the location resp. organizer details are shown.

Configuration

Routing

If routing is required for location or organizer records, the following configuration will provide a good start for your configuration.

    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' 

Change Log

Please refer to the release documentation on https://github.com/andreaskastl/calendarize_address/releases

andreaskastl/calendarize-address 适用场景与选型建议

andreaskastl/calendarize-address 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 11.26k 次下载、GitHub Stars 达 1, 最近一次更新时间为 2021 年 01 月 31 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「event」 「address」 「calendar」 「typo3」 「Calendarize」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 andreaskastl/calendarize-address 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 andreaskastl/calendarize-address 我们能提供哪些服务?
定制开发 / 二次开发

基于 andreaskastl/calendarize-address 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 11.26k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 15
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 2
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-2.0-or-later
  • 更新时间: 2021-01-31