TYPO3是一个用PHP编写的开源企业Web内容管理系统(CMS)。它通常与MySQL数据库结合使用,可在许多Unix和Windows系统上运行。
我是typo3的新手,今天安装了它,在最后一步之后我选择了“直接带我到后端”。所以它带我到登录站点***/TYPO3/login 它说“未找到,
我创建了一个带有“媒体”字段的自定义内容元素。 这是我的数据处理器类: CustomCeProcessor 类实现 DataProcessorInterface { /** *
最新更新至9.5.8后,所有用户登录后都会收到消息,要求他们更改密码。对于我来说,作为管理员,工作得很好,但所有其他用户,一旦他们点击“确定...
typo3 extbase 在 phpunit 测试中使用 toArray
我有一个 extbase 扩展(typo3 4.5) $test = $this->testRepository->findAll(); $this->视图->分配('测试', 数组合并( 数组('0'=>'选择'), $测试->
我直接在网络服务器上处理了 TYPO3 11.5 网站的 CSS 文件。如何更新 CSS 文件 main.css?1715067859 上的时间戳参数以刷新浏览器缓存?我没有...
如何为EXT:news设置routeEnhancer,它在重定向模块中工作,用于跨语言链接
虽然使用文档中给出的routeEnhancers设置在列表、详细信息和类别页面上一切正常,但我正在努力让它在重定向模块上工作。 配置
TYPO3:覆盖插件 Flexform 的 RTE CKEditor 配置预设
在我的 TYPO3 站点包扩展中,我有两种不同的 CKEditor 配置预设:默认预设和选项较少的最小预设。 在我的 page.tsconfig 中,我定义了默认配置并......
如何删除TYPO3 12 CKEditor 5中的对齐选项?
如何在您自己的预设中排除某些对齐选项? 虽然我没有指定“right”和“justify”,但它们仍然显示: 进口: - {资源:'EXT:rte_ckedi...
Typo3 12.4 是否可以与 PHP 8 和disable_functions=ini_set 一起使用?
我正在运行一个带有一些安全限制的Typo3页面,特别是我的管理员出于安全原因禁用了一些PHP函数。 禁用函数=ini_set 现在我做了升级: Typo3 11.5 => 打字错误...
TYPO3 Fluid viewhelper f:security.nonce 不生成随机数
在 TYPO3 12.4.13 中使用 CSP 指令时,我偶然发现了一个奇怪的问题。为了运行内联脚本,我使用 TYPO3 exte... 为 script-src 指令定义了一个随机数值。
TYPO3:在自定义扩展中使用 Powermail Signal
TYPO3 10,Powermail 8.4 通过 Powermail 成功进行双重选择验证后,我想将邮件数据发送到外部 API。 在 \In2code\Powermail\Controller\FormController 中有一个信号
Typo3 12 将所有扩展移至供应商文件夹(因此 /public 文件夹表单扩展不再公开),并在“_assets”文件夹中为每个扩展创建一个散列命名的文件夹...
如何为 TYPO3 后端中的默认文本/媒体内容元素分配预览模板?
我想更改后端内容元素文本/媒体的预览。 我尝试在我的扩展中放置一个模板并添加以下页面 TS: mod.web_layout { tt_内容{ 预览 {...
在我的扩展中,我在constants.typoscript中定义了常量值。 菜单 { # 猫=菜单; label=子菜单文件夹的uid 子菜单ID = -1 # 猫=菜单;标签=入口网址 入口网址 = / }
我正在使用 TYPO3 7.6.14 和新闻扩展。我想在后端不同的视图之间切换。 根目录中的页面 TS: tx_news.templateLayouts { 定制 = Gesamter Artikel2 } 我正在使用带有新闻扩展的 TYPO3 7.6.14。我想在后台切换不同的视图。 根目录中的页面 TS: tx_news.templateLayouts { Custom = Gesamter Artikel2 } <html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" xmlns:n="http://typo3.org/ns/GeorgRinger/News/ViewHelpers" data-namespace-typo3-fluid="true"> <f:layout name="General" /> <!-- ===================== Templates/News/List.html --> <f:section name="content"> <!--TYPO3SEARCH_end--> <f:if condition="{news}"> <f:then> <div class="news-list-view"> <f:if condition="{settings.hidePagination}"> <f:then> <f:for each="{news}" as="newsItem"> <f:if condition="{0:settings.templateLayout} == {0:'Custom}"> <f:then> <f:render partial="List/GesamteArtikel" arguments="{newsItem: newsItem, settings:settings, className:className, view:'list'}"/> </f:then> <f:else> <f:render partial="List/Item" arguments="{newsItem: newsItem, settings:settings, className:className, view:'list'}"/> </f:else> </f:if> </f:for> </f:then> <f:else> <n:widget.paginate objects="{news}" as="paginatedNews" configuration="{settings.list.paginate}" initial="{offset:settings.offset,limit:settings.limit}"> <f:for each="{paginatedNews}" as="newsItem" iteration="iterator"> <f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" /> </f:for> </n:widget.paginate> </f:else> </f:if> </div> </f:then> <f:else> <div class="no-news-found"> <f:translate key="list_nonewsfound" /> </div> </f:else> </f:if> <!--TYPO3SEARCH_begin--> </f:section> </html> 在 List.html 所在的同一文件夹中,我添加了自己的文件,名为 GesamteArtikel.html 我做错了什么? 编辑: (更改文件位置) 我发现它没有影响。我把它改成这样: <f:then> <f:for each="{news}" as="newsItem"> <f:if condition="{settings.templateLayout} == 'Custom'"> <f:then> <f:render partial="GesamteArtikel" arguments="{newsItem: newsItem, settings:settings, className:className, view:'list'}"/> </f:then> <f:else> <f:render partial="GesamteArtikel" arguments="{newsItem: newsItem, settings:settings, className:className, view:'list'}"/> </f:else> </f:if> </f:for> </f:then> 它什么也没做。 它使用 <f:else> <n:widget.paginate objects="{news}" as="paginatedNews" configuration="{settings.list.paginate}" initial="{offset:settings.offset,limit:settings.limit}"> <f:for each="{paginatedNews}" as="newsItem" iteration="iterator"> <f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" /> </f:for> </n:widget.paginate> </f:else> 然后我将其更改为 <f:else> <n:widget.paginate objects="{news}" as="paginatedNews" configuration="{settings.list.paginate}" initial="{offset:settings.offset,limit:settings.limit}"> <f:for each="{paginatedNews}" as="newsItem" iteration="iterator"> <f:if condition="{settings.templateLayout} == 'Layout'"> <f:then> <f:render partial="GesamteArtikel" arguments="{newsItem: newsItem, settings:settings, className:className, view:'list'}"/> </f:then> <f:else> <f:render partial="List/Item" arguments="{newsItem: newsItem, settings:settings, className:className, view:'list'}"/> </f:else> </f:if> </f:for> </n:widget.paginate> </f:else> 但是它只使用 Item.html 如果我告诉两个 if 语句使用 GesamteArtikel(自定义模板),它将使用它,但我不想覆盖旧的 item.html。当我在后端选择它时,我想使用我的自定义布局... 有两件事可能会有所帮助: 首先,您在比较中似乎缺少一个单引号: <f:if condition="{0:settings.templateLayout} == {0:'Custom}"> 并且您可以在不绕过数组的情况下进行字符串比较,所以您得到的是: <f:if condition="{settings.templateLayout} == 'Custom'"> 第二件事是自定义布局的文件位置: 在 List.html 所在的同一文件夹中,我添加了自己的文件,名为 GesamteArtikel.html 您需要将其放在部分根路径中的某个位置,例如部分 EXT:my_ext/Resources/Private/Partials/List/ 的兄弟姐妹(如果您覆盖该路径)。 难道不是吗 ? 至少对于 Typo3 9.5 这对我有用。
如何在TYPO3中使用indexed_search索引自定义数据库记录?
如何在 TYPO3 中索引自定义数据库记录?我尝试使用索引搜索,将选项“Table to index”设置为配置中相应的数据库。但这并没有...
TYPO3:何时/如何使用define('TYPO3_MODE','FE');
/public_html/demo 是我的TYPO3站点,我在它下面放了一个test.php文件, /public_html/demo是我的TYPO3网站,我在它下面放了一个test.php文件, <?php //define('TYPO3_MODE','FE'); require('typo3conf/localconf.php'); require('t3lib/class.t3lib_db.php'); require('t3lib/class.t3lib_div.php'); define('TYPO3_db_host', $typo_db_host); define('TYPO3_db_username', $typo_db_username); define('TYPO3_db_password', $typo_db_password); define('TYPO3_db', $typo_db); $DB = new t3lib_DB(); $DB->connectDB(); $result = mysql_query("SELECT * FROM fe_users WHERE username='tom_seeker'"); while($row = mysql_fetch_array($result)) { echo $row['email']; } ?> 问题: 什么时候需要放这行:define('TYPO3_MODE','FE');?这里我把它注释掉了,脚本仍然有效,所以我只是想知道何时/如何使用define('TYPO3_MODE','FE');? 应该不需要定义这个常量。 TYPO3 会为你做的。 要么构建一个可以放在网站上的插件,要么构建一个不需要网站即可运行的eID。 两者都会为您提供 TYPO3 环境;插件是一个完整的插件,eID 是一个更小(更快)的插件。 通常,您定义 TYPO3_MODE 来告诉系统您是在前端还是后端(FE 与 BE)。 许多扩展询问 TYPO3_MODE 的状态。 if (!defined ('TYPO3_MODE')) die ('Access denied.'); 更新:TYPO3_MODE 在 v11 中已弃用,并在 v12 中删除。 您的(独立)脚本未在任何 TYPO3 上下文中运行。 (通常)方法是使用现有的 TYPO3 API 创建扩展。 TYPO3 将为您做一些初始化,您不必自己做,例如自动加载类、初始化后端和前端用户、语言处理、解析 URL 等。 如果执行此操作,TYPO3_MODE 将已初始化。在常量部分阅读有关 TYPO3_MODE 的更多信息。请注意,大多数 TYPO3 常量已被弃用,并已被 Environment 类取代。 了解有关如何创建扩展的更多信息: 扩展架构介绍 命名空间 自动加载 使用最新的 TYPO3 10 版本,您可以这样做: 决定从头开始创建扩展(在目录typo3conf/ext/extensinoname中)或使用extension_builder(extension_builder为您生成扩展代码。这是基于Extbase框架和Fluid模板引擎。在很多情况下,这可能有点矫枉过正。) 如果从头开始创建,则必须创建最少所需的文件 ext_emconf.php 和composer.json 从那里继续(取决于您想要做什么)。对于上面的用例,您很可能想要创建一个插件。您将需要获取数据库记录(使用基于 Doctrine dbal 或 Extbase 持久性的QueryBuilder)或使用 TYPO3 核心中现有的 FrontendUserRepository。 您在上面尝试执行的操作可能甚至不需要延期。 如果您只想提供 FE 登录,您可以使用现有功能 对于身份验证,您可以 扩展现有功能
我的 TYPO3 安装中有几个重复的文件。有两种不同类型的重复项: 数据库重复:同一文件在 sys_file 中存在多个条目(不同的 uid,相同
Typo3 11.5,新闻11.4,事件新闻6.0.2,容器2.3.6,PHP 8.2 即使在卸载自定义程序之后,“扫描扩展文件”模块也会导致新闻和容器中出现严重错误