[TYPO3-german] Extbase Galerie mit Kommentar-Funktion
Heiko Le
l-vw at arcor.de
Tue Jan 28 11:32:06 CET 2014
Hallo zusammen,
ich versuche gerade eine Extension mittels Extbase und Fluid zu erstellen, die es mir erlaubt Bilder zu kommentieren.
Dazu habe ich zwei Models erzeugt "Image" und "Comment".
Leider gelingt es mir nicht einen neuen Kommentar über die Action "Create" im CommentController hinzuzufügen.
createAction:
/**
* action create
*
* @param \Hg\Commentgallery\Domain\Model\Comment $newComment
* @param \Hg\Commentgallery\Domain\Model\Image $image
* @return void
*/
public function createAction(
\Hg\Commentgallery\Domain\Model\Comment $newComment,
\Hg\Commentgallery\Domain\Model\Image $image
) {
$image->addComment($newComment);
$this->redirect('show', 'Image', NULL, $arr = array("image" => $image));
}
Dabei sieht die addComment-Funktion im Image-Model wie folgt aus:
/**
* Adds a Comment
*
* @param \Hg\Commentgallery\Domain\Model\Comment $comment
* @return void
*/
public function addComment(\Hg\Commentgallery\Domain\Model\Comment $comment) {
$this->comments->attach($comment);
}
Comments ist ein Objectstoreage:
/**
* comments
*
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\Hg\Commentgallery\Domain\Model\Comment>
*/
protected $comments;
dazu gibt es die initStoreageObjects-Funktion:
/**
* Initializes all ObjectStorage properties.
*
* @return void
*/
protected function initStorageObjects() {
$this->comments = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
}
und so sieht die Fluid-Anzeige des Bildes mit Formularfeldern zur Eingabe eines neuen Kommentares aus:
<f:image src="{image.file.originalResource.publicUrl}" alt="" width="400"/>
<h3>Kommentar hinzufügen</h3>
<f:form controller="Comment" action="create" name="newComment" object="{newComment}" arguments="{image:image}">
<f:render partial="Comment/FormFields" />
<f:form.submit value="Absenden" />
</f:form>
<f:for each="{image.comments}" as="comment">
<div style="padding: 10px; margin-bottom:10px; background-color: #f0f0f0; width: 300px;">
<p>{comment.author}</p>
<p>{comment.text}</p>
</div>
</f:for>
Hat jemand einen Tipp?
Vielen Dank vorab & viele Grüße
Steeeve
More information about the TYPO3-german
mailing list