Skip to content

Commit

Permalink
row unification CS - EN
Browse files Browse the repository at this point in the history
  • Loading branch information
dg committed Apr 9, 2023
1 parent d896a09 commit 669ece7
Show file tree
Hide file tree
Showing 54 changed files with 48 additions and 47 deletions.
1 change: 0 additions & 1 deletion application/cs/components.texy
Original file line number Diff line number Diff line change
Expand Up @@ -434,7 +434,6 @@ Metoda [isSignalReceiver()|api:Nette\Application\UI\Presenter::isSignalReceiver(

V kterékoliv fázi předcházející `handle{signal}` můžeme vykonat signál manuálně zavoláním metody [processSignal()|api:Nette\Application\UI\Presenter::processSignal()], která si bere na starosti vyřízení signálu – vezme komponentu, která se určila jako příjemce signálu (pokud není určen příjemce signálu, je to presenter samotný) a pošle jí signál.


Příklad:

```php
Expand Down
1 change: 1 addition & 0 deletions best-practices/cs/dynamic-snippets.texy
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ Cesta dynamických snippetů

Dynamický snippet znamená v terminologii Latte specifický případ užití makra `{snippet}`, kdy je v názvu snippetu použita proměnná. Takový snippet se nemůže v šabloně nalézat jen tak kdekoliv - musí být obalen statickým snippetem, tj. obyčejným, nebo uvnitř `{snippetArea}`. Naši šablonu bychom mohli upravit následovně.


```latte
{snippet articlesContainer}
<article n:foreach="$articles as $article">
Expand Down
5 changes: 3 additions & 2 deletions best-practices/cs/pagination.texy
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ namespace App\Model;

use Nette;


class ArticleRepository
{
use Nette\SmartObject;
Expand Down Expand Up @@ -86,6 +87,7 @@ namespace App\Model;

use Nette;


class ArticleRepository
{
use Nette\SmartObject;
Expand Down Expand Up @@ -130,7 +132,6 @@ namespace App\Presenters;
use Nette;
use App\Model\ArticleRepository;


class HomepagePresenter extends Nette\Application\UI\Presenter
{
/** @var ArticleRepository */
Expand Down Expand Up @@ -205,6 +206,7 @@ namespace App\Model;

use Nette;


class ArticleRepository
{
use Nette\SmartObject;
Expand All @@ -228,7 +230,6 @@ class ArticleRepository
}
```


V presenteru nemusíme vytvářet Paginator, použijeme místo něj metodu třídy `Selection`, kterou nám vrací repositář:

```php
Expand Down
4 changes: 2 additions & 2 deletions best-practices/en/pagination.texy
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ namespace App\Presenters;
use Nette;
use App\Model\ArticleRepository;


class HomepagePresenter extends Nette\Application\UI\Presenter
{
/** @var ArticleRepository */
Expand Down Expand Up @@ -90,6 +89,7 @@ namespace App\Model;

use Nette;


class ArticleRepository
{
use Nette\SmartObject;
Expand Down Expand Up @@ -134,7 +134,6 @@ namespace App\Presenters;
use Nette;
use App\Model\ArticleRepository;


class HomepagePresenter extends Nette\Application\UI\Presenter
{
/** @var ArticleRepository */
Expand Down Expand Up @@ -209,6 +208,7 @@ namespace App\Model;

use Nette;


class ArticleRepository
{
use Nette\SmartObject;
Expand Down
3 changes: 2 additions & 1 deletion bootstrap/cs/@home.texy
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ Volba režimu se provádí autodetekcí, takže obvykle není potřeba nic konfi
Pokud chceme vývojářský režim povolit i v dalších případech, například programátorům přistupujícím z konkrétní IP adresy, použijeme `setDebugMode()`:

```php
$configurator->setDebugMode('23.75.345.200'); // lze uvést i pole IP adres
$configurator->setDebugMode('23.75.345.200');
// lze zadat i pole IP adres
```

Rozhodně doporučujeme kombinovat IP adresu s cookie. Do cookie `nette-debug` uložíme tajný token, např. `secret1234`, a tímto způsobem aktivujeme vývojářský režim pro programátory přistupující z konkrétní IP adresy a zároveň mající v cookie zmíněný token:
Expand Down
1 change: 0 additions & 1 deletion contributing/cs/code.texy
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ Editace kódu
============

Než začnete programovat, vytvořte si novou větev.

```shell
git checkout -b new_branch_name
```
Expand Down
1 change: 0 additions & 1 deletion contributing/cs/coding-standard.texy
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ Dokumentační blok pro definici třídy:
- Anotace `@author` se vynechává. Autorství se uchovává v historii zdrojového kódu.
- Lze použít anotace `@internal` nebo `@deprecated`.


```php
/**
* MIME message part.
Expand Down
2 changes: 1 addition & 1 deletion contributing/en/code.texy
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ Now you should be able to run tool in the terminal. For example, this command ch


Committing the Changes
----------------------
======================

After you have changed the code, you have to commit your changes. Create more commits, one for each logical step. Each commit should have been usable as is - without other commits. So, the appropriate tests should be also included in the same commit.

Expand Down
4 changes: 0 additions & 4 deletions database/cs/configuration.texy
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,7 @@ Konfigurace jednoho databázového spojení:
database:
# DSN, jediný povinný klíč
dsn: "sqlite:%appDir%/Model/demo.db"

# uživatelské jméno
user: ...

# heslo
password: ...
```

Expand Down
1 change: 1 addition & 0 deletions database/cs/explorer.texy
Original file line number Diff line number Diff line change
Expand Up @@ -504,6 +504,7 @@ foreach ($author->related('book.translator_id') as $book) {
```

Metoda `related()` přijímá popis spojení jako dva argumenty, nebo jako jeden argument spojený tečkou. První argument je cílová tabulka, druhý je sloupec.

```php
$author->related('book.translator_id');
// je stejné jako
Expand Down
1 change: 0 additions & 1 deletion dependency-injection/cs/factory.texy
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,6 @@ Pak platí, že `MultiFactory::createArticle()` dělá totéž jako `MultiFactor

Definice seznamem
-----------------

A jak definovat vícenásobnou továrnu v konfiguraci? Vytvoříme tři služby, které bude vytvářet/vracet, a potom samotnou továrnu:

```neon
Expand Down
2 changes: 1 addition & 1 deletion forms/cs/@home.texy
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Formuláře můžete používat buď jako součást Nette Aplikace (tedy v prese


Instalace
=========
---------

Knihovnu stáhěte a nainstalujete pomocí nástroje [Composer|best-practices:composer]:

Expand Down
2 changes: 1 addition & 1 deletion forms/cs/rendering.texy
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ Složitější formulářové prvky, jako je RadioList nebo CheckboxList, lze ta

Návrh kódu `{formPrint}` .[#toc-formprint]
------------------------------------------

Podobný Latte kód pro formulář si můžete nechat vygenerovat pomocí značky `{formPrint}`. Pokud ji umístíte do šablony, místo běžného vykreslení se zobrazí návrh kódu. Ten pak stačí označit a zkopírovat do projektu.


Expand Down Expand Up @@ -496,7 +497,6 @@ Vypíše:
V případě selectboxů metoda `setHtmlAttribute()` nastavuje atributy elementu `<select>`. Pokud chceme nastavit atributy jednotlivým
`<option>`, použijeme metodu `setOptionAttribute()`. Fungují i zápisy s dvojtečkou a otazníkem uvedené výše:


```php
$form->addSelect('colors', 'Barvy:', $colors)
->setOptionAttribute('style:', $styles);
Expand Down
1 change: 0 additions & 1 deletion forms/cs/validation.texy
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,6 @@ try {
if ($e->getCode() === Nette\Security\Authenticator::INVALID_CREDENTIAL) {
$form->addError('Neplatné heslo.');
}
// ...
}
```

Expand Down
3 changes: 1 addition & 2 deletions http/cs/response.texy
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@ HTTP odpověď představuje objekt [api:Nette\Http\Response], ke kterému se dos
Nette\Http\Response
===================

Objekt je na rozdíl od [Nette\Http\Request|request] mutable, tedy pomocí setterů můžete měnit stav, tedy např. odesílat hlavičky. Nezapomeňte, že všechny settery musí být volány **před odesláním jakéhokoli výstupu.**
Jestli už byl výstup odeslán prozradí metoda `isSent()`. Pokud vrací `true`, každý pokus o odeslání hlavičky vyvolá výjimku `Nette\InvalidStateException`.
Objekt je na rozdíl od [Nette\Http\Request|request] mutable, tedy pomocí setterů můžete měnit stav, tedy např. odesílat hlavičky. Nezapomeňte, že všechny settery musí být volány **před odesláním jakéhokoli výstupu.** Jestli už byl výstup odeslán prozradí metoda `isSent()`. Pokud vrací `true`, každý pokus o odeslání hlavičky vyvolá výjimku `Nette\InvalidStateException`.


setCode(int $code, string $reason=null) .[method]
Expand Down
1 change: 1 addition & 0 deletions http/en/urls.texy
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ The [#Url], [#UrlImmutable], and [#UrlScript] classes make it easy to manage, pa

→ [Installation and requirements |@home#Installation]


Url
===

Expand Down
4 changes: 0 additions & 4 deletions latte/cs/extending-latte.texy
Original file line number Diff line number Diff line change
Expand Up @@ -266,10 +266,6 @@ Vytvoření vlastního loaderu

Loader je třída, která implementuje rozhraní [api:Latte\Loader].

/--comment
TODO: Using a Database to store Templates
\--


Tagy (makra)
============
Expand Down
3 changes: 2 additions & 1 deletion latte/cs/safety-first.texy
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,8 @@ Latte vs naivní systémy
Ukázali jsem si, jak se správně escapuje v HTML dokumentu a jak zásadní je znalost kontextu, tedy místa, kde data vypisujeme. Jinými slovy, jak funguje kontextově sensitvní escapování.
Ačkoliv jde o nezbytný předpoklad funkční obrany před XSS, **Latte je jediný šablonovací systém pro PHP, který tohle umí.**

Jak je to možné, když všechny systémy dnes tvrdí, že mají automatické escapování? Automatické escapování bez znalosti kontextu je trošku bullshit, který **vytváří falešný dojem bezpečí**.
Jak je to možné, když všechny systémy dnes tvrdí, že mají automatické escapování?
Automatické escapování bez znalosti kontextu je trošku bullshit, který **vytváří falešný dojem bezpečí**.

Šablonovací systémy, jako je Twig, Laravel Blade a další, nevidí v šabloně žádnou HTML strukturu. Nevidí tudíž ani kontexty. Oproti Latte jsou slepé a naivní. Zpracovávají jen vlastní značky, vše ostatní je pro ně nepodstatný tok znaků:

Expand Down
4 changes: 1 addition & 3 deletions latte/cs/tags.texy
Original file line number Diff line number Diff line change
Expand Up @@ -548,9 +548,7 @@ Pro řízení jakéhokoliv cyklu lze používat značky `{continueIf ?}` a `{bre
```

.{data-version:2.9}
Značka `{skipIf}` je velmi podobná jako `{continueIf}`, ale nezvyšuje počítadlo `$iterator->counter`, takže pokud jej vypisujeme a zároveň přeskočíme některé položky, nebudou v číslování díry.

A také klauzule `{else}` se vykreslí, když přeskočíme všechny položky.
Značka `{skipIf}` je velmi podobná jako `{continueIf}`, ale nezvyšuje počítadlo `$iterator->counter`, takže pokud jej vypisujeme a zároveň přeskočíme některé položky, nebudou v číslování díry. A také klauzule `{else}` se vykreslí, když přeskočíme všechny položky.

```latte
<ul>
Expand Down
1 change: 0 additions & 1 deletion latte/en/develop.texy
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,6 @@ Tracy\Debugger::enable();
$latte = new Latte\Engine;
// activates Tracy's extension
$latte->addExtension(new Latte\Bridges\Tracy\TracyExtension);

```

You will now see all errors in a neat red screen, including errors in templates with row and column highlighting ([video|https://github.com/nette/tracy/releases/tag/v2.9.0]).
Expand Down
2 changes: 1 addition & 1 deletion latte/en/syntax.texy
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ Below is a minimal template that illustrates a few basics elements: tags, n:attr
{foreach $items as $item} {* tag representing foreach loop *}
<li>{$item|capitalize}</li> {* tag that prints a variable with a filter *}
{/foreach} {* end of cycle *}
</ul>
```

Let's take a closer look at these important elements and how they can help you build an incredible template.
Expand Down Expand Up @@ -249,7 +250,6 @@ The undefined-safe operator `??->` is similar to the nullsafe operator `?->`, bu

this is a way of saying that when `$order` is defined and not null, `$order->id` will be computed, but when `$order` is null or doesn't exist, stop what we’re doing and just return null.

You might find yourself using `?->` to replace a lot of code that performs repetitive nullish checks:
```latte
{$user??->address??->street}
// roughly means isset($user) && isset($user->address) ? $user->address->street : null
Expand Down
1 change: 0 additions & 1 deletion latte/en/tags.texy
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,6 @@ Clause `{case}` can contain multiple values separated by commas:
Loops
=====


In Latte, all the loops you know from PHP are available to you: foreach, for and while.


Expand Down
1 change: 0 additions & 1 deletion migrations/en/to-3-1.texy
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ Http
- `cookieSecure` is now by default 'auto'
- option `session.cookieSecure` is deprecated, `http.cookieSecure` is used instead
- cookie `nette-samesite` renamed to `_nss`

- `Nette\Http\Request::getFile()` accepts array of keys and returns FileUpload|null
- `Nette\Http\Session::getCookieParameters()` is deprecated
- `Nette\Http\FileUpload::getName()` renamed to `getUntrustedName()`
Expand Down
1 change: 0 additions & 1 deletion neon/cs/format.texy
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,6 @@ country: USA

Neon versus JSON
================

JSON je podmnožinou NEONu. Každý JSON se dá proto parsovat jako NEON:

```neon
Expand Down
2 changes: 0 additions & 2 deletions nette/cs/vulnerability-protection.texy
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,12 @@ Cross-Site Scripting (XSS)

Cross-Site Scripting je metoda narušení webových stránek zneužívající neošetřených výstupů. Útočník pak dokáže do stránky podstrčit svůj vlastní kód a tím může stránku pozměnit nebo dokonce získat citlivé údaje o návštěvnících. Proti XSS se lze bránit jen důsledným a korektním ošetřením všech řetězců. Přitom stačí, aby váš kodér jen jednou jedinkrát toto opomenul, a celý web může být rázem kompromitován.


Příkladem útoku může být podstrčení upravené URL uživateli, pomocí které injektujeme do stránky svůj kód. Když aplikace nebude výstupy řádně ošetřovat, vykoná skript v prohlížeči uživatele. Tímto způsobem mu můžeme například zcizit identitu.

```
https://example.com/?search=<script>alert('Úspěšný XSS útok.');</script>
```


Nette Framework přichází s revoluční technologií [Context-Aware Escaping |latte:safety-first#Kontextově sensitivní escapování], která vás provždy zbaví rizika Cross-Site Scriptingu. Všechny výstupy totiž ošetřuje automaticky a tak se nemůže stát, že by kodér na něco zapomněl. Příklad? Kodér vytvoří tuto šablonu:

```latte
Expand Down
2 changes: 0 additions & 2 deletions quickstart/cs/model.texy
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ Funkci umístíme třeba do třídy `PostFacade` a nazveme ji `getPublicArticles

V adresáři `app/Model/` vytvoříme naši modelovou třídu `PostFacade`, která se nám bude starat o články:


```php .{file:app/Model/PostFacade.php}
<?php
namespace App\Model;
Expand Down Expand Up @@ -41,7 +40,6 @@ Ve třídě si pomocí konstruktoru necháme předat databázový Explorer:[api:

Přepneme se na `HomepagePresenter`, který upravíme tak, že se zbavíme závislosti na `Nette\Database\Explorer` a nahradíme za novou závislost na naší nové třídě.


```php .{file:app/Presenters/HomepagePresenter.php}
<?php
namespace App\Presenters;
Expand Down
1 change: 0 additions & 1 deletion quickstart/en/authentication.texy
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ security:
admin: secret # user 'admin', password 'secret'
```


Nette will automatically create a service in the DI container.


Expand Down
1 change: 0 additions & 1 deletion security/cs/configuration.texy
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ security:
password: tajneheslo
roles: [admin]
data: ...

```

Dále lze definovat role a zdroje a vytvořit tak základ pro [autorizátor|authorization] (`Nette\Security\Permission`):
Expand Down
7 changes: 3 additions & 4 deletions tracy/cs/stopwatch.texy
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,22 @@ Debugger::timer();
sleep(2);

$elapsed = Debugger::timer();
// $elapsed ? 2
// $elapsed = 2
```

Volitelným parametrem je možno dosáhnout vícenásobných měření.

```php
Debugger::timer('page-generating');
// nějaký kód
Debugger::timer('rss-generating');

Debugger::timer('rss-generating');
// nějaký kód

$rssElapsed = Debugger::timer('rss-generating');
$pageElapsed = Debugger::timer('page-generating');
```



```php
Debugger::timer(); // zapne stopky

Expand Down
3 changes: 2 additions & 1 deletion tracy/en/open-files-in-ide.texy
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,8 @@ Troubleshooting

- In Firefox you may need to [allow |http://kb.mozillazine.org/Register_protocol#Firefox_3.5_and_above] custom protocol execution in about:config by setting `network.protocol-handler.expose.editor` to `false` and `network.protocol-handler.expose-all` to `true`. It should be allowed by default, however.
- If it's not all working immediately, don't panic. Try to refresh the page, restart browser or computer. That should help.
- Input Error: There is no script engine for file extension ".js" Maybe you associated ".js" file to another app, not JScript engine. To fix, see [here|https://www.winhelponline.com/blog/error-there-is-no-script-engine-for-file-extension-when-running-js-files/]
- See [here|https://www.winhelponline.com/blog/error-there-is-no-script-engine-for-file-extension-when-running-js-files/] to fix:
Input Error: There is no script engine for file extension ".js" Maybe you associated ".js" file to another app, not JScript engine.

Starting from Google Chrome version 77 you will no longer see the checkbox “Always open these types of links in the associated app” when editor is opened through a link. Workaround for Windows: create file `fix.reg`:

Expand Down
2 changes: 1 addition & 1 deletion utils/cs/@home.texy
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ V balíčku `nette/utils` najdete sadu užitečných tříd pro každodenní pou


Instalace
=========
---------

Knihovnu stáhnete a nainstalujete pomocí nástroje [Composer|best-practices:composer]:

Expand Down
1 change: 1 addition & 0 deletions utils/cs/datetime.texy
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ Datum a čas
.[perex]
[api:Nette\Utils\DateTime] je třída, která rozšiřuje nativní [php:DateTime] o další funkce.


Instalace:

```shell
Expand Down
1 change: 1 addition & 0 deletions utils/cs/finder.texy
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ Finder: vyhledávání souborů
Potřebujete projít adresáře na disku? Hledáte v nich soubory? Třída [api:Nette\Utils\Finder] vám to maximálně usnadní.



Instalace:

```shell
Expand Down
1 change: 1 addition & 0 deletions utils/cs/html-elements.texy
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ HTML elementy
.[perex]
Třída [api:Nette\Utils\Html] je pomocník pro generování HTML kódu, který nedovolí vznik zranitelnosti Cross Site Scripting (XSS).


Funguje tak, že jeho objekty představují HTML elementy, kterým nastavíme parametry a necháme je vykreslit:

```php
Expand Down
Loading

0 comments on commit 669ece7

Please sign in to comment.