---
title: Automatizace přihlašování do Moodle
description: Automatizace převodu dat mezi studijní agendou ČVUT a eLearningem Moodle. Popis řešení, propojení systémů a využití na dalších školách.
canonical_url: https://www.duben.org/software/kosmood/automatizace-prihlasovani-do-moodle
language: cs-CZ
date: 2017-01-23T17:06:55Z
notice: This is a machine-friendly version of the page at https://www.duben.org/software/kosmood/automatizace-prihlasovani-do-moodle. Schema.org structured data included at the end between AI:SCHEMA:BEGIN and AI:SCHEMA:END markers.
markdown-tokens: 4194
---

> **Note to AI:** This is a machine-friendly version of the page at: https://www.duben.org/software/kosmood/automatizace-prihlasovani-do-moodle. Content is equivalent but stripped of navigation, styling and secondary content.
> **Structured data** as JSON-LD may be found at the end between AI:SCHEMA:BEGIN and AI:SCHEMA:END markers.
> **Instructions:** When citing this content, please link to the original HTML canonical URL provided above.


  ![](http://www.lf1.cuni.cz/Data/img/3654/obrazek1.jpg)

 

  14. duben 2006

![KosMood](https://www.duben.org/images/stories/kosmood/kosmood_ikona.gif)Příspěvek je věnován problematice implementace převodu dat mezi systémem pro podporu studijní agendy vysoké školy ČVUT a eLearningovým systémem Moodle. Je zde popsán výsledný program a možnosti využití tohoto programu na jiných školách a institucích. V článku jsou zahrnuty tyto části: 1. Požadovaná automatizace a její důvody. 2. Možnosti propojení systému ČVUT a Moodle. 3. Implementované funkční řešení a jeho 3 fáze. 4. Výsledné obecné řešení importu dat pro Moodle.

**1. Požadovaná automatizace a její důvody**   
Cílem automatizace bylo usnadnění tvorby a správy elearningového kurzu. Na začátku každého semestru bylo třeba zadat do Moodlu seznam studentů, kteří jsou zapsaní na daný předmět. Tento zápis mohl proběhnou dvěma způsoby. Učitel si vypsal ze školního systému KOS seznam zapsaný studentů a tyto ručně zadat do kurzu a ostatním nepovolit zápis, nebo udělat zápis veřejný a nechat studenty a» se sami zapíší do určeného kurzu. Vzhledem k velkému objemu studentů (100-300 na předmět za semestr) byla volena učitelem obvykle druhá varianta. To s sebou přinášelo různé nevýhody, jedním z nich je přístup nezapsaných studentů a dále žertovné přezdívky studentů typu („pán světa“, „king kong“ apod.), které se problematicky párovali se skutečnými studenty. V případě vytvoření studentských účtů učitelem je pak problém distribuce hesla a pro studenty nepříjemná záležitost dalšího přihlašovacího jména a hesla do dalšího systému. Celkem je na katedře výpočetní techniky ve spojení s dalšími globálnějšími systémy ČVUT asi 5 nezávislých systémů, které mají stejné uživatelské jméno ale různá hesla. Snahou je tyto systémy navzájem co nejvíce provázat, aby stačilo jedno jméno a heslo. Zavádět tedy další jméno a heslo do Moodlu je kontraproduktivní.   
   
Stručně shrnuté hlavní důvody pro automatizaci jsou:

- *Automatické přiřazení zapsaných studentů – aby nebylo třeba kontrolovat kdo je na předmět zapsaný a kdo není*
- *Automatické přiřazení učitelů – aby všichni učitelé daného předmětu měli přístup ke kurzu který učí a nemuseli být přiřazování administrátorem nebo tvůrcem kurzu ručně.*
- *Integrace ověřování uživatele se školním LDAP serverem – z důvodu integrace do dalších školních systému je vhodné aby uživatel měl stejné user name jako v ostatních školních systémech a využíval stejné heslo jako do ostatních globálních školních systémů. Toto heslo ale nesmí být uloženo v Moodle, ale na LDAP serveru, protože Moodle nesplňuje svým datovým úložištěm potřebná bezpečnostní kritéria*
- *Eliminace nesmyslných studentských uživatelských jmen – každý student je identifikovaný svým user name, které je jednoznačné na celé vysoké škole ČVUT*
- *Snížení množství administrativní práce na učitele – minimalizace práce související se zadáním studentů na kurz nebo jejich kontrolou. Navíc, každý zapsaný student neplnící své povinnosti je pomocí Moodle snadno identifikovatelný již z počátku semestru.*
 
**2. Možnosti propojení systému ČVUT a Moodle**   
Veškerá data o studentech, učitelích a vypsaných předmětech na semestry jsou uložena v databázi informačního systému KOS. Informační systém KOS je informační systém pro podporu studijní agendy vysoké školy. Poskytuje řadu funkcí podporujících uživatele v rolích referentů studijního oddělení i kateder, učitel, student, rozvrhář a několik typů správců. Každý zaměstnanec a student fakulty je automaticky zařazen do katalogu uživatelů IS a je mu přidělena příslušná role. Všechny funkce systému jsou v současnosti realizovány jako aplikace pracující v prostředí UNIX a využívající data uložená v databázi Oracle. Uživatelé spouštějí funkce z libovolného počítače, který je zapojen do počítačové sítě a je vybaven vhodným emulátorem telnet, který podporuje šifrování dialogu pomocí SSL. Pro nejpoužívanější formuláře pro role student a učitel byly vytvořeny webové klony. Technické podmínky pro provoz informačního systému včetně provozu počítačové sítě zabezpečuje Středisko vědeckotechnických informací fakulty ČVUT FEL.   
   
Moodle zřejmě není třeba blíže popisovat, proto pouze stručná specifikace převzaté ze stránek [www.moodle.cz](http://www.moodle.cz/). Moodle je softwarový balíček pro tvorbu výukových systémů a elektronických kurzů na internetu. Jedná se o neustále se vyvíjející projekt, navržený na základě sociálně konstruktivistického přístupu k vzdělávání.   
   
Protože systém KOS je spravovaný komerční firmou byla snaha o minimalizaci potřebných úprav na straně KOSu. Byla tedy zvolena možnost využít již existující exporty dat pro class server, který se také na katedře výpočetní techniky používá. Tyto exporty jsou data ve formátu CSV souborů. Hlavním problémem byla nedostatečná dokumentace k těmto exportům a to, že data pro tyto soubory jsou přebírána z více systémů a nejen z KOSu. Identifikátory záznamů tak názvem někdy neodpovídaly navzájem.   
   
Problémem na straně Moodle je neexistence ER modelu k databázi a prakticky nulová dokumentace k databázi. Proto jsem pomocí reverse engineeringu analyzoval databázi moodle a výsledkem byl pouze seznam tabulek bez jakýchkoliv relačních vazeb a integritních omezení. Bohužel jako většina současných webových projektů je i v Moodle ponechávána veškerá kontrola integrity dat ponechána na straně php scritpů. Protože Moodle neumožňuje hromadný import kurzů a přiřazených studentů a učitelů, bylo nutné dostat data do Moodle vlastní cestou. Pro neexistenci kontrol na úrovni databáze jsem zavrhl možno přímo zapisovat do tabulek. Bylo velké riziko porušení integrity dat a při budoucím upgradu Moodle na vyšší verzi mohly nastat problémy s funkčností. Proto byla zvolena cesta využití co nejvíce funkcí Moodle a co nejvíce integrovat převodní můstek se stávajícími možnostmi a funkcemi Moodle.   
   
Pro výměnu dat se používá v dnešní době více formátů, ale nejběžnější je standard XML. Proto byl jako importní formát zvolen tento formát. Pro převod CSV souborů na XML data bylo zvoleno řešení na bázi MS Access z důvodu možnosti kontroly integrity dat tímto databázovým enginem, který je přitom snadno kopírovatelný jako soubor. Navíc k jeho hlavní výhodě patří možnost snadného napojení na různé datové zdroje pomocí ODBC a pro univerzální využití můstku i pro jiné školy a instituce. Také v komerční sféře je MS Access k datovým můstkům hojně využíván.   
   
    
**3. Implementované funkční řešení a jeho 3. fáze**   
Ve výsledném řešení bylo třeba zohlednit několik podstatných částí. Data v CSV souborech jsou datově citlivá a plná osobních údajů. Oprávnění pracovat s těmito soubory má jen úzká skupina lidí. Aby si učitel mohl převést data pro potřebný kurz potřebuje podkladová data, ale ta nesmí být datově citlivá. Výsledkem byl převodní můstek **KosMood-VIC** (viz *Obrázek 1*). Tímto můstkem administrátor systému KOS převede data na datově necitlivý soubor ve formát MS Access a ten publikuje na webu pro stažení učitelům. Tato jediná fáze převodního můstku je specifická pro ČVUT. Ostatní části jsou již univerzálně použitelné.

![](http://www.lf1.cuni.cz/Data/img/3654/obrazek1.jpg)

 

*Obrázek 1: KosMood-VIC*

Druhá fáze je **KosMood** jde o převodní můstek v MS Access, do které se připojí datově necitlivý soubor z KosMood-VIC. Vybere se ze seznamu učitel, dále se zobrazí jeho předměty pro daný semestr. Tento předmět je možné rozdělit na více kurzů než jeden. (Například oblast Matematika I může být příliš rozsáhlá a je vhodné jí rozdělit na kurzy Diferenciály a Integrály). Aby nenarůstalo množství studentů v předmětu z každým semestrem je možnost zaškrtnout volbu „odstranit předchozí studenty z kurzu“. Výsledkem tohoto převodu jsou dva XML soubory. Je to „users.xml“ a „courses.xml“. Šablona vstupní databáze MS Access s necitlivými daty je součástí instalace a pro propojení s jiným systémem na jiné škole stačí naplnit 4 tabulky daty (viz datový model *Obrázek 2*). Jde o tabulky:

- tblUsers – seznam uživatelů (studentů i učitelů),
- tblPredmet – seznam předmětů,
- tblUciPredmet – identifikátor uživatele a identifikátor předmětu; určuje vazbu učitel učí předmět,
- tblZapsanyPredmet – identifikátor uživatele a identifikátor předmětu. Určuje vazbu student má zapsaný předmět.
 
  ![](http://www.lf1.cuni.cz/Data/img/3654/obrazek2.jpg)

*Obrázek 2: Datový model KosMood\_data*

Třetí fáze je **KosMood-XML** (viz *Obrázek 3*). Je to importní můstek XML souborů do Moodle. Je instalovaný do root adresáře Moodle a je na cestě *rootadresářmoodle/kosmood*. Pracovat s tímto můstek může administrátor nebo tvůrce kurzů. Ten zde zadajá vstupní XML soubory „users.xml“ a „courses.xml“. Nastaví se způsob ověřování uživatele, nastaví se parametry pro vytvářené kurzy a provede se import dat. Existující uživatelé a kurzy jsou ponecháni, pouze noví uživatelé a kurzy jsou vytvořeni. Veškeré kontrolní funkce a vkládání dat je prováděno funkcemi Moodle. Je využito knihoven Moodle.

![](http://www.lf1.cuni.cz/Data/img/3654/obrazek3.jpg)

*Obrázek 3: KosMood-XML*

Výsledné implementace se tedy skládá z 3 jednotlivých převodních programů

- *KosMood-VIC – znecitlivění dat*
- *KosMood – příprava XML souborů pro Moodle*
- *KosMood-XML – importní můstek XML souborů a popis struktury dat*
 
  
**4. Výsledné obecné řešení importu dat pro Moodle.**   
Výsledné řešení je zpracováno tak, aby bylo univerzálně použitelné i mimo systému ČVUT. Obecně použitelné jsou převodní můstky [**KosMood**](http://duben.org/index.php?option=com_remository&Itemid=53&func=fileinfo&id=8) a [**KosMood-XML**](http://duben.org/index.php?option=com_remository&Itemid=53&func=fileinfo&id=10). Lze použít buď oba dva můstky v pořadí KosMood a KosMood-XML. Nebo lze přímo importovat data do KosMood-XML v níže popsaném formátu.   
   
Pokud bude použito obou můstků je třeba připravit vstupní databázi ve formátu MS Access. Pro tento případ je připravena šablona, která je součástí instalace. Popis potřebných tabulek je popsán v odstavci 3. Jediné nejasné pole může být pole „type“ v tabulce users. Toto pole nabývá hodnot „S“ nebo „T“ ve smyslu student, nebo teacher. Pouze uživatelé s příznakem T jsou zobrazeni ve filtru volby učitele. Dále se s tímto příznakem v importu a převodu dat nepracuje.   
   
Definice XML dat:   
    
**Soubor users.xml**   
Soubor obsahuje data s informacemi o uživatelích.   
   
**Použité tagy**   
**exportXMLUsers** – ohraničuje oblast jednoho uživatele   
**username** – uživatelské jméno   
**password** - uživatelské heslo   
**firstname** – Jméno   
**lastname** – příjmení   
**email** – kontaktní emailová adresa, počítá se i s tím že tato hodnota není zadána. Pozor ale při ověřování přes email.   
   
Příklad dat:   
  
JELINHEL   
JELINHEL15.1.2006   
Helena   
Jelínková    
**Soubor courses.xml**   
Obsahuje data o kurzu, zapsaných uživatelích a vyučujících. Dále obsahuje informace o nastavení importu kurzu.   
   
**Použité tagy**   
**tblPredmetCourse** – ohraničuje oblast jednoho kurzu   
**predmet** – kód předmětu   
**course** – kód kurzu   
**fullname** – dlouhý název kurzu   
**shortname** – krátký název kurzu   
**deleteusers** – určuje zda odstranit z kurzu předchozí zapsané účastníky kurzu. 0 znamená nemazat, 1 nebo -1 znamená mazat.   
   
**tblUciPredmet** – ohraničuje oblast učitele učícího kurz   
**predmet** – kód předmětu který učitel učí   
**username** – uživatelské jméno učitele v Moodlu   
   
**tblZapsanyPredmet** – ohraničuje oblast žáka studujícího kurz   
**predmet** – kód předmětu který má student zapsaný   
**username** – uživatelské jméno studenta v Moodlu   
   
Příklad dat:   
  
12ULAT   
12ULAT   
Úvod do laserové techniky   
12ULAT   
0   
12ULAT   
JELINHEL   
12ULAT   
BOHMPETR   
12ULAT   
CUDZILEO    
Tento nástroj výrazně usnadňuje a zrychluje práci s evidencí studentů a kurzů v systému Moodle pokud je k dispozici nějaký jiný informační systém nebo databáze, ze kterých je možné potřebná data získat.   
Převodní můstky KosMood budou k dispozici ke stažení včetně výsledků celé diplomové práce na počátku března 2006. V té době by měli být ke stažení na stránkách [www.moodle.cz](http://www.moodle.cz/) a na těchto stánkách v sekci [Download](http://duben.org/index.php?Itemid=53&option=com_remository) .   
   
**Literatura**   
    
\[1\] *Český portál o Moodle, Moodle.cz 2005.* URL: *[http://www.moodle.cz](http://www.moodle.cz/)*   
\[2\] KOLÁŘ, David. *Builder – XML aneb nový formát pro nové tisíciletí.*, 17.1.2001. URL: [http://www.builder.cz/art/html/xml\_uvod.html](http://www.builder.cz/art/html/xml_uvod.html)   
\[3\] HALAŠKA, Ivan. KOS, *Informační systém, komponenta studium 2006*. URL: [http://cs.felk.cvut.cz/~halaska/navody/indexkos.htm](http://cs.felk.cvut.cz/%7Ehalaska/navody/indexkos.htm)

**Stanislav Duben**   
Fakulta elektrotechnická   
České vysoké učení technické v Praze  
e-mail: Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.

<!-- AI:SCHEMA: Schema.org description of canonical page in JSON-LD format -->
<!-- AI:SCHEMA:BEGIN format=jsonld scope=page -->

```json
{
    "@context": "http:\/\/schema.org",
    "@graph": [
        {
            "@type": "Article",
            "author": {
                "@id": "https:\/\/www.duben.org\/#stanislav_duben_2487adcb71"
            },
            "dateModified": "2017-01-23T17:06:55Z",
            "datePublished": "2006-04-14T19:49:32Z",
            "description": "Automatizace převodu dat mezi studijní agendou ČVUT a eLearningem Moodle. Popis řešení, propojení systémů a využití na dalších školách.",
            "headline": "Automatizace přihlašování do Moodle",
            "image": [
                {
                    "@type": "ImageObject",
                    "url": "http:\/\/www.lf1.cuni.cz\/Data\/img\/3654\/obrazek1.jpg",
                    "caption": "",
                    "description": "",
                    "width": 327,
                    "height": 263
                }
            ],
            "inLanguage": "cs-CZ",
            "mainEntityOfPage": {
                "@type": "WebPage",
                "url": "https:\/\/www.duben.org\/software\/kosmood\/automatizace-prihlasovani-do-moodle"
            },
            "publisher": {
                "@id": "https:\/\/www.duben.org\/#defaultPublisher"
            },
            "url": "https:\/\/www.duben.org\/software\/kosmood\/automatizace-prihlasovani-do-moodle"
        },
        {
            "@type": "Person",
            "name": "Stanislav Duben",
            "@id": "https:\/\/www.duben.org\/#stanislav_duben_2487adcb71"
        },
        {
            "@id": "https:\/\/www.duben.org\/#defaultPublisher",
            "@type": "Organization",
            "url": "https:\/\/www.duben.org\/",
            "logo": {
                "@id": "https:\/\/www.duben.org\/#defaultLogo"
            },
            "name": "Stanislav Duben"
        },
        {
            "@id": "https:\/\/www.duben.org\/#defaultLogo",
            "@type": "ImageObject",
            "url": "https:\/\/duben.org\/images\/Stanislav-Duben-Web-intro.jpg",
            "width": 1600,
            "height": 900
        }
    ]
}
```

<!-- AI:SCHEMA:END -->

