在其个人资料页面上显示数据库中的用户数据

时间:2018-03-05 19:40:35

标签: drupal

在Drupal 7中,是否可以在某些表中的每个用户的相应个人资料页面上显示数据库查询的结果?我需要在现有模块中以编程方式执行此操作。因此,查询的输入将是当前正在查看其个人资料的用户的ID。

仅显示查询数据 - 无管理,无编辑,无其他。

something along the lines of.. (image)

也可以通过_permission()挂钩配置块或字段或其他任何可能的内容,以便谁可以查看或不查看它。

我认为,因为这基本上只是一个没有额外自定义内容的查询,所以通过Drupal API会有一个简单的方法。

3 个答案:

答案 0 :(得分:1)

您可以为此创建自定义块并在当前用户配置文件中查看

$(document).on('keypress', '.abc', function(e){ 
       if (this.selectionStart == 0 && (e.which == 48 || e.which == 46) ){
          return false;
       }
    });

注意: - 此配置文件使用新块

进行扩展

答案 1 :(得分:0)

会有一些编码来获得你想要的东西,但是如果你只想要样式/显示“user”对象已经可用的数据,那么下面的#1将会这样做。

简单方法(#1): 1.创建一个视图并选择您需要显示的“用户”信息并为其指定路径。然后在您的子主题中使用正确的模板 - 查看代码片段。    https://www.drupal.org/forum/support/post-installation/2011-04-04/modify-the-default-profile-pagelayout

其他方式:

  1. 使用user-profile.tpl.php查看 https://api.drupal.org/api/drupal/modules%21user%21user-profile.tpl.php/7.x

  2. 在您的模块中,您需要致电并联系hook_user_view。

    https://api.drupal.org/api/drupal/modules%21user%21user.api.php/function/hook_user_view/7.x

答案 2 :(得分:0)

在这里,您从数据库中获取用户配置文件数据,然后按照

进行操作
function modulename_menu() {
    $items['user-data'] = array(
    'title' => 'User data',
    'page callback' => 'user_data',
    'access callback' => ('user_is_logged_in'),
    '#type' => MENU_NORMAL_ITEM, 
  ); 
  return $items;    
}

function user_data(){
   global $user;
   $user_fields = user_load($user->uid);
   $output = "" //return those $user_fields values into table using theme('table',header,rows) 
   return $output; 
}

https://www.drupal.org/node/156863(用于创建表视图)

global $user;
$user_fields = user_load($user->uid);

$firstname = $user_fields->field_firstname['und']['0']['value'];
$lastname = $user_fields->field_lastname['und']['0']['value'];