Изменение порядка вывода имени и фамилии на страницах сайта

Изменение порядка вывода имени и фамилии на страницах сайта

от July Shvets -
Количество ответов: 17

Версия Moodle 2.6. Столкнулся с проблемой изменения порядка вывода имени и фамилии на страницах сайта (например, профиль пользователя) и в списках (например, "Список пользователей").

Решение следующее:

1. В списках - изменение значения строки локального перевода "fullnamedisplay" (см. рис)

Редактирование

2. На странице профиля - настройки по пути Администрирование / Пользователи / Права / Политики пользователя :

Настройка

Все улыбаюсь

В ответ на July Shvets

Re: Изменение порядка вывода имени и фамилии на страницах сайта

от Людмила Татарникова -

Большое спасибо!

Второй способ не сработал, зато первый помог, больше не придётся выискивать фамилию улыбаюсь

С уважением, Людмила

В ответ на July Shvets

Re: Изменение порядка вывода имени и фамилии на страницах сайта

от Vladimir Zemlyakov -

Спасибо.

Для 2.7 тоже подходит первый вариант.

Для отображения еще и отчества:

{$a->lastname} {$a->firstname} {$a->middlename}
В ответ на July Shvets

Re: Изменение порядка вывода имени и фамилии на страницах сайта

от Валерий Слободин -
Использовал оба способа. 

В списке пользователей ничего не меняется - фамилия на втором месте. Зато последовательность полей в учетной записи поменялась. 

В ответ на Валерий Слободин

Re: Изменение порядка вывода имени и фамилии на страницах сайта

от Валерий Слободин -

Немного ввел в заблуждение коллег. 

На общий список пользователей эти изменения не влияют. Но в списке "потенциальные пользователи", "Пользователи на сайте! и т.д., порядок меняется в соответствие с настройками.

В ответ на July Shvets

Re: Изменение порядка вывода имени и фамилии на страницах сайта

от Alexey Piguzov -

Спасибо, очень помогло! 2.7.1 версия. Без первого варианта, второй работал не везде!

В ответ на Alexey Piguzov

Re: Изменение порядка вывода имени и фамилии на страницах сайта

от Валерий Слободин -

А где помогло? На общий список эти настройки не влияют!

Кстати, оба способа работают абсолютно идентично!

В ответ на Валерий Слободин

Re: Изменение порядка вывода имени и фамилии на страницах сайта

от Alexey Piguzov -
Мне здесь помогло Администрирование Пользователи/  Учетные записи/  Список пользователей
раньше при настройке №2 все равно сначала было имя, а теперь как положено.
Какой именно Общий список Вы имеете в виду?
Во при выводе Администрирование Пользователи/  Учетные записи/  Действия над несколькими пользователями там действительно не работает, и это печально. Активно с фильтрами работаем.
Может знает кто как там сделать фамилию впереди?
В ответ на Alexey Piguzov

Re: Изменение порядка вывода имени и фамилии на страницах сайта

от Валерий Слободин -

В настройках стоит lastname firstname!

Но в главном списке пользователей (также как и в действиях над несколькими польз.) 

полное имя начинается с имени.

А вот при отборе пользователей в группы полное имя начинается с фамилии. 

В блоке "Пользователь" начинается с имени, в блоке "пользователи на сайте" - с фамилии!!! Черте что!

Может еще какие настройки есть?

В ответ на Валерий Слободин

Re: Изменение порядка вывода имени и фамилии на страницах сайта

от Vadim Tabunshchik -
Изображение пользователя Developers

Валерий, где-то на форуме я уже отвечал на эту тему.

Чтобы не мучаться, в админке поставьте fullnamedisplay=language, а в русском языковом файле moodle.php измените перевод строки fullnamedisplay на то, что Вам нужно. У меня так, например: $string['fullnamedisplay'] = '{$a->lastname} {$a->firstname} {$a->middlename}';

Что касается списков при действиях с несколькими пользователями, то тут используется другая функция: вместо function fullname (файл lib/moodlelib.php) - function sql_fullname (файл lib/dml/moodle_database.php). Хотите и тут сначала фамилию, а потом имя, измените эту функцию: вместо return $this->sql_concat($first, "' '", $last);  напишите return $this->sql_concat($last, "' '", $first);

В ответ на Vadim Tabunshchik

Re: Изменение порядка вывода имени и фамилии на страницах сайта

от Валерий Слободин -
Провел настоящее расследование.

Выяснил следующее.

Формат полного имени - language + настройка локального языкового пакета + изменение в файле moodle_database.php

Блок "Пользователи на сайте" - И, Ф

Пользователи - учетные записи - список польз. - И, Ф.

