Problem z php moodle

Odpowiedz Nowy wątek
2019-08-07 11:20
0

Witam,
mam problem z ustawieniem pod własne potrzeby platformy e-learningowej moodle.

Lekcje moodle posiadają funkcję, która pyta użytkownika przy ponownym wejściu do danej lekcji, czy chce rozpocząć przeglądanie od początku, czy od miejsca, gdzie ostatnio skończył (startlastseen). Funkcja działa ładnie, wszystko jest cacy, tylko że:
Jeśli stworzy się kurs, który dostępny jest dla osób niezapisanych, bez konta na platformie - korzystających z tzw. konta Gościa, to moodle traktuje każdego odwiedzającego, jako to samo konto, czyli każdorazowo wyświetla przy wejściu do lekcji pytanie o to, czy rozpocząć w miejscu, w którym ostatnio skończyło się przeglądanie, pomimo tego, że przeglądał to ktoś inny (również korzystający z konta Gościa).

Chciałbym wyłączyć to pytanie o to, skąd rozpocząć. W pliku view.php modułu Lekcja znalazłem coś takiego:

//Check to see if end of lesson was reached.
    if if ((isset($lastpageseen) && ($lastpageseen != LESSON_EOL)) !(isguestuser())) {
        // End not reached. Check if the user left.
        if ($lesson->left_during_timed_session($retries)) {

            echo $lessonoutput->header($lesson, $cm, '', false, null, get_string('leftduringtimedsession', 'lesson'));
            if ($lesson->timelimit) {
                if ($lesson->retake) {
                    $continuelink = new single_button(new moodle_url('/mod/lesson/view.php',
                            array('id' => $cm->id, 'pageid' => $lesson->firstpageid, 'startlastseen' => 'no')),
                            get_string('continue', 'lesson'), 'get');

                    echo html_writer::div($lessonoutput->message(get_string('leftduringtimed', 'lesson'), $continuelink),
                            'center leftduring');

                } else {
                    $courselink = new single_button(new moodle_url('/course/view.php',
                            array('id' => $PAGE->course->id)), get_string('returntocourse', 'lesson'), 'get');

                    echo html_writer::div($lessonoutput->message(get_string('leftduringtimednoretake', 'lesson'), $courselink),
                            'center leftduring');
                }
            } else {
                echo $lessonoutput->continue_links($lesson, $lastpageseen);
            }
            echo $lessonoutput->footer();
            exit();
        }
    }

Czy ktoś byłby w stanie podpowiedzieć, co powinienem w tym zmienić, żeby dla konta gościa nie wyświetlało się pytanie o miejsce rozpoczęcia ponownego przeglądania?
A jeśli nie ma takiej możliwości by określić to tylko dla Gościa, to jak wyłączyć to w ogóle.

Pozdrawiam
Smok

edytowany 1x, ostatnio: cerrato, 2019-08-07 11:44
@Freja Draco: jakiś Twój znajomek? ;) - cerrato 2019-08-07 11:45
@cerrato: Krewny z bocznej linii ;) - Freja Draco 2019-08-07 13:47
@cerrato: @Freja Draco syn ciotki babci stryjka. A skoro sobie już powinowactwa wyjaśniliśmy to może będziecie mi w stanie pomóc? :-) - smokwawelski 2019-08-07 14:58

Pozostało 580 znaków

2019-08-07 15:00
0

Nie siedziałem w kodzie Moodle, kiedyś tworzyłem w tym jakiś kurs.
Na logikę z wklejonego kodu masz chyba funkcję isguestuser(). Zobacz co zwraca w tym miejscu używając var_dump.
Nie wiem czy już coś modyfikowałeś, ale ta linijka wygląda dziwnie:

//Check to see if end of lesson was reached.
    if if ((isset($lastpageseen) && ($lastpageseen != LESSON_EOL)) !(isguestuser()))

Pozostało 580 znaków

2019-08-07 15:17
0
jurek1980 napisał(a):

Nie siedziałem w kodzie Moodle, kiedyś tworzyłem w tym jakiś kurs.
Na logikę z wklejonego kodu masz chyba funkcję isguestuser(). Zobacz co zwraca w tym miejscu używając var_dump.
Nie wiem czy już coś modyfikowałeś, ale ta linijka wygląda dziwnie:

//Check to see if end of lesson was reached.
    if if ((isset($lastpageseen) && ($lastpageseen != LESSON_EOL)) !(isguestuser()))

@jurek1980 dzięki za komentarz. Rzeczywiście, tak jak się teraz temu przyjrzałem to ta linijka w oryginalnym view.php wygląda nieco inaczej:

if (($lastpageseen !== false && ($lastpageseen != LESSON_EOL)))

isguestuser() to dodatek, który znalazłem w jednej z porad na ten temat na forum moodla. Przez przypadek wrzuciłem tu już zmieniony kod. Zaraz go poprawię w pierwszym poście.

Odnośnie var_dump przyznam szczerze, że jestem szkoleniowcem, a nie programistą, więc mówi mi to tylko tyle, że to polecenie zbliżone do debugowania.
Czy mógłbym poprosić o jakieś wskazówki, co z tym zrobić?

@jurek1980: albo i nie poprawię oryginału, bo już nie mogę go edytować :-) - smokwawelski 2019-08-07 15:19

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0