2012-01-10 3 views
2

DrupalサイトのメンバーのUIDに基づいてテーブルにレコードを追加しようとしています。私は各メンバーのページにあるフォームでこれをやっています。これが正しく動作するためには、mysqlクエリでUIDを使用する必要があります。これは、Drupalブロック内にaがあるページに含まれています。Drupal(Commons)にメンバーのUIDを表示するにはどうすればいいですか?

私が$ uid = $ user-> uidを使用する場合、それは管理者としての私のUIDになります。現在表示しているページのメンバーのUIDを入力する必要があります。

ここに私のコードの小さな抜粋です:

mysql_query("INSERT INTO profile_values (fid, uid, value) VALUES ('99','$uid', '$newcompany')"); 

は、私は、$ UIDを定義する必要があり、これは完璧に動作します!

答えて

2

ユーザページにいる場合は、現在のURLが何であるかは、user/%です(%はユーザのIDです)。

あなたが /文字によってURLスプリットの部分をつかむためのDrupalの arg() functionを使用することができますので、ユーザーIDこれを考慮して

// This if statement just checks that you're on a user page. 
if (arg(0) == 'user' && is_numeric(arg(1)) { 
    $uid = arg(1); 
} 

ベア心​​の中で上記ifはまた、このようなパスと一致しますuser/%/editと表示されているので、問題が発生する場合は、&& is_null(arg(2))を条件に追加してください。

+0

返信いただきありがとうございます。私はあなたの例をまだ試していませんが、それと同じようなものを考えました(それを行う最善の方法ではないかもしれませんが)。 私はこれを行いました: '// URLからユーザIDを取得 $ url = $ _SERVER ['REQUEST_URI']; $ array = explode( "/"、$ url); URLがtld /ディレクトリのdrupal-site/user/uid/edit – nitsuj

+1

であるため、 $ uid = $ array [3]; ' URLを有効にするために' arg() '関数を使用する方が安全でしょう後でエイリアスが...そのコードで作業を停止します。さもなければ 'arg'() '関数がしますが' $ _SERVER ['REQUEST_URI'] 'の代わりに' $ _GET ['q'] 'を使用します:) – Clive

関連する問題