IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Neaktivní uživatel:29.8.2012 9:44

Ještě než napíši problém,upozorňuji - Googlil jsem ;)

Potřeboval bych převést
index.php?sek­ce=moje&stran­ka=druha
na /moje/druha/

Jenže to &stranka= tam nebude vždy,bude jen v sekci ve které jsou podstránky
např. u anket nemá cenu dávat sekce=ankety&stran­ka=uvodni
ale třeba u zábavy ano.

Odpovědět
29.8.2012 9:44
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:29.8.2012 10:31

Obvyklý požadavek je přesně obráceně. Zkus zagooglit "hezká URL".

Nahoru Odpovědět
29.8.2012 10:31
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:29.8.2012 11:20

Ahoj, tohle se většinou nepřevádí, ale pracuje se rovnou s tou lomítkovou variantou. Také jsem si dříve myslel, že to tu adresu převede (a asi by se to i dalo udělat), ale dělá se to tak, že si v .htaccess převedeš všechny požadavky na index. A na indexu si potom pomocí explode rozložíš adresu polde lomítek na pole. To si potom dále zpracuješ. Lépe se to dělá když máš např. MVC architekturu, ale určitě si s tím poradíš i takhle. Typuji, že nepoužíváš objekty, takže budeš muset nějak vyřešit, aby ty parametry pak viděly všechny stránky. Nevím, jak moc ošklivé je cpát je do GETu, ale asi lepší, než ti zbytečně motat hlavu s nějakým statickým registrem.

Nahoru Odpovědět
29.8.2012 11:20
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:29.8.2012 12:24

Jaký statický registr? Obsah prvního parametru GET dávám do Simple Factory. Druhý parametr se pak stane klíčem do DB.

Pár příkladů na mod_rewrite jsem našel na
http://mike.treba.cz/…a-hezke-url/

Nahoru Odpovědět
29.8.2012 12:24
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:29.8.2012 12:56

Já ten .htaccess celkem proklínal, protože jsem takhle také našel nějaké řešení a pak přestaly fungovat sessions.

Statický registr je imho nejjednodušší objektová náhrada glob. proměnných. Prostě by měl třídu s nějakým polem parametrů Trida::$clanek, Trida::$parametry. Ale imho to může prostě nacpat jako $_GET['clanek'], $_GET['parametry'], kde clanek bude první parametr v tom URI stringu.

On to objektové mít nebude, to jsem již psal, proto musí nějak vyřešit předávání dat, GET se nabízí jako přirozená cesta jak to PHP dělá, vlastně by si nasimuloval ty parametry jako by přišly normálně z GETu.

Nahoru Odpovědět
29.8.2012 12:56
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:29.8.2012 13:09

Nejjednodušší je ponechat v poli $_GET a číst ho dle potřeby. Nikdy do něj nezapisovat.

Místo do statického registru si podobná data ukládám do modelu, který mi pak rovnou poskytuje potřebné deriváty.

.htaccess používá dost specifický jazyk. Je velmi jednoduché v něm něco poplést.

Nahoru Odpovědět
29.8.2012 13:09
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:29.8.2012 13:54

Jak jednou pravil David Jančík: "Mě to ale nezajímá. Stejně jako nechci pochopit ženu, tak nechci pochopit .htaccess." :D

Dan modely ani objekty nemá, proto si buď udělá statickou třídu, nebo zapíše do GET nebo použije něco ošklivého jako GLOBALS. Zapsat do GET mi přijde jako nejlepší možnost pro jeho případ, udělá to jen jednou a zbytek skriptů se bude tvářit jako by parametry přišly od uživatele.

Nahoru Odpovědět
29.8.2012 13:54
New kid back on the block with a R.I.P
Avatar
Dan (nechtělo se mi přihlašovat :D)
Tvůrce
Avatar
Dan (nechtělo se mi přihlašovat :D):31.8.2012 17:11

Našel jsem si tohle -

# mujweb.cz/?page=neco > mujweb.cz/neco/
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ ?page=$1

a

# mujweb.cz/?page=neco&stranka=druha > mujweb.cz/neco/druha
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)?/?$ ?page=$1&stranka=$2

ale nevím jak to spojit. jak jsem již psal,to &stranka= tam nebude vždy..

Nahoru Odpovědět
31.8.2012 17:11
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:31.8.2012 17:34

No psal jsem ti, že bych to takhle nepřeváděl, ale když na tom trváš...

RewriteEngine On tam musí být každopádně
To Base záleží na daném hostingu, někde to má být, někde ne. Musíš zkusit.

2 podmínky jsou stejné, to určuje že se má přesměrovat jen tehdy, když soubor neexistuje. Díky tomu se ti nebudou přesměrovávat obrázky a podobně.

Rewrite rule použij to druhé, jen nechápu proč tam je page a stránka. To je trochu prase kód. Buď anglicky, nebo česky. A hlavně to znamená to samé. Smysl by dávala třeba sekce a stranka.

Nahoru Odpovědět
31.8.2012 17:34
New kid back on the block with a R.I.P
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:31.8.2012 17:36

Možná k těm parametrům dává smysl spíše clanek a parametr, skript a akce a podobně.

Nahoru Odpovědět
31.8.2012 17:36
New kid back on the block with a R.I.P
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.