Forms Drupal自定义表单排列/放置

Forms Drupal自定义表单排列/放置,forms,drupal,styling,Forms,Drupal,Styling,我刚开始使用Drupal,但我对如何自定义“放置”所有表单元素一无所知。我通常有很多东西,比如这另一个家伙的东西,所以位置和美学是必须的: Drupal默认的论坛呈现方式(一个长的水平列,有很多空格)对于我来说是不可接受的。我一直在看Drupal论坛,其他几个人都有同样的问题。主要的方法似乎是返回一个长串的html和php控件——对于我的表单来说,这太疯狂了!最简单、最干净的解决方案是什么 有没有一种方法,像ASP.NET中的page.aspx/page.aspx.cs一样,所有标记和控件都在

我刚开始使用Drupal,但我对如何自定义“放置”所有表单元素一无所知。我通常有很多东西,比如这另一个家伙的东西,所以位置和美学是必须的:

Drupal默认的论坛呈现方式(一个长的水平列,有很多空格)对于我来说是不可接受的。我一直在看Drupal论坛,其他几个人都有同样的问题。主要的方法似乎是返回一个长串的html和php控件——对于我的表单来说,这太疯狂了!最简单、最干净的解决方案是什么


有没有一种方法,像ASP.NET中的page.aspx/page.aspx.cs一样,所有标记和控件都在一个文件中,代码在另一个文件中?或者我可以用占位符将所有表单标记放在一个文件中,在代码中,它告诉Drupal在其占位符中呈现每个表单元素?

我对windows了解不多,因此我无法真正理解您所做的.NET技术示例,但据我所知,您希望表单的每个字段都作为变量传递到页面模板中,然后能够将它们放在PHP模板中

…如果是这种情况,那么Drupal的行为就不是这样,或者更准确地说,它在表单中的行为就不是这样。表单以HTML的形式到达页面模板,您必须使用CSS根据需要对其进行格式化。HTML的结构非常好,每个字段都有自己的
和一些方便的类,使主题制作更加容易。如果这还不够,为了满足您的需求,您可以使用一系列钩子干预预先生成表单的过程

事实上,Drupal在表单创建、操作、验证和提交方面有一个非常具体的解决方案。对于新手来说,这听起来太复杂了,但FAPI确实是Drupal高度模块化设计的关键元素

您可能会在本周早些时候看到这一点,因为这可能有助于您了解FAPI系统的核心工作原理。如果您是Drupal领域的新手,我建议您花一些时间阅读文档,尤其是和。Drupal需要对其内部工作有相当多的了解,才能成为一个可供开发的敏捷平台,但投资于“研究”的结果——依我看——非常值得付出努力

另一方面:如果您正努力从头开始使用表单,那么您可能会有兴趣查看(虽然不能满足所有需求,但它是一个非常常用的工具)


嗯,欢迎来到复杂但回报丰厚的Drupal世界!:)

我对windows了解不多,因此我无法真正理解您所做的.NET Technology示例,但据我所知,您希望表单的每个字段都作为变量传递到页面模板中,然后能够将它们放在PHP模板中

…如果是这种情况,那么Drupal的行为就不是这样,或者更准确地说,它在表单中的行为就不是这样。表单以HTML的形式到达页面模板,您必须使用CSS根据需要对其进行格式化。HTML的结构非常好,每个字段都有自己的
和一些方便的类,使主题制作更加容易。如果这还不够,为了满足您的需求,您可以使用一系列钩子干预预先生成表单的过程

事实上,Drupal在表单创建、操作、验证和提交方面有一个非常具体的解决方案。对于新手来说,这听起来太复杂了,但FAPI确实是Drupal高度模块化设计的关键元素

您可能会在本周早些时候看到这一点,因为这可能有助于您了解FAPI系统的核心工作原理。如果您是Drupal领域的新手,我建议您花一些时间阅读文档,尤其是和。Drupal需要对其内部工作有相当多的了解,才能成为一个可供开发的敏捷平台,但投资于“研究”的结果——依我看——非常值得付出努力

另一方面:如果您正努力从头开始使用表单,那么您可能会有兴趣查看(虽然不能满足所有需求,但它是一个非常常用的工具)

嗯,欢迎来到复杂但回报丰厚的Drupal世界!:)

(如mac所述),表单API确保表单元素以一致的格式输出:

<div id="ELEMENT-ID" class="form-item">
  <label> ... </label>
  <input type="INPUT TYPE" />
  <div class="description"> ... </div>
</div>

... 
... 
。。所以,如果你想创建一个特定的布局,它通常只是一个应用相关CSS的例子

您可以通过限制“.form item”类的宽度并应用“float:left”来实现上面示例中的布局。不符合规则的元素始终可以单独设置样式。

(如mac所述),表单API确保表单元素使用一致的格式输出:

<div id="ELEMENT-ID" class="form-item">
  <label> ... </label>
  <input type="INPUT TYPE" />
  <div class="description"> ... </div>
</div>

... 
... 
。。所以,如果你想创建一个特定的布局,它通常只是一个应用相关CSS的例子


您可以通过限制“.form item”类的宽度并应用“float:left”来实现上面示例中的布局。不符合规则的元素总是可以单独设置样式。

顺便说一句,了解Drupal的好地方是freenode IRC。。有一个叫做#drupal support的频道非常适合这类问题。顺便说一句,了解drupal的好地方是freenode IRC。。有一个叫做#drupal support的频道,非常适合这类问题。