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

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

Аватар пользователя jsv jsv 19 апреля 2017 в 10:50

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

Комментарии

Аватар пользователя jsv jsv 19 апреля 2017 в 23:24

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

Аватар пользователя gun_dose gun_dose 20 апреля 2017 в 7:43

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

Аватар пользователя jsv jsv 20 апреля 2017 в 14:37

Andruxa wrote:

hook_entity_delete()

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

подстраховаться hook_query_alter()

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

Аватар пользователя jsv jsv 20 апреля 2017 в 15:44

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

Аватар пользователя fairrandir fairrandir 20 апреля 2017 в 16:16
1

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

Аватар пользователя fairrandir fairrandir 20 апреля 2017 в 17:27

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

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

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

Аватар пользователя jsv jsv 20 апреля 2017 в 17:30

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

Аватар пользователя fairrandir fairrandir 20 апреля 2017 в 17:57

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

Аватар пользователя jsv jsv 20 апреля 2017 в 19:42

fairrandir wrote:

Поясните по хардкору, что есть тип данных? entity? Или тип ноды?

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

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