Действия над неск. польз - Ф, И.

Список препод. курса - И, Ф

Пользователи, записанные на курс - И, Ф

Журнал оценок - Ф, И

Формат полного имени lastname firstname

Блок "Пользователи на сайте" - Ф, И

Главный список пользователей И, Ф

Действия над неск. поль - Ф, И

Записанные на курс - И, Ф

Журнал оценок - Ф, И

Выводы. 

Настройка параметра fullnamedisplay в языковом пакете не оказывает влияние на вывод полного имени.

Формат полного имени lastname firstname оказывает влияние на блок "Пользователи на сайте" и список пользователей для заполнения групп.

Изменения в файле moodle_database.php влияет на действия над несколькими пользователями. Кстати этой функцией мы пользуемся редко.

На главный список (Пользователи - учетные записи - список пользователей) и на список пользователей, записанных на курс, данные настройки не действуют!


В ответ на Валерий Слободин

Re: Изменение порядка вывода имени и фамилии на страницах сайта

от Виталий Апраксин -

Провел настоящее расследование.

А Вы во время исследования кэши чистили?

В ответ на Виталий Апраксин

Re: Изменение порядка вывода имени и фамилии на страницах сайта

от Валерий Слободин -
И причем здесь кэш!?

Если настройки влияют на список или блок, это это влияние проявляется немедленно. Если не влияют, то хоть зачистись!

Хуже всего то, что разные структуры кода влияют на разные списки, а единой настройки, по-видимому, нет. 

В 1.9 мы такой проблемы не имели!

В ответ на Валерий Слободин

Re: Изменение порядка вывода имени и фамилии на страницах сайта

от Vadim Tabunshchik -
Изображение пользователя Developers
И причем здесь кэш!?

При том, что кэш нужно чистить после внесения изменений в строки языковых файлов.

файл moodle_database.php относится только к списку на стр. "Действия над неск. польз".

Изменили как я писал раньше, получили желаемое:
8

и можно об этом файле забыть (до след. обновления Moodle) улыбаюсь

Что касается fullnamedisplay в админке. Мои настройки описаны ТУТ.

Специально выкладываю скриншоты:
1

9

Результат:

  1. Блок "Пользователи на сайте":
    7
  2. Пользователи - учетные записи - список польз.:
    3
  3. Журнал оценок:
    6
  4. Участники в блоке "Люди" (в любом контексте):
    4
  5. Пользователи, записанные на курс:
    5
  6. Ссылка в правом верхнем углу страницы после входа на сайт:
    2

То есть, утверждение "Настройка параметра fullnamedisplay в языковом пакете не оказывает влияние на вывод полного имени" ошибочно улыбаюсь

В ответ на Vadim Tabunshchik

Re: Изменение порядка вывода имени и фамилии на страницах сайта

от Валерий Слободин -
Настройки из интерфейса MOODLE у меня почему-то не сработали. Я посмотрел скрипты и обнаружил, что файла moodle.php в папке ru_local у меня нет.

Тогда я вручную изменил строку fullnamedisplay в одноименном файле в папке ru.

Все стало изображаться правильно!

В ответ на Валерий Слободин

Re: Изменение порядка вывода имени и фамилии на страницах сайта

от Alexey Piguzov -

Вадим, спасибо! Тоже всё получилось. Информацию срочно в ЧаВо, отправить. Я так понимаю после обновления процедуру необходимо повторять.

В ответ на Alexey Piguzov

Re: Изменение порядка вывода имени и фамилии на страницах сайта

от Vadim Tabunshchik -
Изображение пользователя Developers
Я так понимаю после обновления процедуру необходимо повторять.

Нет, не всю процедуру, а только для файла lib/dml/moodle_database.php, кот. отвечает за список на странице "Действия над неск. польз"

ЗЫ: Откройте для себя GIT, тогда все локальные изменения в коде можно автоматически переносить из версии в версию при обновлении системы

В ответ на Валерий Слободин

Re: Изменение порядка вывода имени и фамилии на страницах сайта

от Vadim Tabunshchik -
Изображение пользователя Developers
Тогда я вручную изменил строку fullnamedisplay в одноименном файле в папке ru.

Так нельзя делать, после обновления языкового пакета (вручную из админки или после обновления moodle),  с сайта lang.moodle.org загрузится пакет языка с переводом "по умолчанию" и ваши изменения в файле /ru/moodle.php "слетят".

Нужно отредактировать русский перевод файла moodle.php через админку, тогда moodle сама создаст папку ru_local и соответствующий файл в ней, где будет одна измененная строка (или больше, если редактировали несколько строк).

moodle для любого языка всегда сначала проверяет каталог хх_local.