2

カスタム PHP モジュールのフォームを変更するために hook_alter を使用しています。「ノード追加」フォームの結果ページを変更するのと同じアプローチを取り始めました。ただし、このページはフォームではないため、フックするフォーム ID がありません。実際にはログインフォームが含まれていますが、探している要素が含まれていません。

次に、node.tpl.php ファイルのクローンを作成し、node-my-content-type.tpl.php という名前にしました。このページに「hello world」を追加すると、そのフレーズが上部に表示されるので、機能していることがわかります。

ただし、ここではすべてのコンテンツが $content という単一の文字列にフラット化されているように見えるため、これを操作するのは非常に困難です。

この状況では、どのようなアプローチを使用する必要がありますか?

4

2 に答える 2

1

次のようにして、現在のユーザーのプロパティを特定できます。

global $user;
var_dump($user);

それはあなたのアカウントを表示します。したがって、役割によって何かを制限したい場合は、次のようにします。

if (in_array('administrator', $user->roles)) {
  // code
}

しかし、このようにフィールド レベルの可視性を制御するには、CCK とコンテンツ パーミッションを使用する方がはるかに適していると思います。

于 2010-04-18T17:08:16.697 に答える
0

デフォルトの管理者アカウントのユーザー テーブルの uid は常に 1 であるため、管理者以外の全員に対して何かを行うには、次のようにします。

// Bring the $user object into scope
global $user;

if ($user->uid != 1) {
  do something here...
}
于 2010-04-18T21:05:35.300 に答える