Drupal 7 无法呈现提交按钮

Drupal 7 无法呈现提交按钮,drupal-7,block,user-profile,panels,Drupal 7,Block,User Profile,Panels,我已经使用template.php和user-profile-form.php定制了编辑概要视图 除提交(和删除)按钮外,所有选项均正确显示。。 我使用的是自适应主题,我做了如下修改: template.php function adaptivetheme_theme(&$existing, $type, $theme, $path) { return array( 'user_profile_form' => array( 'template' =&

我已经使用template.php和user-profile-form.php定制了编辑概要视图 除提交(和删除)按钮外,所有选项均正确显示。。 我使用的是自适应主题,我做了如下修改:

template.php

function adaptivetheme_theme(&$existing, $type, $theme, $path) {

   return array(

    'user_profile_form' => array(
      'template' => 'templates/user-profile-form',
      'render element' => 'form',
    ),
   );
 }


function adaptivetheme_preprocess_user_profile_form(&$vars) {


  $vars['form']['account']['name']['#description'] = t('blabla');


  $vars['form']['submit']['#value'] = t('Save profile');
  $vars['form']['delete']['#value'] = t('Delete account');


  $vars['account'] = drupal_render($vars['form']['account']);
  $vars['theme_select'] = drupal_render($vars['form']['theme_select']);
  $vars['picture'] = drupal_render($vars['form']['picture']);
  $vars['signature_settings'] = drupal_render($vars['form']['signature_settings']);
  $vars['contact'] = drupal_render($vars['form']['contact']);
  $vars['timezone'] = drupal_render($vars['form']['timezone']);
  $vars['submit'] = drupal_render($vars['form']['submit']);
  $vars['delete'] = drupal_render($vars['form']['delete']);

}
然后在user-profile-form.tpl.php中:

<div id="user-profile-form">

<?php echo $account; ?>
<?php echo $timezone; ?>
<?php echo $submit; ?>
<?php echo $delete; ?>


</div>

帐户的编辑表单显示正确。我已尝试成功添加/删除变量(即$timezone),但缺少提交/删除。 我不知道怎么了。。 我试图更改变量“submit”和“delete”的名称,但仍然没有显示任何按钮。当然,我已经在每次需要时清除了缓存(而不是)。 我也没有隐藏按钮的JS。。 我通过面板中的自定义块渲染此表单:

<?
module_load_include('inc', 'user', 'user.pages');
global $user;
print drupal_render(drupal_get_form('user_profile_form', $user));
?>

面板可能有问题

任何想法都值得赞赏:)

阅读用Thx

埃尔文

我忘了“[行动]”:

“删除”按钮最初没有出现,因为它被称为“取消”,并且它的#访问参数被发送到FALSE。Thx DPM;)

现在的问题是,当我触发submit按钮时,表单不会被发送,它只是重新加载页面。如果我也能解决这个问题,我会更新。

我忘记了“[操作]”:

“删除”按钮最初没有出现,因为它被称为“取消”,并且它的#访问参数被发送到FALSE。Thx DPM;)


现在的问题是,当我触发submit按钮时,表单不会被发送,它只是重新加载页面。如果我也设法解决了这个问题,我将进行更新。

页面只是在重新加载,因为您忘记了呈现隐藏的表单元素。要在模板预处理中执行此操作,您可以使用以下内容:

    function THEME_preprocess_user_profile_form(&$variables) {

         $hidden = array();

     foreach(element_children($variables['form']) as $key)
         {
        $type = $variables['form'][$key]['#type'];

    if($type == "hidden" || $type == "token"){
        $hidden[] = $variables['form'][$key];
    }       
     }

    $variables['hidden'] = $hidden;

    //Dont forget to report your variables like you already did ...
    }
然后在模板文件中呈现$hidden变量

   <?php print render($hidden);?>


就这样

页面只是在重新加载,因为您忘记了呈现隐藏的表单元素。要在模板预处理中执行此操作,您可以使用以下内容:

    function THEME_preprocess_user_profile_form(&$variables) {

         $hidden = array();

     foreach(element_children($variables['form']) as $key)
         {
        $type = $variables['form'][$key]['#type'];

    if($type == "hidden" || $type == "token"){
        $hidden[] = $variables['form'][$key];
    }       
     }

    $variables['hidden'] = $hidden;

    //Dont forget to report your variables like you already did ...
    }
然后在模板文件中呈现$hidden变量

   <?php print render($hidden);?>

就这样