Модуль Drupal изменить вид или узел

Я использовал hook_alter для изменения форм в пользовательском модуле PHP. Я начал использовать тот же подход, модифицируя страницу результатов формы "добавление узла". Однако эта страница не является формой, поэтому у меня нет идентификатора формы для подключения. На самом деле он содержит форму входа в систему, но не содержит элементов, которые я ищу.

Затем я клонировал файл node.tpl.php и назвал его node-my-content-type.tpl.php. Если я добавлю "hello world" на эту страницу, фраза отобразится вверху, поэтому я знаю, что она работает.

Тем не менее, здесь весь мой контент, похоже, сведен в одну строку с именем $ content, поэтому манипулировать этим становится очень сложно.

Какой подход я должен использовать в этой ситуации?

2 ответа

Решение

Учетная запись администратора по умолчанию всегда имеет uid 1 в таблице пользователей, поэтому, чтобы сделать что-то для всех, кроме администратора, вы можете сделать это:

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

if ($user->uid != 1) {
  do something here...
}

Вы можете определить свойства текущего пользователя, выполнив:

global $user;
var_dump($user);

Это покажет вам ваш аккаунт. Так что если вы хотите ограничить что-то по роли, вы должны сделать:

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

Но я думаю, что вы бы лучше подходили для использования CCK и Content Permissions для управления видимостью на уровне полей, как это.

Другие вопросы по тегам