2

在 Drupal 7 中。

我想通过模板文件将 /node/add/content-type 设置为 page--node--add--content-type.tpl.php。

请帮我。

4

4 回答 4

3

你需要使用

page--node--add-- content_type .tpl.php

代替

page--node--add-- content-type .tpl.php

下划线(_)而不是破折号(-)

于 2014-04-04T17:38:18.213 回答
0

您正在为节点表单添加 tpl 文件。为此,您必须在您的主题下的 template.php 中定义 tpl 文件名。

  1. 首先创建 your_theme_name_theme()
  2. 在 tpl 表单上打印内容。

示例:在下面的示例中, contact_site_form是内容类型的表单 ID。

your_theme_name_theme() {
   $items['contact_site_form'] = array(
  'render element' => 'form',
  'path' => drupal_get_path('theme', 'your_theme_name') . '/templates',
  'template' => 'contact-site-form',
  );
}

现在在您的路径位置创建一个文件contact-site-form.tpl.php,如上所述。

<?php echo render($form['name']); ?>
<?php echo render($form['mail']); ?>
.
.
.
<?php print drupal_render_children($form); ?>

您可以在给定的方法中分别渲染每个元素。

于 2014-04-04T18:29:48.253 回答
0

您需要在预处理函数中添加模板作为建议,或者您可以为表单创建自定义主题函数,该函数将使用所需的模板。这与 Drupal 6 中的做法非常相似,只是您现在可以在主题中执行 form_alters。

于 2011-01-10T11:42:47.577 回答
0

您可以将此功能添加到您的 template.php:您可以 print_r() 您的表单并查看哪些字段。

function yourThemeName_form_yourFormID_alter(&$form, &$form_state, $form_id) {
  // Modification for the form with the given form ID goes here. For example, if
  // FORM_ID is "user_register_form" this code would run only on the user
  // registration form.
print_r($form);      
}
于 2013-01-07T07:21:55.303 回答