Bíla stránka :(
- Fergi
- Člen | 14
ahoj
mam tu mensi problem s bilou strankou :(, mam 2 presentery,
cs a admin, kdyz jsem muj web testoval na
localu (win i linux) tak mi vse jelo bez jakyhokoliv problemu, ale jak
jsem to hodil na web tak mi jede jen cs presenter a
admin presenter mi hodi jen bilou stranku, nezobrazi se ani
ladenka nic… :( jsem v tomto bezradny a nevim co s tim… poradi prosim
nekdo?
predem dekuji za jakoukoliv odpoved :)
fergi
- Fergi
- Člen | 14
tak tady je url webu, jeste to neni dokonceny, http://airsoft-budisov.mzf.cz/ skuste se prihlasit pod jmenem admin a heslo heslo , mela by vam tam misto prihlasovaciho formulare pak skocit nabidka admin a odhlasit , klepnete na admin a prave tam to haze tu bilou stranku, jinak treba tady http://airsoft-budisov.mzf.cz/abc muzete zkusit ze ladenka opravdu funguje ;)
- Fergi
- Člen | 14
dobra tak tedy vam sem hodim
<?php
require_once dirname(__FILE__) . '/BasePresenter.php';
class AdminPresenter extends BasePresenter
{
//NAČTENÍ
protected function Startup()
{
$this->setLayout('adminlayout');
$user = Environment::getUser();
if(!$user->IsAuthenticated())
{
if($user->getSignOutReason() === User::INACTIVITY)
{
$this->flashMessage('<div id="notice">Byl jste odhlášen z důvodů neaktivity</div>');
}
$this->redirect('Cs:default');
}
$this->template->uzivatel = $user->getIdentity()->nick;
$this->template->prava = $user->getIdentity()->prava;
if($this->template->prava < 1)
{
$this->redirect('Cs:default');
}
parent::startup();
}
//DEFAULT
public function renderDefault()
{
$this->template->title = "Hlavní strana";
$nacticlanek = dibi::query('SELECT * FROM clanky ORDER BY id DESC');
$this->template->clanky = $nacticlanek->fetchAll();
}
?>
toto je jak sami vidite jen renderovani defaultni stranky a startup
a jeste bych mohl bootstrap
<?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
// require LIBS_DIR . '/Nette/loader.php';
require LIBS_DIR . '/Nette/loader.php';
require LIBS_DIR . '/dibi/dibi.php';
// Step 2: Configure environment
// 2a) enable Nette\Debug for better exception and error visualisation
Debug::enable(Debug::DEVELOPMENT);
// 2c) check if directory /app/temp is writable
if (@file_put_contents(Environment::expand('%tempDir%/_check'), '') === FALSE) {
throw new Exception("Make directory '" . Environment::getVariable('tempDir') . "' writable!");
}
// 2d) enable RobotLoader - this allows load all classes automatically
$loader = new RobotLoader();
$loader->addDirectory(APP_DIR);
$loader->addDirectory(LIBS_DIR);
$loader->register();
// Step 3: Configure application
// 3a) get and setup a front controller
Environment::loadConfig();
dibi::connect(Environment::getConfig('database'));
$application = Environment::getApplication();
$application->catchExceptions = FALSE;
// Step 4: Setup application router
$router = $application->getRouter();
// mod_rewrite detection
if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())) {
$router[] = new Route('index.php', array(
'presenter' => 'Cs',
'action' => 'default',
'id' => NULL,
), Route::ONE_WAY);
$router[] = new Route('<presenter>/<action>/<id [^/]+>/', array(
'presenter' => 'Cs',
'action' => 'default',
'id' => NULL,
));
} else {
$router[] = new SimpleRouter('Cs:default');
}
// Step 5: Run the application!
$application->run();
?>
config.ini
[common]
set.date-timezone = "Europe/Prague";
[production < common]
database.driver = mysql
database.host = server
database.username = username
database.password = heslo
database.database = db
database.charset = utf8
service.Nette-Security-IAuthenticator = Users
[development < production]
Editoval Fergi (12. 7. 2009 22:05)
- Ondřej Mirtes
- Člen | 1536
Tak co na první pohled vidím, že je špatně, je název metody
startup
– má být s malým s
na začátku. Dále
metoda usera isAuthenticated má malé i
na začátku. Jestli to
pomůže, nevím.
BTW: Tvému kódu by se dalo vytknout několik věcí, ale to by chtělo asi po PM/IM :)
Editoval LastHunter (12. 7. 2009 21:30)
- Ondřej Brejla
- Člen | 746
Ty velikosti písmen by imho neměly mít vliv…metody jsou snad case insensitive.
- Fergi
- Člen | 14
tak , i kdyz sem s tim opravdu nic nedelal tak se nam ladenka rozpovidala a rekla mi No route for HTTP request.
BTW: Tvému kódu by se dalo vytknout několik věcí, ale to by chtělo asi po PM/IM :)
jestli bys mel cas :) , nebo napis sem prosim , chci aby muj kod byl lepsi
:)
edit: tak ted uz zas nic nerika… otevrel sem jiny prohlizec a nic… :( je to
nejaky zacarovany
Editoval Fergi (12. 7. 2009 22:43)
- Ondřej Mirtes
- Člen | 1536
Fergi napsal(a):
BTW: Tvému kódu by se dalo vytknout několik věcí, ale to by chtělo asi po PM/IM :)
jestli bys mel cas :) , nebo napis sem prosim , chci aby muj kod byl lepsi :)
V bodech:
- U flash messages bys neměl v presenteru rvát do parametru tý metody HTML, to je nečisté, o zobrazení se má starat šablona. Takže do metody čistý text a v šabloně to řešit nějak takto:
{if isset($flashes[0])}
<ul id="flashes">
{foreach $flashes as $msg}
<li class="{$msg->type}">{$msg->message}</li>
{/foreach}
</ul>
{/if}
- Co má představovat název presenteru
Cs
? - SQL dotazy do presenteru nepatří, měl bys na ně mít externí třídu, která reprezentuje model (M v MVP/MVC) a obsahuje gettery, které teprve sahají do databáze. Případně se podívej na tento inspirující článek :) https://phpfashion.com/…ak-jej-resit
- Máš divně řešená práva, co využít jejich podporu v Nette? https://doc.nette.org/…thentication https://doc.nette.org/…oli-a-zdroju https://forum.nette.org/…ovozneni-acl
- Konstruktor rodiče by se v překryté metodě měl volat jako první, ale to je spíš podnět k diskuzi. Na druhou stranu některé jazyky to ani jinak nedovolují, např. Java.
- Jukni na coding standards :)