web-dev-qa-db-ja.com

ユーザーを表示するときに、コンテンツプロファイルを表示する

/ user/uidに移動すると、デフォルトで/ content/content-profileIDに移動します。これは、コンテンツプロファイルで使用されるノードタイパーです。

これを行うにはどうすればよいですか?

2
user788
function MYMODULE_user($op, &$edit, &$account, $category = NULL) {
  switch ($op) {
    case 'view':
      profile_load_profile($account);
      // Now $account will contains all profile data;
      // some code
      break;
    }
  }
}
1
dobeerman

Uidを指定してプロファイルnidを返す関数を作成しました。次に、hook_userに追加して、ビューのnode/profileIDにリダイレクトします。

function MY_MODULE_USER($op, &$edit, &$account, $category = NULL){
    switch ($op){
        case 'view':
            $profileNid = MY_MODULE_getProfileNidFromUid($account->uid);
            drupal_goto("node/" . $profileNid);
            break;
    }
}

function MY_MODULE_getProfileNidFromUid($uid){
    $sql = "SELECT nid FROM node WHERE TYPE =  'profile' AND uid =" . $uid;
    $profileNid = "";
    $dbResults = db_query($sql);

    while ($result = db_result($dbResults )) {
        $profileNid = $result;
    }
    return $profileNid;
}
0
Lucy