我正在使用 TYPO3 CMS 6.2.6 和一个名为“jobfair”的新的出色的 Extbase 扩展。我添加了新的 templateRootPaths,如下所示:
plugin.tx_jobfair {
view {
templateRootPaths {
100 = EXT:jobfair/Resources/Private/Templates/
101 = fileadmin/templates/ext/jobfair/Resources/Private/Templates/
}
partialRootPaths {
100 = EXT:jobfair/Resources/Private/Partials/
101 = fileadmin/templates/ext/jobfair/Resources/Private/Partials/
}
layoutRootPaths {
100 = EXT:jobfair/Resources/Private/Layouts/
101 = fileadmin/templates/ext/jobfair/Resources/Private/Layouts/
}
}
}
...
Run Code Online (Sandbox Code Playgroud)
因此我可以为我的特定设计编辑模板和部分。所有其他模板将从 /typo3conf/ext/jobfair/Resources/... 加载
一切正常。我还将语言文件夹从扩展名 (typo3conf) 复制到我的 fileadmn 文件夹 (fileadmin/.../jobfair/Resources/Private/Language/)。
我编辑“locallang.xlf”和“de.locallang.xlf”,例如:
部分:ContractType.html
<f:if condition="{job.contractType} == 0">
<f:translate key="tx_jobfair_domain_model_job.contract_type.0" />
</f:if>
Run Code Online (Sandbox Code Playgroud)
我将在 de.locallang.xlf 更改目标
<trans-unit id="tx_jobfair_domain_model_job.contract_type">
<source>Contract Type</source>
<target>Here's my german translation!!!</target>
</trans-unit>
Run Code Online (Sandbox Code Playgroud)
但它不起作用!?
如何翻译或重命名我的分机的后端 (flexform) 标签?de.locallang.xlf 不是正确的文件吗?
感谢您的帮助。ps 我清除了 …
使用 Fluid f:format.dateviewhelper,我可以设置日期偏移量:
<f:format.date format="%d.%m.%Y">{item.Date}-3 days</f:format.date>
Run Code Online (Sandbox Code Playgroud)
不幸的是,使用内联符号(我需要一个条件)并不那么容易。我已经尝试过以下操作:
{f:format.date(date: item.Date-3 days, format: '%d.%m.%Y')}
{f:format.date(date: item.Date'-3 days', format: '%d.%m.%Y')}
{f:format.date(date: 'item.Date-3 days', format: '%d.%m.%Y')}
Run Code Online (Sandbox Code Playgroud)
其中没有一个返回修改日期。正确的语法是什么?
当有人访问详情页面但没有记录或记录不可用时,如何重定向到另一个页面?
我有详细记录,例如
domain.com/abc/ABC1234
Run Code Online (Sandbox Code Playgroud)
当有人进来时
domain.com/abc/
Run Code Online (Sandbox Code Playgroud)
...我得到:
Uncaught TYPO3 Exception
#1298012500: Required argument "record" is not set for Vendor\Extension\Controller\ActionController->show. (More information)
TYPO3\CMS\Extbase\Mvc\Controller\Exception\RequiredArgumentMissingException thrown in file
/is/htdocs/www/typo3_src-8.7.11/typo3/sysext/extbase/Classes/Mvc/Controller/AbstractController.php in line 425.
Run Code Online (Sandbox Code Playgroud)
...在这种情况下我希望它重定向到:
domain.com/other-page/
Run Code Online (Sandbox Code Playgroud)
...如果没有特定记录,我也需要它。
……怎么办呢?
/**
* action show
*
* @param \Action $record
* @return void
*/
public function showAction(Action $record) {
$this->view->assign('record', $record);
}
Run Code Online (Sandbox Code Playgroud)
以下是一些示例TYPO3 Extbase - 重定向到 pid ...但不确定如何实现它
编辑:有效的是......
/**
* action show
*
* @param \Action $record
* @return void
*/
public function showAction(Action $record=null) {
if …Run Code Online (Sandbox Code Playgroud) 通常会显示将数据处理器添加到 PAGE 或 FLUIDTEMPLATE 的方法。如何将其分配给 TYPO3 插件?
对于 PAGE,你可以这样做:
page {
10 {
dataProcessing {
1558428437 = BK2K\BootstrapPackage\DataProcessing\ConstantsProcessor
1558428437 {
as = myconstants
key = settings.constants
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是你能做这样的事情吗:
config.tx_extbase {
dataProcessing {
1558428437 = BK2K\BootstrapPackage\DataProcessing\ConstantsProcessor
1558428437 {
as = myconstants
key = settings.constants
}
}
Run Code Online (Sandbox Code Playgroud)
非常感谢!
我正在使用form.upload ViewHelper 上传文件。
<f:form enctype="multipart/form-data" action="list" name="import" object="{import}" method="POST">
<f:form.upload name="file" property="file" />
<f:form.submit value="Submit" />
</f:form>
Run Code Online (Sandbox Code Playgroud)
问题是访问文件。$import 对象包含一个文件名,但该文件不存在。
随着extbase我开发了一个扩展.然后我使用Realurl进行网址重写.
问题是,例如,我执行这个网址:www.mysite.com/records/record-number-one/一切都很好,因为"记录号码1"确实存在.
现在,如果我尝试
www.mysite.com/records/record-numbbbbbbber-one/
我收到了这个错误
Exception while property mapping at property path "":The identity
property "record-numbbbbbbber-one" is no UID.
Run Code Online (Sandbox Code Playgroud)
但我想重定向到404页面,而不是得到这个错误!
我尝试在我的操作中验证记录并重定向到404页面,但是当我收到此错误时,我的代码(在我的操作中)甚至没有被执行!
经过大量搜索,有人说如果我设置了
plugin.myplugin.mvc.throwPageNotFoundExceptionIfActionCantBeResolved = 1
Run Code Online (Sandbox Code Playgroud)
或者干脆
config.tx_extbase.mvc.throwPageNotFoundExceptionIfActionCantBeResolved = 1
Run Code Online (Sandbox Code Playgroud)
错误将被解决,我尝试了两个,我仍然得到错误.
任何帮助?
谢谢
PS:我使用的是TYPO3 6.1.7
我正在为访问者创建一个扩展程序以注册该页面.
注册时,它应该在后端创建一个FE用户,该用户被禁用(并且将由管理员手动启用).所以我需要在创建FE用户时将disable字段设置为1.
这是我的控制器内部的功能:
/**
* action create
*
* @param \Vendor\FeReg\Domain\Model\Dummy $newDummy
* @return void
*/
public function createAction(\Vendor\FeReg\Domain\Model\Dummy $newDummy)
{
// vars
$title = $newDummy->getTitle();
$atitle = $newDummy->getAtitle();
$fname = $newDummy->getFname();
$lname = $newDummy->getLname();
$street = $newDummy->getStreet();
$city = $newDummy->getCity();
$post = $newDummy->getPost();
$phone = $newDummy->getPhone();
$fax = $newDummy->getFax();
$email = $newDummy->getEmail();
$org = $newDummy->getOrg();
$cat = $newDummy->getCat();
$field = $newDummy->getField();
$uname = $newDummy->getUname();
$ppass = $newDummy->getPpass();
$cpass = $newDummy->getCpass();
$fulltitle = ($atitle ? $title." …Run Code Online (Sandbox Code Playgroud) 这更像是一个基本问题:
如何在不添加域模型和操作的情况下获得扩展(通过Extension Builder)来运行简单的PHP代码?
我有一个带有一个复选框的主表的扩展名,如果该项目已经通过MM表与相关TCA有关系,则该复选框不可用:
'checkbox' => [
'displayCond' =>'FIELD:uid:!IN:SELECT uid_foreign FROM tx_myext_object_object_mm',
'exclude' => 0,
'label' => 'checkbox',
'config' => [
'type' => 'check',
'items' => [
'1' => [
'0' => 'LLL:EXT:lang/locallang_core.xlf:labels.enabled'
]
],
'default' => 0
]
],
Run Code Online (Sandbox Code Playgroud)
可以纠正这种语法还是不可能(这段代码不起作用)
我构建了一个扩展和一个插件,前端用户可以编辑他们的个人资料,但我注意到一个关键问题:
在"编辑配置文件"下,用户可以看到有关未登录的其他用户的完整信息.显然,该表单是在服务器上缓存的,因为添加后:
config.no_cache = 1
Run Code Online (Sandbox Code Playgroud)
它没有再次发生.现在的问题是整个网站上的索引是禁用的.
有没有办法只为这个特定的扩展/插件禁用缓存?
extbase ×10
typo3 ×10
fluid ×3
php ×2
typo3-9.x ×2
typoscript ×2
caching ×1
mysql ×1
realurl ×1
translate ×1
typo3-6.2.x ×1
typo3-7.6.x ×1
typo3-8.x ×1