Quick Start VI. a registerFilter

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
bfx
Člen | 12
+
0
-

Natrafil som nahodou na nento framework tak ze si ho vyskusam siel som podla
Quick Start no skoncil som na registerFilter. Tu je DefaultPresenter.

<?php
class DefaultPresenter extends /*Nette\Application\*/Presenter
{
	protected $db;
	protected function startup()
	{
		require_once LIBS_DIR . '/dibi/dibi.php';
		$this->db = new DibiConnection(array(
				'driver' => 'mysql',
				'host'     => 'localhost',
				'username' => 'xoops',
				'password' => '***********',
				'database' => 'xoops',
		));
	}

	public function renderDefault()
	{
		$this->template->tables = $this->db->getDatabaseInfo()->getTableNames();
	}

	public function renderTable($table)
	{
		$rowset = $this->db->query('SELECT * FROM %n', $table);
		$this->template->table = $table;
		$this->template->rows = $rowset->fetchAll();
		$this->template->columns = $rowset->getColumnNames();
	}
}
?>

Hadze mi to
Server Error
The server encountered an internal error and was unable to complete your request. Please try again later.

Soudruzi poradite kde je problem? :)

Editoval bfx (30. 4. 2009 14:30)

jasir
Člen | 746
+
0
-

Zapni si v bootstrapu laděnku ať se o chybě dozvíš víc.

Debug::enable()

bfx
Člen | 12
+
0
-

je zapnuta > nic

jasir
Člen | 746
+
0
-

Takže se nezobrazuje laďěnka? Ladíš na lokálním serveru?
Vyzkoušej:

<?php
Environment::setMode(Environment:DEVELOPMENT);
Debug::enable(Debug:DEVELOPMENT);
?>

Editoval jasir (30. 4. 2009 14:56)

bfx
Člen | 12
+
0
-

Neladim lokalne rovno si to hadzem na hosting co mam zaplateny. http://test.eternal.sk/…ot/index.php

nAS
Člen | 277
+
0
-

Je zapisovatelný temp?

jasir
Člen | 746
+
0
-

bfx napsal(a):

Neladim lokalne rovno si to hadzem na hosting co mam zaplateny. http://test.eternal.sk/…ot/index.php

No, když myslíš… ;) Stejně ale vyzkoušej to co jsem psal o jeden příspěvek výše.

bfx
Člen | 12
+
0
-

nAS napsal(a):

Je zapisovatelný temp?

ATTR 750

bfx
Člen | 12
+
0
-

jasir napsal(a):

bfx napsal(a):

Neladim lokalne rovno si to hadzem na hosting co mam zaplateny. http://test.eternal.sk/…ot/index.php

No, když myslíš… ;) Stejně ale vyzkoušej to co jsem psal o jeden příspěvek výše.

Skusil som to hodit do index.php

<?php
Environment::setMode(Environment:DEVELOPMENT);
Debug::enable(Debug:DEVELOPMENT);

// absolute filesystem path to the web root
define('WWW_DIR', dirname(__FILE__));
// absolute filesystem path to the application root
define('APP_DIR', WWW_DIR . '/../app');
// absolute filesystem path to the libraries
define('LIBS_DIR', WWW_DIR . '/../libs');
// load bootstrap file
require APP_DIR . '/bootstrap.php';
?>

Vysledok> Parse error: syntax error, unexpected ‚:‘ in /home/html/eternal.sk/public_html/_sub/test/document_root/index.php on line 2

jasir
Člen | 746
+
0
-

Aha, sorry, překlep. A nech to v tom bootstrap.php až po
natažení nette loaderu. (jinak Environment ani Debug nebudou natažený)

<?php
Environment::setMode(Environment::DEVELOPMENT);
Debug::enable(Debug::DEVELOPMENT);
?>

Editoval jasir (30. 4. 2009 15:11)

bfx
Člen | 12
+
0
-

jasir napsal(a):

Aha, sorry, překlep. A nech to v tom bootstrap.php až po
natažení nette loaderu. (jinak Environment ani Debug nebudou natažený)

<?php
Environment::setMode(Environment::DEVELOPMENT);
Debug::enable(Debug::DEVELOPMENT);
?>

Fatal error: Class ‚Environment‘ not found in /home/html/eternal.sk/public_html/_sub/test/app/bootstrap.php on line 2

jasir
Člen | 746
+
0
-

Tak sem dej asi celý bootstrap.php

bfx
Člen | 12
+
0
-

jasir napsal(a):

Tak sem dej asi celý bootstrap.php

tu je

<?php
Environment::setMode(Environment::DEVELOPMENT);
Debug::enable(Debug::DEVELOPMENT);

// Step 1: Load Nette Framework
// this allows Nette to load classes automatically so that
// you don't have to litter your code with 'require' statements
require_once LIBS_DIR . '/Nette/loader.php';

// Step 2: Enable Nette\Debug
// for better exception and error visualisation
Debug::enable();
// Step 3: Get the front controller
$application = Environment::getApplication();
// Step 4: Run the application!
$application->run();
?>

a skusal som to aj takto

<?php

// Step 1: Load Nette Framework
// this allows Nette to load classes automatically so that
// you don't have to litter your code with 'require' statements
require_once LIBS_DIR . '/Nette/loader.php';

Environment::setMode(Environment::DEVELOPMENT);
Debug::enable(Debug::DEVELOPMENT);

