Neos bastelt um alle meine Contentelemente ein
<div class="neos-contentcollection">
// CE
</div>
Über TypoScript lässt sich die Klasse und sogar der Tag ändern, jedoch der Wrap nicht abschalten. Ganz Abschalten wäre vermutlich auch nicht sinnvoll, da sonst die Bearbeitung im Backend (also bei Login) nicht mehr funktioniert.
Klasse oder Tag ändern:
prototype(TYPO3.Neos:ContentCollection) < prototype(TYPO3.Neos:Content) {
attributes.class = 'newClassName'
attributes.tagName = 'ul'
}
Diverse Hinweise im Netz haben bei mir leider nur teilweise oder gar nichts gebracht. Die beschriebenen Änderungen unter https://forge.typo3.org/issues/53046 machen bei mir bei der Bearbeitung im Backend Probleme (ich will aber nicht ausschließen, dass der Fehler bei mir liegt).
Letztlich habe ich die Klasse ContentCollectionImplementation für die ContentCollection durch meine eigene ersetzt. Ich schmeiße den Wrap raus, so lange ich nicht im Backend eingeloggt bin.
In der Root.ts2:
prototype(TYPO3.Neos:ContentCollection) < prototype(TYPO3.Neos:Content) {
# Overwrite class to get rid of div.neos-contentcollection wrappers in Frontend
@class = '\\In2code\\In2code3Site\\TypoScript\\ContentCollectionImplementation'
}
Neue Datei - in meinem Fall also Packages/Sites/Vendor.Site/Classes/Vendor/Site/TypoScript/ContentCollectionImplementation.php
<?php
namespace Vender\Site\TypoScript;
use TYPO3\Flow\Annotations as Flow;
/**
* Class ContentCollectionImplementation
* @package Vendor\Site\TypoScript
*/
class ContentCollectionImplementation extends \TYPO3\Neos\TypoScript\ContentCollectionImplementation {
/**
* The default authentication manager
*
* @Flow\Inject
* @var \TYPO3\Flow\Security\Authentication\AuthenticationProviderManager
*/
protected $authenticationManager;
/**
* Render the list of nodes, and if there are none and we are not inside the live
* workspace, render a button to create new content.
*
* @return string
*/
public function evaluate() {
if ($this->authenticationManager->isAuthenticated()) {
return parent::evaluate();
}
return \TYPO3\TypoScript\TypoScriptObjects\AbstractCollectionImplementation::evaluate();
}
}
Der Nachteil an der Lösung ist natürlich, dass ich ein anderes HTML-Konstrukt habe, so bald ich mich in Neos einlogge. Aber eigentlich möchte ich die Ausgabe von Neos an meine HTML-Vorlage anpassen und nicht umgekehrt 🙂
Eventuell lässt sich das Problem auch schöner lösen, der Hinweis soll aber anderen eine stundenlange Suche ersparen.
Cheers, Alex