it-swarm-korea.com

현재 로그인 한 사용자가 소유 한 콘텐츠를 가져 오는 방법은 무엇입니까?

사용자는 한 노드의 소유자이며 로그인시 사용자를 자신의 유일한 소유 노드로 리디렉션하고 싶습니다.

로그인 한 사용자 만 알고있는 경우 어떻게 노드 콘텐츠를 얻을 수 있습니까?

5
Ek Kosmos

이것이 내가 한 방법입니다.

function MYHOOK_user_login(&$edit, $account) {
    global $user;
    $nid = db_query('SELECT nid FROM {node} WHERE uid = :uid', array(':uid' => $user->uid))->fetchField();
    drupal_goto('node/' . $nid);
}
3
Ek Kosmos

hook_user_login -> http://api.drupal.org/api/drupal/modules--user--user .api.php/function/hook_user_login/7 . 여기에서 사용자 ID (uid)로 노드 ID (nid)를 조회 한 다음 drupal_goto ( http://api.drupal.org/api/drupal/includes--common.inc/function/drupal_goto/7 )

더 많은 D6 솔루션으로 간주 될 수있는 로그인 양식에 hook_form_alter 를 사용하여 사용자 지정을 수행하는 옵션도 있습니다. 이러한 제안으로 질문이 해결되지 않는 경우 더 자세한 정보를 제공해야합니다.

2
DeeZone
$nid = db_query('SELECT nid FROM {node} WHERE uid = :uid AND type = :type', array(':uid' => $user->uid, ':type' => $node_type))->fetchField():

이것은 당신에게 nid를 얻을 것입니다.

2
Berdir

참고 :이 답변을 무시하십시오 (이유에 대한 설명 참조).


$nid = db_select('node', 'n')
  ->fields('n', array('nid'))
  ->condition('n.uid', $user->uid)
  ->range(0, 1)
  ->fetchField()

다른 제안은 확실히 유효하지만 'Drupal'방식이 더 많기 때문에 이런 방식으로하고 싶은 유혹이 있습니다. 안전을 위해 SQL 문에 제한을 두었습니다.

0
Chris Cohen