我有一个流畅的模板,我称之为常用的代码片段(称为"部分"):
模板:
<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.我怎样才能做到这一点?
我有一个列表和显示操作的扩展名.目前此扩展程序可以显示在多个页面上:
/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扩展,我想从页面ID生成一个url.目前我通过追加index.php?id=ID来创建网址$GLOBALS['TSFE']->baseURL.
有没有其他方法可以从页面ID创建一个可读的URL,如果是,它是如何做到的?
我有假设的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) 我是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)
我将如何在我们的控制器的特定动作中获得这些值.我希望这有意义吗?
有没有办法在不使用页面typeNum的情况下在Extbase扩展中创建AJAX调用?
目前我有一个调度程序任务,但我想使用我的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.
谢谢.
我有一个扩展名(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)

我在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) 这是我在这里的第一个问题所以你好!对于我的问题:我正在练习一个非常简单的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) extbase ×10
typo3 ×9
fluid ×2
php ×2
typo3-6.2.x ×2
fal ×1
file-upload ×1
mysql ×1
partial ×1
realurl ×1
scheduler ×1
task ×1
typo3-flow ×1
typoscript ×1