标签: extbase

TYPO3:将多个参数传递给流体模板中的部分参数

我有一个流畅的模板,我称之为常用的代码片段(称为"部分"):

模板:

<f:render partial="fbLikeBox" arguments="{settings}"/>
Run Code Online (Sandbox Code Playgroud)

部分fbLikeBox.html:

<div id="fb-root"></div><script src="http://connect.facebook.net/xxxxxxxx"></script>
<fb:like href="{settings.baseURL}/details/?guide_uid={audioguide.uid}">
</fb:like>
Run Code Online (Sandbox Code Playgroud)

如您所见,我需要将{settings}和{audioguide}数组中的值传递给partial.我怎样才能做到这一点?

typo3 partial fluid extbase typo3-flow

7
推荐指数
2
解决办法
2万
查看次数

RealURL:从URL中删除Controller和Action

我有一个列表和显示操作的扩展名.目前此扩展程序可以显示在多个页面上:

/page-1/
/page-2/subpage/
Run Code Online (Sandbox Code Playgroud)

我已经配置了realurl这样的:

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']=array (
    'encodeSpURL_postProc' => array('user_encodeSpURL_postProc'),
    'decodeSpURL_preProc' => array('user_decodeSpURL_preProc'),
    '_DEFAULT' => array (
        …
        'postVarSets' => array(
            '_DEFAULT' => array(
                'controller' => array(
                    array(
                        'GETvar' => 'tx_extension_plugin[controller]',
                        'noMatch' => 'bypass',
                    ),
                ),
                'extension' => array(
                    array(
                        'GETvar' => 'tx_extension_plugin[action]',
                    ),
                    array(
                        'GETvar' => 'tx_extension_plugin[controller]',
                    ),
                    array(
                        'GETvar' => 'tx_extension_plugin[value]',
                        'lookUpTable' => array(
                            'table' => 'table',
                            'id_field' => 'uid',
                            'alias_field' => 'name',
                            'addWhereClause' => ' AND NOT deleted AND NOT hidden',
                            …
);

function user_decodeSpURL_preProc(&$params, &$ref) …
Run Code Online (Sandbox Code Playgroud)

typo3 realurl extbase

7
推荐指数
2
解决办法
8985
查看次数

如何从页面uid创建页面URL

我正在开发一个typo3扩展,我想从页面ID生成一个url.目前我通过追加index.php?id=ID来创建网址$GLOBALS['TSFE']->baseURL.

有没有其他方法可以从页面ID创建一个可读的URL,如果是,它是如何做到的?

typo3 extbase

7
推荐指数
2
解决办法
9479
查看次数

TYPO3 6.2 - 如何在前端(FE)中创建FileReference?

我有假设的Zoo扩展,其中我Animal使用photo字段和FrontEnd(FE)插件与典型的CRUD操作建模.photo字段是典型的FAL FileReference,它在后端(BE)中使用常见的TCA IRRE配置完美地工作.

我能够成功将文件上传到存储,它在Filelist模块中可见,我可以在动物编辑期间在BE中使用它,无论如何我无法FileReference在我的FE插件中创建.

我目前的方法如下:

/**
 * @param \Zoo\Zoo\Domain\Model\Animal $animal
 */
public function updateAction(\Zoo\Zoo\Domain\Model\Animal $animal) {

    // It reads proper uploaded `photo` from form's $_FILES
    $file = $this->getFromFILES('tx_zoo_animal', 'photo');

    if ($file && is_array($file) && $file['error'] == 0) {

        /** @type  $storageRepository \TYPO3\CMS\Core\Resource\StorageRepository */
        $storageRepository = GeneralUtility::makeInstance('\TYPO3\CMS\Core\Resource\StorageRepository');
        $storage = $storageRepository->findByUid(5); // TODO: make target storage configurable

        // This adds uploaded file to the storage perfectly
        $fileObject = $storage->addFile($file['tmp_name'], …
Run Code Online (Sandbox Code Playgroud)

file-upload typo3 extbase typo3-6.2.x fal

7
推荐指数
1
解决办法
5441
查看次数

在extbase框架中获取typoscript值

我是extbase(MVC)框架的新手,我们如何在扩展中获取typoscript值:

例如:假设我有一些typoscript值,如:

plugin.tx_some-extname.somevlaueX = XXXX
plugin.tx_some-extname.somevlaueY = yyyy
plugin.tx_some-extname.somevlaueZ = zzzz
Run Code Online (Sandbox Code Playgroud)

我将如何在我们的控制器的特定动作中获得这些值.我希望这有意义吗?

typo3 typoscript extbase

6
推荐指数
1
解决办法
6270
查看次数

没有页面类型的Typo3 Extbase AJAX

有没有办法在不使用页面typeNum的情况下在Extbase扩展中创建AJAX调用?

typo3 extbase

6
推荐指数
1
解决办法
8733
查看次数

在调度程序任务中执行存储库功能

目前我有一个调度程序任务,但我想使用我的extbase存储库中的函数(在相同的扩展名中).

我不断得到"PHP致命错误:在非对象上调用成员函数add()",无论我如何尝试从extbase包含我的repo或控制器.

我的SampleTask.php:

namespace TYPO3\ExtName\Task;

class SampleTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask {

    public function execute() {
        $controller = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('\TYPO3\ExtName\Controller\SampleController');
        $new = new \TYPO3\ExtName\Domain\Model\Sample;
        $new->setName('test');
        $controller->createAction($new);
    }
}
Run Code Online (Sandbox Code Playgroud)

并在我的ext_localconf.php中正确定义

有人可以解释我如何从我的SampleTask.php访问我的存储库(或控制器)-extbase.

使用TYPO3 6.2.

谢谢.

php typo3 scheduler task extbase

6
推荐指数
1
解决办法
5801
查看次数

TYPO3 Extbase:Controller中的setDefaultOrderings

我有一个扩展名(extbase/fluid),主要对象是"Etikett",与子对象"Land"有关系.我想订购我的输出,所以我在我的Etikett控制器中使用setDefaultOrderings方法,但我没有结果,为什么?

$this->etikettRepository->setDefaultOrderings(array('land.laendername' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING));
$etiketts = $this->etikettRepository->findAll();
Run Code Online (Sandbox Code Playgroud)

关系

php mysql typo3 fluid extbase

6
推荐指数
2
解决办法
4709
查看次数

TYPO3 Extbase - 如何使用核心信号/插槽

我在TYPO3 V6.2中有一个可用的Extbase扩展,它存储了产品.现在我想学习使用Signal/Slot(Hooks的Extbase变体).我想知道为什么这个例子不起作用.当我在TYPO3后端的列表模块中更新产品时,它会正确保存,但不会显示任何消息.

文件typo3conf/ext/myext/ext_localconf.php

$signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance( 'TYPO3\\CMS\\Extbase\\SignalSlot\\Dispatcher' );
$signalSlotDispatcher->connect(
    'TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Backend',
    'afterUpdateObject',
    'MyVendor\\MyExt\\Service\\Signalservice',    
    'myAfterUpdate',
    FALSE
);
Run Code Online (Sandbox Code Playgroud)

文件typo3conf/ext/myext/Service/Signalservice.php

namespace MyVendor\MyExt\Service;

class Signalservice implements \TYPO3\CMS\Core\SingletonInterface {

    /**
     * @param  \TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object
     */
    public function myAfterUpdate(\TYPO3\CMS\Extbase\DomainObject\DomainObjectInterface $object){

            if ($object instanceof \MyVendor\MyExt\Domain\Model\Products) {

                // check if we come to this point 
                \TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump('Successfully hooked - I am a slot.');
                die();

            }   

    }

}
Run Code Online (Sandbox Code Playgroud)


更新15.06.2015
Patrick Lobacher的一个提示说,我们不能在这种情况下使用die().相反,我们应该编写一个日志文件.但这对我也不起作用.没有写入文件:

文件typo3conf/ext/myext/ext_localconf.php

/** 
 * @var \TYPO3\CMS\Extbase\SignalSlot\Dispatcher $signalSlotDispatcher 
 * */
$signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('TYPO3\\CMS\\Extbase\\SignalSlot\\Dispatcher');
$signalSlotDispatcher->connect(
   'TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Backend',
   'afterUpdateObject',
   function ($payload) { …
Run Code Online (Sandbox Code Playgroud)

signals-slots extbase typo3-6.2.x

6
推荐指数
1
解决办法
2327
查看次数

如何从FlexForm获取价值到控制器[Typo3]

这是我在这里的第一个问题所以你好!对于我的问题:我正在练习一个非常简单的Extbase Extension并使用FlexForm来获得三个公式字段.其中一个被称为"代码",应该转到EmbedderController.php,然后转到查看器List.html.

我尝试了很多并检查了我能找到的所有教程.但不知何故,我真的不明白如何将FlexForm值"代码"放入我的控制器中.无论我做什么,我都没有得到任何价值或空页.

这是我的FlexForm:Embedder.xml

<T3DataStructure>
        <meta type="array">
                <langChildren>0</langChildren>
                <langDisable>1</langDisable>
        </meta>
        <ROOT>
                <type>array</type>
                <el>
                        <settings.code>
                                <TCEforms>
                                        <label>Video Code</label>
                                        <config>
                                                <type>input</type>
                                                <size>20</size>
                                                <max>30</max>
                                                <eval>trim</eval>
                                        </config>
                                </TCEforms>
                        </settings.code>
                        <settings.width>
                                <TCEforms>
                                        <exclude>1</exclude>
                                        <label>Breite in Pixel</label>
                                        <config>
                                                <type>input</type>
                                                <size>10</size>
                                                <max>10</max>
                                                <eval>trim</eval>
                                        </config>
                                </TCEforms>
                        </settings.width>
                        <settings.height>
                                <TCEforms>
                                        <exclude>1</exclude>
                                        <label>Höhe in Pixel</label>
                                        <config>
                                                <type>input</type>
                                                <size>10</size>
                                                <max>10</max>
                                                <eval>trim</eval>
                                        </config>
                                </TCEforms>
                        </settings.height>
                </el>
        </ROOT>
</T3DataStructure>
Run Code Online (Sandbox Code Playgroud)

这是我的EmbedderController.php

<?php
namespace HhuMediathek\Hhumediathek\Controller;

/**
 * EmbedderController
 */
class EmbedderController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {

        /**
         * embedderRepository
         *
         * @var \HhuMediathek\Hhumediathek\Domain\Repository\EmbedderRepository
         * @inject
         */
        protected …
Run Code Online (Sandbox Code Playgroud)

typo3 extbase typo3-extensions

6
推荐指数
1
解决办法
4898
查看次数