Wprowadzenie do systemu
<html>
<head>
<matler>
<id>MATEMATYKA</id>
<type>SUBJECT</type>
<parent />
<title>Matematyka</title>
<description>
Matematyka - nauka dostarczająca narzędzi do otrzymywania
ścisłych wniosków z przyjętych założeń
</description>
<order>1</order>
<icon src="subject.png" />
<lang>PL</lang>
<tags>matematyka</tags>
<youtube></youtube>
<url>matematyka</url>
</matler>
</head>
<body>
<html>
<head>
<matler>
<id>MATEMATYKA_GRANCIE</id>
<type>DOMAIN</type>
<parent>MATEMATYKA</parent>
<title>Granice funkcji i ciągi liczbowe</title>
<description>Czyli o tym jak ważny jest porządek</description>
<order>7</order>
<icon src="group.png" />
<lang>EN</lang>
<tags></tags>
<youtube></youtube>
<url>matematyka/granice</url>
</matler>
</head>
<body>
Podobno wszystko ma swoje granice - funkcje również! Czy na pewno? Czy każda
funkcja ma granicę? A czy funkcja może mieć tylko jedną granicę? Mamy nadzieję,
że po zapoznaniu się z tym działem nie będziesz mieć problemów z odpowiedzią na
takie pytania. Co więcej - będziesz w stanie wyznaczyć owe granice.
</body>
</html>
<html>
<head>
<matler>
<id>MATEMATYKA_GRANCIE_DEFINICJA</id>
<type>SUBDOMAIN</type>
<parent>MATEMATYKA_GRANCIE</parent>
<title>Definicja oraz podstawowe własności ciągu</title>
<description></description>
<order>1</order>
<icon src="group.png" />
<lang>EN</lang>
<tags></tags>
<youtube></youtube>
<url>matematyka/granice/definicja</url>
</matler>
</head>
<body>
<html>
<head>
<matler>
<id>MATEMATYKA_GRANCIE_DEFINICJA_MONOTONICZNOSC</id>
<type>GROUP</type>
<parent>MATEMATYKA_GRANCIE_DEFINICJA</parent>
<title>Monotoniczność ciągu</title>
<description></description>
<order>3</order>
<icon src="group.png" />
<lang>EN</lang>
<tags></tags>
<youtube></youtube>
<url>matematyka/granice/monotonicznosc</url>
</matler>
</head>
<body>
<!DOCTYPE html>
<html data-require="math math-format expressions">
<head>
<matler>
<id>MATEMATYKA_GRANCIE_DEFINICJA_MONOTONICZNOSC_Z4</id>
<type>EXERCISE</type>
<parent>MATEMATYKA_GRANCIE_DEFINICJA_MONOTONICZNOSC</parent>
<title>Zadanie 4</title>
<description></description>
<order>4</order>
<icon src="exercise.png" />
<lang>EN</lang>
<tags></tags>
<youtube>3ExZXCKk1CQ</youtube>
<url>matematyka/granice/monotonicznosc/z4</url>
</matler>
</head>
<!DOCTYPE html>
<html>
<head>
<matler>
<id>MATEMATYKA_GRANCIE_DEFINICJA_MONOTONICZNOSC_F1</id>
<type>LESSON</type>
<parent>MATEMATYKA_GRANCIE_DEFINICJA_MONOTONICZNOSC</parent>
<title>Monotoniczność ciągu</title>
<description></description>
<order>0</order>
<icon src="lesson.png" />
<lang>EN</lang>
<tags></tags>
<youtube></youtube>
<url>matematyka/granice/monotonicznosc/f1</url>
</matler>
</head>
<body>
Ze względu na łatwość i dowolność edycji struktura danych zdefiniowana została w plikach xHTML w folderze "webroot/structures". Jednak dla zapewnienia niezawodności systemu dane te są przechowywane również w bazie danych. Niniejszy dokument opisuje proces aktualizacji pomiędzy danymi zawartymi w plikach xHTML a bazą danych (MySQL).
Opis:
Krok polega na aktualizacji listy plików znajdującej się w bazie danych (tabela: structure_files) na podstawie istniejących plików na dysku twardym
Uwagi:
Plik, który nie został zmodyfikowany od ostatniej aktualizacji zostanie pominięty w odpowiednich krokach aktualizacji. Jeżeli wykonano już wcześniej sprawdzenie semantyki pliku, nie zostanie ona przeprowadzona po raz kolejny - nastąpi to dopiero w momencie zmiany zawartości wspomnianego pliku. Dzięki takiemu podejściu proces aktualizacji wykonuje się szybciej, ponieważ pomija wcześniej sprawdzone pliki.
Opis:
Sprawdzanie wszystkich plików, które fizycznie istnieją na dysku ("exit" = "TRUE") oraz wcześniej nie zostały jeszcze sprawdzone - flaga "valid_semantic" = "NULL" pod względem prawidłowej składni.
Plik, który został zmodyfikowany oznaczony jest jako plik wymagający sprawdzenia składni.
Uwagi:
Jeżeli któryś z kroków walidacji dla pliku się nie powiedzie to ustawiana jest flaga "valid_semantic" = "FALSE".
Opis:
Krok ten odpowiedzialny jest za przeniesienie wszystkich informacji znajdujących się w pliku XML tymczasowej tabeli w bazie danych. Ma charakter optymalizacyjny. Związane jest to także z wygodą operowania na informacjach w bazie danych - zawężanie wyników, limitowanie, sortowanie.
Przeniesione zostają wszystkie pliki, które fizycznie istnieją na dysku oraz nie zostały wcześniej skopiowane do bazy danych - czyli posiadają flagę "parsed" = "NULL".
Uwagi:
Zmieniony plik oraz nowy plik zostaje oznaczony jaki plik, którego zawartość należy uaktualnić w bazie danych. Pliki którym nie została zmieniona zawartość, zostają pominięte.
Opis:
Krok ten odpowiedzialny jest za walidowanie czy nie istnieją duplikaty w systemie.
Opis:
Krok ten odpowiedzialny jest za walidowanie czy istnieje każdy rodzic elementu oraz czy całość ma strukturę drzewiastą
Opis:
Krok ten odpowiedzialny jest za walidowanie czy wszystkie pliki zewnętrzne (np obrazki użyte w danym węźle struktury) są obecne