BACK TO DIRECTORY

Fabriel Team Manager

by fabrielsoftware

0.0
(0 ratings)

Enter once instead of searching every year.

Every team page on a club website contains a fussball.de widget whose ID is a 36-character string. These IDs change with every season – separately for each team, and for the fixture list and the league table. With twelve teams that is more than twenty IDs that someone has to type in by hand once a year and enter into twenty different pages. Usually as a volunteer, usually in the evening, and a transposed digit often only becomes apparent weeks later.

Fabriel Team Manager ends that. All teams, all widget IDs and all time periods are stored in one central place. What is stored there applies across the entire website.

The five most important benefits

1. One place instead of twenty pages. Teams, IDs and time periods are maintained centrally in one place. Two Gutenberg blocks fetch the right data on their own.

2. The season change is prepared, not experienced. New IDs are entered with a start date – weeks in advance and at a calm pace. On the effective date the website switches over by itself. No one has to sit at the computer in the middle of the night.

3. Typos are prevented, not just noticed. Every ID is checked against the valid format before it is saved. Using the “Test” button you can view each widget directly in the backend at desktop, tablet and smartphone width.

4. Routine work becomes added value. Because old time periods are kept, a season archive is created automatically in the frontend: visitors choose above the table between the current season, the previous season or the first half of the season – without any extra maintenance step.

5. Blocks that you configure once and never touch again. Once a team is assigned to a page, the block automatically recognizes which page it is on. The same block configuration works on all team pages.

Features

Team management

  • Unlimited number of teams, ordering via drag & drop
  • Live search across all teams
  • Assignment of a WordPress page per team
  • Protection against losing unsaved changes

Time period control

  • Unlimited number of time periods per team, e.g. season, first or second half
  • Separate IDs for fixture list and league table per time period
  • Switching between team and club fixture list
  • Automatic activation based on date
  • Warning for overlapping or missing end dates with color highlighting
  • If nothing is set for today, the last valid time period is shown with a subtle notice – the page is never empty

Two Gutenberg blocks

  • Fixture list & league table: fixed team or automatic detection, switching between fixture list and league table, selectable start time period, freely configurable colors
  • League table overview (Grid): all current league tables as a grid in one, two or three columns. Teams in the same league are automatically combined into one card instead of being shown twice
  • Link to the team page directly in the card title
  • Uniform card heights in the grid, responsive down to smartphone

Control, data protection and security

  • Widget preview with device simulation directly in the backend
  • Complete JSON backup with one click
  • Restore either additively or replacing, with one-time undo
  • Optional two-click solution: external content is loaded only after confirmation by the visitor
  • Integration with consent-management plugins via a documented interface
  • Optional credit notice below each card, switched off by default – no link to us appears on your website unless you explicitly enable it
  • Clean uninstallation

Our commitments

  • No account, no registration, no activation
  • The plugin itself does not transmit any data to us
  • Its own scripts and styles are loaded only on pages that contain a block
  • Fully translatable

Who is this for?

For football clubs with more than two teams that maintain their website themselves. The benefit grows with each team. Also for agencies and web maintainers who support several clubs.

Help in the plugin

Under “Fabriel Software > Settings” you will find the “Manual & field reference” section. Every input field is explained there: what to enter, what interactions exist and where the setting has an effect in the block editor and in the frontend.

Trademark notice

This plugin is an independent product. It is not affiliated with, endorsed or sponsored by the German Football Association (DFB) or the operators of fussball.de. Trademarks and product names mentioned are the property of their respective owners and are used solely to describe technical compatibility.

External services

This plugin embeds fixtures and league tables from the external service fussball.de. Without this service the plugin cannot display match data.

When is data transferred?

  • In the frontend, as soon as a page containing one of the plugin’s blocks is loaded and a widget ID is configured.
  • In the backend, when a widget ID is opened in the preview via the “Test” button.

What data is transferred?

  • The visitor’s IP address
  • The browser’s user agent and technical connection data
  • The widget ID and widget type configured in the plugin

The script https://www.fussball.de/widgets.js is loaded, along with the view embedded by that script under https://next.fussball.de/.

Service provider: DFB GmbH & Co. KG, fussball.de – https://www.fussball.de/
Terms of use: https://www.fussball.de/terms-of-use.action
Privacy policy: https://www.fussball.de/privacy-policy.action

Website operators are responsible for describing the use of this service in their privacy policy. With the “Enable two-click solution” setting, external content is only loaded after explicit confirmation by the visitor. In addition, loading can be fully prevented via the fs_tm_load_remote_widgets filter and thus coupled to a consent-management plugin.

