Skip to content

Instantly share code, notes, and snippets.

View sorenmalling's full-sized avatar

Søren Malling sorenmalling

View GitHub Profile
services:
_defaults:
autowire: true
autoconfigure: true
public: false
BasisWeb\TagContentObject\:
resource: '../Classes/*'
BasisWeb\TagContentObject\ContentObject\TagContentObject:
tags:
@sorenmalling
sorenmalling / tsfe.php
Created October 8, 2024 08:05
tsfe.php
<?php
public function tsfe(ServerRequestInterface $request): TypoScriptFrontendController
{
/** @var Site $site */
$site = $request->getAttribute('site');
$language = $request->getAttribute('language') ?? $site->getDefaultLanguage();
$context = clone GeneralUtility::makeInstance(Context::class);
$languageAspect = LanguageAspectFactory::createFromSiteLanguage($language);
<?php
namespace UniversityOfCopenhagen\Mirror\Middleware;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\UriInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;
use TYPO3\CMS\Core\Cache\Frontend\FrontendInterface;
@sorenmalling
sorenmalling / Default.html
Created September 27, 2024 12:16
TYPO3 rendering with PAGEVIEW and page-content dataProcessing
<main>
<f:for each="{content.main.records}" as="record">
<f:cObject typoscriptObjectPath="{record.fullType}" data="{record}" />
</f:for>
</main>
<f:layout name="Default" />
<f:section name="Body">
<f:for each="{posts}" as="post">
<div class="post bg-white rounded-md shadow-sm mb-4 p-4 grid grid-cols-6 gap-4" id="post-{post.data.uid}">
<div>
<div class="flex items-center flex-col border p-4 rounded-lg">
<span class="text-2xl">
<f:format.date date="@{post.data.published_from}" format="d.m.Y" />
</span>
</div>
@sorenmalling
sorenmalling / ModifyDocumentSiteHash.php
Created February 20, 2024 12:24
Setting document sitehash based on the requested site
<?php
namespace Vendor\Solr\EventListener;
use ApacheSolrForTypo3\Solr\Event\Indexing\BeforeDocumentsAreIndexedEvent;
final class ModifyDocumentSiteHash
{
public function __invoke(BeforeDocumentsAreIndexedEvent $event): void
{
@sorenmalling
sorenmalling / Services.yaml
Created October 24, 2023 10:58
TYPO3 TAG ContentObject
services:
_defaults:
autowire: true
autoconfigure: true
public: false
TagContentObject\:
resource: '../Classes/*'
TagContentObject\ContentObject\TagContentObject:
tags:
<?php
$queryResult = new QueryResult();
foreach ($queryResult as $result) {
$data[] = $result;
}
return json_encode($result);
<?php
declare(strict_types=1);
namespace Dafis\Application\Middleware;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
@sorenmalling
sorenmalling / .platform.app.yaml
Created October 28, 2021 07:06
TYPO3 11 Platform.sh configuration
name: app
type: php:7.4
dependencies:
php:
composer/composer: '^2'
runtime:
extensions: