Download the PHP package oliverthiele/ot-irrebuttons without Composer

On this page you can find all versions of the php package oliverthiele/ot-irrebuttons. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package ot-irrebuttons

IRRE Buttons — Adds manageable buttons to TYPO3 content elements

Extends tt_content with IRRE-managed button records — buttons are configured directly in the backend without touching the RTE.

TYPO3 Packagist Version PHP

Features

Requirements

Dependency Version
TYPO3 ^14.3
PHP >=8.4

Installation

Configuration

Extension Settings

Open Admin Tools → Settings → Extension Configuration → ot_irrebuttons.

Setting Description
CTypes with IRRE Buttons Comma-separated list of CTypes that show the buttons
Icons Comma-separated list of icon identifiers offered in the Icon field (not used when ot_iconselector is installed — see Icon Selector below)
Path to directory with icons Directory holding the SVG files for the backend preview of the above identifiers, e.g. EXT:my_sitepackage/Resources/Public/Icons/solid/
Lightbox link types Comma-separated list of lightbox/lightboxIframe options to offer (empty hides the field — see Lightbox link types below)

For each configured CType the corresponding Fluid template from EXT:fluid_styled_content must be overridden in your SitePackage. A ready-to-use example is included for CType text.

TypoScript / SiteSet

The extension ships a SiteSet (OtIrrebuttons). Include it as a dependency in your site's SiteSet configuration — no manual TypoScript include required.

The template path constant sitekit.frameworks.frontend.directory (default: Bootstrap5) is provided by the SiteSet. Change the value in your site configuration if your project uses a different frontend framework directory.

The legacy constant projectSettings.framework.directory is still evaluated for backwards compatibility with installations that do not use SiteSets.

Lightbox link types (Ajax / iFrame)

The link_type field's lightbox and lightboxIframe options open the linked target in a Fancybox lightbox instead of navigating to it:

link_type t3://page?uid=... (internal) http(s)://... (external) file / mailto: / tel:
lightbox Ajax iFrame plain link (no lightbox)
lightboxIframe iFrame iFrame plain link (no lightbox)

Prefer Ajax for internal pages. An iFrame is a separate browsing context — the surrounding page cannot read its content height, so the iFrame needs the fixed height: 80vh from the SCSS below and keeps that height even when the content only fills a fraction of it. Ajax content is injected into the parent document, where max-height: 80vh lets the lightbox shrink to the actual content height. Use lightboxIframe only when the target page needs its own CSS/JS that the Ajax route does not load.

Both options depend on infrastructure the extension does not provide — set this up once per site before enabling lightboxTypes (see Extension Settings):

  1. Route enhancer — map two page-type suffixes in your site's config/sites/{site}/config.yaml:

    The typeNum values are free to choose as long as they don't collide with existing ones — just keep them consistent with the PAGE objects below.

  2. TypoScript PAGE objects — in your SitePackage (EXT:my_sitepackage), define one PAGE object per typeNum that renders the requested page's colPos=0 content in isolation:

    Keep linkVars := removeFromList(type) on both objects. Without it, every link generated from inside the lightbox content (e.g. a normal editorial link in a privacy-policy text) would inherit the current typeNum and silently open as another bare Ajax/content-only fragment instead of a normal page.

  3. Fluid templates — Iframe outputs {content0}. Ajax must not include a surrounding <html>/<head>/<body> (its output is injected into an existing page via Ajax, not loaded as a standalone document) and must wrap {content0} in <div class="lightbox-ajax-scroll">…</div> — the scroll-height cap in the SCSS below targets that wrapper.

    In both templates, wrap {content0} in a container — Bootstrap rows carry negative side margins (-.5 * $gutter-x) that are meant to be absorbed by a container's padding. Without one, every row overflows its parent by that amount and the lightbox shows a spurious horizontal scrollbar:

    Use container instead of container-fluid if the lightbox content should follow the same max-widths as a regular page.

  4. Frontend JS — bind Fancybox once for [data-fancybox], e.g.:

  5. SCSS — Fancybox v6 does not cap the popup size on its own; without this it fills the full viewport instead of reading as a lightbox (assumes Bootstrap 5, for $container-max-widths / media-breakpoint-up):

If this setup is not in place, leave lightboxTypes empty — the link_type field is then omitted from the editing form entirely.

Icon Partial

The shipped partial Partials/Icon.html receives the stored identifier as {iconIdentifier} and renders it as a Bootstrap Icons element:

This is a placeholder — override it in your SitePackage to match your icon set (FontAwesome, an SVG sprite, the ot_icons ViewHelper, …). The extension registers its own partial path at index 15, so any higher index wins:

Your override must provide a Main section, since the partial is rendered with <f:render partial="Icon" section="Main" arguments="{iconIdentifier: ...}"/>. Using ot_icons, for example:

Icon Selector (optional)

Without further dependencies the Icon field is a select box filled from the Icons extension setting (see Extension Settings), with the backend preview icons taken from Path to directory with icons.

If oliverthiele/ot-iconselector is installed, the field is rendered as a visual selector instead: search with live SVG preview across the whole icon directory configured in the site setting otIcons.iconDirectory. The Icons and Path to directory with icons extension settings are then no longer used for this field — every icon of the directory becomes selectable.

Frequently used button icons can be pre-selected for editors via the site setting otIconselector.favorites.buttons (comma-separated list of icon identifiers). If it is empty, otIconselector.favorites.default is used:

Stored values are plain icon identifiers in both cases, so the Icon partial and existing records work unchanged.

Requires a resolvable icon directory. If otIcons.iconDirectory is empty or points to a directory that does not exist, the selector could never return a result — the Icon and Icon Position fields are therefore hidden instead of showing a widget that stays empty. Set the site setting (normally provided by ot_icons) to make them reappear:

The directory is expected to hold one subdirectory per icon style (solid/, regular/, …, plus an optional brands/), matching what the selector searches.

Usage

Add the following snippet to any Fluid template where buttons should appear:

The variable irreButtons is populated automatically by the included DataProcessor for every CType listed in the extension settings.

License / Author

GPL-2.0-or-later © Oliver Thiele


All versions of ot-irrebuttons with dependencies

PHP Build Version
Package Version
Requires php Version >=8.4
typo3/cms-core Version ^14.3
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package oliverthiele/ot-irrebuttons contains the following files

Loading the files please wait ...