Podręcznik programisty

Ten dokument częściowo opisuje strukturę Moodle, oraz sposób w jaki możesz się włączyć w jego rozwój.

Na chwilę obecną nie jest on zbyt imponujący. Docelowo powinna się pojawić lepsza dokumentacja!

Spis treści:

  1. Architektura Moodle
  2. Jak możesz się włączyć w rozwój

 

1. Architektura Moodle

Z punktu widzenia administratora, platforma Moodle została zaprojektowania zgodnie z następującymi kryteriami :

  1. Moodle powinno dać się uruchomić na jak największej ilości platform

    Platforma aplikacji sieciowych najbardziej przenośna to PHP połączone z MySQL. Właśnie w tym środowisku Moodle zostało stworzone (pod Linuksem, Windowsem oraz Mac OS X). Do abstrakcji baz danych Moodle korzysta z biblioteki ADOdb. Oznacza to, że Moodle może wykorzystywać ponad dziesięć różnych rodzajów baz danych. (niestety Moodle nie potrafi jeszcze tworzyć tabel we wszystkich z tych baz danych. Więcej szczegółów znajdziesz w dalszej części tego podręcznika)

  2. Moodle powinno być łatwe w instalacji, nauce obsługi i modyfikacji

    Wczesne prototypy Moodle (1999) były tworzone z pomocą Zope - wysokopoziomowego, zorientowanego obiektowo serwera aplikacji sieciowych. Niestety okazało się, iż pomimo że technologia sama w sobie była bardzo fajna, to ciężko było ją opanować i nie była elastyczna z punktu widzenia administracji. Z drugiej strony do języka skryptowego PHP można bardzo łatwo się przyzwyczaić (szczególnie jeśli już programowałeś z wykorzystaniem języków skryptowych). Stosunkowo wcześnie zdecydowałem się na nie używanie projektowania zorientowanego na klasy - znów po to, by całość pozostała łatwa i zrozumiała dla początkujących. Ponowne wykorzystywanie kodu (code reuse) jest osiągane przez system bibliotek z jasno nazwanymi funkcjami i ściśle określonym położeniem plików z skryptami. Język PHP jest również łatwy w instalacji i jest na tyle powszechnie dostępne, że większość serwerów dostarcza go jako standard.

  3. Przejścia między kolejnymi wersjami Moodle powinny być łatwe

    Platforma Moodle zawiera informacje o swoim wersji (jak i o wersjach wszystkich modułów zewnętrznych). Został też w nią wbudowany mechanizm pozwalający Moodle na poprawną aktualizację do nowszych wersji (przykładowo Moodle potrafi zmieniać nazwy tabel albo dodawać nowe pola do już istniejących). Jeśli na przykład korzystasz z CVS w Uniksie, to wystarczy jedynie wydać polecenie "cvs update -d", a następnie wejść na stronę główną serwisu by zakończyć proces uaktualniania.

  4. Moodle powinno mieć budowę modułową, aby umożliwić rozbudowę systemu

    Moodle ma szereg funkcji modularnych takich jak tematy, składowe kursów, interfejs języków, schematy baz danych i formaty kursów. Pozwala to na dodawanie nowych funkcji do głównego kodu, lub nawet na ich oddzielną dystrybucję. Więcej na ten temat przeczytasz w sekcji poniżej.

  5. Powinna istnieć możliwość używania Moodle w połączeniu z innymi systemami

    Moodle trzyma wszystkie pliki danego kursu w zwykłym katalogu na serwerze. Daje to administratorowi systemu możliwość udostępnienia ich na poziomie plikowym każdemu z nauczycieli, na przykład przez Appletalk, SMB, NFS, FTP, WebDAV itd. Moduły uwierzytelniania pozwalają Moodle korzystać z LDAP, IMAP, POP3, NNTP, oraz z innych baz danych jako ze źródła informacji o użytkownikach. W przyszłości Moodle ma mieć możliwość importowania i eksportowania danych za pomocą formatów opartych na XML (w tym IMS i SCORM), oraz zwiększoną możliwość korzystania z wzorców formatowania interfejsu (dzięki temu łatwiej będzie można zintegrować Moodle z innymi stronami WWW)

 

2. Jak możesz się włączyć w rozwój

Jak już wspomniano powyżej Moodle ma szereg funkcji, które mają budowę modułową. Nawet jeśli nie jesteś programistą istnieją dziedziny w których możesz pomóc.

Składowe kursów

Są to tak na prawdę najistotniejsze moduły. Są one ulokowane w katalogu 'mod'. Istnieje siedem podstawowych modułów tego typu : Zadanie, wybór, forum, dziennik, quiz, zasób, oraz ankieta. Każdy z tych modułów zawiera oddzielny podkatalog który zawiera następujące niezbędne elementy (plus dodatkowe skrypty, właściwe tylko dla danego modułu) :

Najprostszą metodą zbudowania nowej składowej kursu jest wykorzystanie wzorca, zapisanego w pliku mod/newmodule_template.zip. Rozpakuj go, a następnie przeczytaj plik README

Dobrym pomysłem jest też wzięcie udziału w Forum poświęconym składowym kursów. (Activities modules forum on Using Moodle).

 

Tematy

Tematy (Themes / skins) określają wygląd całego serwisu. Wraz z główną dystrybucją dostarczanych jest kilka prostych tematów, ale możesz stworzyć własny, dobierając kolory, style i grafiki, a także zamieszczając swoje logo

Każdy temat umieszczany jest w podkatalogu katalogu "theme" i zawiera przynajmniej następujące pliki:

