2010-04-18 3 views
2

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

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

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

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

+1

фактически понял, что $ содержание не было то, что я должен смотри. Массив $ node также передается и может использоваться так же, как $ form используется в форме. Теперь я должен выяснить, как определить, является ли пользователь администратором или нет. – bert

+0

Что вы даже пытаетесь сделать? – Kevin

+0

Определили ли вы роль администратора и назначили ему пользователей, или просто пытаетесь определить, является ли пользователь вашим администратором по умолчанию, который вы создали во время процесса установки? – flamingLogos

ответ

0

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

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

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

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

global $user; 
var_dump($user); 

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

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

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

+0

оба отличные ответы! – bert