Обрати внимание, что ставишь везде решётку перед actions, а это не свойство - это элемент формы типа container (кажется так).
Вообще-то сработали бы и способы типа unset($form['actions']['submit']) - как советовали выше. Просто обрати внимание на знак решётки перед actions.
Обрати внимание, что ставишь везде решётку перед actions
Да я всяко пробовал. Не работает.
До меня только щас дошло, может я не туда копаю. Мне надо чтобы юзер/админ/инопланетяне не могли ничего поменять на сайте, ни создать/сохранить ноду, ни сохранить настройки в админке. Но чтобы смотреть могли.
Обрати внимание, что ставишь везде решётку перед actions
Да я всяко пробовал. Не работает.
До меня только щас дошло, может я не туда копаю. Мне надо чтобы юзер/админ/инопланетяне не могли ничего поменять на сайте, ни создать/сохранить ноду, ни сохранить настройки в админке. Но чтобы смотреть могли.
вот основной код:
<?php
function Ololo_form_alter(&$form, &$form_state, $form_id) {
$form['#actions']['submit']['#submit'][] = '';
}
?>
Не пашет.
Как такую хрень вообще можно было написать? Если хочешь что то сделать, то изучи для начала. Из этого кода видно, что Form API ты совершенно не знаешь, да и с php напряги, раз решил в массив еще один элемент добавить зачем то.
а так тебе по делу сказали
function Ololo_form_alter(&$form, &$form_state, $form_id){
$form['actions']['#access'] = FALSE;
//для настроек темы $form['admin_theme']['actions']['#access'] = FALSE; }
не факт что на всех формах кнопки будут по "стандартному" пути..
Тогда надо рекурсивно по всему массиву формы проходиться и отключать элементы с типом "submit"...
Из этого кода видно, что Form API ты совершенно не знаешь, да и с php напряги, раз решил в массив еще один элемент добавить зачем то.
Я так $form['#actions']['submit']['#submit'][] = '' прописываю функции сабмита в своих формах, вот и подумал, что если затереть название функции, то они выключатся)) Только щас заметил что лишний элемент в массив добавлял.
А я и не спорю что фигово знаю пых и FAPI. Но писать модули мне это не мешает) Правда не особо сложные. Максимум что делал, это робокассу спаривал с CRMкой)
Мне просто срочно ночью понадобилась эта фигня, а спросить уже было не у кого)
"kv4" wrote:
Человек просто не специалист в PHP и Drupal.
В друпале то я шарю) Просто не на мега уровне (из-за пыха)))
"kv4" wrote:
Он больше специализируется в CSS фрэймворках.
Адский дев бранч)
Спасибо за рекламу, может кого заинтересует)
По сабжу... вроде работает, но не везде. Ну ясно дело, сабмиты по разному прописаны. В своих форма то убрать не проблема. В нодах (edit) почему-то, работают, в админке тоже, хотя в форме входа отключился. Короче думать надо.
Всем спасибо за помощь.
Хах, разобрались)
Код нужен был, что демонстрации сервиса.
Вот код, отрубания всех сабмитов, кроме формы входа, чтобы юзеры могли входить:
<?php function ololo_form_alter(&$form, &$form_state, $form_id) { if ($form_id != 'user_login') { hide($form['actions']['submit']); } } ?>
Почему я говорил что не работало. Оказываеться под рутовым админом, альтеры не имеет силу (почему хз), и все сабмиты на месте. Под другими акками и анонимусом всё ок.
Комментарии
Т.е. удалить кнопки отправки формы? Попробуйте unset($form['#actions']['submit'])
Ни unset ни hide не работают. Мне кажется тут какое-то условие задать надо для id формы.
unset($form['actions']) должно сработать
Ну вот должно, а блин не работает(
upd
Проверил на всякий, на других сайта, та же петрушка(
Вот так, если если для всех кнопок форм ноды.
<?php function Ololo_form_alter(&$form, &$form_state, $form_id) {
$form['actions']['#access'] = FALSE;
} ?>
Или так для конкретной кнопки.
<?php function Ololo_form_alter(&$form, &$form_state, $form_id) {
$form['actions']['submit']['#access'] = FALSE;
} ?>
См. https://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/7#access
Обрати внимание, что ставишь везде решётку перед actions, а это не свойство - это элемент формы типа container (кажется так).
Вообще-то сработали бы и способы типа unset($form['actions']['submit']) - как советовали выше. Просто обрати внимание на знак решётки перед actions.
Да я всяко пробовал. Не работает.
До меня только щас дошло, может я не туда копаю. Мне надо чтобы юзер/админ/инопланетяне не могли ничего поменять на сайте, ни создать/сохранить ноду, ни сохранить настройки в админке. Но чтобы смотреть могли.
Так правами управляйте.
Как такую хрень вообще можно было написать? Если хочешь что то сделать, то изучи для начала. Из этого кода видно, что Form API ты совершенно не знаешь, да и с php напряги, раз решил в массив еще один элемент добавить зачем то.
а так тебе по делу сказали
$form['actions']['#access'] = FALSE;
//для настроек темы
$form['admin_theme']['actions']['#access'] = FALSE;
}
не факт что на всех формах кнопки будут по "стандартному" пути..
Тогда надо рекурсивно по всему массиву формы проходиться и отключать элементы с типом "submit"...
Человек просто не специалист в PHP и Drupal.
Он больше специализируется в CSS фрэймворках.
У каждого свой хлеб...
Я так $form['#actions']['submit']['#submit'][] = '' прописываю функции сабмита в своих формах, вот и подумал, что если затереть название функции, то они выключатся)) Только щас заметил что лишний элемент в массив добавлял.
А я и не спорю что фигово знаю пых и FAPI. Но писать модули мне это не мешает) Правда не особо сложные. Максимум что делал, это робокассу спаривал с CRMкой)
Мне просто срочно ночью понадобилась эта фигня, а спросить уже было не у кого)
В друпале то я шарю) Просто не на мега уровне (из-за пыха)))
Адский дев бранч)
Спасибо за рекламу, может кого заинтересует)
По сабжу... вроде работает, но не везде. Ну ясно дело, сабмиты по разному прописаны. В своих форма то убрать не проблема. В нодах (edit) почему-то, работают, в админке тоже, хотя в форме входа отключился. Короче думать надо.
Всем спасибо за помощь.
Хах, разобрались)
Код нужен был, что демонстрации сервиса.
Вот код, отрубания всех сабмитов, кроме формы входа, чтобы юзеры могли входить:
<?php
function ololo_form_alter(&$form, &$form_state, $form_id) {
if ($form_id != 'user_login') {
hide($form['actions']['submit']);
}
}
?>
Почему я говорил что не работало. Оказываеться под рутовым админом, альтеры не имеет силу (почему хз), и все сабмиты на месте. Под другими акками и анонимусом всё ок.
откуда ты взял $form['#actions'] ?
такое ощущение, что у тебя какой то совершенно другой друпал
Извиняюсь, опечатка.
Кеш моросит как оказалось. Щас чищу его прям из БД.
Только не могу понять, как убрать кнопку сохранить и удалить в админке ноды.
что есть админка ноды? ты имеешь ввиду admin/content ?
node/edit
node/add
и еже с ними
В идеале вообще все "сохранить" повырубать бы.
я же писал уже
$form['actions']['#access']= FALSE;
}
В том то и дело, что не пашет.
Ладно спасибо. Пойду в магаз за Джеком... а то тут без бутылки...
ну тут уже значит не друпал виноват, надо карму что ли почистить - код то рабочий
Джеки, Джеки ты могуч... ты гоняешь стаи туч...
После 3 стакана я подумал: "А какого лешего я код, то в свою тему втыкаю, когда в seven надо".
Суть басни такова:
Отдыхайте чаще Господа!