diff --git a/cs/quickstart/authentication.texy b/cs/quickstart/authentication.texy index ef2d65eb89..ecb1068111 100644 --- a/cs/quickstart/authentication.texy +++ b/cs/quickstart/authentication.texy @@ -1,5 +1,5 @@ -Autentifikace -************* +Autentifikace | První aplikace +********************************************* Nette poskytuje způsob jak naprogramovat autentifikaci na našich stránkách, ale do ničeho nás nenutí. Implementace je pouze na nás. Nette obsahuje rozhraní `Nette\Security\IAuthenticator`, které vyžaduje pouze jednu metodu `authenticate`, která ověřuje uživatele jakkoliv budeme chtít. @@ -205,6 +205,3 @@ Shrnutí ======= Nyní máme odkaz odkazující na nový presenter, který požaduje od uživatelů přihlašovací údaje a umožňuje jim přihlásit se. K ověření uživatele jsme použili *SimpleAuthenticator* a přihlašovací údaje máme v konfiguračním souboru. Jelikož se jedná o velmi jednoduchou aplikaci, nepotřebujeme více účtů. Také jsme zabezpečili všechny akce a formuláře, takže přidávat a editovat příspěvky mohou pouze přihlášení uživatelé. - - -{{title: Píšeme první aplikaci: Autentifikace}} diff --git a/cs/quickstart/comments.texy b/cs/quickstart/comments.texy index 263ee96f7f..c956028d4d 100644 --- a/cs/quickstart/comments.texy +++ b/cs/quickstart/comments.texy @@ -1,5 +1,5 @@ -Komentáře -********* +Komentáře | První aplikace +***************************************** Nahráli jsme blog na webserver a publikovali několik velmi zajímavých příspěvků pomocí Admineru. Lidé čtou náš blog a jsou z něho velmi nadšení. Dostáváme každý den mnoho e-mailů s pochvalami. Ale k čemu je všechna tato chvála, pokud ji máme pouze v e-mailu a nikdo si ji nemůže přečíst? Bylo by lepší, kdyby mohl čtenář článek přímo komentovat, takže by si mohl každý přečíst, jak jsme úžasní. @@ -160,6 +160,3 @@ Všimněte si speciálního atributu `n:tag-if`. Již víte jak `n:atributy` fun Dobrý den! {if $important}{/if} Dobrý den! {if $important}{/if} ``` - - -{{title: Píšeme první aplikaci: Komentáře}} diff --git a/cs/quickstart/creating-posts.texy b/cs/quickstart/creating-posts.texy index 56c3504515..77b48dd305 100644 --- a/cs/quickstart/creating-posts.texy +++ b/cs/quickstart/creating-posts.texy @@ -1,5 +1,5 @@ -Vytváření a editování příspěvků -******************************* +Vytváření a editování příspěvků | První aplikace +*************************************************************** To je paráda! Máme super cool nový blog, lidé urputně diskutují v komentářích a my máme konečně trochu času na další programování. Přestože je Adminer skvělý nástroj, není úplně ideální pro psaní nových příspěvků na blog. Zřejmě je ten správný čas pro vytvoření jednoduchého formuláře pro přidání nových příspěvků přímo z aplikace. Pojďme na to. @@ -151,6 +151,3 @@ Shrnutí ======= Blog je nyní funkční, návštěvníci jej aktivně komentují a my již nepotřebujeme na publikaci Adminer. Aplikace je plně nezávislá a kdokoliv může přidat nový příspěvek. Tak moment, to asi není úplně v pořádku, že kdokoliv - a tím myslím opravdu kdokoliv s přístupem na internet - může přidávat nové příspěvky. Je zapotřebí nějaké zabezpečení, aby mohl nový příspěvek přidat pouze přihlášený uživatel. Na to se podíváme v příští kapitole. - - -{{title: Píšeme první aplikaci: Vytváření a editování příspěvků}} diff --git a/cs/quickstart/home-page.texy b/cs/quickstart/home-page.texy index 182a53c408..39d9cf213d 100644 --- a/cs/quickstart/home-page.texy +++ b/cs/quickstart/home-page.texy @@ -1,5 +1,5 @@ -Úvodní stránka blogu -******************** +Úvodní stránka blogu | První aplikace +**************************************************** .[perex] Nyní si vytvoříme úvodní stránku zobrazující poslední příspěvky. @@ -200,6 +200,3 @@ Shrnutí ======= Nyní máme velmi jednoduchou MySQL databázi s pár příspěvky. Aplikace se připojuje k této databázi a vypisuje jednoduchý seznam těchto příspěvků do šablony. - - -{{title: Píšeme první aplikaci: Úvodní stránka blogu}} diff --git a/cs/quickstart/refactoring-model.texy b/cs/quickstart/refactoring-model.texy index 36454d6441..6ff2f73fbf 100644 --- a/cs/quickstart/refactoring-model.texy +++ b/cs/quickstart/refactoring-model.texy @@ -1,5 +1,5 @@ -Model -***** +Model | První aplikace +************************************* S tím, jak aplikace roste, brzy zjistíme, že na různých místech, v různých presenterech, potřebujeme provádět podobné operace s databází. Například získávat nejnovější publikované články. Když aplikaci vylepšíme třeba tím, že u článků přidáme příznak, zda je rozepsaný, musíme potom projít i všechna místa v aplikaci, kde se články z databáze získávají a doplnit podmínku where, aby se vybíraly jen články nerozepsané. @@ -104,6 +104,3 @@ V sekci use máme `App\Model\ArticleManager`, tak si můžeme zápis v PHP kódu V konstruktoru si požádáme o `ArticleManager`, který si přiřadíme do vlastnosti `$articleManager` a v metodě renderDefault zavoláme metodu `getPublicArticles()`. Nad výsledkem této funkce zavoláme ještě metodu `limit(5)`; Třída `ArticleManager` si v konstruktoru řekne o předání `Nette\Database\Context` a jelikož je tato třída v DI containeru zaregistrovaná, kontejner tuto instanci vytvoří a předá ji. DI za nás takto vytvoří instanci ArticleManagera a předá ho v konstruktoru třídě HomepagePresenter, který si o něj požádal. Taková matrjoška. :) Všichni si jen říkají co chtějí a nezajímají se o to, kde se co a jak vytváří. O vytvoření se postará [Nette DI container |/dependency-injection]. - - -{{title: Píšeme první aplikaci: Model}} diff --git a/cs/quickstart/single-post.texy b/cs/quickstart/single-post.texy index b68a4b2a4d..d290d328f3 100644 --- a/cs/quickstart/single-post.texy +++ b/cs/quickstart/single-post.texy @@ -1,5 +1,5 @@ -Stránka s příspěvkem -******************** +Stránka s příspěvkem | První aplikace +**************************************************** .[perex] Nyní si vytvoříme další stránku blogu, která bude zobrazovat jeden konkrétní příspěvek. @@ -121,6 +121,3 @@ Shrnutí ======= Máme databázi s příspěvky a webovou aplikaci, která má dva pohledy - první zobrazuje přehled všech příspěvků a druhá zobrazuje jeden konkrétní příspěvek. - - -{{title: Píšeme první aplikaci: Stránka s příspěvkem}} diff --git a/en/quickstart/authentication.texy b/en/quickstart/authentication.texy index 7447818afe..df927c0594 100644 --- a/en/quickstart/authentication.texy +++ b/en/quickstart/authentication.texy @@ -1,5 +1,5 @@ -Authentication -************** +Authentication | First Application +************************************************* Nette provides you with guidelines on how to program authentication on your page, but it doesn't force you to do it any particular way. The implementation is up to you. Nette has a `Nette\Security\IAuthenticator` interface which forces you to implement just a single method called `authenticate`, which finds the user anyhow you want. @@ -204,6 +204,3 @@ Summary ======= There is a `Sign in` link pointing to a new presenter, which asks the user for his credentials and authenticates him. We used *SimpleAuthenticator* and configured the usernames and passwords in the config file because it was a very easy way and we don't need more users at the moment. We also secured all required actions and forms, so that only logged in users can add new posts or edit existing ones. - - -{{title: Create Your First Application: Authentication}} diff --git a/en/quickstart/comments.texy b/en/quickstart/comments.texy index 040e1fee37..5480a6bba7 100644 --- a/en/quickstart/comments.texy +++ b/en/quickstart/comments.texy @@ -1,5 +1,5 @@ -Comments -******** +Comments | First Application +******************************************* The blog has been deployed, we’ve written some very good blog posts and published them via Adminer. People are reading the blog and they’re very passionate about our ideas. We’re receiving many emails with praise each day. But what is all the praise for when we’ve got it only in the email, so no one else can read it? Wouldn’t it be better if people could comment directly on the blog so that everyone else could read how awesome we are? @@ -160,6 +160,3 @@ Notice the special `n:tag-if` attribute. You already know how `n: attributes` wo Hello there! {if $important}{/if} Hello there! {if $important}{/if} ``` - - -{{title: Create Your First Application: Comments}} diff --git a/en/quickstart/creating-posts.texy b/en/quickstart/creating-posts.texy index 0cfe3f3129..a50d4d0f5c 100644 --- a/en/quickstart/creating-posts.texy +++ b/en/quickstart/creating-posts.texy @@ -1,5 +1,5 @@ -Creating and Editing Posts -************************** +Creating and Editing Posts | First Application +************************************************************* What a great time. We have a super cool new blog, people are arguing in comments and we have finally some time for more programming. Though we like Adminer, it is not that comfortable to write blog posts in it. Perhaps it's the right time to add a simple form for adding new posts directly from our app. Let’s do it. @@ -151,6 +151,3 @@ Summary ======= The blog is working, people are commenting rapidly and we no longer rely on Adminer for adding new posts. It is fully independent and even normal people can post there. But wait, that’s probably not ok, that anyone, I mean really anyone on the Internet, can post on our blog. Some form of authentication is required so that only logged-in users would be able to post. We'll add that in the next chapter. - - -{{title: Create Your First Application: Creating and Editing Posts}} diff --git a/en/quickstart/home-page.texy b/en/quickstart/home-page.texy index 8bb7076684..b59205bd09 100644 --- a/en/quickstart/home-page.texy +++ b/en/quickstart/home-page.texy @@ -1,5 +1,5 @@ -Blog Home Page -************** +Blog Home Page | First Application +************************************************* .[perex] Let’s create the home page displaying your recent posts. @@ -199,6 +199,3 @@ Summary ======= We have a very simple MySQL database with some blog posts in it. The application connects to the database and displays a simple list of the posts. - - -{{title: Create Your First Application: Blog Home Page}} diff --git a/en/quickstart/refactoring-model.texy b/en/quickstart/refactoring-model.texy index da381b1df1..4f5da4992c 100644 --- a/en/quickstart/refactoring-model.texy +++ b/en/quickstart/refactoring-model.texy @@ -1,5 +1,5 @@ -Model -***** +Model | First Application +**************************************** As our application grows, we soon find out that we need to perform similar database operations in various locations and in various presenters, for example acquiring the newest published articles. If we improve our application by adding a flag to articles to indicate a work-in-progress state, we must also go through all locations in our application and add a where clause to make sure only finished articles are selected. @@ -100,6 +100,3 @@ In the use section, we are using `App\Model\ArticleManager`. That way we can sho We request `ArticleManager` in a constructor which we will assign to the `$articleManager` attribute and in the renderDefault method we are calling the `getPublicArticles()` method. We are also calling the `limit(5)` method on the result of that function. The `ArticleManager` class asks for `Nette\Database\Context` in a constructor and because this class is registered in the DI container, the container creates this instance and passes it. DI this way creates an ArticleManager instance for us and passes it in a constructor to the HomepagePresenter class which asked for it. Sort of a Matryoshka doll of code. :) All the components only request what they need and they don't care where and how it gets created. The creation is handled by [Nette DI container |/dependency-injection]. - - -{{title: Create Your First Application: Model}} diff --git a/en/quickstart/single-post.texy b/en/quickstart/single-post.texy index 3cdfb5c707..caef875d4f 100644 --- a/en/quickstart/single-post.texy +++ b/en/quickstart/single-post.texy @@ -1,5 +1,5 @@ -Single Post Page -**************** +Single Post Page | First Application +*************************************************** .[perex] Let’s add another page to our blog, which will display the content of one particular blog post. @@ -121,6 +121,3 @@ Summary ======= We have a database with blog posts and a web app with two views - the first one displays the summary of all recent posts and the second one displays one specific post. - - -{{title: Create Your First Application: Single Post Page}}