You have successfully created your Nette Framework project.

Explore source codes

See source code of this page template, layout template and corresponding presenter. And feel free to modify them!

Manage database tables

Manage your database using pre-installed tool Adminer with an easy to use GUI.

Read
Quick-start tutorial

If you are exploring Nette Framework for the first time, you should read the Quick Start, documentation, tutorials and forum.

We hope you enjoy this framework!

This page template located at app/templates/Homepage/default.latte

{* This is the welcome page, you can delete it *}

{block content}
<div id="banner">
	<h1 n:block=title>Congratulations!</h1>
</div>

<div id="content">
	<h2>You have successfully created your Nette Framework project.</h2>

	<div class="boxes">
		<div>
			<h2><img src="data:image/png;base64,…==" alt="">Explore source codes</h2>
			<p>See source code of <a href="#template">this page template</a>, <a href="#layout">layout template</a> and
			<a href="#presenter">corresponding presenter</a>. And feel free to modify them!</p>
		</div>

		<div>
			<h2><a href="{$basePath}/adminer/"><img src="data:image/png;base64,…==" alt="">Manage database tables</a></h2>
			<p>Manage your database using pre-installed <a href="{$basePath}/adminer/">tool Adminer</a> with an easy to use GUI.<p>
		</div>

		<div>
			<h2><a href="http://doc.nette.org/quickstart"><img src="data:image/png;base64,…=" alt="">Read<br>Quick-start tutorial</a></h2>
			<p>If you are exploring Nette Framework for the first time, you should read the
			<a href="http://doc.nette.org/quickstart">Quick Start</a>, <a href="http://doc.nette.org">documentation</a>,
			<a href="http://pla.nette.org">tutorials</a> and <a href="http://forum.nette.org">forum</a>.</p>
		</div>
	</div>

	<h2>We hope you enjoy this framework!</h2>

	<section id="template">
		<h2>This page template located at <span>{strstr($presenter->template->getFile(), app)}</span></h2>

		<pre><code class="jush">{file_get_contents($presenter->template->getFile())|replacere:'#[\w+/]{60,}#':'…'}</code></pre>
	</section>

	<section id="layout">
		<h2>Layout template located at <span>{strstr($template->getName(), app)}</span></h2>

		<pre><code class="jush">{file_get_contents($template->getName())}</code></pre>
	</section>

	<section id="presenter">
		<h2>Current presenter located at <span>{strstr($presenter->reflection->fileName, app)}</span></h2>

		<pre><code class="jush-php">{file_get_contents($presenter->reflection->fileName)}</code></pre>
	</section>

	<footer>PHP {=PHP_VERSION} |
		{ifset $_SERVER['SERVER_SOFTWARE']}Server {$_SERVER['SERVER_SOFTWARE']}{/ifset} |
		Nette Framework {=Nette\Framework::VERSION}</footer>
</div>
{/block}

{block scripts}
{include parent}
<script src="http://jush.sourceforge.net/jush.js"></script>
<script>
	jush.create_links = false;
	jush.highlight_tag('code');
	$('code.jush').each(function(){ $(this).html($(this).html().replace(/\x7B[/$\w].*?\}/g, '<span class="jush-latte">$&</span>')) });

	$('a[href^=#]').click(function(){
		$('html,body').animate({ scrollTop: $($(this).attr('href')).show().offset().top - 5 }, 'fast');
		return false;
	});
</script>
{/block}


