Ostatnio było kilka artykułów dla nauczycieli, więc tym razem coś dla administratorów – ukryta funkcja w Moodle, która może się okazać bardzo przydatna. Zdarza się czasami, że potrzebujemy zmienić adres (url), pod jakim jest widoczna w sieci istniejąca instalacja moodle. Oczywiście oprócz konfiguracji domeny koniecznie trzeba wtedy zmienić odpowiedni wpis w pliku config.php, ale to niestety nie wszystko. Pomijając nawet sytuację, kiedy musimy przenieść instalację na inny serwer (co wiąże się z przeniesieniem plików programu, katalogu moodle-data, oraz zawartości bazy danych), to nawet zmieniając wyłącznie url, pod którym nasz moodle jest widoczny dla świata, będziemy musieli zmierzyć się z problemem zerwanych linków.

PrzeprowadzkaTworząc kursy, niejednokrotnie umieszczamy w tekście hiperłącza do plików (np. obrazków, dokumentów, itp.) znajdujących się w kursie, oraz do zasobów i ćwiczeń kursu. Jeśli teraz zmienimy adres instalacji, te wszystkie hiperłącza zostaną zerwane. Co z tym można zrobić? Najczęściej w takich przypadkach administrator moodle wykonuje przed zmianą adresu kopię zapasową wszystkich kursów, a następnie odtwarza te kursy po zmianie. Podczas procesu tworzenia i odtwarzania kopii zapasowej hiperłącza są sprawdzane i w razie potrzeby zmieniane. Ale co zrobić jeśli kursów jest więcej niż kilka(naście)? Tworzenie i odtwarzanie kopii zapasowych kilkudziesięciu, kilkuset, czy nawet kilku tysięcy kursów może przyprawić o ból głowy (i wyłączyć platformę z użytku na kilka dni).

Otóż w takich przypadkach przydatny okazuje się skrypt, który ukryty jest w katalogu /admin. Piszę „ukryty”, ponieważ nie prowadzi do niego żaden link z menu administratora, a sam skrypt nie ma nawet swojej strony w dokumentacji Moodle. Skrypt ten jest na razie funkcją wprowadzoną eksperymentalnie i decydując się na skorzystanie z niego robimy to na własne ryzyko :-). Osobiście korzystałem z niego kilka razy i nie zauważyłem żadnych „efektów ubocznych”.

Skrypt ten znajduje się pod adresem http://adresmoodle.pl/admin/replace.php, gdzie oczywiście w miejsce „adresmoodle” należy wstawić adres swojej instalacji. Umożliwia on przeszukanie całej bazy danych w poszukiwaniu dowolnego ciągu znaków i zastąpienie go innym. Czyli na przykład można wyszukać wszystkie wystąpienia ciągu http://staryadres.pl i zamienić je na http://nowyadres.pl, w ten sposób szybko „naprawiając” wszystkie linki wewnętrzne, które utworzyliśmy w naszych kursach.

Aktualizacja z dnia 17.02.2014:

  1. W nowej wersji moodle skrypt pozwalający zmienić adresy w bazie danych znajduje się w nowej lokalizacji: http://adresmoodle.pl/admin/tool/replace
  2. Istnieje już dokumentacja (choć skromna) na temat tego skryptu: http://docs.moodle.org/en/admin/replace