MOODLE 1.9 Переадресация на другую страницу

MOODLE 1.9 Переадресация на другую страницу

от Pavel Chervov -
Количество ответов: 12

Добрый день, возникла такая задача:

После того как пользователь авторизовался в Moodle он попадает, как я понимаю, на страничку /course/view.php?id=1, так вот мне надо чтобы ему эта страничка не показывалась а сразу открывалась моя:

blocks/controlpanel/index.php

я попробовал открть страничку /course/view.php?id=1 и прописать в самом начале header("location:blocks/controlpanel/index.php") - даже не пытается переадресовать. 

Подскажите, пожалуйста, ка можно аккуратно сделать то что я хочу?

Спасибо.

В ответ на Pavel Chervov

Re: MOODLE 1.9 Переадресация на другую страницу

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

прописать в самом начале header("location:blocks/controlpanel/index.php") - даже не пытается переадресовать

А не пробовали написать header("Location: ".$CFG->wwwroot.'/blocks/controlpanel/index.php')?

Вопрос: Какой такой супер-пупер функционал Вы хотите заложить в свой блок, что не хватает средств Мудл и нужно "изобретать", "допиливать" и т. п.?

Почему не посмотреть в сторону MyMoodle, при включении кот. на сайте пользователь после авторизации попадает на страницу списка доступных ему курсов с наступающими событиями (активностями), и где можно было бы и Ваш блок "закрепить" (/admin/stickyblocks.php?pt=my-index)?
Ещё вариант - использовать sitepolicy (Ссылка на Политику сайта), попробовать указать страницу Вашего блока.
<offtop>Почему обязательно нужно насильно юзера куда-то загонять, принуждать его что-то делать против воли?</offtop>

В ответ на Vadim Tabunshchik

Re: MOODLE 1.9 Переадресация на другую страницу

от Alexandre Scherbyna -

Хочу поддержать Вадима. Один мой знакомый вместо того, чтобы изучать Moodle, сразу брался его переделывать... Зачем разбираться где какая дверь и для чего она, если можно дырку в стене проломить? широко улыбаюсь

В ответ на Vadim Tabunshchik

Re: MOODLE 1.9 Переадресация на другую страницу

от Pavel Chervov -

 

            Вадим и Александр, добрый день, я понимаю, что надо изучать возможности Mудл а не переписывать его, но решился на такие зверства, потому как не нашел другого аккуратного способа, сделать так как нам нужно.

Нужно нам вот так: после того как пользователь залогинился, нужно определить какие роли у него есть в системе, и, исходя из этого, предложить ему выбрать, с какой именно ролью он хочет работать в системе. См. скрин, я уже навоял примерный функционал.

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

1е с чем я решил разобраться, это как сделать так, чтобы пользователь, зайдя в систему, видел страничку с выбором кнопочек. Как я понял, средствами Мудл никак такое не родить, остаётся либо:

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

- Либо вывести на главной новости, а в div нвостей ajaxом подгрузить мой функционал, такой вариант мне предложил один Томский мудлер.

оба эти вариант ИМХО сатанизм честное слово, я подумал что менее безобидным будет в index.php вставить переадресацию на мою страничку, что я и сделал.

Если вы подскажите, как используя функционал Мудл можно добиться того что мне нужно (заходя в систему видеть страничку, на которой моя функция будет выводить нужные кнопочки), буду рад!

 

Спасибо!

Приложение панаель управления.jpg
В ответ на Pavel Chervov

Re: MOODLE 1.9 Переадресация на другую страницу

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

предложить ему выбрать, с какой именно ролью он хочет работать в системе.

А на кой ляд это кому-то нужно? Вы пользователя спрашивали, ему это понравится? А если ему нужно через пять минут работы преподавателем/сотрудником зайти под студентом или админом и т. д. и т. п. Как Вы это реализуете, если всё завязано на сессиях, при каждом входе - новые куки (2-х типов). Вы не подумали, что 100 раз на час юзеру надоест логиниться/выходить и он Вас вместе с шефом пошлёт куда подальше?

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

Для меня эта тема исчерпана, уж извините.

В ответ на Vadim Tabunshchik

Re: MOODLE 1.9 Переадресация на другую страницу

от Pavel Chervov -

Вадим, логинтеся то пользователь один раз, а потом он видит страничку (на скрине выше) и если он выбрал например, интерфейс "студент" он может кликнтуь в навигации по "Панель управления" (см. скрин) и вернуться обратно на страничку выбора интерфейса, никаких куков и сессий, это просто разные странички для работы - student.php, admin.php, ticher.php на которые пользователь может перейти после авторизации и на каждой страничке свой функционал. Таким образом, сам функционал Мудл то мы и не меняем нисколько, ну разве что в index.php редирект одной строчкой прописали на нашу "Панель управления", а все остальное что нам нужно делается на наших страничках, которые лежат в папке нашего блока.

Я понимаю ваши возмущения, и что все это бредово, ну посмотрим что из этого получиться, потом отпишусь, расскажу =)

В любом случае, спасибо за вашу помощь!

Приложение скрин_2.jpg
В ответ на Pavel Chervov

Re: MOODLE 1.9 Переадресация на другую страницу

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

