Rozwój:Developer FAQ
Pomoc dla początkujących programistów
Gdzie nowicjusze mogą szukać pomocy?
Na ogólnym forum developerów! Pytaj o wszystko, nie ważne czy jesteś nowicjuszem, czy profesjonalistą. Wielu ludzi zadaje codziennie pytania na różnym poziomie, a społeczność jest przyjazna i odpowiedzi pojawiają się szybko.
Baza danych Moodle'a
Gdzie mogę znaleźć schemat struktury bazy danych Moodle'a?
Podczas instalacji Moodle, tabele baz danych są generowane i uaktualniane przez różne skrypty. Nie istnieje żaden reprezentatywny schemat, aczkolwiek wytyczne sposobu kodowania struktury bazy danych mogą naszkicować ogólne podejście.
Przyczyną braku wspomnianego schematu jest fakt, że Moodle posiada strukturę modularną i nie możliwe jest utrzymanie wszystkiego w jednym miejscu. Każdy moduł składa się z folderu i plików skryptów. Jeśli moduł potrzebuje przechować jakieś informacje w bazie danych, musi dołączyć (include) skrypty w podkatalogu "db", który definiuje i uaktualnia strukturę bazodanową.
Jak pobierać/przechowywać informacje pisząc nowy kod
Jak znaleźć aktualnie zalogowanego użytkownika?
Globalny obiekt $USER, zawierający liczbowy $USER->id i inne pola.
Jak wybierać/tworzyć rekordy w bazie danych bez tworzenia własnego połączenia z bazą?
Zawsze używaj funkcji "datalib", takich jak insert_record() lub get_record(). Począwszy od Moodle 1.7 funkcje te znajdują się w pliku lib/dmllib.php. Używanie tych funkcji wspomaga abstrakcję bazy danych (np. używanie MySQL/Postgres) oraz utrzymywanie pojedynczego połączenia z bazą. Moodle używa ADODB jako warstwy abstrakcji nad bazą danych.
W dokumentacji datalib.php znajdziesz listę funkcji i szczegóły dot. ich używania.
Jak pobierać/ustawiać opcje konfiguracji?
Aby pobrać wartości opcji konfiguracyjnych, zazwyczaj będziesz odnosił się bezpośrednio do globalnego obiektu $CFG, który jest automatycznie tworzony przez skrypty Moodle. Aby zmienić te "główne" wartości użyj set_config($nazwa, $wartość). Wartości są przechowywane w tabeli "config" bazy danych, jednak ze względu na zaimplementowane we wspomnianych wyżej funkcjach cache'owanie, powinieneś ich używać zamiast pobierania rekordów bezpośrednio z bazy.
Istnieje także druga tabela opcji konfiguracyjnych przeznaczona tylko dla wtyczek ("config_plugin"). Nie są one automatycznie ładowane do obiektu $CFG, więc w celu ich pobrania użyj get_config($wtyczka, $nazwa). Aby je zmienić - set_config($nazwa, $wartość, $wtyczka).
Zobacz także
- Jak data i czas w bazie danych jest konwertowana na rzeczywistą datę i czas? - dyskusja na forum