开发者

Drupal 7: how to add template file to /node/add/content-type

In Drupal 7.

I want to themming /node/add/content-type by template file as page--node--add--content-type.tpl.php.

Please help me开发者_开发百科.


You need to use

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

instead of

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

underscore(_) instead of dash(-)


You will need to add the template as a suggestion in a preprocess function or you can create a custom theme function for the form, that will use the desired template. This is much similar to how it was done in Drupal 6, only you can do form_alters in your theme now.


you can add this function to your template.php: you can print_r() your form and see what are the fields.

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);      
}


You are adding tpl file for node form. For this you have to define tpl file name in template.php under your theme.

  1. First create your_theme_name_theme()
  2. Print content on tpl form.

Example: In below example contact_site_form is the form id of content type.

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',
  );
}

now create a file contact-site-form.tpl.php in your path location as specify above.

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

You can render each element separately in given method.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