Павел, я чегой-то подумал, что пользователь должен выбирать роль, с которой должен зайти на сайт, и только после её нажатия авторизоваться (картинку невнимательно посмотрел), поэтому за "куки" - сорри.

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

Ситуация: пользователь авторизовался на сайте, вы показали ему свою страницу из блока с кнопками,  а он посмотрел на это дело, и сказал: "Нафик, пойду ка я прямо в тот курс, кот. мне нужен". И набрал в адресной строке http://you.site/course/view.php?id=xx или на другую страницу, в Мой Мудл, например, или на страницу "Все курсы" или ещё куда-то прямиком, не пользуясь вашей ссылкой "Панель управления" в навигационной строке (например, используя блок "Мои курсы"). Кстати, у меня преподаватели навигацией вообще очень редко пользуются (то ли по забывчивости, то ли по недопониманию, то ли ещё от чего), постоянно им показываю, рассказываю, снова и снова, снова и снова… улыбаюсь

А теперь вопрос: как вы технически запретите пользователю переходить напрямую, куда ему захотелось? Везде пропишите редиректы? Не устанете? В каждом блоке, в каждом модуле, в каждом ресурсе, элементе курса. А если этого не делать, зачем тогда вообще нужен ваш блок? Зачем юзер будет возвращаться в Панель управления, чтобы нажать "Студент", еще что-то нажать, ещё что-то сделать, потом попасть в курс, где он студент, если он и так напрямую может в этот курс зайти из любого места сайта и быть в этом курсе Студентом. А если он в одном и том же курсе и "Студент" и "Сотрудник", как быть  в этом случае? Опять вы его будете редиректить в Панель для совершения лишних, абсолютно ненужных, "телодвижений"?
Извините, вас никто не поймет улыбаюсь

Поэтому, попытайтесь Шефу всё это объяснить, на доступном ему языке. Тут я вас понимаю, сам неоднократно в такие ситуации попадаю, пробуйте донести до руководства абсолютную ненужность их "рацпредложений".

PS: всё высказанное не вам в упрек, обращайтесь за помощью, когда нужно будет. Но все действия должны иметь какую-то разумную цель и достигать необходимого всем результата, а не просто выполнения чьих-то желаний.

В ответ на Pavel Chervov

Re: MOODLE 1.9 Переадресация на другую страницу

от Alexandre Scherbyna -

Павел, ваша беда в том, что ваш шеф не знает Moodle, поэтому у него и возникают такие извращенные желания. Объсните ему, что в каждом курсе свое роли.  Если человек вошел на сайт Moodle, то следующим его шагом должен быть выбор курса, а не роли.  Чтобы размотать клубок, берутся за конец нитки, а не за спутвшуюся середину. Если и дальше практиковать такой подход, то ваш шеф придумает вам еще много таких же сложных и бесполезных задач. удивляюсь

Если бы на моем сайте был модуль, который вы хотите создать, то им бы кто-то пользовался? - Никто!!! Уверяю вас, что кроме вашего шефа он абсолютно никому не нужен! И вам не жалко тратить на это время?

Лучше потратьте его на то, чтобы разъяснить шефу как работает Moodle. А в качестве утешения поставьте на сайт этот блок. Он показывает каждому пользователю курсы на которые он записан (вместе с их категориями), и позволяет быстро переходить от одного курса к другому. показываю язык

В ответ на Alexandre Scherbyna

Re: MOODLE 1.9 Переадресация на другую страницу

от Pavel Chervov -

Вадим и Александр, спасибо!

В ответ на Pavel Chervov

Re: MOODLE 1.9 Переадресация на другую страницу

от Михаил С -

Может и мне кто поможет? Мне нужно переадрессацию сделать после нажатия на кнопку "Продолжить" на странице на которой пишут что сообщение на почту отправлено.

Проблема в том что переадресацию нужно сделать разную! У меня в регистрации есть выпадающий список с тремя вариантами! В зависимости от выбора нужно сделать переадресацию.

В ответ на Vadim Tabunshchik

Re: MOODLE 1.9 Переадресация на другую страницу

от Руслан Провоторов -
Регистрирую учеников в ручном режиме с галочкой "Создать пароль и уведомить пользователя".
После студент заходит, меняет пароль и его перенаправляет на главную страницу сайта. Хотя если даже ввести мой сайт/course/view.php?id=1, то показывается главная страница.
Как сделать стандартными средствами перенаправление на страницу списка доступных ему курсов?
Не смог найти ответ.
Спасибо!
В ответ на Руслан Провоторов

Re: MOODLE 1.9 Переадресация на другую страницу

от Vadim Tabunshchik -
Изображение пользователя Developers
мой сайт/course/view.php?id=1 - это и есть главная страница сайта - курс с id=1. Так что тут нечему удивляться.
Чтобы перенаправляло в личный кабинет для просмотра курсов, на которые записан, нужно домашней страницей по умолчанию (defaulthomepage) сделать мой сайт/my
В ответ на Vadim Tabunshchik

Re: MOODLE 1.9 Переадресация на другую страницу

от Руслан Провоторов -
Спасибо!
Сделал главной страницу my.
Немного не то что мне нужно, ну да ладно.
Понял как это работает. Нужно помыслить, как реализовать то, что мне нужно.