Autor | Zpráva | ||
---|---|---|---|
mylda Profil * |
#1 · Zasláno: 18. 3. 2010, 19:49:26
Zdravím, mám teď provizorně zavedenou stránku a snažím se přijít na to, jak udělat z mého pouze index.php další stránky, kde bych dal pouze include headeru, panelů a footeru a do souboru neco.php pak už jen plnil obsah.
Určitě to tady už je, ale nenašel jsem. Přikládám odkaz na soubor index.php, kdyby byl někdo ochotný a rovnou mi ukázal co kde kam a jak udělat. Díky http://mylda.cz-host.eu/index.rar |
||
panther Profil |
#2 · Zasláno: 18. 3. 2010, 19:55:06 · Upravil/a: panther
mylda:
stahovat nějaký rar nebudu, nicméně pokud chceš jen jeden soubor, tedy index.php, udělej to následovně. V index.php bude vše, co se nebude měnit a includuj do něj pouze obsah. Porovnávej, na jaké stránce jsi ($_GET) se stránkami v DB/souborech (záleží, zda budeš includovat obsah ze souboru nebo tahat data z DB). Druhá možnost je mít pro každou stránku jeden soubor, do kterého budeš includovat neměnné části (header, footer, ...), což je značně horší řešení. |
||
mylda Profil * |
#3 · Zasláno: 18. 3. 2010, 19:58:03
A teď česky ? xD
Né, opravdu, v tomto se neorijentuji, v php začínám ... |
||
panther Profil |
#4 · Zasláno: 18. 3. 2010, 20:04:01
mylda:
„A teď česky ?“ píšu snad jinak? Jestli něco nechápeš, ptej se konkrétně. Ještě lépe, než se zeptáš, zkus se nad tím, co jsem napsal, zamyslet. Když to přečteš podruhé, potřetí, budeš moudřejší. |
||
mylda Profil * |
#5 · Zasláno: 18. 3. 2010, 20:08:11
Tak třeba vůbec nevím co mám udělat jako první a jak pokračovat atd.. ani žádné propojení s db v tom nemám ..
Prostě nevím, co se teď má dít, jsem stále u toho, že mám index.php |
||
panther Profil |
#6 · Zasláno: 18. 3. 2010, 20:14:15 · Upravil/a: panther
mylda:
„Prostě nevím, co se teď má dít, jsem stále u toho, že mám index.php“ index.php bude obsahovat všechno, co bude neměnné (header, footer, menu, ...). Pak tam bude obsahová část. Takže: <div id="content"> <?php if (isset($_GET['pg'] { //existuje promenna GET pg - URL ve tvaru domena.cz/index.php?pg=stranka if (file_exists('pages/' . $_GET['pg'] . '.php')) { // jestli existuje ve slozce pages soubor stranka.php, pokracuj include ('pages/' . $_GET['pg'] . '.php')); // vloz soubor stranka.php } else { include ('pages/404.php') // jinak vloz 404.php - stranka nenalezena. Nemusi byt, ale muze } } ?> </div> Ve složce pages budou jednotlivé obsah, tedy o-nas.php, kontakt.php, atd. |
||
mylda Profil * |
#7 · Zasláno: 20. 3. 2010, 19:47:00
Mohl by mi to prosím vysvětlit někdo jako pro lajka, prostě polopatě ?
Dík |
||
Apacuka Profil |
#8 · Zasláno: 20. 3. 2010, 20:33:14 · Upravil/a: Apacuka
root/index.php
root/pages/* //tady budou umisteny vsechny soubory ktere chces includovat do index.php. Soubory musí mít koncovku .php do tech includovanych souboru se uz nepise <html><head></head><body></body></html> index.php ------------ <html> <head> </head> <body> <div id="content"> <div id="menu"> <a href="?pg=seznam">Seznam hráčů</a><br> // odkazem se includuje obsah souboru /pages/seznam.php <a href="?pg=kontakty">Kontakty na hráče</a> </div> <div id="stred"> <?php if (isset($_GET['pg'] { //existuje promenna GET pg - URL ve tvaru domena.cz/index.php?pg=stranka if (file_exists('pages/' . $_GET['pg'] . '.php')) { // jestli existuje ve slozce pages soubor stranka.php, pokracuj include ('pages/' . $_GET['pg'] . '.php')); // vloz soubor stranka.php } else { include ('pages/404.php') // jinak vloz 404.php - stranka nenalezena. Nemusi byt, ale muze } } ?> </div> </div> </body> </html> root/pages/seznam.php ------------------------------ na seznamu se stale pracuje root/pages/kontakty.php ------------------------------ kontakty sem zatim zadny nesehnal |
||
Časová prodleva: 14 dní
|
|||
Joan Profil |
#9 · Zasláno: 3. 4. 2010, 23:05:31 · Upravil/a: Joan
panther:
Proč je tento způsob - viz Tvá odpověď #2 - horší řešení než opačný? Já mám dosud 27 stránek webu v *.html a přijde mi prozatím značně jednodušší a pochopitelnější do každé stránky pouze naincludovat opakující se menu a patičku a zbytek ponechat tak, jak je. Díky za odpověď! |
||
saphire Profil |
#10 · Zasláno: 3. 4. 2010, 23:25:34
Joan:
1) více kódu 2) je to pomalejší (funkce include sice na běžných serverech trvá okolo 2-4 milisekund ale i tak) 3) je to mnohem méně přehedné |
||
panther Profil |
#11 · Zasláno: 3. 4. 2010, 23:52:43 · Upravil/a: panther
saphire:
„2) je to pomalejší“ ani ne. „3) je to mnohem méně přehedné“ záleží na úhlu pohledu. Joan: „Proč je tento způsob - viz Tvá odpověď #2 - horší řešení než opačný?“ - v samotných souborech s obsahy nemusím pořád opakovat include, píšu jen samotné obsahy - když chci provést změnu v headeru a menu, nemusím zasahovat do dvou souborů, ale jen do jednoho - v index.php je vidět kompletní struktura webu, což taky nemusí být k zahození Nicméně, není to dogma, jen můj názor na věc. Ani ten opačný způsob není vyloženě špatný. Nechtěl jsem, aby to tak vyznělo, pokud to tak vyznělo. |
||
Joan Profil |
#12 · Zasláno: 4. 4. 2010, 00:13:01 · Upravil/a: Joan
panther:
Díky za vysvětlení! Já mám zatím ale poněkud problém pochopit, jak funguje to doporučované vkládání samotného obsahu, tak jsem si myslela, že než se mi dostatečně "rozbřeskne" tak budu vkládat opakovaně menu a patičku, pokud to je jen o chloupek pracnější než includování obsahu (i to bude pokrok vpřed, zatím jsem vše sedmadvacetkrát kopírovala do html... :-)) Tento článek jsem samozřejmě už několikrát louskala. |
||
Rintintin Profil * |
#13 · Zasláno: 4. 4. 2010, 08:44:58
mylda:
Polopaticky: Máš soubor index.php. Normálně v něm nataguješ hlavičku, menu a patičku. V menu máš odkazy. Do těch odkazů nasyp adresy jako třeba index.php?navody, index.php?kontakt, index.php?zajimavestranky atd. Kliknutím na některý z těch odkazů se nenatahuje jiný soubor, ale pořád index.php, jen se stránce předává text za index.php?, například kontakt. V index.php, tam kde chceš mít v index.php obsah odchytíš ten text a inkluduješ obsah z jiného souboru, třeba kontakt.php, který máš ve složce pages/. Takže v pořád tom index.php budeš mít: <div id="obsah"> <?php if (isset($_GET["kontakt"])) { include "pages/kontakt.php"; } if (isset($_GET["zajimavestranky"])) { include "pages/zajimavestranky.php"; } if (isset($_GET["navody"])) { include "pages/navody.php"; } ?> </div> Taky je možné místo funkce if() použít switch(). Jdeme dál. V souboru kontakt.php, který máš ve složce pages/ pak bude normální HTML, ale už bez hlavičky, menu a patičky. Příklad: <h1>Kontakt</h1> <p>ICQ: 123 456 789</p> |
||
Joan Profil |
#14 · Zasláno: 4. 4. 2010, 20:44:58
A co když mám (jakože doopravdy mám!) to hlavní vertikální menu sice na úplně všech stránkách, ale na NĚKTERÝCH mám kromě toho navíc ještě horizontální další menu vztahující se k pouze pár stránkám, na dalších mám zase jiné horizontální menu vztahující se zase k několika jiným stránkám apod. Čili úplně všechny stránky nejsou totožné co se týče opakovaných položek. To mně jediná šablona index.php nejspíš stačit nebude, že? A vícero souborů index.php jaksi mít nelze tak si nedovedu dost dobře představit, jak to mám s tím includováním provést.
Nasměruje mě prosím někdo? Díky předem a pěkné velikonoce! A buďte prosím pánové na nás ženušky něžní, ať nás pak nebolí zadnice při sezení u PC čili ať se pak nemusíme učit programovat vestoje :-)) |
||
panther Profil |
#15 · Zasláno: 5. 4. 2010, 11:29:08
Joan:
„ale na NĚKTERÝCH mám kromě toho navíc ještě horizontální další menu vztahující se k pouze pár stránkám“ jednoduchý IF - podmínka v PHP. Pokud jsem na stránce XY nebo YZ, vypiš submenu. „To mně jediná šablona index.php nejspíš stačit nebude, že?“ Bude. Viz řádek výše. Kdyžtak v profilu mám icq, jestli chceš. |
||
Joan Profil |
#16 · Zasláno: 5. 4. 2010, 16:37:18
panther:
Jo ták, jestli dobře rozumím, tak v šabloně bude pouze hlavní menu, do níž se bude includovat obsah a pokud se na stránce vyskytne navíc ještě submenu, tak kromě obsahu se bude ještě includovat i to submenu, že? Jinak díky moc, já se ještě chvíli budu snažit sama :-) |
||
panther Profil |
#17 · Zasláno: 5. 4. 2010, 19:10:16 · Upravil/a: panther
Joan:
„Jo ták, jestli dobře rozumím, tak v šabloně bude pouze hlavní menu, do níž se bude includovat obsah a pokud se na stránce vyskytne navíc ještě submenu, tak kromě obsahu se bude ještě includovat i to submenu, že?“ ne. Bude tam menu, které bude obsahovat mimojiné PHP podmínky. Asi takhle: <menu> <li>Položka1</li> <li>Položka2</li> <li>Položka3</li> <?php if(isset($_GET['pg'] and $_GET['pg'] == 'kontakt') { //pokud je v URL promenna pg a pg=kontakt echo '<li>Položka, která se zobrazí jen na stránce s kontakty</li>'; } ?> <li>Položka4</li> <li>Položka5</li> <li>Položka6</li> </menu> Položky 1-6 se zobrazí vždy, na všech stránkách. Pokud jsem na stránce kontaktů, uprostřed se zobrazí 1 položka navíc, bude jich tedy 7. |
||
Časová prodleva: 14 let
|
0