- Soundcloud audios can be created as a file in the TYPO3 file list
- Soundcloud audios can be used and output with the text with media element
- Update metadata via command
The recommended way to install the extension is using Composer.
Run the following command within your Composer based TYPO3 project:
composer require ayacoo/ayacoo-soundcloud
And as database fields are added, the DB Analyzer must also be run once.
With plugin.tx_ayacoosoundcloud.settings.privacy = 1
you can ensure that the IFrame is built with
data-src instead of src. If you need more options to influence the HTML, you can use a PSR-14 event.
For the output, the HTML is used directly from Soundcloud.
In order not to have to access the oEmbed interface permanently, four fields are added to the sys_file_metadata table
If you want to modify the output of the Soundcloud HTML, you can use the ModifySoundcloudOutputEvent
.
In your extension, extend Configuration/Services.yaml
once:
Vendor\ExtName\EventListener\SoundcloudOutputEventListener:
tags:
- name: event.listener
identifier: 'soundcloud/output'
event: Ayacoo\AyacooSoundcloud\Event\ModifySoundcloudOutputEvent
<?php
namespace Vendor\ExtName\EventListener;
use Ayacoo\AyacooSoundcloud\Event\ModifySoundcloudOutputEvent;
class SoundcloudOutputEventListener
{
public function __invoke(ModifySoundcloudOutputEvent $event): void
{
$output = $event->getOutput();
$output = str_replace('src', 'data-src', $output);
$event->setOutput($output);
}
}
In the backend, the preview is used by TextMediaRenderer. For online media, this only displays the provider's icon, in this case soundcloud. If you want to display the thumbnail, for example, you need your own renderer that overwrites Textmedia. An example renderer is available in the project. Caution: This overwrites all text media elements, so only use this renderer as a basis.
You register a renderer in the TCA Configuration/TCA/Overrides/tt_content.php
with $GLOBALS['TCA']['tt_content']['types']['textmedia']['previewRenderer'] = \Ayacoo\AyacooSoundcloud\Rendering\SoundcloudPreviewRenderer::class;
Documentation: https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/ContentElements/CustomBackendPreview.html
If CSP is activated in the backend, policies will be automatically added. To do this, the file Configuration/ContentSecurityPolicies.php is used.
If CSP is to be extended for the frontend, the configuration can be added in a site package extension or in the global csp.yml
Take a look at the current documentation: https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/ContentSecurityPolicy/Index.html
AyacooSoundcloud | TYPO3 | PHP | Support / Development |
---|---|---|---|
3.x | 13.x | 8.2 - 8.3 | features, bugfixes, security updates |
2.x | 12.x | 8.1 - 8.3 | bugfixes, security updates |
1.x | 11.x | 7.4 - 8.0 | bugfixes, security updates |
ayacoo_soundcloud uses semantic versioning, which means, that
- bugfix updates (e.g. 1.0.0 => 1.0.1) just includes small bugfixes or security relevant stuff without breaking changes,
- minor updates (e.g. 1.0.0 => 1.1.0) includes new features and smaller tasks without breaking changes,
- and major updates (e.g. 1.0.0 => 2.0.0) breaking changes which can be refactorings, features or bugfixes.
Pull Requests are gladly welcome! Nevertheless please don't forget to add an issue and connect it to your pull requests. This is very helpful to understand what kind of issue the PR is going to solve.
Bugfixes: Please describe what kind of bug your fix solve and give us feedback how to reproduce the issue. We're going to accept only bugfixes if we can reproduce the issue.
- Special thanks to Georg Ringer and his news extension. A good template to build a TYPO3 extension. Here, for example, the structure of README.md is used.
- Thanks also to b13 for the online-media-updater extension. Parts of it were allowed to be included in this extension.
If you are happy with the extension and would like to support it in any way, I would appreciate the support of social institutions.