当前位置: 首页 > 知识库问答 >
问题:

如何在TYPO3中使用扩展生成器?

邵弘致
2023-03-14

所以,我需要在CMS中做一个扩展,称为TYPO3。这里有一些关于这个扩展的信息:

“对于新的TYPO3 6.1网站,我们需要一个新闻稿扩展(基于ExtBase/Fluid),该扩展应包含:

  • 标题/说明

目前实际上没有详细视图的设计,所以没有详细视图的链接。所以,现在,请专注于前端列表视图。"

我以前从未使用过这个CMS,所以我读了一下,发现我需要使用扩展生成器来创建这个扩展。所以,我已经下载并安装了它,并在TYPO3网站上注册了我的扩展密钥。但是当我试图创建这个扩展时,我发现了很多问题和疑问。有些我已经解决了,但有些还没解决。我在docs.typo3.org阅读了大量关于这个扩展的信息,但仍然没有找到答案。所以,这里有一个问题:

>

  • 我可以在一个模块中添加所有这些字段,还是应该为每个字段创建自己的模块?

    我知道,我需要添加前端插件,用于在站点上显示此扩展,以及后端模块,用于在管理面板中显示此扩展,以便进行编辑。但我不明白我应该添加什么插件和模块,在哪里可以找到它?我需要使我的扩展完全可编辑,当然,在后端和前端,我只需要有我在后端添加的结果,没有任何编辑机会(在我的情况下,它应该是标题,文本,图像,PDF文件和日期,因为我写在这个问题的顶部)。因此,在结果中,我应该能够添加,编辑,删除等。这个主题在管理面板和网站上,我和所有网站的客人应该可以看到它。

    在Extension Builder中,仍然没有实现下载文件的功能,因此,据我所知,我需要自己将此机会添加到扩展中,但我不知道应该添加什么确切的代码以及在什么确切的文件中。

    我也有一些日期格式的问题。当我尝试在日期字段中添加一些日期时,我收到以下消息:

    未确认日期“2014-02-01”(格式为“Y-m-d\TH:i:sP”)

    我试图在扩展文件中找到一些日期格式,但没有成功。

    我是初级php开发人员,有2个月的开发经验(几乎所有的时间我都在使用HTML、CSS和Wordpress),所以对我来说,自己解决这个问题真的很难。我已经花了一周时间创建这个小扩展,但没有成功,所以您的帮助、建议和对我问题的回答对我非常有用:)

    提前感谢,抱歉我英语不好。

  • 共有1个答案

    孙洋
    2023-03-14

    第一次读到你的帖子时,我很惊讶,第二次感到抱歉,第三次我想:“这家伙太勇敢了!”就在那时,我决定帮助你。

    正如你自己已经发现的那样:Ext。构建器只创建了一个“框架”,你可以用它来向你的ext添加额外的功能。生成器创建一个具有extbase和流体的扩展。所以第一件事是学习伸缩和流体是如何工作的。重要的是要知道extbase是代码的“框架”,流体是模板引擎。

    Extbase使用面向对象的方法,所以请阅读面向对象编程的内容。此外,Extbase使用模型/视图/控制器(google it)和CRUD(创建-读取-更新-删除)了解这一点,然后回顾您的ext,您将看到确实存在根据用途定义的类:-类/控制器-类/域/模型-资源/私有/模板(视图)

    你的模型会定义你的‘数据’。你的扩展中的每个对象都有自己的模型。

    您的第一个问题:“我可以在一个模块中添加所有这些字段,还是应该为每个字段创建自己的模块?“是的,所有这些‘领域’都属于同一个模式:新闻稿。

    您还需要一个控制器来处理模型的所有请求:创建新新闻稿、阅读(或列出/显示)、更新或删除。控制器如何从数据库中获取数据?使用所谓的存储库,可以在此处阅读:http://blog.typoplanet.de/2010/01/27/the-repository-and-query-object-of-extbase/

    控制器将处理数据流:这意味着,如果您要求,控制器将向您提供所有新闻稿,并将其发送到您的视图(模板),它将向您提供对象中的此信息。例如,如果您的控制器发出:$pressleases(将使用for ex:$this完成)-

    一旦您了解了这一点,您就可以从对象中获取所有信息,并使用流体在视图中使用它。http://wiki.typo3.org/Fluid

    有了这些,您通常能够稍微了解extabse是如何工作的,它是如何获取数据(模型)的,它是如何从数据库(控制器)检索数据的

    第三个问题:如果你知道你的PDF存储在哪里(通常是上传/tx_yourextname/),如果你从模板中的模型中获得属性(记住调试),你会看到pdf名称存储在数据库中,并作为属性提供。例如(如果您的对象在显示视图中被称为press释放),您可以通过在流体中使用{pressrelease.pdf}检索PDF名称。把它放在atag: src='上传/tx_yourext/{pressrelease.pdf}...会给你一个下载链接。

    4the:它说的正是它所说的:你给一个日期格式为yyyy-mm-dd,但它需要格式为Y-m-d\TH: i: sP。可能是因为您的属性发布日期的类型是DateTime,而不是Date这是一个常见的问题,请在stackOverflow中查找答案

    最后:您的(前端)插件定义在您的ext_localconf.php

    所以,改变我勇敢的朋友吧。我真的希望你能理解我写的一些东西,并希望你能从使用TYPO3中找到乐趣(给它一个月或452,这是一个陡峭但有回报的学习曲线)

     类似资料:
    • 我正在尝试创建一个扩展,该扩展将使用附加字段增强页面。因为有很多关系和属性,所以我想使用扩展生成器,它在文档中说明了这一点(https://docs.typo3.org/typo3cms/extensions/extension_builder/stable/Developer/ExtendingModels.html)如果我想扩展一个模型,我必须:你必须输入类名(不是模型名!)模型在现场的应用。

    • 我想制作一份扩展的副本,作为我自己扩展的基础。我如何克隆一个TYPO3扩展,以同样的行为开始我自己的扩展。我必须更改哪些文件和参数?

    • 与TYPO3和作曲家一起学习TYPO3的基础知识。在尝试作曲家学习示例扩展时遇到了第一个问题 好的,需要作曲家来做。但是怎么做呢?只需了解如何使用composer设置TYPO3或创建用于composer的扩展。但是如何使用composer安装扩展? 再生n00n

    • Szenario:我有两个扩展,它们用一些特定字段扩展了。在TYPO3 9之前,我必须使用以下打字脚本配置对新闻扩展的依赖关系进行配置: 模型扩展了基本扩展的模型: 在TYPO3 10中,在(中断:#87623): 只要您只有一个扩展新闻扩展名的扩展名,它就可以工作多久。如果您有第二个扩展并启用TYPO3缓存,您将得到一个错误,即在第一个扩展中添加的字段在新闻扩展的模板中不可用。奇怪的是,这个问题

    • 是否有可能在这个答案中提供等效的内容,但在TypeScript中? 对 Java 生成器类进行子类化 这是迄今为止我对基类的了解: 和扩展类: 正如另一个线程提到的,由于上下文的变化,我将无法按此顺序构建客户: 我目前正在尝试使用泛型来解决此问题,但是在为我的 setter 方法返回 this 指针时遇到问题(类型 this 不能分配给类型 T)。有什么想法吗?

    • 我正试图用三个额外的日期(时间戳)字段扩展扩展扩展名(新闻),并希望在(新闻)的fluidtemplate中调用这些字段。 我已经连线到目前为止,我可以看到我的后端额外的字段,而无需选择一个外部类型-我已经相应地修改了ext_tables.php,并可以保存数据。 现在,我试图在我的新闻流模板中使用这些字段,在我的Partials/List/Item中使用以下代码。html-{newsItem.d