По простому программно зафиксировать состояние типа данных

Аватар пользователя jsv

Есть тип данных, к которому будет крепиться модуль. Возникла задача этот тип данных "зафиксировать" - запретить его менять(удалять) и поля к нему прилепленные(некоторые может, не все).
Как нынче модно решать такую проблему, кроме как кнопки удаления и изменения запрещать(скрывать) ручками? Может готовые решения кто видел? Может у типов есть стандартные поля, которые запрещают удаление?

Тип материала:
Версия Drupal:
0 Спасибо

Комментарии

Аватар пользователя multpix
multpix 6 месяцев назад

Описать его в своем модуле.

0 Спасибо
Аватар пользователя jsv
jsv 6 месяцев назад

Нет, это не ответ. Тип данных уже есть

0 Спасибо
Аватар пользователя gun_dose
gun_dose 6 месяцев назад

Экспортнуть в фичу и залочить?

0 Спасибо
Аватар пользователя jsv
jsv 6 месяцев назад

Блин, тип УЖЕ ЕСТЬ. И никуда его девать нельзя. Он ЕСТЬ. Как у него запретить редактирование? Если даже в фичу экспортануть - ТАМ как запретить? Разницы то нету.

0 Спасибо
Аватар пользователя gun_dose
gun_dose 5 месяцев назад

Фичу заблокировать можно. Там замочек специальный включить и всё - функционал будет меняться только если менять код.

0 Спасибо
Аватар пользователя jsv
jsv 5 месяцев назад

Речь про МОДУЛЬ. И про ПРОГРАММНОЕ изменение - без всяких кликов

0 Спасибо
Аватар пользователя Studio VIZA
Studio VIZA 6 месяцев назад
jsv написал:
Как у него запретить

Правами на роли.

0 Спасибо
Аватар пользователя jsv
jsv 6 месяцев назад

Подробнее, плиз.Программным путём и для user#1 и админ-роли чтобы тоже работало

0 Спасибо
Аватар пользователя Andruxa
Andruxa 5 месяцев назад

hook_entity_delete() ну можно ещё подстраховаться hook_query_alter()

Но вообще ерунда какая-то: борьба двух антивирусов в системе, кто кого заборет.
Не должен так код работать.

0 Спасибо
Аватар пользователя jsv
jsv 5 месяцев назад
Andruxa написал:
hook_entity_delete()

Этого мало, нужно запретить менять в ней данные - поля и тд.

Andruxa написал:
подстраховаться hook_query_alter()

Что-то совсем не в кассу, это запросы чистить любые - слишком неспециализированно

0 Спасибо
Аватар пользователя Studio VIZA
Studio VIZA 5 месяцев назад
jsv написал:
это не ответ.

jsv написал:
Блин

jsv написал:
без всяких

jsv написал:
не в кассу

0 Спасибо
Аватар пользователя jsv
jsv 5 месяцев назад

Ну да. Никто так и не предложил другого решения, будет делать по старинке - запрещать и скрывать кнопки и ссылки.

0 Спасибо
Аватар пользователя fairrandir
fairrandir 5 месяцев назад 1

1. field_permissions - запрещаете редактировать поля.
2. Искаропочные роли - запрещаете всем редактировать-изменять типы материалов.
3. ???
4. PROFIT!

Аватар пользователя jsv
jsv 5 месяцев назад

1. Что вы имеете ввиду? Галочки нужные проставить?
2. Какие поля?

0 Спасибо
Аватар пользователя fairrandir
fairrandir 5 месяцев назад

1.  field_permissions- это модуль. Позволяет выставлять права на просмотр-редактирование-удаление полей для разных ролей.
2. Ой вэй. В настройках прав доступа, пункты типа:

Статья: Создание новых материалов
Статья: Редактирование собственных материалов
Статья: Редактирование любых материалов
Статья: Удаление собственных материалов
Статья: Удаление любых материалов

Оставляете только создание.

0 Спасибо
Аватар пользователя jsv
jsv 5 месяцев назад

1. Ещё раз - программно зафиксировать состояние типа данных.
2. Вы видимо не поняли. Мне НОДЫ типа данных не надо фиксировать, мне нужно зафиксировать ТИП ДАННЫХ. То есть настройки полей и наличие этих полей в типе. И невозможность удаления и изменения этого типа данных( аля тип Product в Ubercart, только сложнее).

0 Спасибо
Аватар пользователя fairrandir
fairrandir 5 месяцев назад

Заголовки не читай @ сразу отвечай.
Поясните по хардкору, что есть тип данных? entity? Или тип ноды?
Вообще у полей есть атрибут locked. hook_field_info_alter, устанавливаете у нужных полей locked => TRUE

0 Спасибо
Аватар пользователя jsv
jsv 5 месяцев назад
fairrandir написал:
Поясните по хардкору, что есть тип данных? entity? Или тип ноды?

Тип данных. Я ж написал.

Цитата:
Вообще у полей есть атрибут locked. hook_field_info_alter, устанавливаете у нужных полей locked => TRUE

ВОООТ!!! Наконец то ответ. Атрибут locked есть. Ок, будем посмотреть.

0 Спасибо