Aby utworzyć własny temat dla Moodle w obecnej wersji:

  1. Skopiuj któryś z już istniejących tematów do folderu o innej nazwie. Proponuję, byś zaczął od któregoś ze standardowych tematów.
  2. Zmodyfikuj config.php i umieść w nim własne kolory.
  3. Zmodyfikuj styles.php i zmień style CSS.
  4. Zmodyfikuj header.html i footer.html aby dodać logo i wizualny układ strony.

Pamiętaj, że każdy z tych kroków jest opcjonalny. Możesz diametralnie zmienić wygląd serwisu zmieniając jedynie kolory w config.php

Kolejne wersje Moodle mogą nieco zmieniać tematy więc czytaj zawsze uwagi do nowego wydania jeśli używasz niestandardowego tematu.

W szczególności Moodle 2.0 będzie posiadał zupełnie nowy system wyświetlania, najprawdopodobniej oparty na transformacjach XSL wejścia XML z Moodle. Prawdopodobnie tematy będą miału zupełnie inny format, ale za to będą o wiele bardziej modyfikowalne. (przykładowo będą umożliwiać przemieszczanie elementów w obrębie strony

Więcej informacji na forum poświęconym tematom (Themes forum on Using Moodle). Jeśli stworzysz ładny temat którym chciałbyś się podzielić prześlij spakowany plik na forum poświęcone tematom

 

Języki

Moodle zostało zaprojektowane jako platforma międzynarodowa. Każdy łańcuch znaków czy strona tekstu wyświetlana jako część interfejsu jest popierana z zestawu plików językowych. Każdy język jest przechowywany w podkatalogu katalogu 'lang'. Struktura katalogu lang jest następująca:

lang/pl - katalog zawierający wszystkie pliki dla danego języka (w tym wypadku dla Polskiego)

lang/pl/help - zawiera wszystkie strony pomocy (dla pomocy w wyskakujących okienkach)

Główne pliki pomocy znajdują się bezpośrednio w tym katalogu, natomiast pliki pomocy dla poszczególnych modułów są umieszczone w podkatalogach z nazwami będącymi nazwami modułów.

Możesz umieścić przycisk pomocy na stronie posługując się funkcją helpbutton

np. helpbutton("tekst", "Kliknij aby otrzymać pomoc na temat tekstu");

a w przypadku modułów:

helpbutton("typyforum", "Typy forum", "forum");

UWAGA : możesz edytować języki on-line, korzystając z narzędzia administracji "Sprawdź język". Dzięki temu można nie tylko łatwo dodawać nowe języki, ale także modyfikować te już zaimplementowane. Jeśli rozpoczynasz tłumaczenie na nowy język, skontaktuj się proszę ze mną : Martin Dougiamas.

Możesz również skorzystać z Forum poświęconego językom (Languages forum on Using Moodle).

Mogę też udostępnić Ci prawa zapisu CVS do kodu źródłowego Moodle byś mógł bezpośrednio zarządzać plikami.


Schematy dla baz danych

Jeśli Moodle otrzyma działającą bazę danych wraz z zdefiniowanymi tabelami, to celowo proste zapytania SQL wykorzystane w Moodle powinny prawidłowo współpracować z wieloma rodzajami baz danych.

Problem tkwi w automatycznym tworzeniu nowych tabeli w bazach danych. Moodle próbuje to zrobić podczas instalacji. Ponieważ bazy danych znacząco się różnią, nie istnieje jeszcze metoda robienia tego niezależnie od platformy. Aby wesprzeć ten proces można tworzyć sekwencje poleceń SQL, służące do utworzenia tabel Moodle w konkretnej bazie danych. Pliki te znajdują się w katalogu lib/db oraz w podkatalogu db każdego modułu.

Obecnie jedynie MySQL i PostgreSQL są w pełni obsługiwane przez ten mechanizm (nikt nie napisał schematów dla innych baz).

Moodle 1.1 będzie używać nowej metody opartej na XML, która sprawi, że wszystkie te komplikacje staną się niepotrzebne.

 

Formaty Kursu

Moodle w chwili obecnej obsługuje trzy różne formaty kursów : tygodniowy, tematyczny, oraz towarzyski.

Są one nieco bardziej zagnieżdżone w kodzie (a przez to mniej "elastyczne")niż inne moduły, ale i tak można stosunkowo łatwo dodać nowe formaty.

Jeśli masz jakieś pomysły na inne formaty, które potrzebujesz, lub chciałbyś zobaczyć, skontaktuj się ze mną, a zrobię wszystko co w mojej mocy, aby zawrzeć je w przyszłych dystrybucjach.

 

Dokumentacja i artykuły

Jeśli czujesz się na siłach, żeby napisać przewodnik, artykuł, pracę naukową (lub dowolną inną) na temat Moodle, zrób to!

Umieść swoją pracę na sieci i pamiętaj, aby zamieścić też link do http://moodle.org/

 

Udział w szukaniu błędów

Wreszcie chciałbym Cię zachęcić, abyś zapisał się do "wyszukiwania błędów" (bug tracker); na stronie http://moodle.org/bugs żebyś mógł zgłaszać wszelki błędy jakie znajdziesz i być może uczestniczył w dyskusji nad ich usunięciem.

Termin "Błędy" dotyczy tu nie tylko błędów w oprogramowaniu ale także nowych pomysłów, wymagań co do funkcji, czy nawet konstruktywnej krytyki istniejących funkcji. Piękno oprogramowania open-source polega na tym, iż każdy może brać udział i pomagać w tworzeniu lepszego produktu. W tym projekcie twój wkład powitamy z otwartymi ramionami!

 

Dziękuję za korzystanie z Moodle!

Pozdrowienia,
Martin Dougiamas

 

 

 

Dokumentacja Moodle

Version: $Id: developer.html,v 1.2 2001/12/09 10:34:19 martin Exp $