Struktura FrontModule a AdminModule
- pjoter
- Člen | 118
Snažím se rozjet tu novou modulovou strukturu.
Mám:
app/presenter/BasePresenter.php
app/presenter/AdminModule/DefaultPresenter.php
app/presenter/FrontModule/DefaultPresenter.php
templates/FrontModule/@layout.phtml
templates/FrontModule/Default.default.phtml
templates/AdminModule/@layout.phtml
templates/AdminModule/Default.default.phtml
Default presentery vypadaji takto:
<?php
class Front_DefaultPresenter extends BasePresenter
{
public function renderDefault()
{
}
}
?>
bootstrap takto
<?php
require LIBS_DIR . '/Nette/loader.php';
require LIBS_DIR . '/Nette/Loaders/RobotLoader.php';
// Step 1: Load Nette Framework
// this allows load Nette Framework classes automatically so that
// you don't have to litter your code with 'require' statements
$loader = new RobotLoader();
$loader->addDirectory(APP_DIR);
$loader->addDirectory(LIBS_DIR);
$loader->register();
// Step 2: Configure environment
// enable Nette\Debug for better exception and error visualisation
Debug::enable(Debug::DEVELOPMENT);
Environment::getSession()->verificationKeyGenerator = FALSE;
// Step 3: Configure application
$application = Environment::getApplication();
$application->catchExceptions = FALSE;
$router = $application->getRouter();
if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())) {
$router[] = new Route('index.php', array(
'module' => 'Front',
'presenter' => 'Default',
), Route::ONE_WAY);
$router[] = new Route('<presenter>/<action>/<id>', array(
'presenter' => 'Front:Default',
'action' => 'default',
'id' => NULL,
));
} else {
$router[] = new SimpleRouter('Front:Default:default');
}
// Step 4: Run the application!
$application = Environment::getApplication();
$application->run();
?>
Dostávám chybovou hlášku
Cannot load presenter ‚Front:Default‘, class ‚Front_DefaultPresenter‘
was not found in
‚D:\dev\www\top09\www/../app/FrontModule/presenters/DefaultPresenter.php‘.
nějak to hledá jinde než by mělo…
Pak bych se chtěl ještě zeptat jak nastavit routu aby kdyz zadam root/admin aby se mi zobrazil modul admin ?
Díky za jakoukoli pomoc hledal jsem na fóru ale všude je to po kouskách a nikde není kompletní řešení tak si myslím že by tohle mohlo pomoct více lidem..
Editoval pjoter (10. 1. 2010 15:49)
- pjoter
- Člen | 118
Ted to mam takhle: admin funguje ale front ne. Kdyz zadam do url front hodi to error: Cannot load presenter ‚Front:Default‘, class ‚Front_DefaultPresenter‘ was not found in ‚D:\dev\www\top09\www/../app/FrontModule/presenters/DefaultPresenter.php‘. – nechapu nekde musim mit nadefinovanou jinou cestu.
<?php
$router[] = new Route('admin/<presenter>/<action>/<id>', array(
'module' => 'Admin',
'presenter' => 'Default',
'action' => 'default',
'id' => NULL
));
$router[] = new Route('<presenter>/<action>/<id>', array(
'module' => 'Front',
'presenter' => 'Default',
'action' => 'default',
'id' => NULL
));
?>
- Ondřej Mirtes
- Člen | 1536
Máš ty Presentery a templaty ve špatných umístěních :) Přesuň si je do správných, podle těch chybových hlášek.
- pjoter
- Člen | 118
Tak jsem zmenil tu strukturu podle te chybove hlasky a ted dostavam
warningy:
Warning: include(\app\presenters\AdminModule\DefaultPresenter.php)
[function.include]: failed to open stream: No such file or directory in
\libs\Nette\Loaders\LimitedScope.php on line 74
Warning: include() [function.include]: Failed opening ‚\app\presenters\AdminModule\DefaultPresenter.php‘ for inclusion (include_path=‚.;C:\php5\pear‘) in \libs\Nette\Loaders\LimitedScope.php on line 74
Editoval pjoter (10. 1. 2010 16:12)
- ibru
- Člen | 9
Můžu si dovolit toto vlákno znovu oživit? Mám možná podobný problém. Také používám moduly.
Nette mi hlásí chybu
Page not found. Missing template '…/FrontModule/templates/Recipe/default.phtml'.
Když šablonu přemístím do struktury, jak mi říká chyba, tak to
funguje, jenže já chci mít šablony v /templates/FrontModule/...
nikoliv v /FrontModule/templates/...
mám jednu routu
<?php
$router[] = new SimpleRouter(array(
'module' => 'Front',
'presenter' => 'Recipe',
'action' => 'default',
'id' => NULL,
));
?>
Jde to nějak pozměnit, kde nette vyhledává šablony nebo se holt musím přizpůsobit? Děkuji.
- Filip Procházka
- Moderator | 4668
je to ovšem jasné ze zdrojového kódu do kterého není zakázané nahlížet :)