Столкнулся с интересным моментом. Если создать пользователя с помощью роли у которой включен доступ к использованию текстового формата Filtered HTML, то сам пользователь у которого такого доступа нет, не может редактировать свое поле
Подпись
и он видит сообщение
Это поле отключено, потому что у вас нет прав для его редактирования.
.
Желание давать всем подряд эти права нет.
Отсюда вопрос - Где находятся это поле и его настройки? Хочу уравнять всех в правах, поменять значение на
Простой текст
.
В Конфигурация - Настройки учётной записи - управление полями -управление отображением ничего нет.
Комментарии
Нужно сменить конкретно у этого поля формат ввода на тот к которому есть доступ. Тогда юзер сможет редактировать конкретно это поле.
Я и хочу его поменять на значение Простой текст. Вот только где это сделать?
Уже нездоровая мысль сделать это в самой базе.
Если я правильно понял, то у пользователя есть поле "Подпись" - вот у этого пользователя в поле "Подпись" и надо сменить
Все правильно. Только я хочу не у одного конкретного пользователя сменить формат поля, а у всех по умолчанию отключить возможность использовать фильтры.
Как пример -когда вы создаете свой тип материалов и вставляете текстовое поле, то в настройках этого поля, можно выбрать значение Простой текст. Тогда у всех будет отключена возможность использовать фильтры. По умолчанию стоит значение С применением фильтров (формат текста выбирается пользователем) что и добавляет проблем.
Пока писал, родилась идея!
Можно в конфигурация- работа с содержимым -текстовые форматы поставить на первое место Plain text. Если админ, при создании нового пользователя рукам не сменит тип текста, то проблем не будет. Но это полумера.
Это так не работает. Это работает на уровне доступов.
Если доступы к использованию фильтров есть - то юзеру будет доступно переключение.
Если поле уже имеет значение с определенным форматом, то его может отредактировать только тот кто имеет доступ к этому формату.
Поэтому решение - подпись пусть создаёт тот кто и будет потом редактировать поле. Если нет, то подпись пусть сразу создаётся с нужным форматом.
Нет. У меня условие, что пользователя создает админ (функционал ядра). И даже если админ не будет трогать поле Подпись, то оно сохранится с его настройками фильтра по умолчанию. А это как обычно Filtered HTML. При этом сам пользователь уже не сможет редактировать это поле никак. Админ должен помнить, что нужно эту настройку менять.
Когда аноним сам создает аккаунт пользователя, то поле имеет разрешенный для пользователя формат Plain text и все нормально.
Моя идея выше, выставить Plain text первым по умолчанию, тоже имеет недостатки. Теперь админу нужно в каждом текстовом поле вбирать нужное значение фильтра, что чаще чем создание нового пользователя.
Поэтому я и ищу шаблон-форму-тип материала который заполняют при создании нового пользователя, что бы по умолчанию в шаблоне, выставить это значение как Простой текст. Тогда даже админ не сможет менять это значение при создании нового пользователя. И после создания нового аккаунта, пользователь сам сможет редактировать поле Подпись.
Варианты:
1. Админ всегда должен выставлять верный формат
2. JS, который выбирал нужный формат при редактировании формы
3. Навесить собственный сабмит формы в котором выставлялся бы нужный формат на поле .
2 - самый простой
3 - самый надёжный
1. Админ забьет на это поле. Будет первым кидать какашками в разраба и будет прав.
2. 3. и на лбу написать "Я не знаю друпала" или начать свой друпал писать с блэкджеком и....
Пойду шерстить код, может найду где эта signature обитает
ага, всезнающий, не забудьте потом отписать решение
Маленький модуль, hook_form_alter и ставим этому полю формат ввода какой душе угодно. По умолчанию. Для всех. Или не для всех, а по условию.
Именно, вот только автор этого не сделает иначе ему придётся:
Я вроде никогда не скрывал, что не знаю друпала. Для меня это хобби. Ковыряюсь потихоньку.
Не уверен на сколько это правильно, но сделал следующее:
в файле 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 я еще не прочитал, но все работает.
И да! нормальное решение пока не найдено.
Остается выучить php, разобраться как использовать хуки и писать модули. Когда созрею, будет хорошим примером для тренировки.
В корне неправильно. Лучше бы вообще не рассказывали.