Поэтому я работаю над скрытием поля ввода, которое я позже планирую динамически загрузить с другими полями формы. Я создал небольшой модуль для помощи в этом процессе.
/**
* Implements hook_form_alter().
*/
function editorhide_form_alter(&$form,$form_id){
//form id = artist_node_form
//title id = edit-title label: edit-title
global $user;
if($form_id == 'artist_node_form'){
if(in_array('editor', $user->roles)){
drupal_add_js("$(document).ready(function(){
$('#edit-title').css('display','none;');});"
);
}
}
}
однако, глядя на рассматриваемый элемент, который нужно скрывать, он не идет никуда. Мой основной путь, который я принимаю, является :: Записан как "editor" (admin privilages) → Содержание → Исполнитель → "Изменить". В этот момент появляется световой блок (?) С полями для заполнения, чтобы человек мог добавлять контент. Что мне не хватает..?
EDIT: Исправлена пропавшая часть $ (document), но все же не скрывала это поле.
Img :: http://imgur.com/sP2OlNg
возможно, вы должны связать это событие динамически, в JQuery 1.x вы можете проверить его
if(in_array('editor', $user->roles)){
drupal_add_js("$(document).live("ready",function(){
$('#edit-title').css('display','none;');});"
);
}
или в jquery 2.x,
if(in_array('editor', $user->roles)){
drupal_add_js("$(document)bind('ready', function(){
$('#edit-title').css('display','none;');});"
);
}
Где у вас есть эта строка...
$('#edit-title').css('display','none;');
Попробуйте использовать jQuery "скрыть" способность...
$('#edit-title').hide();
Кроме того, способ CSS не работает, потому что у вас есть точка с запятой после "none". Не нужно быть там.