[Frage] Extension Liste mit Aktionen versehen TYPO3-Version: 8.7.11

  • sanktusm sanktusm
    T3PO
    0 x
    29 Beiträge
    0 Hilfreiche Beiträge
    01. 12. 2020, 14:56

    Hallo,
    ich arbeite an einer Erweiterung, die ein PDF schreiben soll. Die Felder mit den Inhalten konnte ich leicht mit dem ExtensionBuilder einrichten.
    Über das Listenmodul können Inhalte angelegt werden.

    Nun möchte ich, wenn die Daten gespeichert werden, ein PDF mit den Daten schreiben lassen. Leider ergeben die Daten im Controller keine Aktion. Hier der Controller:
    [code]<?php
    namespace CovisionPDFWriter\Covisionpdfwriter\Controller;
    namespace CovisionPDFWriter\Covisionpdfwriter\fpdf;

    /***
    *
    * This file is part of the "CovisionPDFWriter" Extension for TYPO3 CMS.
    *
    * For the full copyright and license information, please read the
    * LICENSE.txt file that was distributed with this source code.
    *
    * (c) 2020 Anselmo Cotellessa &lt;anselmo.cotellessa@covisionmedia.com&gt;, Covisionmedia
    *
    ***/

    /**
    * CovisionPDFFormController
    */
    class CovisionPDFFormController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
    {
    /**
    * action new
    *
    * @return void
    */
    public function newAction()
    {

    }

    /**
    * action create
    *
    * @param \CovisionPDFWriter\Covisionpdfwriter\Domain\Model\CovisionPDFForm $newCovisionPDFForm
    * @return void
    */
    public function createAction(\CovisionPDFWriter\Covisionpdfwriter\Domain\Model\CovisionPDFForm $newCovisionPDFForm)
    {
    $this->addFlashMessage('The object was created. Please be aware that this action is publicly accessible unless you implement an access check. See https://docs.typo3.org/typo3cms/extensions/extension_builder/User/Index.html', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::WARNING);
    $this->covisionPDFFormRepository->add($newCovisionPDFForm);
    $this->redirect('list');
    }

    /**
    * action edit
    *
    * @param \CovisionPDFWriter\Covisionpdfwriter\Domain\Model\CovisionPDFForm $covisionPDFForm
    * @ignorevalidation $covisionPDFForm
    * @return void
    */
    public function editAction(\CovisionPDFWriter\Covisionpdfwriter\Domain\Model\CovisionPDFForm $covisionPDFForm)
    {

    $this->view->writePDF($covisionPDFForm);

    }

    /**
    * action update
    *
    * @param \CovisionPDFWriter\Covisionpdfwriter\Domain\Model\CovisionPDFForm $covisionPDFForm
    * @return void
    */
    public function updateAction(\CovisionPDFWriter\Covisionpdfwriter\Domain\Model\CovisionPDFForm $covisionPDFForm)
    {
    $this->addFlashMessage('The object was updated. Please be aware that this action is publicly accessible unless you implement an access check. See https://docs.typo3.org/typo3cms/extensions/extension_builder/User/Index.html', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::WARNING);
    $this->covisionPDFFormRepository->update($covisionPDFForm);

    $this->redirect('list');
    }

    /**
    * action delete
    *
    * @param \CovisionPDFWriter\Covisionpdfwriter\Domain\Model\CovisionPDFForm $covisionPDFForm
    * @return void
    */
    public function deleteAction(\CovisionPDFWriter\Covisionpdfwriter\Domain\Model\CovisionPDFForm $covisionPDFForm)
    {
    $this->addFlashMessage('The object was deleted. Please be aware that this action is publicly accessible unless you implement an access check. See https://docs.typo3.org/typo3cms/extensions/extension_builder/User/Index.html', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::WARNING);
    $this->covisionPDFFormRepository->remove($covisionPDFForm);
    $this->redirect('list');
    }

    public function writePDF($formInputs) {

    $pdf=new FPDF();
    $pdf->AddPage();

    $pdf->Output('I','filadmin/user_upload/test/test.pdf');

    }
    }

    [/code]

    Kann mir jemand einen Tipp geben, wie ich die Aktionen mit einer Funktion verbinden kann? also mit der FPDF Klasse.


  • 1
  • 0 x
    3142 Beiträge
    140 Hilfreiche Beiträge
    03. 12. 2020, 16:43

    Hallo.

    Deine edit-Action ruft '$this->view->writePDF($covisionPDFForm);' auf, also eine Methode writePDF() innerhalb Deiner View. Laut Deinem geposteten Code ist die Methode aber innerhalb der Klasse CovisionPDFFormController... D.h. Du willst in der edit-Action wohl eher '$this->writePDF($covisionPDFForm);' aufrufen.

    Viele Grüße
    Julian

  • 1