mediaessenz / fullcalendar
Fullcalendar implementation for TYPO3 CMS
Package info
gitlab.com/mediaessenz/fullcalendar
Type:typo3-cms-extension
pkg:composer/mediaessenz/fullcalendar
Requires
- php: ^8.2
- typo3/cms-core: ^13 || ^14
Requires (Dev)
- phpunit/phpunit: ^11.2 || ^12.1
- typo3/testing-framework: ^9.7
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Shows events of Google calendars, iCal feeds and EXT:calendarize in a skinnable calendar with month, week, day and list views. Based on FullCalendar 6, Vue 3 and Bootstrap 5.
- Event sources: Google calendar feeds, iCal feeds, EXT:calendarize
- Category filter for visitors, colors per category
- Restriction of feeds and categories to frontend user groups
- Event modal with iCal download
Installation
composer require mediaessenz/fullcalendar
Then add the Site Set mediaessenz/fullcalendar to your site (or include the static TypoScript template "Fullcalendar")
and add the plugin "Fullcalendar" to a page.
Documentation
The documentation is in Documentation/. Render it locally with
docker run --rm -v "$(pwd)":/project ghcr.io/typo3-documentation/render-guides:latest --config=Documentation
Translations
The source language is English (Resources/Private/Language/*.xlf). Translations are managed with Crowdin
(crowdin.yml) and are stored as <language>.<file>.xlf next to the source files. The German files (de.*) are
maintained in the repository.
Development
The frontend sources are in Resources/Private/TypeScript and are built into Resources/Public:
npm install
npm run build
npm test
Running the tests
The unit tests live in Tests/Unit and use the TYPO3 testing framework. The development dependencies are installed
into .Build (ignored by git):
composer install
composer test:unit
In a DDEV project the commands can be executed in the extension directory:
ddev exec -d /var/www/html/vendor/mediaessenz/fullcalendar composer install
ddev exec -d /var/www/html/vendor/mediaessenz/fullcalendar composer test:unit
Releasing
A release is published to the TYPO3 Extension Repository (TER) by the GitLab CI (.gitlab-ci.yml).
- Raise the version in
ext_emconf.phpand incomposer.json(extra.typo3/cms.version). - Add the changelog file
Documentation/ChangeLog/<major>-<minor>-<patch>.rst(listed inDocumentation/ChangeLog/Index.rst). - Commit, create an annotated tag and push it. The tag message is used as upload comment in the TER:
git tag -a v5.0.1 -m "Bugfixes" git push origin v5.0.1 - The pipeline of the tag runs the tests and the job
release-checks(version of the tag equalsext_emconf.phpandcomposer.json, changelog entry exists), thenter-packagebuildsfullcalendar_<version>.zip: the tag without the files listed in.gitattributes(e.g.Tests/,Build/). The package is available as job artifact. - Check the package, then start the manual job
ter-publish. A version published to the TER can't be changed or deleted. After the upload the jobgitlab-releasecreates the GitLab release of the tag.
Required setup in GitLab: the CI/CD variable TYPO3_API_TOKEN (a TER access token, see
typo3/tailor, flags masked and protected) and the protected tags v*.
The package can be built locally with sh Build/ci/build-ter-package.sh v5.0.1 /tmp (needs a committed tag).