如何在TYPO3中使用Extension Builder?

时间:2014-03-21 12:32:53

标签: php typo3 extbase typo3-extensions

所以,我需要在CMS中进行扩展,名为TYPO3。有关此扩展的一些信息:

  

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

     
      
  • 标题/说明
  •   
  • 文本
  •   
  • 最多3张图片(需要1张)
  •   
  • 列表视图的缩略图
  •   
  • 1 PDF文件
  •   
  • 发布日期
  •   
     

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

我以前从未使用过这个CMS,所以我读到了它并发现,我需要使用Extension Builder来创建这个扩展。所以,我已经下载并安装了它,并在TYPO3上为我的扩展注册了扩展密钥但是当我试图创建这个扩展时,我发现了很多问题和问题。其中一些我已经解决了,但有些问题仍然没有解决。我已经阅读了很多关于docs.typo3.org中的此扩展程序仍然没有找到答案。所以,这里有这样的问题:

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

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

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

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

  5.   

    日期" 2014-02-01"未被识别(格式" Y-m-d \ TH:i:sP")

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

    我是初级PHP开发人员,有2个月的开发经验(而且几乎所有时间我都使用过HTML,CSS和Wordpress),所以对我而言,我自己很难解决这些问题.I&#39已经花了一周的时间来创建这个小扩展并没有成功,所以你的帮助,建议和我的问题的答案将对我非常有用:)

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

1 个答案:

答案 0 :(得分:9)

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

正如你已经发现的那样:Ext。 builder只创建一个'框架',您可以使用它来为您的ext添加额外的功能。 分机builder使用extbase和fluid创建扩展。首先,要了解extabse和流体是如何工作的。重要的是要知道extbase是代码的“框架”,流体是模板引擎。

Extbase使用oop方法,因此请阅读面向对象编程的内容。 此外,Extbase使用模型/视图/控制器(谷歌)和CRUD(创建读取更新删除) 知道了这一点,然后回头查看你的分机,你会发现确实有这样的目的:   - 课程/控制器   - Classed / Domain / Model   - 资源/私人/模板(视图)

您的模型将定义您的“数据”。你的分机中的每个对象。将有自己的模型。

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

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

控制器将处理数据流:意味着如果你问他,它是控制器会给你所有的新闻稿,并将它发送到你的视图(模板) 它会在对象中提供此信息。 如果您的控制器例如发出:$ pressreleases (将使用ex:$ this-> view-> assign('pressreleases',$ pressreleases); 尝试在列表模板中添加{pressreleases},您将获得一份很好的新闻发布对象列表和属性。

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

通过这种方式,您通常可以了解extabse如何工作,如何获取数据(模型)如何从数据库(控制器和存储库)中检索它以及它如何在前端显示(带流体的模板)

你的第三个问题: 如果您知道PDF的存储位置(通常在uploads / tx_yourextname /中),并且如果从模板中获取模型中的属性(请记住调试),您将看到pdf名称存储在DB中并作为属性提供。 对于ex(如果您的对象在show视图中称为pressrelease),您可以使用流体中的{pressrelease.pdf}来检索PDF名称。 把它放在一个atag:src ='uploads / tx_yourext / {pressrelease.pdf} ...会给你一个下载链接。

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

最后: 您的(前端)插件在ext_localconf.php&中定义。 ext_tables.php文件 基本上你可以在每个TYPO3插件中添加多个字体结束插件。但在你的情况下,只有1个就足够了:1将处理列表并显示请求。

所以,好吧,我改变了我的勇敢朋友。我希望你能理解我写的一些东西,你会发现使用TYPO3会很高兴(只需给它一个月或452,这是一个陡峭但有益的学习曲​​线)