Source code & development

This plugin contains no obfuscated, minified-only or otherwise unreadable code. Every compiled file in build/ has its human-readable counterpart bundled in src/, and both are shipped in the distributed package:

  • build/admin.js and build/admin.css src/admin/admin.js, src/admin/admin.scss
  • build/frontend.js and build/frontend.css src/frontend/frontend.js, src/frontend/frontend.scss
  • build/blocks/fussball-widget/index.js src/blocks/fussball-widget/index.js, edit.js, block.json
  • build/blocks/tables-overview/index.js src/blocks/tables-overview/index.js, edit.js, block.json

Every generated JavaScript file carries a header comment naming the source file it was compiled from and the public repository.

Public source repository (source code, build tools and full history):
https://github.com/gaboofry/fs-team-manager

Clone it with: git clone https://github.com/gaboofry/fs-team-manager.git

Build tools & steps to regenerate the compiled files

The build tooling is bundled with the plugin: package.json, package-lock.json and webpack.config.js.

  1. Install the exact build dependencies: npm ci (or npm install)
  2. Compile JavaScript, SCSS and block assets into build/: npm run build
  3. Optional: rebuild the translation template with WP-CLI: wp i18n make-pot . languages/fabriel-team-manager.pot --slug=fabriel-team-manager --domain=fabriel-team-manager --exclude=node_modules,vendor,src

The build is driven by @wordpress/scripts (webpack + Babel + Dart Sass); no other build system is required. The repository additionally contains the ready-made scripts build.sh (Linux/macOS) and build.ps1 (Windows), which run the full build and produce the distribution zip. Those scripts are not part of the shipped plugin; clone the repository to use them.

Directory assets (banner, screenshots)

The banner and screenshot images are not part of the plugin package. They live in .wordpress-org/ in the source repository and belong in the assets/ directory of the WordPress.org SVN repository, so they are never downloaded by users installing the plugin.

Third-party libraries

The plugin bundles no third-party JavaScript or PHP libraries. build/ contains only code compiled from src/ plus the webpack runtime of @wordpress/scripts (GPL-2.0-or-later, https://github.com/WordPress/gutenberg/tree/trunk/packages/scripts). All WordPress packages used by the blocks (wp.blocks, wp.blockEditor, wp.components, wp.i18n, wp.element) are loaded from WordPress itself as registered script dependencies and are not shipped with the plugin. The external https://www.fussball.de/widgets.js is loaded from the provider and is not part of this package (see “External services”).

Security

The public block filters fs_tm_widget_card_html, fs_tm_tables_overview_html, fs_tm_card_body_before and fs_tm_card_body_after are extension points for add-ons. Filter callbacks receive the fully escaped HTML and must return escaped HTML only. All dynamic values are escaped with esc_html(), esc_attr() or esc_url() before the filters run, and the value returned by the block render callbacks – including anything a filter added – passes through wp_kses() with the plugin’s own allow list (fs_tm_allowed_card_html) as the last line of defense. That list is wp_kses_allowed_html( 'post' ) extended by exactly the elements the cards need (template, select, option, optgroup, input), because wp_kses_post() would silently strip them.

Screenshots

Central management: Configure teams, define time periods, and maintain fixture and league table IDs.

Central management: Configure teams, define time periods, and maintain fixture and league table IDs.

Integrated Widget Inspector: Responsive live preview of fussball.de widgets across desktop, tablet, and mobile views.

Integrated Widget Inspector: Responsive live preview of fussball.de widgets across desktop, tablet, and mobile views.

Block Editor: Intuitive configuration of the "Fixture list & table" block with automatic page recognition.

Block Editor: Intuitive configuration of the "Fixture list & table" block with automatic page recognition.

Frontend presentation: Rendered league table with instant season archive via dropdown selection.

Frontend presentation: Rendered league table with instant season archive via dropdown selection.

GDPR two-click privacy shield: Integrated placeholder blocking external fussball.de iFrames until explicit visitor consent.

GDPR two-click privacy shield: Integrated placeholder blocking external fussball.de iFrames until explicit visitor consent.

Plugin Details

Active Installs
0
Total Downloads
31
Version
1.2.2
Requires WP
6.0
Requires PHP
7.4
Tested Up To
7.1
Added
2026-09-16
Last Updated
2026-09-16 4:31pm GMT

Ratings

5
0
4
0
3
0
2
0
1
0