use*_*998 2 php typo3 extbase typo3-extensions
所以,我需要在CMS中进行扩展,称为TYPO3.有关此扩展的一些信息:
"对于一个新的TYPO3 6.1网站,我们需要一个扩展(基于ExtBase/Fluid)的新闻稿,其中应包含:
- 标题/说明
- 文本
- 最多3张图像(需要1张)
- 列表视图的缩略图
- 1个PDF文件
- 发布日期
目前实际上没有设计细节视图,因此没有指向细节视图的链接.所以,现在请专注于前端列表视图."
我之前从未使用过这个CMS,所以我读到了它并发现,我需要使用Extension Builder来创建这个扩展.所以,我已经下载并安装了它,并在TYPO3网站上为我的扩展注册了扩展密钥.但是当我试图创建此扩展,我发现了很多问题和他们的questions.Some我已经解决了,但仍有部分unsolved.I've读取的信息吨关于这个扩展的docs.typo3.org和仍然没有找到答案.所以,这里有这样的问题:
我可以在一个模块中添加所有这些字段,还是应该为每个字段创建自己的模块?
我知道,我需要添加前端插件,用于在网站和后端模块上显示此扩展,以便在管理面板中显示此扩展以进行编辑.我无法理解确切的插件和应该添加的确切模块以及我在哪里可以找到它?我需要使我的扩展完全可编辑,当然,在后端和前端我需要只有我在后端添加的结果,没有任何编辑机会(在我的情况下,它应该是标题,文本,图像,PDF文件和日期,因为我写在这个问题的顶部).所以在结果我应该能够添加,编辑,删除等管理面板和网站上的这个主题我和所有网站的客人应该只能看到它.
在Extension Builder中仍然没有实现下载文件的功能,所以,据我所知,我需要自己将这个机会添加到我的扩展中,但我不知道应该添加什么样的代码以及确切的文件.
我也有一些日期格式的问题.当我尝试在日期字段中添加一些日期时,我得到以下消息:
未识别日期"2014-02-01"(格式为"Ymd\TH:i:sP")
我试图在扩展文件中找到一些日期格式,但我没有成功.
我是初级PHP开发人员,有2个月的开发经验(几乎所有时间我都使用过HTML,CSS和Wordpress),所以对我来说,我自己很难解决这个问题.我已经花了一周的时间来创建这个小扩展并没有成功,所以你的帮助,建议和我的问题的答案将对我非常有用:)
提前谢谢,抱歉我的英语不好.
我第一次看到你的帖子时感到很惊讶,第二次我感到很遗憾,第三次我想:"这家伙真是太勇敢了!" 那是我决定帮助你的时候
正如你已经发现的那样:Ext.构建器仅创建一个"框架",您可以使用该框架为ext添加额外的功能.分机 builder使用extbase和fluid创建扩展.首先,要了解extabse和流体是如何工作的.重要的是要知道extbase是代码的"框架",流体是模板引擎.
Extbase使用oop方法,因此请阅读面向对象编程的内容.此外,Extbase使用模型/视图/控制器(google it)和CRUD(创建读取更新删除)了解这一点,然后回顾你的ext,你会看到确实有类定义的类: - Classes/Controller - Classed /域/模型 - 资源/私有/模板(视图)
您的模型将定义您的"数据".你的分机中的每个对象.将有自己的模型.
你的第一个问题:"我可以在一个模块中添加所有这些字段,还是应该为每个字段创建自己的模块?"是的,所有这些"字段"属于同一模型:新闻稿.
您还需要一个能够处理模型所有请求的控制器:创建新的新闻稿,读取(或列出/显示),更新或删除它.控制器如何从数据库中获取数据?使用所谓的存储库,可以在这里阅读:http: //blog.typoplanet.de/2010/01/27/the-repository-and-query-object-of-extbase/
控制器将处理数据流:这意味着如果您询问它,它将为您提供所有新闻稿的控制器,并将其发送到您的视图(模板)它将在对象中提供此信息.如果您的控制器例如发出:$ pressreleases(将完成ex:$ this-> view-> assign('pressreleases',$ pressreleases);尝试在列表模板中添加{pressreleases},您将得到一个你的pressrelease对象的好列表和那里的属性.
一旦理解了这一点,您就可以从对象中获取所有信息,并使用流体在视图中使用它. 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} ...会给你一个下载链接.
4:它确切地说出了它所说的:你给出的日期形成为yyyy-mm-dd,但它需要格式为Ymd\TH:i:sP.可能是因为您的属性'发布日期'是DateTime类型,而不是Date这是一个常见问题,请查看stackOverflow中的答案(s)
最后:你的(前端)插件在你的ext_localconf.php和ext_tables.php文件中定义.基本上你可以在每个TYPO3插件中添加多个字体结束插件.但在你的情况下,只有1就足够了:1将处理列表并显示请求.
所以我改变了我勇敢的朋友.我希望你能理解我所写的一些内容,你会发现使用TYPO3会感到高兴(只需给它一个月或452,这是一个陡峭但有益的学习曲线)