请教大家学习Drupal的方法

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
小明's picture

你好,如果项目是这样的:http://gcb.9s77.com/,像这个单页面站,的最下面有一个随屏滚动的提交表单,如果这个表单部分我想用http://drupal.org/project/webform这个模块做。

我想问的是,如果这样一个没有用过的模块,我们一般从什么文档看起呢?

这个模块目录下的\templates这个文件夹里的文件肯定是要覆写的吧?

这个里的webform-form.tpl.php文件上的说明上写的“This file may be renamed "webform-form-[nid].tpl.php" to target a specific”这个-[nid],对于这个站来说就是front吧?这里用一个减号就可以了?不是要两个减号吗。

这个模板根目录下的webform.api.php文件里就是要被覆写的hook方法吧?

这些方法都是干什么的肯定有个API文档要说明吧?

还有就是比如我在这个form里有个姓名的项目,定义为name。这样,在模板覆写里肯定有个项目是这里这个name我要怎么输出?我在哪个文档里可以找到?

还有这个form表单我要action到哪个去?

一个模块的API文档一般是放哪个页面里?

谢谢了。

Comments

Webform更适用于node吧? 如果您想把一个form

rli's picture

Webform更适用于node吧?

如果您想把一个form放在一个block里,然后再把这个block float在页面底端, webform未免太复杂了, 因为它会是一个node, 很难放进block。

我宁愿写一个hook_block, 然后用form API把定义一个form放进去。这样可以自己处理提交的数据。然后您就可以愿意把它放哪就放哪了。

只是个人理解。

仅供参考。

webform支持block

waveer's picture

webform支持block的,在设置里,最下面的一个闭合的fieldset选项卡里面,有可以把webform激活为block的选项。这样你就可以随便放了

对form api熟的话,自己写也行

覆写什么的,没做过,就不太清楚了

code is poetry

谢谢,才看到这个选项。以后可以试试。

rli's picture

谢谢,才看到这个选项。以后可以试试。

学习和使用Drupal的方法

Lugir's picture

对于不熟悉的模块,使用方法和配置方式说明通常会在模块目录下的README文件中找到,对于相对复杂的模块,在模块项目页面(drupal.org/project/[module_name])中,或者是右边栏通常能找到 Read Documentation 链接,会包含较详细的使用(或开发)文档

对于你的需求,建议可以使用 webform 和 webform Block(drupal.org/project/webformblock) 模块,如此一来将构造好的表单区块放置到网站首页的区域中即可。(无需覆写模板,但应该会根据需求调整CSS)

另外因为你之前是Java背景,所以有一点可以向你提一下会比较好,Drupal 的模块与 Java 中的类包是不同的,Java中通常会导入一些类包,然后在这些类的基础上进行开发,类包自身并不一定具备一定的业务流程。Drupal的模块,像Webform这类更多是面向使用者,目的就是让站点建设人员简单配置即可实现在线表单的功能。
在你的这个需求中,不需要理会API或者是hook,也不用处理form的action,通过创建Webform节点,生成Webform区块,将Webform区块放置到首页,调整CSS即可完成。提交和存储的功能都会由Webform模块自行处理。

有关Drupal模块的API函数,对于核心的模块和部分常用开发模块,可以通过 api.drupal.org 找到API的详细文件,可扩展性强的其它模块,会在其官方网站提供自己的API,这些信息都可以在模块项目页面找得到。有的模块也有没有API文档的情况,这时候则可能自行查看模块的 .module, inc文件来寻找可用API了

对于你前面提到的那个站点,用Drupal来实现大概并不需要写一行PHP代码,可多是样式上的调整。使用Drupal建站的整体思路可能在你接触一段时间后会有所了解,第三方模块能够为你节省很大的工作量,从“开发”的角度来建站,势必会增加很多的工作量。

以上希望能帮到你和有同样疑惑的朋友 :D

Drupal社区团队

Life is a gift !

小明's picture

谢谢您,您的回答对我帮助很大,这几天在大家的帮助下,感觉对Drupal系统有了感觉了,明白了他的流程。感觉这东西水挺深啊,一个不会代码的人可以用,但也可以为二次开发提供大量的接口。现在兴趣越来越大了。

小明's picture

谢谢,点啊点啊的,现在那个调查表现在怎么也不能显示了。
Show complete form in teaser 这个选项里的“in teaser”是啥意思?

teaser 其实就是摘要显示,也是一个view

alfababy's picture

teaser 其实就是摘要显示,也是一个view mode。这个选项其实就是在摘要显示的模式下是不是要显示全部的表单。

小明's picture

不知道怎么搞的。点啊点的,现在一打开我自己在服务器上架的DRUPAL,就报“页面未找到

无法找到请求的页面 "/" 。 ”
只有首页这样的,别的页面正常。一般会是啥问题?
这个报错信息会是哪个文件打出来呢?

检查首页路径设置

Lugir's picture

只有首页显示“页面未找到”错误,可以检查一下站点设置里面指定的首页路径。
可通过浏览器直接访问设置的路径检查是否可以打开,或者将首页设置成 node,检查是否恢复正常 :D

Drupal社区团队

Life is a gift !

我把webform的表单里的高级设置中的 Availabl

小明's picture

我把webform的表单里的高级设置中的

Available as block 选项选上了,想让他用为一个区块,然后我在panels中的一个区块添加内容,把这个webform模块做的表单区块选上了。
再浏览这个panels做的页面时就出现错误:
•Warning: Attempt to assign property of non-object 在 ctools_block_content_type_render() (行 152 在 C:\drupal\sites\all\modules\ctools\plugins\content_types\block\block.inc).
•Warning: Attempt to assign property of non-object 在 ctools_block_content_type_render() (行 153 在 C:\drupal\sites\all\modules\ctools\plugins\content_types\block\block.inc).
•Warning: Attempt to assign property of non-object 在 ctools_block_content_type_render() (行 162 在 C:\drupal\sites\all\modules\ctools\plugins\content_types\block\block.inc).
•Warning: Attempt to assign property of non-object 在 ctools_block_content_type_render() (行 166 在 C:\drupal\sites\all\modules\ctools\plugins\content_types\block\block.inc).
•Warning: Attempt to assign property of non-object 在 ctools_content_render() (行 289 在 C:\drupal\sites\all\modules\ctools\includes\content.inc).
•Warning: Attempt to assign property of non-object 在 ctools_content_render() (行 293 在 C:\drupal\sites\all\modules\ctools\includes\content.inc).

请问Webform与panels一起使用应该不冲突吧?