Autor | Zpráva | ||
---|---|---|---|
mirio Profil |
#1 · Zasláno: 26. 10. 2006, 10:28:09 · Upravil/a: mirio
Ahoj,
protože si netroufám naprogramovat komentáře ke článkům v PHP sám, našel jsem si tenhle (viz. níže) fajnový článek, kde je popsáno řešení, dokonce bez databáze. Funguje perfektně, ale neumím ho ostylovat. Nechci pomocí tabulek. Chci pomocí CSS, ale nevím jak na to. Poradíte, prosím? Díky. Článek: http://interval.cz/clanky/komentare-k-clankom-bez-databaze/ |
||
Alphard Profil |
#2 · Zasláno: 26. 10. 2006, 10:32:56
přiřaď si k tagům třídy a identifikátory a ty pak (třeba externě) nastyluj v CSS
|
||
mirio Profil |
#3 · Zasláno: 26. 10. 2006, 10:40:17 · Upravil/a: mirio
Mno, trošku "lidštěji" by to podat nešlo, prosím? :-) Já už mám vzhled těch komentářů předstylovaný. Je to použitelné? A jestli ano, tak jak?
.komentar { width: 90%; margin: 15px auto 15px auto; background: #f9f9f9 ; padding: 5px; border: 1px solid #606060; } .komentar_hlavicka { font-family: "Trebuchet MS", "Geneva CE", lucida, sans-serif; font-weight: bold; font-size: 11px; color: #606060; text-align: left; padding: 5px; } .komentar_hlavicka a:link, .komentar_hlavicka a:visited { color: #00a048; text-decoration: underline; } .komentar_hlavicka a:hover { color: red; } .komentar_text { font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; color: #606060; font-size: 11px; text-align: left; margin-left: 30px; padding: 0px 10px 10px 10px } |
||
Joker Profil |
#4 · Zasláno: 26. 10. 2006, 11:10:08
mirio
Z PHP generujte strukturu komentáře jakou potřebujete, s příslušnými třídami CSS. Například: <div class="komentar"> <h5 class="komentar_titulek">Titulek komentáře</h5> <span class="komentar_autor">napsal: <strong>Joker</strong>, 26.10.2006 11:07</span> <div class="komentar_text"> </div> </div> Skutečná struktura záleží na tom, jak to přesně chcete. No a potom už jenom píšete styly: .komentar {...} .komentar_titulek {...} .komentar_autor {...} .komentar_autor strong {...} .komentar_text{...} |
||
mirio Profil |
#5 · Zasláno: 26. 10. 2006, 11:21:11
Jsem asi úplně blbej, ale nevím, jak to mám udělat. Nemám problém s CSS, mám problém právě s výstupem z PHP a nevím, jak ho definovat. Tohle je hlavní skript, který vypíše komentáře na stránku:
<? @$test = fopen("komentare/k_$id.dat", "r"); if(!$test): echo "<tr><td width=500 bgcolor=\"gray\">K tomuto článku nie sú k dispozícii žiadne komentáre</td></tr>"; else: $text = fread($test, filesize("komentare/k_$id.dat")); $roz = explode("-----", $text); for($i=1;$i<count($roz);$i++): $e = $roz[$i]; $e = nl2br($e); list($meno,$email,$predmet,$text) = explode("\n", $e); echo "<tr><td width=500 bgcolor=\"gray\"><a href='mailto:$email'>$meno</a> - $predmet</td></tr>"; echo "<tr><td width=500 bgcolor=\"silver\">$text</td></tr>"; endfor; fclose($test); endif; echo "<tr><td width=500 bgcolor=\"gray\"><a href='pridaj_komentar.php?id=$id'>Pridaj komentár</a></td></tr></table>"; ?> Tenhle skript uloží komentář do externího *.txt souboru: <? if(!file_exists("komentare/k_$id.dat")): $fp = fopen("komentare/k_$id.dat", "w"); chmod("komentare/k_$id.dat", 0766); else: $test = fopen("komentare/k_$id.dat", "r"); $stary_text = fread($test, filesize("komentare/k_$id.dat")); fclose($test); $fp = fopen("komentare/k_$id.dat", "w"); endif; $text = nl2br($text); $txt = "-----$meno\n$email\n$predmet\n$text"; fputs($fp, $txt); if(isset($stary_text)) fputs($fp, $stary_text); fclose($fp); header("Location: komentare.php?id=$id"); ?> No a tohle je formulář: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <title>Formulár</title> </head> <body> <form method="POST" action="komentar_add.php"> <input type=hidden name="id" value="<? echo $id ?>"> <p>Meno: <input type="text" name="meno" size="20"></p> <p>Email: <input type="text" name="email" size="20"></p> <p>Predmet: <input type="text" name="predmet" size="20"></p> <p>Text: <textarea rows="2" name="text" cols="20"></textarea></p> <p><input type="submit" value="Poslat" name="B1"></p> </form> </body> </html> |
||
Joker Profil |
#6 · Zasláno: 26. 10. 2006, 11:27:54
mirio
No logicky musíte přidat třídy stylů do vypisovaného HTML... tady: echo "<tr><td width=500 bgcolor=\"gray\"><a href='mailto:$email'>$meno</a> - $predmet</td></tr>"; echo "<tr><td width=500 bgcolor=\"silver\">$text</td></tr>"; dáte: echo "<tr><td class=\"nejakatrida\"><a href='mailto:$email'>$meno</a> - $predmet</td></tr>"; echo "<tr><td class=\"jinatrida\">$text</td></tr>"; a pak můžete stylovat přes .nejakatrida a .jinatrida |
||
Joker Profil |
#7 · Zasláno: 26. 10. 2006, 11:27:55 · Upravil/a: Joker
(pardón, ujel mi prst na myšítku a odeslalo se to dvakrát)
|
||
mirio Profil |
#8 · Zasláno: 26. 10. 2006, 11:50:28 · Upravil/a: mirio
Já jsem fakt úplně blbej. Vypadlo mi z kódu toto:
<table width=500 cellpadding=1 cellspacing=1 border=0 bgcolor="#f9f9f9"> Proto to nic nedělalo, i když jsem to tak jak píšete už jednou zkoušel. Ještě jedna pitomá otázka, jak ostylovat tu tabulku? *stydlivý smajlík* Lépe řečeno, ošetřit to tak, aby každý komentář byl stylovatelný zvlášť, ne jen jako celá jedna velká tabulka. Popřípadě, šlo by to i bez ní? Teď to vypadá takto: [url=http://mirio.borec.cz/nova_stranka/test.php][/url] Chtěl bych mít každý komentář zvlášť. |
||
mila Profil |
#9 · Zasláno: 26. 10. 2006, 11:52:03
Pokud chcete programovat v php je třeba si uvědomit jak funguje. Je to nějaký program, který vytvoří stránku. Ta je pak pro prohlížeč úplně stejná, jako byste uložili obyčejný html soubor. Jediný rozdíl je, že příště může být jiná.
Neboli vytvoření komentářů v php a jejich následné ostylování jsou dvě naprosto odlišné věci, které nemají spolu prakticky nic společného. Prostě udělejte komentáře, pak si nechte v prohlížeči zobrazit zdrojový kód, a s tím pracujte, jako by to byla obyčejná stránka. Nebo lépe udělejte obyčejnou statickou stránku, kde bude několik testovacích formulářů, a tu ostylujte. Pak z ní udělejte šablonu (nahraďte texty příslušným echo, přidejte nějaký ten cyklus), a strčte do php. (Omlouvám se, jestli to vypadá, že z někoho dělám hlupáka, nemyslím to tak, přijde mi, že tohle je základ, který někomu utíká, ale samozřejmě to tak být nemusí, a já to špatně pochopil..) |
||
mirio Profil |
#10 · Zasláno: 26. 10. 2006, 11:56:01
Omlouvám se, jestli to vypadá, že z někoho dělám hlupáka,
Nene, jak jsem psal, PHP neumím ale nestydím se zeptat a jsem připraven na vše! :-) Ale vážně, radši se zeptám jako blbec a mám jasno, než tápat a dělat chytráka... |
||
Joker Profil |
#11 · Zasláno: 26. 10. 2006, 12:16:46
Jak píše mila, nejlepší metoda jak řešit tohle je naprogramovat si to v PHP, pak si nechat zobrazit ten výsledný zdroják, klasicky v HTML si navrhnout úpravy které potřebujete a potom je přenést do toho PHP.
Úplně nejlepší by bylo používat šablony, ale tím se v téhle fázi asi nezatěžujte ;) |
||
Anonymní Profil * |
#12 · Zasláno: 27. 10. 2006, 09:29:18
Zase já. :-) Zajímalo by mě, jak ve skriptu ošetřit, když se mi za odkazem ( např. tímto <a href='mailto:$email'>$meno</a> ) generuje <br />.
Escape sekvenci mám, podle mne, dobře - \n. Koukněte: http://mirio.borec.cz/nova_stranka/test.php |
||
mirio Profil |
#13 · Zasláno: 27. 10. 2006, 09:29:57
To jsem psal já, ale nebyl jsem přihlášen.
|
||
Joker Profil |
#14 · Zasláno: 27. 10. 2006, 10:20:23
mirio
To <br /> je zřejmě způsobené tím, že ze souborů to načítáte po řádcích.. takže poslední znak je konec řádku.. no a nl2br ho tedy převede na <br />. Zkuste nejdřív odstranit netisknutelné znaky pomocí trim() |
||
mirio Profil |
#15 · Zasláno: 27. 10. 2006, 11:02:49 · Upravil/a: mirio
Tak už jsem to vyřešil. Nahradil jsem escape sekvenci \n za <br> a mám to. Ufff... :-)
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0