// Step 2: Enable Nette\Debug
// for better exception and error visualisation
Debug::enable();
// Step 3: Get the front controller
$application = Environment::getApplication();
// Step 4: Run the application!
$application->run();
?>

a znova Server Error
The server encountered an internal error and was unable to complete your request. Please try again later.

tu je to komplet ako to mam http://test.eternal.sk/TestNette.rar

Editoval bfx (30. 4. 2009 15:45)

Ola
Člen | 385
+
0
-

Přečti si pořádně ten příspěvek od jasira – https://forum.nette.org/…iewtopic.php?…

Editoval Ola (30. 4. 2009 16:04)

jasir
Člen | 746
+
0
-

Zkus bootstrap.php:

<?php
// Step 1: Load Nette Framework
// this allows Nette to load classes automatically so that
// you don't have to litter your code with 'require' statements
require_once LIBS_DIR . '/Nette/loader.php';

$loader = new /*Nette\Loaders\*/RobotLoader();
$loader->addDirectory(APP_DIR);
$loader->addDirectory(LIBS_DIR); //
$loader->autoRebuild=TRUE;
$loader->register();


// Step 2: Enable Nette\Debug
// for better exception and error visualisation
Environment::setMode(Environment::DEVELOPMENT);
Debug::enable(Debug::DEVELOPMENT);

// Step 3: Get the front controller
$application = Environment::getApplication();
// Step 4: Run the application!
$application->run();
?>

a presenter

<?php
class DefaultPresenter extends /*Nette\Application\*/Presenter
{
	protected $db;
	protected function startup()
	{

		$this->db = new DibiConnection(array(
				'driver' => 'mysql',
				'host'     => 'localhost',
				'username' => 'xoops',
				'password' => 'xoops666',
				'database' => 'xoops',
		));
	}

	public function renderDefault()
	{
		$this->template->tables = $this->db->getDatabaseInfo()->getTableNames();
	}

	public function renderTable($table)
	{
		$rowset = $this->db->query('SELECT * FROM %n', $table);
		$this->template->table = $table;
		$this->template->rows = $rowset->fetchAll();
		$this->template->columns = $rowset->getColumnNames();
	}
}
?>

Změny :

  • přidal jsem RobotLoader, kterej si dokáže natáhnout to dibi sám
  • úprava pořadí bootstrap
  • v presenteru vyhozený to require_once v metodě
Hynek
Člen | 9
+
0
-

bfx napsal(a):

nAS napsal(a):

Je zapisovatelný temp?

ATTR 750

Vyzkoušej 666, dal jsem 750 jak máš ty a hned vyskočila laděnka že nejde zapisovat do temp.

Ola
Člen | 385
+
0
-

Hynek napsal(a):
Vyzkoušej 666, dal jsem 750 jak máš ty a hned vyskočila laděnka že nejde zapisovat do temp.

Temp by měl mít 777.

bfx
Člen | 12
+
0
-

Ola napsal(a):

Hynek napsal(a):
Vyzkoušej 666, dal jsem 750 jak máš ty a hned vyskočila laděnka že nejde zapisovat do temp.

Temp by měl mít 777.

ok pomohlo diki ;)

bfx
Člen | 12
+
0
-

jasir napsal(a):

Zkus bootstrap.php:

<?php
// Step 1: Load Nette Framework
// this allows Nette to load classes automatically so that
// you don't have to litter your code with 'require' statements
require_once LIBS_DIR . '/Nette/loader.php';

$loader = new /*Nette\Loaders\*/RobotLoader();
$loader->addDirectory(APP_DIR);
$loader->addDirectory(LIBS_DIR); //
$loader->autoRebuild=TRUE;
$loader->register();


// Step 2: Enable Nette\Debug
// for better exception and error visualisation
Environment::setMode(Environment::DEVELOPMENT);
Debug::enable(Debug::DEVELOPMENT);

// Step 3: Get the front controller
$application = Environment::getApplication();
// Step 4: Run the application!
$application->run();
?>

a presenter

<?php
class DefaultPresenter extends /*Nette\Application\*/Presenter
{
	protected $db;
	protected function startup()
	{

		$this->db = new DibiConnection(array(
				'driver' => 'mysql',
				'host'     => 'localhost',
				'username' => 'xoops',
				'password' => '*******',
				'database' => 'xoops',
		));
	}


	public function renderDefault()
	{
		$this->template->tables = $this->db->getDatabaseInfo()->getTableNames();
	}

	public function renderTable($table)
	{
		$rowset = $this->db->query('SELECT * FROM %n', $table);
		$this->template->table = $table;
		$this->template->rows = $rowset->fetchAll();
		$this->template->columns = $rowset->getColumnNames();
	}
}
?>

Změny :

  • přidal jsem RobotLoader, kterej si dokáže natáhnout to dibi sám
  • úprava pořadí bootstrap
  • v presenteru vyhozený to require_once v metodě

diki pomohli tie prava na temp este musim skusit tu ladenku , lebo sa mi zda ze nejako nefunguje.

nAS
Člen | 277
+
0
-

bfx napsal(a):
diki pomohli tie prava na temp este musim skusit tu ladenku , lebo sa mi zda ze nejako nefunguje.

Já to říkal :)

A laděnka je defaultně na ostrém serveru vypnutá (mělo by se ladit na lokále) a jak už psal jasir, tak se zapne tím:

Environment::setMode(Environment::DEVELOPMENT);
Debug::enable(Debug::DEVELOPMENT);