Drupal 7 开发内部培训资料, 分头诗人

我想用panel布局用户修改密码页(user/*/edit),如何做?

赞成!
0
否决!

各位大侠好,我想用panel布局用户修改密码页(user/*/edit),但是我在panel里新建不了系统已存在的页面...我现在想到的是在panel里新建一个user-edit页面,然后怎么把user/*/edit里的表单放在user-edit里面呢?

4 个回答

赞成!
0
否决!

我不太建议Panel 修改密码用户页,我比较建议拷贝用户模板文件到 正在使用的模板下方。然后对里面的结构进行修改。

1, 在 modules\user 里面找到下面几个文件:

user-picture.tpl.php

user-profile.tpl.php

user-profile-category.tpl.php

user-profile-item.tpl.php

拷贝到当前模板下方。

2,打开user-profile.tpl.php

里面默认代码如下:

1
2
3
<div class="profile"<?php print $attributes; ?>>
  <?php print render($user_profile); ?>
</div>

我们可以把他修改成如下方式:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<div class="profile"<?php print $attributes; ?>>
<div class="usersubheader clearfix"><h1>基本资料</h1>
<?php if(isset($user_profile['flags'])):?><?php print render($user_profile['flags']['friend']['#markup']);?>
<?php endif;?><?php if(isset($user_profile['privatemsg_send_new_message'])):?>
<?php print render($user_profile['privatemsg_send_new_message']);?><?php endif;?>
        <?php if(isset($user_profile['summary']['blog'])):?>
        <?php print render($user_profile['summary']['blog']);?>
        <?php endif;?>
        <?php if($user->uid == $elements['#account']->uid):?>
        <?php print l(t('Edit Profile'), 'user/'.$elements['#account']->uid.'/edit', array(
       'attributes' => array('title' => t('Edit Profile'), 'class' => array('edit-profile')))); ?>
        <?php endif;?></div>
<div id="user-info-container" class="clearfix">
   <div class="user-header-left">
     <div class="gravatar"><?php print render($user_profile['user_picture']);?>
        <div class="reputation"><?php if(isset($user_profile['userpoints'])):?>
  <?php print $user_profile['userpoints']['list']['#items'][0];?><?php endif;?></div>
     </div>
      <div class="data">     
        <?php if(isset($user_profile['field_nickname'])):?>
  <p><strong>昵称:</strong><?php print render($user_profile['field_nickname']);?></p>
  <?php endif;?>
        <?php if(isset($user_profile['field_realname'])):?>
  <p><strong>真实姓名:</strong><?php print render($user_profile['field_realname']);?></p>
  <?php endif;?>
        <?php if(isset($user_profile['field_birthday'])):?>
  <p><strong>生日:</strong><?php print render($user_profile['field_birthday']);?></p>
  <?php endif;?>
        <?php if(isset($user_profile['field_gender'])):?>
  <p><strong>性别:</strong><?php print render($user_profile['field_gender']);?></p>
  <?php endif;?>
        <?php if(isset($user_profile['field_city'])):?>
  <p><strong>所在城市:</strong><?php print render($user_profile['field_city']);?></p>
  <?php endif;?>
        <?php if(isset($user_profile['field_qq'])):?>
  <p><strong>QQ:</strong><?php print render($user_profile['field_qq']);?></p>
  <?php endif;?>
        <?php if(isset($user_profile['field_msn'])):?>
  <p><strong>MSN:</strong><?php print render($user_profile['field_msn']);?></p>
  <?php endif;?>
        <?php if(isset($user_profile['field_address'])):?>
  <p><strong>地址:</strong><?php print render($user_profile['field_address']);?></p>
  <?php endif;?>
        <?php if(isset($user_profile['summary']['member_for'])):?>
  <?php print render($user_profile['summary']['member_for']);?>
  <?php endif;?>      
      </div>
    </div>
    <div class="user-about-me note">
<?php print render($user_profile['field_mydesc']);?></div>
  </div>
        <div class="badges">
  <?php print render($user_profile['user_badges']);?></div>
</div>

这样就可以实现改用户模板了,如本站的用户效果

赞成!
0
否决!

没怎么看明白...我是想把 user/*/edit 页里面的 修改密码和资料form (user_profile_form ??) 在其他页面打印出来...比如在自定义的userinformation页打印出这个form,在这个页用户就可以修改自己的信息了..

赞成!
0
否决!

admin/structure/pages

一图胜万语,page自动提供了许多常用路径的覆写, 当然也支持覆写其他已有路径,这个需要高级ctools编程

赞成!
0
否决!

谢谢~~但是我的page里怎么没有你那图显示的user_edit  ,  我的只有node_edit . node_view . search-node . search-user .  term_view . user_view...是跟Drupal 7 的细分版本有关吗? 我的是 D7.13