Drupal 7 サイトがあり、プロファイル ユーザー (ログイン ユーザーではない) の役割に応じて、プロファイル ページ内にいくつかのフィールド コンテンツを出力したいと考えています。プロファイル所有者がロールautorを持っていない場合にのみ、特定のフィールドを表示する必要があります。
<?php
if (!in_array('autor', array_values($user->roles))) {
print drupal_render(field_view_field('profile2', $profile['main'], 'field_nombrecompleto1', 'value'));
}
else {print "yada yada";}
注: 問題のプロファイル フィールドは rofile2 フィールドであり、コア プロファイル フィールドではありません。
そのコードの何が問題なのですか? プロファイル所有者の役割に関係なく、いずれにしても問題のフィールドが出力されるためです。
私はこの他のコードを試しましたが、この場合、フィールドはどのような場合でも出力されません:
<?php
if (is_array($user->roles) &&
in_array('authenticated user', $user->roles) &&
!in_array('autor', $user->roles)) {
print drupal_render(field_view_field('profile2', $profile['main'], 'field_nombrecompleto1', 'value'));
}
?>