jak zjednodušit URL při routování

vlkodlak
Člen | 160
+
0
-

zdravím, před nějakou dobou, se mi, náhodou, podařilo nastavit kombinaci mapování a rotování (?!)

tak aby místo http://www.domena.cz/…page/seznam/ v url zobrazilo jen http://www.domena.cz/seznam/

Je to jednoduchý projekt s jedním presentrem

Kamil Valenta
Člen | 762
+
0
-

A dotaz spočívá v čem?

vlkodlak
Člen | 160
+
0
-

@kamil_v dotaz je v tom jak upravit masku (motám se v k „kruhu“) . . .
`
application:
mapping:
*: App*Module\Presenters*Presenter
`
. . . a to co najdu na internetu mi moc nenapovídá
tak aby v url webu bylo misto http://mojedomena.cz/homepage/seznam → http://mojedomena.cz/seznam

David Matějka
Moderator | 6445
+
0
-

na mapping pravděpodobně sahat nemusíš, tím nastavuješ, v jakém namespace má nette hledat presenter.

potřebuješ nakonfigurovat routování.

  • jak vypadá presenter, který chceš naroutovat na „/seznam“? (modul, namespace, akce)
  • jak vypadá současné routování?
Kamil Valenta
Člen | 762
+
+1
-

To jsou dvě různé věci, třebaže na sebe navazují.

Routování obstará to, že vezme URL, třeba https://www.example.com/homepage/seznam a přeloží ji na Presenter a akci. Tedy např. Front:Homepage:seznam

Mapping pak vezme Presenter, třeba Front:Homepage a namapuje ho na nějaký namespace, tedy např. App/FrontModule/HomepagePresenter

Pokud máš jednoduchý projekt s jedním presenterem, můžeš jej z routy vypustit třeba takto:

$router[] = new Route('https://www.example.com/[<action>]', [
                'presenter' => 'Homepage',
            ]);

Editoval kamil_v (9. 11. 2020 10:13)

vlkodlak
Člen | 160
+
0
-

@DavidMatějka nic světoborného, když se na to koukám tak veškeré zobrazení jsem dělal v seznam.latte není tak žádná logika ani data jen zobrazení statických jsem a telefonu

HomepagePresenter

<?php

declare(strict_types=1);

namespace App\Presenters;

use Nette;

final class HomepagePresenter extends Nette\Application\UI\Presenter
{

}

Router

public static function createRouter(): RouteList
{
	$router = new RouteList;
	$router->addRoute('<presenter>/<action>', 'Homepage:default');
	return $router;
}
David Matějka
Moderator | 6445
+
+1
-

v tom pripade to muzes udelat, jak pise @kamil_v. pripadne tam dat staticky routy ->addRoute('seznam', 'Homepage:seznam')

vlkodlak
Člen | 160
+
0
-

Pánové děkují Vám ( @DavidMatějka a @kamil_v ) pomohlo a již vyřešeno