Autor Zpráva
Lerz
Profil *
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
$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
$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
Majkl578
K tym definiciam "smajl-kodov" je vhodne pridat medzery vpredu a vzadu, aby sa smajliky nezamienali za nejake programovacie sekvencie.
Majkl578
Profil
srigi
[#4]
no dobra, dobry napad, upravil jsem ten kod :)
Lerz
Profil *
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 . "&nbsp;</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
hm, mas, musis tu podminku dat az za cely cyklus foreach
Lerz
Profil *
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
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 . "&nbsp;</span></td>\n";
Lerz
Profil *
Skusil som to, ale nejde, odoslem v poho aj 20 a aj ich zobrazi :(
Majkl578
Profil
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 . "&nbsp;</span></td>\n";
Lerz
Profil *
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
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

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: