Chci geek triko! Chci geek triko!
Extra 10 % bodů navíc a tričko zdarma při zadání kódu "TRIKO10"

Diskuze: Univerzálnost kontroleru v jednoduchém RS

PHP PHP Univerzálnost kontroleru v jednoduchém RS American English version English version

Aktivity (1)
Avatar
mat.masar
Člen
Avatar
mat.masar:26. září 17:56

Ahoj, nedávno jsem zde psal dotaz ohledně pokračování/úpravě místního článku Jednoduchý RS. Chtěl bych přidat funkci, aby uživatel mohl přidat i stránky, nejen články.

Zkusil jsem: Vytvořil jsem tedy tabulku v db stejnou jako je tabulka "clanky" s myšlenkou, že lehce pozměním editor, který funguje i jako vytváření nových článků.

Uvědomil jsem si ale, že nevím jak to udělat univerzálně, protože kontroler se volá podle url, články mají url "clanky/clanek" a tak se vždy volá stejný kontroler, ale stránky mají každá jiné url např. "/index" "/onas" atp.

Chci docílit: Jakým směrem bych se měl tedy dál ubírat, aby to fungovalo univerzálně a nemusel bych mít pro každou stránku nový soubor akorát s jiným jménem, aby se volalo indexKontroler.php, onasKontroler.php atp. (což ikdyž je uplně nesmyslné, tak to ani nevím jak bych dělal, protože když by uživatel vytvořil stránku "sluzby" tak bych musel vytvořit soubor sluzbyKontroler.php atp.)

Předem díky za nasměrování nebo konkrétní pomoc.

 
Odpovědět 26. září 17:56
Avatar
Jakub Du
Člen
Avatar
Jakub Du:26. září 18:24

Kdyz vytvaris clanek, tak v tomto pripade je to uplne stejne jako stranka. Jestli to chapu dobre, tak chces mit ty stranky s url "/onas" a ne jako "clanky/clanek". Tudiz to musis nejak vpasovat do SmerovacKontroleru.

 
Nahoru Odpovědět 26. září 18:24
Avatar
mat.masar
Člen
Avatar
Odpovídá na Jakub Du
mat.masar:26. září 20:13

Nevím jestli by to k vedlo k tomu co jsem myslel.
Ikdyž to upravím, tak stejně budu muset mít spoustu souborů(onasKon­troler atd), což by teda šlo, kdybych měl dané jaké stránky tam budou, ale jak udělat, když si uživatel bude ty stránky vytvářet sám? Jak se to dělá v profesionálních RS?

Já můžu vytvořit např. 4 soubory např. onasKontroler, indexKontroler, kontaktKontroler, sluzbyKontroler a uzivatel by potom mohl tyto stránky editovat (když se to teda překopalo), ale stále by nemohl přidat novou stránku.
Stránkou myslím stránku, která se prostě nebude vypisovat v seznamu článků a neměla by mít url "clanky/clanek" aby to nebylo matoucí. Což vyvrací můj první nápad: ukládat stránky normálně jako články a nějak zakázat jejich výpis v seznamu článků.

Myslím si, že to,co navrhuješ mi asi nepomůže.

 
Nahoru Odpovědět 26. září 20:13
Avatar
Jakub Du
Člen
Avatar
Odpovídá na mat.masar
Jakub Du:26. září 20:34

Moc te nechapu. Ty teda chces udelat neco jako WordPress nebo ze si nekdo vytvori jednu stranku a tam si neco napise??

 
Nahoru Odpovědět 26. září 20:34
Avatar
mat.masar
Člen
Avatar
Odpovídá na Jakub Du
mat.masar:26. září 20:54

No ono v čem se to liší? Víceméně chci udělat něco jako wordpress, což je i smyslem toho tutoriálu, podle kterého jsem udělal tento začátek nebo ne?

Co myslíš tím "si nekdo vytvori jednu stranku a tam si neco napise??".

Ano, chtěl bych ve výsledku dosáhnout něčeho takového: uživatel se přihlásí(jako admin dejme tomu) a bude mít možnost, přidat stránku, odebrat stránku, upravit stránku, přidat článek do blogu(toto už vlastně mám, ikdyž jsem to ani původně nezamýšlel) atp.

Ano víceméně něco jako webnode, wordpress, ale zjednodušený, nepotřebuju tam žádné ultra vymoženosti, chtěl jsem základní rs, proto jsem si i zaplatil těch posledních pár článků z tutoriálu na RS. Skončilo to tím, že je tam možnost přidávat články a ne stránky, což jsem nevěděl, ale to není špatně, jen bych to chtěl rozšířit.

Slovem stránka myslím podstránky, možná to tě mate, když nad tím přemýšlím...

 
Nahoru Odpovědět 26. září 20:54
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:27. září 9:22

Chapu, ze mas nejaky program (zdejsi clanky nectu), ktery ti presmeruje

adresa/text na
adresa/clanky/clanky.php?hledej=text

A ted potrebujes, aby ti

adresa/text1
adresa/text2 presmeroval na
adresa/clanky/clanky.php?hledej=text1
adresa/stranky/stranky.php?hledej=text2

Ale, to se preci resi jednim presmerovanim a uvnitr nej nechas program rozhodnout, kam to presmeruje...

adresa/text1
adresa/text2 presmeroval na
adresa/hledej/hledej.php?hledej=text1 - pokud je to clanek, presmeruj na clanky, neni, pokracuj, hledej ve strankach
adresa/hledej/hledej.php?hledej=text2 - totez

--- hledej.php ---
$result = $SQL->query(SELECT id FROM clanky WHERE titulek=text1)
if (pocet($result)>0) {header(location... clanky/clanky.php?id=1); exit;}
$result = $SQL->query(SELECT id FROM stranky WHERE titulek=text1)
if (pocet($result)>0) {header(location... stranky/stranky.php?id=1); exit;}
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 27. září 9:22
Avatar
mat.masar
Člen
Avatar
Odpovídá na Peter Mlich
mat.masar:27. září 20:41

Ve směs je to asi to co jsem potřeboval vědět. Bude to pro mě ještě hodně práce, protože se v php zas tak neorientuju, ale aspoň vím, jakým směrem se ubírat. Až zase narazím, tak napíšu konkrétní dotaz.

Takže zatím děkuju.

 
Nahoru Odpovědět 27. září 20:41
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:2. října 14:41

Treba vcera jsem zacal jeden takovy program na zivotopisy. Tam v podstate take caruji s presmerovanim.
https://webapp.fpf.slu.cz/…tranky/test/
Mam tam nav.txt, kde mam definovane menu a podle toho zobrazuji do layoutu html stranku.
https://webapp.fpf.slu.cz/…yout/nav.txt

Hlavni presmerovani delam z home

https://webapp.fpf.slu.cz/osob_stranky
<IfModule mod_rewrite.c>
  RewriteEngine On
RewriteCond %{REQUEST_URI} !.htm$ [NC]
RewriteCond %{REQUEST_URI} !.html$ [NC]
RewriteCond %{REQUEST_URI} !.css$ [NC]
RewriteCond %{REQUEST_URI} !.js$ [NC]
RewriteCond %{REQUEST_URI} !.jpg$ [NC]
RewriteCond %{REQUEST_URI} !.jpeg$ [NC]
RewriteCond %{REQUEST_URI} !.png$ [NC]
RewriteCond %{REQUEST_URI} !.txt$ [NC]
RewriteCond %{REQUEST_URI} !.pdf$ [NC]
RewriteCond %{REQUEST_URI} !.doc$ [NC]
RewriteCond %{REQUEST_URI} !.docx$ [NC]
  RewriteRule ^(.*)$ osob_stranky.php?path=$1 [L,QSA]
</IfModule>

Pokud to neni neco s tou priponou, tak to presmeruj na ten php soubor.
A v tom php souboru si uz pak rozhoduji, co se bude dit dal.

  • bud zjistim, ze je v path kombinace user/url a volam vykreslovani stranek
  • nebo je to jeden ze souboru a pak volam celou url (u obrazku, napr)

Navic opravuji v html kodu layoutu adresy jako, aby mi fungovalo css jednak pri editaci html ve slozce a pak i na webu pres muj program.
$page = str_replace('<link href="./../' , '<link href="' , $page);
$page = str_replace('<script src="./../', '<script src="', $page);
$page = str_replace('<img src="./' , '<img src="../'.$home, $page);

 
Nahoru Odpovědět  +1 2. října 14:41
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 8 zpráv z 8.