Где искать имена глобальных переменных?

Где искать имена глобальных переменных?

от Alexandre Scherbyna -
Количество ответов: 9

Moodle использую в условиях стационара. Чтобы один студент не мог сдавать тесты вместо другого, хочу сделать, чтобы фамилия, имя (а еще лучше и фотография) того, кто зарегистрировался на данном компьютере, были постоянно в поле зрения. Для этого решил отображать их еще и в таймере, внеся необходимые изменения в файл jstimer.php.

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

Кто знает эти имена или где их искать подскажите, пожалуйста.

В ответ на Alexandre Scherbyna

Как узнать id того, кто залогинился?

от Alexandre Scherbyna -

Быть может я не лучшим образом вопрос сформулировал. Лучше было бы спросить: «Как узнать id того, кто залогинился»? Зная id, остальное можно из таблицы user прочитать.

В ответ на Alexandre Scherbyna

Re: Как узнать id того, кто залогинился?

от Dmitry Pupinin -
Из глобальной переменной:
$USER->id
(пишется именно большими буквами).
Не забудьте ее подключить, если это еще не сделано в нужной вам функции или файле:
global $USER;
В ответ на Dmitry Pupinin

Re: Как узнать id того, кто залогинился?

от Alexandre Scherbyna -

Спасибо большое, Дмитрий.

А вот, чтобы фотографию показать. Знаю, что файл называется f1.jpg и лежит в папке с номером id, расположенной в moodledata\user\0. Однако перед этим в ссылке на картинку надо еще кое-что прописать. Наверное тоже глобальную преременную с адресом сайта.

Знаю, Вы недавно это делали для шаблона вопросов с картинками. Подскажите, пожалуйста. Заранее благодарю.

В ответ на Alexandre Scherbyna

Re: Как узнать id того, кто залогинился?

от Dmitry Pupinin -
Лучше воспользоваться специальной функцией print_user_picture()
из lib/weblip.php подмигиваю
В ответ на Dmitry Pupinin

Re: Как узнать id того, кто залогинился?

от Alexandre Scherbyna -

Все работает, только картинка маленькая получается.

Вызываю картинку так:

print_user_picture($USER->id,$course->id,1,100)

От этого в html-коде получаем:

<img class="userpicture" src="http://m/m195/user/pix.php/204/f1.jpg" height="100" width="100"...
Однако, из-за присутствия class="userpicture", картинка отображается не в своем реальном размере 100х100,
как нужно, а уменьшенная до 35х35. 
Измененный файл jstimer.php присоединяю.
В ответ на Alexandre Scherbyna

Re: Как узнать id того, кто залогинился?

от Alexandre Scherbyna -

Чтобы фотография отображалась как нужно, пришлось сделать копию функции print_user_picture() и убрать в ней вывод class="userpicture".

Кто может решить эту задачку изящнее, предложите.

В ответ на Alexandre Scherbyna

Re: Как узнать id того, кто залогинился?

от Dmitry Pupinin -
подмигиваю
Добавить в css переопределение стиля userpicture... но, естественно, только для таймера.

#timer .userpicture {
width: 100px;
height: 100px;
можно еще чего-нибудь подписать по желанию улыбаюсь
}
В ответ на Dmitry Pupinin

Re: Как узнать id того, кто залогинился?

от Alexandre Scherbyna -
Спасибо большое, Дмитрий. Без вашей помощи я бы с этой работой не справился. Но, насколько я понимаю, css c определением стиля userpicture у каждой темы свой, а студентам может быть дано право менять тему, да и новые темы со временем могут добавляться. Тогда, чтобы это во все темы не прописывать, лучше, наверное, все-таки один раз библиотеку подправить.
В ответ на Alexandre Scherbyna

Re: Как узнать id того, кто залогинился?

от Vadim Tabunshchik -
Изображение пользователя Developers
>>чтобы это во все темы не прописывать, лучше, наверное, все-таки один раз библиотеку подправить
Послушайте Дмитрия и сделайте, как он написал - добавьте один раз определение css стиля:
#timer .userpicture {
width: 100px;
height: 100px;
}
в файл \moodle\theme\standard\styles_layout.css и не правьте lib/weblip.php.
Этого будет достаточно, даже если юзер будет тему менять, т. к. этот стиль ни в одной теме не указан, и будет всегда браться из темы стандарт.
У меня так все работает на двух сайтах улыбаюсь