TYPO3 IRRE流体前端

时间:2017-04-26 22:40:11

标签: typo3 frontend typoscript fluid typo3-7.6.x

在我的扩展程序中,我试图制作一份IRRE。最后后端工作正常,但前端是我的问题。我想使用普通的流体模板,但我尝试的所有名称都是空的。

所以这里有流体:

<h2 class="termin">
    {data.header}
    <f:if condition="{data.tx_examples_noclap} == 1">
        <f:then><b class="showFullDrop"></b></f:then>
    </f:if>
</h2>
<f:if condition="{data.tx_examples_noclap} == 1">
    <f:then><div class="teaser-full"></f:then>
    <f:else><div class="teaser-full-show"></f:else>
</f:if>
        <div class="text">{data.bodytext}</div>
        <div class="table">
            <table border="1">
            {termine}
            <f:for each="{termine}" as="termin">
                <tr>
                    <td>{termin.title}</td>
                    <td>{termin.termin2}</td>
                    <td>{termin.termin3}</td>
                    <td style="background:{termin.farbe}">{termin.platz}</td>
                </tr>
            </f:for>
            </table>
        </div>
    </div>

这是拼写错误

tt_content.stalla_hp_distribution_termin = COA
tt_content.stalla_hp_distribution_termin {
    10 = FLUIDTEMPLATE
    10 {
        file = EXT:stalla_hp_distribution/Resources/Private/Template/Termin.html
        stdWrap.dataWrap = <div id="c{field:uid}" class="termin">|</div>    
    }
}

这里是Controler ..

1.Classes/Domain/Model/Termin.php

    <?php
    namespace stalla_hp_distribution\Domain\Model;

    /**
     *
     *
     * @package stalla_hp_distribution
     * @license http://www.gnu.org/licenses/gpl.html GNU General Public License, version 3 or later
     *
     */
    class Termin extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity {
        protected $farbe = NULL;
        protected $title = NULL;
        protected $termin2 = NULL;
        protected $termin3 = NULL;
        protected $platz = NULL;

        public function getFarbe(){
            return $this->farbe;
        }

        public function getTitle(){
            return $this->title;
        }

        public function getTermin2(){
            return $this->termin2;
        }

        public function getTermin3(){
            return $this->termin3;
        }

        public function getPlatz(){
            return $this->platz;
        }


        public function setFarbe(){
            $this->farbe = $farbe;
        }

        public function setTitle(){
            $this->title = $title;
        }

        public function setTermin2(){
            $this->termin2 = $termin2;
        }

        public function setTermin3(){
            $this->termin3 = $termin3;
        }

        public function setPlatz(){
            $this->platz = $platz;
        }
    }
    ?>

2. Classes/Domain/Repository/TerminRepository.php

    <?php
    namespace stalla_hp_distribution\Domain\Repository;

    class TerminRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {
    }
    ?>

3. Classes/Controller/TerminController.php

    <?php
    namespace stalla_hp_distribution\Controller;
    /**
     * TerminController
     */
    class TerminController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
        /**
         * @var stalla_hp_distribution\Domain\Repository\TerminRepository
         * @inject
         */
        protected $terminRepository;
        /**
         * action list
         *
         * @return void
         */
        public function listAction() {
            $termine = $this->terminRepository->findAll();
            $this->view->assign('termine', $termine);
        }
    }

    ?>

我期待着您的回复。

亲切的问候 Ascawath

2 个答案:

答案 0 :(得分:0)

如果您可以将多个标题引用到终端,请尝试使用

...
<div class="text">{data.bodytext}</div>
    <table border="1">
        <f:for each="{termine}" as="termin">
            <tr>
                <f:for each="{termin.title}" as="title" iteration="iterator">
                    <f:if condition="{iterator.isFirst}">
                                    <td>{title}</td>
                    </f:if>
                </f:for>
                ...
            </tr>
        </f:for>
    </table>
</div>

答案 1 :(得分:0)

您可以使用DatabaseQueryProcessor访问您的IRRE的数据,并将其提供给您的流体模板

这是一个示例TS

tt_content.slickcarouselbgimg = FLUIDTEMPLATE
tt_content.slickcarouselbgimg {
    templateName = Slickcarouselbgimg
    templateRootPaths {
        10 = EXT:slickcarousel/Resources/Private/Templates/
    }

    partialRootPaths {
        10 = EXT:slickcarousel/Resources/Private/Partials/
    }

    layoutRootPaths {
        10 = EXT:slickcarousel/Resources/Private/Layouts/
    }

    dataProcessing {
        20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
        20 {
            table = tx_slickcarouselbgimg
            pidInList.field = pid
            where {
                data = field:uid
                intval = 1
                wrap = tt_content=|
            }
            orderBy = sorting
            as = slides
            dataProcessing {
                10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
                10 {
                    references.fieldName = image
                    as = images
                }
            }
        }
    }
}

在这里你可以看到整个设置: https://github.com/misterboe/slickcarousel