Autor | Zpráva | ||
---|---|---|---|
Svitko Profil * |
#1 · Zasláno: 14. 6. 2009, 19:26:31
Mam taku oztazku, pouzivame tento kod na generovanie stranok alebo ako to nazvat.
<?php $page=$_GET['page']; if (!$page) {$page='uvod';} switch ($page) { case 'uvod': include 'stranky/uvod.html'; break; case 'stranka1': include 'stranky/stranka1.html'; break; case 'stranka2': include 'stranky/stranka2.html'; break; } ?> Len sa chcem opytat ci je mozne nejak tento kod upravit tak aby mi skazdou stranko menil aj TITLE stranky??? |
||
Taps Profil |
#2 · Zasláno: 14. 6. 2009, 19:30:59 · Upravil/a: Taps
Svitko
zkus to takto <?php $page=$_GET['page']; if (!$page) {$page='uvod';} switch ($page) { case 'uvod': $title="uvod"; include 'stranky/uvod.html'; break; case 'stranka1': $title="stranka1"; include 'stranky/stranka1.html'; break; case 'stranka2': $title="stranka2"; include 'stranky/stranka2.html'; break; } ?> <html><head><? echo $title; ?></head><body> </body></html> |
||
Svitko Profil * |
#3 · Zasláno: 14. 6. 2009, 19:46:30
To nejde, teda ak som to nespravil zle:
<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title><? echo $title; ?></title> </head> <body> <?php $page=$_GET['page']; if (!$page) {$page='uvod';} switch ($page) { case 'uvod': $title="uvod"; include 'uvod.html'; break; case 's1': $title="stranka1"; include 's1.html'; break; case 'stranka2': $title="stranka2"; include 's2.html'; break; } ?> <br /> <a href="index.php?page=s1">stranka1</a> </body> </html> |
||
Svitko Profil * |
#4 · Zasláno: 14. 6. 2009, 20:42:28
Tak co nikto netusite ako by to malo byt spravne?
|
||
AM_ Profil |
#5 · Zasláno: 14. 6. 2009, 20:51:57
„Tak co nikto netusite ako by to malo byt spravne?“
nere-postuj, nedělá se to. máš to špatně, nejdřív tu proměnnou pochopitelně musíš naplnit, než ji použiješ, takže ten switch si nacpi někam na začátek, do $title ulož titulek a třeba do $body ulož, který soubor budeš includovat. |
||
Svitko Profil * |
#6 · Zasláno: 14. 6. 2009, 21:01:30
Hmm az nato ze som to nejak nepochopil :D
|
||
panther Profil |
#7 · Zasláno: 14. 6. 2009, 21:09:21
Svitko
„Hmm az nato ze som to nejak nepochopil :D“ a co přesně na „tu proměnnou pochopitelně musíš naplnit, než ji použiješ, takže ten switch si nacpi někam na začátek“ nechápeš? |
||
blizz_boz Profil |
#8 · Zasláno: 14. 6. 2009, 21:28:41
ahoj naco tam mas ten case?
je uplne zbytocny ja by som ten kod na tvojom mieste skratil: <?php if (!isSet($_GET['page'])) $_GET['page'] = 'uvod'; $path = "stranky/{$_GET['page']}.html"; require_once(file_exists($path) ? $path : '404.html'); no s tym title to mozes vyriesit tak ze na zaciatok kazdeho vkladaneho suboru das nejaku globalnu premennu napr.: <?php $GLOBALS['title'] = 'nadpis'; ?> a potom budes menit title na sablone ale az za tym ako vloziz ten html subor. Elegantnejsie sa to riesi cez databazu, kazdy clanok ma stlpec title. |
||
Svitko Profil * |
#9 · Zasláno: 14. 6. 2009, 21:41:50
„ahoj naco tam mas ten case?“
„je uplne zbytocny ja by som ten kod na tvojom mieste skratil:“ „1234 <?phpif (!isSet($_GET['page'])) $_GET['page'] = 'uvod';$path = "stranky/{$_GET['page']}.html";require_once(file_exists($path) ? $path : '404.html');“ „no s tym title to mozes vyriesit tak ze na zaciatok kazdeho vkladaneho suboru das nejaku globalnu premennu napr.:“ „1 <?php $GLOBALS['title'] = 'nadpis'; ?>“ „a potom budes menit title na sablone ale az za tym ako vloziz ten html subor. Elegantnejsie sa to riesi cez databazu, kazdy clanok ma stlpec title.“ No to case som tam mal preto lebo tam bolo (ja sa v tom neviznam :)) No to tvoje ide, lenze len ked dam to title pod ten php script a tym padom je uz v body co je dost blbe. Nejde to nejak tak aby bolo tam kde ma byt. |
||
Svitko Profil * |
#10 · Zasláno: 14. 6. 2009, 21:42:15
No to case som tam mal preto lebo tam bolo (ja sa v tom neviznam :))
No to tvoje ide, lenze len ked dam to title pod ten php script a tym padom je uz v body co je dost blbe. Nejde to nejak tak aby bolo tam kde ma byt. |
||
Svitko Profil * |
#11 · Zasláno: 14. 6. 2009, 21:43:00
Posledne dve zmazte, troska mi zblbol prehliadac. Sorry
|
||
blizz_boz Profil |
#12 · Zasláno: 14. 6. 2009, 22:18:14 · Upravil/a: blizz_boz
Svitko
Ved prave preto by si mal pouzit nejaky sablonovaci system, a potom mozes menit title az po nacitani vkladanej stranky a pritom title bude v hlavicke. Mozem ti poslat bud moj sablonovaci system alebo si stiahni napr Smarty ale ten nwm ci podporuje PHP kod priamo v sablone... Moj sablonovaci system podporuje priamo title o nic sa nemusis starat... $template = new Template('default-template'); $template->setTitle(true); $template->select('index'); $template->assign("TITLE", "Nazov stranky"); $template->assignFile("OBSAH", PAGES_DIR . '/stranka.php'); moj sablonovaci system vytvara nadpis z casti, ktoru nastavis metodou assign a tym co obsahuje sablona v globalnej premennej title vo vkladanej stranke. teda nadpis bude mat tvar "Nazov vkladanej stranky - Hlavny nazov celej stranky" |
||
AM_ Profil |
#13 · Zasláno: 14. 6. 2009, 22:22:08
postup:
<?php $title='Ahoj'; $include='ahoj.php'; ?> <html><head><title><?php echo $title; ?></title> .... <?php include $include; ?> jen si nahoře místo těch pevných přiřazení dáš ten case. |
||
blizz_boz Profil |
#14 · Zasláno: 14. 6. 2009, 22:31:49
AM_
No ale týmto spôsobom nemôže nastavovať nadpis priamo vo vloženej stránke. Je to dosť krkolomné riešenie... :/ |
||
Svitko Profil * |
#15 · Zasláno: 14. 6. 2009, 22:35:58
to blizz_boz:
Tak s toho som uz uplne magor :D. Nemohol by si mi ten priklad poslat na email: jsvitek@gmail. |
||
blizz_boz Profil |
#16 · Zasláno: 14. 6. 2009, 22:43:54
vidím že v PHP asi nie si doma. veď pošli mi celý projekt na mail a ja ti to prerobím tak, aby si mohol používať nadpisy...
blizz.boz@gmail.com |
||
AM_ Profil |
#17 · Zasláno: 14. 6. 2009, 22:44:15
blizz_boz
mě spíš přijde krkolomné jen kvůli nadpisu zavádět šablonovací systém :) a nevím, proč by titulky nemohly být zapsané v jednom souboru, obzvlášť pokud to nechce moc komplikovat. |
||
Svitko Profil * |
#18 · Zasláno: 14. 6. 2009, 22:53:30
No nemam ziadny projekt, ja to skusam na uplne jednoduchych veciach. Zatial este web nemam spraveny. Teda mam ale budem ho prerabat. Ak je to nejak moc zlozite tak to asi bude zbytocne. Mne osobne by to stacilo ako si napisal to prve len to title keby sa dalo dat do head.
|
||
blizz_boz Profil |
#19 · Zasláno: 14. 6. 2009, 23:01:04 · Upravil/a: blizz_boz
AM_
lebo vzdy ked prida novy subor (napr. navy clanok) do projektu tak musi editovat aplikaciu len preto aby pridal jeden nadpis. naopak pre mna je najvyssia priorita, jednoduchost. hlavne jdnoduchost rozsiritelnosti systemu. a pouzit ten sablonovaci system je uplne jednoduche a prehladne kod je plne objektovy... takto aspon ziska spravne navyky... Svitko pre mna je najednoduchsie ulozit si clanky do databazy a vkladat ich pomocou sablonovacieho systemu, moj redakcny system najprv skontroluje ci je clanok ulozeny v databaze a ked ho nenajde tak ho hlada ako subor na disku a automaticky ho vlozi do sablony... |
||
Svitko Profil * |
#20 · Zasláno: 14. 6. 2009, 23:11:19
Ano databaza je fajn ale problem je ze nie je a nemozem ju pouzit. Preto toto. Je to jednoducha stranka. Kde by to bolo aj zbytocne. Pozri ak mozes take nejaku tu sablanu posli. Staci jednoducha index+nejake 2 stranka. Aby som videl ako to funguje. Teda ak mozes.
|
||
blizz_boz Profil |
#21 · Zasláno: 14. 6. 2009, 23:27:18
nj ked budem mat cas tak zajtra ti to poslem ak by som zabudol tak mi to pripomen...
|
||
AM_ Profil |
#22 · Zasláno: 14. 6. 2009, 23:39:58
Svitko
pokud si nedokážeš aplikovat řešení co jsem ti poslal ve [#13] , tak do šablony se tuplem zamotáš. |
||
Svitko Profil * |
#23 · Zasláno: 14. 6. 2009, 23:49:19
No na ten tvoj som sa ani nejak nepozeral, to moj problem myslim ani moc neriesi.
|
||
blizz_boz Profil |
#24 · Zasláno: 15. 6. 2009, 04:55:40 · Upravil/a: blizz_boz
Svitko
no tak mám to tu, keby si chcel aj vysvetlenie tak môžem zajtra: <?php header("Content-Type: text/html; charset=UTF-8"); //nastaví slovenské kódovanie define('TEMPLATES_DIR', 'templates'); require_once 'libs/template.php'; //nahraje knižnicu na prácu so šablónami if (!isSet($_GET['page'])) $_GET['page'] = 'uvod'; $path = "pages/{$_GET['page']}.html"; $template = new Template('sablona-priklad'); $template->setTitle(true); $template->select('index'); $template->assign("TITLE", "Portál"); $template->assignFile("CONTENT", file_exists($path) ? $path : '404.html'); echo $template->build(); http://www.ipremiere.eu/apps/template-example.zip a tu je demo: http://www.ipremiere.eu/apps/sablony-demo/ |
||
AM_ Profil |
#25 · Zasláno: 15. 6. 2009, 10:55:25
„No na ten tvoj som sa ani nejak nepozeral, to moj problem myslim ani moc neriesi.“
ne, to tvůj problém vyřešilo tak 100x jednoduššeji, než nasazování šablon, ale dobře :) pouze musíš použít vlastní inteligenci a dosadit si do toho kódu to, co zde bylo napsáno dříve :) |
||
Svitko Profil * |
#26 · Zasláno: 15. 6. 2009, 14:08:39
AM_
to je sice pravda ze je to jednoduchsie, no ja by som aj pouzil nejake inteligentne myslenie ale ja sa v PHP vobec nevyznam :D, k tomu som este nedosiel. Zatial len html a CSS. blizz_boz Diik, pozrem a uvidim co stym :) |
||
Svitko Profil * |
#27 · Zasláno: 15. 6. 2009, 14:53:56
AM_
No uz som to tvoje pochopil :) a funguje. <?php $page=$_GET['page']; if (!$page) {$page='uvod';} switch ($page) { case 'uvod': $title='uvod'; $include='uvod.html'; break; case 's1': $title='stranka1'; $include='s1.html'; break; } ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title><? echo $title; ?></title> </head> <body> <?php include $include; ?> <br /> <a href="index.php?page=s1">stranka1</a> </body> </html> Ale nedalo by sa tam nasatavit nejak kod od blizz_boz v prispevku 8. Lebo to je jednoduksie o co si. Len by to chcelo aby sa tam dal aj nastavit adresar. Lebo takto by mohli byt stranky len v jednom. <?php if (!isSet($_GET['page'])) $_GET['page'] = 'uvod'; $path = "stranky/{$_GET['page']}.html"; require_once(file_exists($path) ? $path : '404.html'); ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title><? echo $title; ?></title> </head> <body> az tu sa ma zobrazit text <br /> <?php include $path; ?> <br /> <a href="index.php?page=s1">stranka1</a> </body> </html> Ja som to dal takto ale to nie je dobre, lebo sa mi tam ta stranka vygeneruje dvakrat :D. |
||
AM_ Profil |
#28 · Zasláno: 15. 6. 2009, 15:11:25
jistěže lze nastavit adresář. dal bych tam konstantu, takže na začátek něco jako
DEFINE('PAGE_DIR', 'stranky/'); ... include PAGE_DIR.$include; generuje se ti to dvakrát, protože v záhlaví máš require_once a v těle pak znovu include, které se chovají prakticky identicky - vyhoď to require_once, protože to obsah načítá na špatném místě. |
||
Svitko Profil * |
#29 · Zasláno: 15. 6. 2009, 15:13:42
OK skusim len ako mam v odkaze dafinovat potom adresar??
|
||
Svitko Profil * |
#30 · Zasláno: 15. 6. 2009, 15:32:27
Teda aby sme sa rozumeli ja chcem aby sa dalo v odkaze definovat aky bude adresar pre danu stranku ktoru ma nacitat.
|
||
Téma pokračuje na další straně.
|
0