{block head}
<style>
	html { overflow-y: scroll; }
	body { font: 14px/1.65 Verdana, "Geneva CE", lucida, sans-serif; background: #3484d2; color: #333; margin: 38px auto; max-width: 940px; min-width: 420px; }

	h1, h2 { font: normal 150%/1.3 Georgia, "New York CE", utopia, serif; color: #1e5eb6; -webkit-text-stroke: 1px rgba(0,0,0,0); }

	img { border: none; }

	a { color: #006aeb; padding: 3px 1px; }

	a:hover, a:active, a:focus { background-color: #006aeb; text-decoration: none; color: white; }

	#banner { border-radius: 12px 12px 0 0; background-image: url(data:image/png;base64,…); }
	#banner h1 { color: white; font-size: 50px; line-height: 121px; margin: 0; padding-left: 4%; background: url(data:image/png;base64,…==) no-repeat 95%; text-shadow: 1px 1px 0 rgba(0, 0, 0, .9); }
	@media (max-width: 600px) {
		#banner h1 { background: none; }
	}

	#content { background: white; border: 1px solid #eff4f7; border-radius: 0 0 12px 12px; padding: 10px 4%; }
	#content > h2 { font-size: 130%; color: #666; clear: both; padding: 1.2em 0; margin: 0; }

	h2 span { color: #87A7D5; }
	h2 a { text-decoration: none; background: transparent; }

	.boxes > div { width: 31%; float: left; background: #f0f0f0; margin-right: 3%; min-height: 280px; border: 1px solid #e6e6e6; border-radius: 5px; }
	.boxes h2 { text-align: right; margin: 10%; }
	.boxes img { float: left; }
	.boxes p { clear: both; margin: 10%; }
	.boxes p a { color: #006aeb; background: #f7f7f7; padding: 1px 3px; border-radius: 3px; text-decoration: none; box-shadow: 0 2px 5px rgba(0, 0, 0, .10); }
	.boxes p a:hover, .boxes p a:active, .boxes p a:focus { color: white; background-color: #006aeb; }
	.boxes > div:nth-child(3n - 2) h2 { color: #00a6e5; }
	.boxes > div:nth-child(3n - 2) img { margin: -12% 0 0 -12%; }
	.boxes > div:nth-child(3n - 1) h2 a { color: #db8e34; background: transparent; }
	.boxes > div:nth-child(3n) { margin: 0; }
	.boxes > div:nth-child(3n) h2 a { color: #578404; background: transparent; }
	@media (max-width: 700px) {
		.boxes > div { float: none; width: auto; margin: 0 0 1.1em; min-height: 0; }
		.boxes h2, .boxes p { margin: 1em; }
		.boxes > div:nth-child(3n - 2) img { margin: -1em 0 0 -1em; }
	}

	html.js section { display: none; }

	pre { font-size: 12px; line-height: 1.4; padding: 10px; margin: 1.3em 0; overflow: auto; max-height: 500px; background: #F1F5FB; border-radius: 5px; box-shadow: 0 1px 1px rgba(0, 0, 0, .1); }

	footer { font-size: 70%; padding: 1em 0; color: gray; }

	.jush-com, .jush-php_doc { color: #929292; }
	.jush-tag, .jush-tag_js { color: #6A8527; font-weight: bold; }
	.jush-att { color: #8CA315 }
	.jush-att_quo { color: #448CCB; font-weight: bold; }
	.jush-php_var { color: #d59401; font-weight: bold; }
	.jush-php_apo { color: green; }
	.jush-php_new { font-weight: bold; }
	.jush-php_fun { color: #254DB3; }
	.jush-js, .jush-css { color: #333333; }
	.jush-css_val { color: #448CCB; }
	.jush-clr { color: #007800; }
	.jush a { color: inherit; background: transparent; }
	.jush-latte { color: #D59401; font-weight: bold }
</style>
{/block}

Layout template located at app/templates/@layout.latte

{**
 * @param string   $basePath web base path
 * @param array    $flashes  flash messages
 *}

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">

	<title>{ifset #title}{include title|striptags} | {/ifset}Nette Sandbox</title>

	<link rel="stylesheet" media="screen,projection,tv" href="{$basePath}/css/screen.css">
	<link rel="stylesheet" media="print" href="{$basePath}/css/print.css">
	<link rel="shortcut icon" href="{$basePath}/favicon.ico">
	{block head}{/block}
</head>

<body>
	<script> document.documentElement.className+=' js' </script>

	<div n:foreach="$flashes as $flash" class="flash {$flash->type}">{$flash->message}</div>

	{include content}

	{block scripts}
	<script src="{$basePath}/js/jquery.js"></script>
	<script src="{$basePath}/js/netteForms.js"></script>
	<script src="{$basePath}/js/main.js"></script>
	{/block}
</body>
</html>

Current presenter located at app/presenters/HomepagePresenter.php

<?php

namespace App\Presenters;

use Nette,
	App\Model;


/**
 * Homepage presenter.
 */
class HomepagePresenter extends BasePresenter
{

	public function renderDefault()
	{
		$this->template->anyVariable = 'any value';
	}

}