Настройка поля Подпись в комментариях

Аватар пользователя vladtulku vladtulku 20 октября в 5:51

Столкнулся с интересным моментом. Если создать пользователя с помощью роли у которой включен доступ к использованию текстового формата Filtered HTML, то сам пользователь у которого такого доступа нет, не может редактировать свое поле

Подпись

и он видит сообщение

Это поле отключено, потому что у вас нет прав для его редактирования.

.
Желание давать всем подряд эти права нет.
Отсюда вопрос - Где находятся это поле и его настройки? Хочу уравнять всех в правах, поменять значение на

Простой текст

.
В Конфигурация - Настройки учётной записи - управление полями -управление отображением ничего нет.

Комментарии

Аватар пользователя vlucas vlucas 20 октября в 19:32

Нужно сменить конкретно у этого поля формат ввода на тот к которому есть доступ. Тогда юзер сможет редактировать конкретно это поле.

Аватар пользователя vladtulku vladtulku 20 октября в 20:33

Я и хочу его поменять на значение Простой текст. Вот только где это сделать?
Уже нездоровая мысль сделать это в самой базе.

Аватар пользователя vlucas vlucas 20 октября в 21:01

Если я правильно понял, то у пользователя есть поле "Подпись" - вот у этого пользователя в поле "Подпись" и надо сменить

Аватар пользователя vladtulku vladtulku 21 октября в 3:30

Все правильно. Только я хочу не у одного конкретного пользователя сменить формат поля, а у всех по умолчанию отключить возможность использовать фильтры.
Как пример -когда вы создаете свой тип материалов и вставляете текстовое поле, то в настройках этого поля, можно выбрать значение Простой текст. Тогда у всех будет отключена возможность использовать фильтры. По умолчанию стоит значение С применением фильтров (формат текста выбирается пользователем) что и добавляет проблем.
Пока писал, родилась идея!
Можно в конфигурация- работа с содержимым -текстовые форматы поставить на первое место Plain text. Если админ, при создании нового пользователя рукам не сменит тип текста, то проблем не будет. Но это полумера.

Аватар пользователя vlucas vlucas 21 октября в 10:12

Это так не работает. Это работает на уровне доступов.
Если доступы к использованию фильтров есть - то юзеру будет доступно переключение.
Если поле уже имеет значение с определенным форматом, то его может отредактировать только тот кто имеет доступ к этому формату.
Поэтому решение - подпись пусть создаёт тот кто и будет потом редактировать поле. Если нет, то подпись пусть сразу создаётся с нужным форматом.

Аватар пользователя vladtulku vladtulku 21 октября в 12:26

Поэтому решение - подпись пусть создаёт тот кто и будет потом редактировать поле.

Нет. У меня условие, что пользователя создает админ (функционал ядра). И даже если админ не будет трогать поле Подпись, то оно сохранится с его настройками фильтра по умолчанию. А это как обычно Filtered HTML. При этом сам пользователь уже не сможет редактировать это поле никак. Админ должен помнить, что нужно эту настройку менять.
Когда аноним сам создает аккаунт пользователя, то поле имеет разрешенный для пользователя формат Plain text и все нормально.

Моя идея выше, выставить Plain text первым по умолчанию, тоже имеет недостатки. Теперь админу нужно в каждом текстовом поле вбирать нужное значение фильтра, что чаще чем создание нового пользователя.

Поэтому я и ищу шаблон-форму-тип материала который заполняют при создании нового пользователя, что бы по умолчанию в шаблоне, выставить это значение как Простой текст. Тогда даже админ не сможет менять это значение при создании нового пользователя. И после создания нового аккаунта, пользователь сам сможет редактировать поле Подпись.

Аватар пользователя vlucas vlucas 21 октября в 12:26

Варианты:
1. Админ всегда должен выставлять верный формат
2. JS, который выбирал нужный формат при редактировании формы
3. Навесить собственный сабмит формы в котором выставлялся бы нужный формат на поле .

2 - самый простой
3 - самый надёжный

Аватар пользователя vladtulku vladtulku 22 октября в 0:45

1. Админ забьет на это поле. Будет первым кидать какашками в разраба и будет прав.
2. 3. и на лбу написать "Я не знаю друпала" или начать свой друпал писать с блэкджеком и....

Пойду шерстить код, может найду где эта signature обитает

Аватар пользователя OldWarrior OldWarrior 22 октября в 9:01
1

Маленький модуль, hook_form_alter и ставим этому полю формат ввода какой душе угодно. По умолчанию. Для всех. Или не для всех, а по условию.

Аватар пользователя vlucas vlucas 22 октября в 9:02

Именно, вот только автор этого не сделает иначе ему придётся:

на лбу написать "Я не знаю друпала"

Аватар пользователя vladtulku vladtulku 23 октября в 2:55

Я вроде никогда не скрывал, что не знаю друпала. Для меня это хобби. Ковыряюсь потихоньку.

ага, всезнающий, не забудьте потом отписать решение

Не уверен на сколько это правильно, но сделал следующее:
в файле user.module
в функции function user_account_form(&$form, &$form_state)
строку <?php'#format' => isset($account->signature_format) ? $account->signature_format : NULL,?>
заменил на <?php'#format' => t('plain_text'),?>
Теперь у всех пользователей по умолчанию один текстовый формат.
Не уверен насколько это правильно, все таки ни одной книжки по php я еще не прочитал, но все работает.
И да! нормальное решение пока не найдено.

Аватар пользователя vladtulku vladtulku 23 октября в 2:32

Остается выучить php, разобраться как использовать хуки и писать модули. Когда созрею, будет хорошим примером для тренировки.

Аватар пользователя OldWarrior OldWarrior 23 октября в 8:01
1

vladtulku wrote: Не уверен на сколько это правильно, но сделал следующее:
в файле user.module... строку ... заменил

В корне неправильно. Лучше бы вообще не рассказывали.