自定义模块中的Drupal user_hook

时间:2009-06-04 19:49:14

标签: drupal

修改download_count模块以包含有关下载文件的用户的信息。想要在用户的个人资料页面上显示此信息。

以下是代码:

function download_count_user($op, &$edit, &$account, $caterory = NULL) {
  if ($op == 'view') 
  {

   $result = db_query("SELECT filename FROM file_downloads_users WHERE user_id = %d", $account->uid);

   while ($file_array = db_fetch_object($result)) {
      $file_str .= $file->filename . '<br/>';
   }

   $items['downloads'] = array(
    'title' => t('Files'),
    'value' => $file_str,
        'class' => 'member'
    );
    return array(t('Downloads')=>$items);    
  }

}

不会给我任何错误,但也不会在“我的帐户”页面上显示任何内容。

2 个答案:

答案 0 :(得分:2)

您不想修改模块。 Drupal非常谨慎地构建,以避免破解核心或贡献。除非你当然要回补。

正确的方法是构建自己的自定义模块来执行此操作(这需要用户下载模块)并实现几乎完全正如您在此处所做的那样。

  1. 函数正在运行(模块启用,var_dump ing或krumo'ing导致输出?,缓存清除)
  2. 键入变量的方式适用于Drupal 5.x及以下版本。在D6中,您添加到$ account-&gt;内容。您使用的是哪个版本的drupal?
  3. 查看user_user()(在user.module中):

      $account->content['user_picture'] = array(
        '#value' => theme('user_picture', $account),
        '#weight' => -10,
      );
    

答案 1 :(得分:0)

 $account->content['summary']['file_downloads'] =  array(
      '#type' => 'user_profile_item',
      '#title' => t('File Downloads'),
      '#value' => $file_str,
      '#weight' => 1
    );