CMS ke studíjním účelům :-)
- na1k
- Člen | 288
Na podzim jsem dělal školní projekt do předmětu Informační Systémy, šlo o IS fakulty, pomocí kterého učitelé vypisují projekty a studenti se na ně přihlašují.
Obsahuje to rozdělení na tři moduly, ACL, je tam použitý Datagrid, AJAX a XML import/export. Je to v Nette 2.0-alpha(?) pro php5.3 a celkem hojně komentované, protože jsem předpokládal, že se v tom budou opravující hrabat aniž by vůbec znali Nette :-)
Můžeš se na to podívat tady: http://iis.davidsabata.cz
Pokud by se ti to líbilo, napiš a já dám zdrojáky třeba na GitHub ;-)
- Droid
- Člen | 92
na1k napsal(a):
Na podzim jsem dělal školní projekt do předmětu Informační Systémy, šlo o IS fakulty, pomocí kterého učitelé vypisují projekty a studenti se na ně přihlašují.
Obsahuje to rozdělení na tři moduly, ACL, je tam použitý Datagrid, AJAX a XML import/export. Je to v Nette 2.0-alpha(?) pro php5.3 a celkem hojně komentované, protože jsem předpokládal, že se v tom budou opravující hrabat aniž by vůbec znali Nette :-)
Můžeš se na to podívat tady: http://iis.davidsabata.cz
Pokud by se ti to líbilo, napiš a já dám zdrojáky třeba na GitHub ;-)
Ahoj, máš to skvělé! Moc děkuji za ukázku, rozhodně mi pomůže každý kód, takže kdybych mohl poprosit, ten Github by byl super :-) Btw, hodně štěstí na FITu, teď tam hodně vyhazují i na docela jednoduchých předmětech.
Editoval Droid (21. 2. 2011 12:04)
- na1k
- Člen | 288
Takže na GitHubu: https://github.com/…a/Faculty-IS
Sám už do toho zasahovat nebudu (spíš časem zruším to demo na svém webu), ale klidně si to forkni a hraj si s tím. Pokud to třeba nějak rozšíříš, tak klidně pošli pull request a může to posloužit dalším co budou začínat :)
- Martin
- Člen | 171
Ahoj. Taky jsem se na to chtěl podívat, ale mám stažené nové Nette.
Drobnost je přidání ->toArray() do dibi::connect (i když zrovna tohle
jsem hledal předevčírem půl dne ve zdrojácích Nette, až po vlastním
neobratném zprovoznění jsem to objevil i ve fóru). Ale cosi je nutné
ještě opravit, je tu chyba Cannot load presenter ‚Homepage‘, class
‚HomepagePresenter‘ was not found in
‚C:\xampp\htdocs\DS\document_root/../app/presenters/HomepagePresenter.php‘.
Chápu, že jde o něco, co je tady asi každému jasné, ale mně to trvalo
docela dlouho.
Nakonec jsem v bootstrap.php místo:
<?php
$router[] = new Route('index.php', array(
'presenter' => 'Homepage',
'action' => 'default',
), Route::ONE_WAY);
?>
dal
<?php
$router[] = new Route('index.php', array(
'module' => 'Public',
'presenter' => 'Default',
'action' => 'default',
), Route::ONE_WAY);
?>
Je to tak dobře?
Databázi jsem naimportoval do MySQL, připojení změnil v ini souboru. Teď
mi to píše chybu Role ‚admin‘ does not exist
na řádku
<?php
if ($user->isAllowed($resources->adminModule, $privilege))
?>
v DefaultPresenter.php. Výjimka je od Permission->checkRole(„admin“)). Pod debuggerem jsem zjistil, že v modulu Authorizator.php to v kódu
<?php
foreach($model->getRoles() as $role)
$this->addRole($role->name, $role->parent_name);
?>
vkládá zřejmě nepřípustné hodnoty. Předpokládám, že zrada je tam. Ale jak docílit, aby
<?php
public function getRoles() {
//if (isset($this->cache['roles']))
// return $this->cache['roles'];
$ret = dibi::fetchAll("SELECT r1.name name, r2.name parent_name
FROM users_roles r1
LEFT JOIN users_roles r2 ON r1.parent_id = r2.id
ORDER BY r1.parent_id, r1.id
");
//$this->cache->save('roles', $ret);
return $ret;
}
?>
načetlo, co má? Bohužel výsledek v debuggeru nevidím, xdebug tady
v tom místě při pokusu zobrazit proměnnou spadne (mám Netbeans a s tím
padáním si nevím rady, takže to je taky dotaz na zkušenější). Ale snad
jde načíst alespoň globální this, to jediné z xdebugu
dostanu:
roles()=
Student
Zaměstnanec
Administrátor
Asistent
Vyučující
Garant
s podpoložkami parents a children.
To admin tam nikde nevidím. Znamená to, že je nějaká
změna v Nette, kterou tam musím zapracovat, nebo jsem úplně mimo a chyba je
někde jinde?
____________________
Tak při několikátém naprosto shodném spuštění pod debuggerem najednou
vše prošlo. Vysvětluji si to jedině nějakou asynchronní činností čehosi
a že díky cache teď je něco dříve k dispozici, co předtím nebylo. Jinak
fakt nevím, s kódem jsem nehýbal. Pustí mi to za přihlášení. Po kliku
na Předměty to padá s chybou Unknown macro {snippet:grid}
in …\DataGrid\grid.phtml:1 . Předpokládám, že mi nějaká komponenta
chybí, nebo se změnila.
____________________
Ano, opravdu se cosi změnilo, v grid.phtml je třeba mít {snippet
grid} místo {snippet:grid}.
____________________
Jdu se kochat prací aplikace a prohlížením zdrojových kódů, snad mé popsané trápení totálního začátečníka pomůže dalším zoufalcům. Co a proč jsem tam vlastně při rozcházení udělal, stejně nechápu, byla to kombinace googlení a metody pokus-omyl. Jestli by to tu mohl někdo lidsky vysvětlit, určitě nebudu sám, kdo si vše se zájmem přečte. Martin
Editoval Martin (21. 2. 2011 18:14)