Autor | Zpráva | ||
---|---|---|---|
Lerz Profil * |
#1 · Zasláno: 11. 3. 2009, 14:36:29
Caute all, mam jednoduchu stranku, na kazdej stranke je mozne pridat komentar.
Vsetko funguje dobre ako ma. Ale chcel by som este pridat funkciu smajlikov. Bez java scriptu, staci len obycajne v php. Nieco v tom zmysle ze ked navstevnik napise: Caute all :) ako sa mate .. tak miesto textu ":)" bude smajl(obrazok). Cize len take jednoduche, len 2-3 smajlikov to by stacilo, no problem je v tom, ze vobec neviem ako na to. Dik za pomoc |
||
srigi Profil |
#2 · Zasláno: 11. 3. 2009, 14:45:47 · Upravil/a: srigi
$vystupny_text = preg_replace('/\s+:\)\s+/' , '<img src="cesta/k/obrazku/smajlika.gif" alt="smajlik" />' , $vstupny_text) Najako takto. Neviem ci je ten regler spravne, vsak ma dakto isto opravi. Regularny vyraz hlada medzeru(y) potom znaky :) a zase medzeru(y). Ked toto najde, nahradi to HTML kodom s tagom IMG. |
||
Majkl578 Profil |
#3 · Zasláno: 11. 3. 2009, 15:26:27 · Upravil/a: Majkl578
$retezec = 'xdefrgthew :) epfhwgáíšw :( nbiuefwbweáhwew ;) qhweíqw'; $smajlici = array( ':)' => 'smiling.jpg', ';)' => 'wink.jpg', ':(' => 'sad.jpg', ';(' => 'crying.jpg', ); foreach($smajlici as $code => $file) { $retezec = str_replace(' ' . $code . ' ', '<img src="/smilies/' . $file . '" alt="' . $code . '"/>', $retezec); } |
||
srigi Profil |
#4 · Zasláno: 11. 3. 2009, 15:36:29
Majkl578
K tym definiciam "smajl-kodov" je vhodne pridat medzery vpredu a vzadu, aby sa smajliky nezamienali za nejake programovacie sekvencie. |
||
Majkl578 Profil |
#5 · Zasláno: 11. 3. 2009, 16:23:58
|
||
Lerz Profil * |
#6 · Zasláno: 11. 3. 2009, 17:49:33
Dikes, len som tomu moc nepochopil ako to ma fungovat :D
1. riadok $retezec to je vlastne co? Akoze text ktory bude v komentary? Teda budem mat podla mojho, text je ako zobrazuje $message. $smajlici = array( ':)' => '1.gif', ';)' => '2.gif', ':(' => '3.gif', ';(' => '4.gif', ); if ($message != '') $vartm .= "<tr><td class=\"messageB\" valign=\"top\"><span class=\"message\">" . $message . " </span></td>\n"; foreach($smajlici as $code => $file) { $message = str_replace(' ' . $code . ' ', '<img src="/smilies/' . $file . '" alt="' . $code . '"/>', $message); } Smajl je stale "len" textovy. Mam to zle? |
||
Majkl578 Profil |
#7 · Zasláno: 11. 3. 2009, 17:54:00
hm, mas, musis tu podminku dat az za cely cyklus foreach
|
||
Lerz Profil * |
#8 · Zasláno: 11. 3. 2009, 17:59:57
Ups :D
Sry, som si neuvedomil, uz to ide ako ma. Inak ma napadlo, dalo by si to spravit este aj na nejake obmedzenie? napr. 2 smajle v jednom prispevku a dost, aby nebol zase bordel. |
||
Majkl578 Profil |
#9 · Zasláno: 11. 3. 2009, 18:03:49 · Upravil/a: Majkl578
Lerz
dalo, takto: $smajlici = array( ':)' => '1.gif', ';)' => '2.gif', ':(' => '3.gif', ';(' => '4.gif', ); $replaceCount = 0; foreach($smajlici as $code => $file) { $retezec = str_replace(' ' . $code . ' ', '<img src="/smilies/' . $file . '" alt="' . $code . '"/>', $retezec, $count); $replaceCount += $count; if($replaceCount > 2) { trigger_error('Povoleni jsou maximalne 2 smajlici v prispevku '); } } if ($message != '') $vartm .= "<tr><td class=\"messageB\" valign=\"top\"><span class=\"message\">" . $message . " </span></td>\n"; |
||
Lerz Profil * |
#10 · Zasláno: 11. 3. 2009, 18:30:50
Skusil som to, ale nejde, odoslem v poho aj 20 a aj ich zobrazi :(
|
||
Majkl578 Profil |
#11 · Zasláno: 11. 3. 2009, 18:36:07
Lerz
to proto, ze mas spatne nastavene zobrazovani chyb/notices, navic jsem cekal, ze nebudes jen bezhlave kopirovat $smajlici = array( ':)' => '1.gif', ';)' => '2.gif', ':(' => '3.gif', ';(' => '4.gif', ); $replaceCount = 0; foreach($smajlici as $code => $file) { $message = str_replace(' ' . $code . ' ', '<img src="/smilies/' . $file . '" alt="' . $code . '"/>', $message, $count); $replaceCount += $count; if($replaceCount > 2) { die('Povoleni jsou maximalne 2 smajlici v prispevku!'); } } if ($message != '') $vartm .= "<tr><td class=\"messageB\" valign=\"top\"><span class=\"message\">" . $message . " </span></td>\n"; |
||
Lerz Profil * |
#12 · Zasláno: 11. 3. 2009, 19:46:44
Praveze som to skusal aj na meno a heslo ci mi to zoberie ten kod ale nezobralo
... trigger_error('Povoleni jsou maximalne 2 smajlici v prispevku '); ... Tak pouzil iba funckui exit ta ide, cize nikto nemoze pouzit meno Admin ked nevie heslo :) Proste len biela obrazovka a prispevok neodosle. Ale podme k veci, ked dam do komentarov ..... die('Povoleni jsou maximalne 2 smajlici v prispevku!'); ..... Tak napise chybovu hlasku to ano, ale prispevok odosle aj tak. Tam mam problem, pretoze ked ho odosle a je tam napr. 5 smajlov tak nezobrazi celu stranku, teda napise Povoleni jsou maximalne 2 smajlici v prispevku! kedze v komentaroch sa taky prispevok nachadza. Este to skusim dat aby to overovalo pred odoslanim, len tam mam problem, ze ked to presuniem cele tam tak mi smajle nezobrazi a ked tam presuniem len tu podmienku tak nefunguje ( pretoze funckiu na odoslanie mam vyssie). Mas nejaky napad? Ale rozmyslam dost :D len som len zaciatocnik :( |
||
Majkl578 Profil |
#13 · Zasláno: 11. 3. 2009, 20:06:34
jesis to si to neumis udelat sam? vzdyt tam staci zmenit podminku tak aby kdyz mas 2 a mene tak se ulozi, kdyz vice, tak se vypise chyba
to co jsem udelal ja je jen navrh, die neni dulezite |
||
Časová prodleva: 15 let
|
0