[РЕШЕНО] Отключить все submit

Главные вкладки

Аватар пользователя whiesam whiesam 15 октября 2014 в 23:27

Надо выключить все сабмиты на сайте.
Пытался разно делать, вот основной код:

<?php
function Ololo_form_alter(&$form, &$form_state$form_id) {
 
$form['#actions']['submit']['#submit'][] = '';
}
?>

Не пашет.

Комментарии

Аватар пользователя sergeybelya sergeybelya 16 октября 2014 в 0:06

whiesam wrote:
Ни unset ни hide не работают. Мне кажется тут какое-то условие задать надо для id формы.

unset($form['actions']) должно сработать

Аватар пользователя whiesam whiesam 16 октября 2014 в 4:15

"sergeybelya" wrote:
должно сработать

Ну вот должно, а блин не работает(

upd
Проверил на всякий, на других сайта, та же петрушка(

Аватар пользователя kv4 kv4 16 октября 2014 в 5:04

Вот так, если если для всех кнопок форм ноды.

<?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.

Аватар пользователя whiesam whiesam 16 октября 2014 в 5:45

"kv4" wrote:
Обрати внимание, что ставишь везде решётку перед actions

Да я всяко пробовал. Не работает.
До меня только щас дошло, может я не туда копаю. Мне надо чтобы юзер/админ/инопланетяне не могли ничего поменять на сайте, ни создать/сохранить ноду, ни сохранить настройки в админке. Но чтобы смотреть могли.

Аватар пользователя sergeybelya sergeybelya 16 октября 2014 в 10:26

whiesam wrote:
"kv4" wrote:
Обрати внимание, что ставишь везде решётку перед actions

Да я всяко пробовал. Не работает.
До меня только щас дошло, может я не туда копаю. Мне надо чтобы юзер/админ/инопланетяне не могли ничего поменять на сайте, ни создать/сохранить ноду, ни сохранить настройки в админке. Но чтобы смотреть могли.

Так правами управляйте.

Аватар пользователя drupby drupby 16 октября 2014 в 11:00

"whiesam" wrote:
вот основной код:
<?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;
}

Аватар пользователя Orion76 Orion76 16 октября 2014 в 12:50

не факт что на всех формах кнопки будут по "стандартному" пути..
Тогда надо рекурсивно по всему массиву формы проходиться и отключать элементы с типом "submit"...

Аватар пользователя whiesam whiesam 16 октября 2014 в 18:09

"drupby" wrote:
Из этого кода видно, что Form API ты совершенно не знаешь, да и с php напряги, раз решил в массив еще один элемент добавить зачем то.

Я так $form['#actions']['submit']['#submit'][] = '' прописываю функции сабмита в своих формах, вот и подумал, что если затереть название функции, то они выключатся)) Только щас заметил что лишний элемент в массив добавлял.
А я и не спорю что фигово знаю пых и FAPI. Но писать модули мне это не мешает) Правда не особо сложные. Максимум что делал, это робокассу спаривал с CRMкой)
Мне просто срочно ночью понадобилась эта фигня, а спросить уже было не у кого)

"kv4" wrote:
Человек просто не специалист в PHP и Drupal.

В друпале то я шарю) Просто не на мега уровне (из-за пыха)))

"kv4" wrote:
Он больше специализируется в CSS фрэймворках.

Адский дев бранч)
Спасибо за рекламу, может кого заинтересует)

По сабжу... вроде работает, но не везде. Ну ясно дело, сабмиты по разному прописаны. В своих форма то убрать не проблема. В нодах (edit) почему-то, работают, в админке тоже, хотя в форме входа отключился. Короче думать надо.
Всем спасибо за помощь.

Аватар пользователя whiesam whiesam 16 октября 2014 в 19:36

Хах, разобрались)
Код нужен был, что демонстрации сервиса.
Вот код, отрубания всех сабмитов, кроме формы входа, чтобы юзеры могли входить:

<?php
function ololo_form_alter(&$form, &$form_state$form_id) {
    if (
$form_id != 'user_login') {
        
hide($form['actions']['submit']);
    }
}
?>

Почему я говорил что не работало. Оказываеться под рутовым админом, альтеры не имеет силу (почему хз), и все сабмиты на месте. Под другими акками и анонимусом всё ок.

Аватар пользователя drupby drupby 16 октября 2014 в 19:11

"whiesam" wrote:
hide($form['#actions']['submit']);

откуда ты взял $form['#actions'] ?
"whiesam" wrote:
Оказываеться под рутовым админом, альтеры не имеет силу

такое ощущение, что у тебя какой то совершенно другой друпал

Аватар пользователя whiesam whiesam 16 октября 2014 в 19:39

"drupby" wrote:
откуда ты взял $form['#actions'] ?

Извиняюсь, опечатка.
"drupby" wrote:
такое ощущение, что у тебя какой то совершенно другой друпал

Кеш моросит как оказалось. Щас чищу его прям из БД.

Только не могу понять, как убрать кнопку сохранить и удалить в админке ноды.

Аватар пользователя drupby drupby 16 октября 2014 в 19:44

"whiesam" wrote:
Только не могу понять, как убрать кнопку сохранить и удалить в админке ноды.

что есть админка ноды? ты имеешь ввиду admin/content ?

Аватар пользователя whiesam whiesam 16 октября 2014 в 19:47

"drupby" wrote:
что есть админка ноды? ты имеешь ввиду admin/content ?


node/edit
node/add
и еже с ними

В идеале вообще все "сохранить" повырубать бы.

Аватар пользователя drupby drupby 16 октября 2014 в 19:49

"whiesam" wrote:
node/edit
node/add
и еже с ними

я же писал уже

function ololo_form_alter(&$form, &$form_state, $form_id) {
  $form['actions']['#access']= FALSE;
}
Аватар пользователя whiesam whiesam 16 октября 2014 в 20:01

"drupby" wrote:
я же писал уже

В том то и дело, что не пашет.

Ладно спасибо. Пойду в магаз за Джеком... а то тут без бутылки...

Аватар пользователя drupby drupby 16 октября 2014 в 20:17

"whiesam" wrote:
В том то и дело, что не пашет.

ну тут уже значит не друпал виноват, надо карму что ли почистить - код то рабочий

Аватар пользователя whiesam whiesam 16 октября 2014 в 20:56

Джеки, Джеки ты могуч... ты гоняешь стаи туч...

После 3 стакана я подумал: "А какого лешего я код, то в свою тему втыкаю, когда в seven надо".

Суть басни такова:
Отдыхайте чаще Господа!