2

クリーン URL を使用して GET 値を受け入れる必要がある drupal ページ (コンテンツ タイプ ページ) があります。

php コード入力形式を使用して、次のコードをページ本文に入れます。

<?php
  $uid = $_GET['uid'];
  $user = user_load($uid);
  print $user->name;
?>

次のリンクhttp://www.example.com/mypath/?uid=5により、ユーザー 5 の名前が表示されます。偉大な。

私の質問は次のとおりです: http://www.example.com/mypath/5にアクセスしても同じ結果が得られるように、クリーンな URL を使用してこれを実現できますか? (ビューで引数を使用するのと同様)

4

3 に答える 3

2

モジュールを使用してメニューシステムで要求したことをhook_menu実行できますが、その一部が名前であるエイリアスを作成することはできません。エイリアス全体が名前であるため、そこから情報を抽出することはできません。あなたを使用hook_menuすると、これを行うことができます:

function my_module_menu() {
  $items = array();

  $items['path/%user'] = array(
    'title' => 'Title',
    'page callback' => 'callback',
    'page arguments' => array(1),
    'access callback' => '...',
    'access arguments' => array(...),
  );

  return $items;
}

次に、コールバック関数で、uid に対応するパスに値または引数 1 が含まれます (実際には、 のためにロードされたユーザー オブジェクトになります%user)。

于 2010-04-14T18:25:14.037 に答える
2

はい。$_GET の代わりに arg() を使用する

arg() はデフォルトで $_GET['q'] を使用するため、結果を返す前にエイリアスを効果的に変換することに注意してください。したがって、アクセスしようとしているパラメーターが別の位置にある可能性があります。

たとえば、パス myalias/5 は taxonomy/term/5 に変換される場合があります。この場合、arg(2) は 5 です。

Drupal arg() 関数の詳細については、http://api.drupal.org/api/function/arg/6を参照してください。

于 2010-04-15T04:28:29.227 に答える
0

ビューを使用してこれらのページを組み立てる場合、その部分は URL で提供される引数として UID を指定することで簡単に行うことができます。

于 2010-04-14T19:22:27.200 に答える