Strana 1 z 2

Guest Book - PHP zakrok

Napísané: Po Apr 24, 2006 7:22 pm
od používateľa Spade
Zdravím!

Nuž, vzhľadom na to, že nie som žiaden ťažký PHP programátor som sa pokúšal spraviť aké-také zmeny v snippete GuestBook3.

Výsledok je na http://www.strojarina.getwave.net

Sice ziadna slava, ale aj tak som sa zasekol pri jednej zmene, ktoru velmi potrebujem. Ide o vypisanie smajlikov pod seba. Proste teraz je tam tlacidlo a po kliknuti nan sa pod nim vypisu smajliky. Chcel by som to tak, aby tie smajliky tam boli stale a boli umiestnene pod Memom (textove pole) a ak by sa dalo, aby boli zarovnane aj na stred voci Memu, resp. v strede Mema.

Zdrojovy kod tej knihy je v prilohe.

Snad sa najde nejaka dobra dusa, ktora ovlada trocha PHP :) Vopred diky.

Napísané: Po Apr 24, 2006 8:01 pm
od používateľa _rasel^
Riadok:

Kód: Vybrať všetko

        $output .= "<br><button type=\"button\" onclick=\"show_smilies();\"><img src=\"assets/images/zmurknutie.gif\"></button><div><div id=\"smilie_box\"></div></div><br /><br />"; 
Nahrad za:

Kód: Vybrať všetko

        $output .= "<br><script language='javascript' type='text/javascript'>show_smilies();</script><div><div id='smilie_box'></div></div><br /><br />"; 
A posun pod riadok:

Kód: Vybrať všetko

        $output .= $_lang_guestbook["name_or_alias"]."<br /><center><input name='subject' size='40' />"; 
... a mozno to pojde. :D

Napísané: Po Apr 24, 2006 8:28 pm
od používateľa Spade
Hmm, ked nahradim ten riadok a spustim stranku, nevidim ani smajliky :/

Napísané: Ut Apr 25, 2006 7:53 pm
od používateľa Spade
Uz som skusal skoro vsetko, ale tie smajliky tam nedostanem ani za rit ...

Napísané: Ut Apr 25, 2006 8:44 pm
od používateľa _rasel^
Spade napísal:Uz som skusal skoro vsetko, ale tie smajliky tam nedostanem ani za rit ...
Ak by som bol manik do JavaScriptu, tak by som ti vedel pomoct. Myslel som si ze tamto pojde...

Tak vyskusajme toto:
Subor ../assets/site/gb.js riadky:

Kód: Vybrať všetko

function show_smilies(){
	set_smilies();
	show_box('smilie_box');
}
... nahradime za:

Kód: Vybrať všetko

	set_smilies();
	show_box('smilie_box');
A v snippete [[BuestBook]], riadky:

Kód: Vybrať všetko

        $output .= "<script language=\"javascript\" type=\"text/javascript\" src=\"assets/site/gb.js\"></script>";
        $output .= "<h2 $header_style>".$_lang_guestbook["write_new_message"]."</h2>";
        $output .= "<table width='100%'><tr><td>";
        $output .= "<form name=\"form\" method='post' action='index.php'>";
        $output .= "<input type='hidden' name='id' value='$pageid' />";
        $output .= "<input type='hidden' name='submitted' value='$submitted' />";
        $output .= $_lang_guestbook["name_or_alias"]."<br /><input name='subject' size='40' />";
        $output .= "<br /><br />".$_lang_guestbook["message"]."<br /><text"."area rows='8' cols='50' name='message'></"."text"."area>";
        $output .= "<button type=\"button\" onclick=\"show_smilies();\"><img src=\"assets/images/smile.gif\"></button><div><div id=\"smilie_box\"></div></div><br /><br />";
... nahradime za:

Kód: Vybrať všetko

        $output .= "<h2 $header_style>".$_lang_guestbook["write_new_message"]."</h2>";
        $output .= "<table width='100%'><tr><td>";
        $output .= "<form name=\"form\" method='post' action='index.php'>";
        $output .= "<input type='hidden' name='id' value='$pageid' />";
        $output .= "<input type='hidden' name='submitted' value='$submitted' />";
        $output .= $_lang_guestbook["name_or_alias"]."<br /><input name='subject' size='40' />";
        $output .= "<br /><script language=\"javascript\" type=\"text/javascript\" src=\"assets/site/gb.js\"></script><br />";
        $output .= "<br /><br />".$_lang_guestbook["message"]."<br /><text"."area rows='8' cols='50' name='message'></"."text"."area><br />";
... som zvedavy, ze ci to pojde. :roll:

Napísané: Ut Apr 25, 2006 11:23 pm
od používateľa Spade
No ale furt je tam to tlacidlo so smajlikmi :/ Mne ide o to, aby tam nebolo, ale aby tam boli smajliky. Teraz je to tak, ze je tam tlacidlo a po stalceni sa zobrazia smajliky.

Napísané: St Apr 26, 2006 12:23 am
od používateľa _rasel^
Spade napísal:No ale furt je tam to tlacidlo so smajlikmi :/ Mne ide o to, aby tam nebolo, ale aby tam boli smajliky. Teraz je to tak, ze je tam tlacidlo a po stalceni sa zobrazia smajliky.
Ak si to urobil tak ako som napisal, tak tam to tlacidlo bud nie je, alebo to nefunguje vobec...
Neexistuje, aby tam bolo, ked som ho v druhom kode zrusil...

Napísané: St Apr 26, 2006 10:09 am
od používateľa Spade
No tlacidlo tam je, ked nan stlacim, nic sa nestane. Avsak ja chcem, aby na tom mieste, kde je to tlacidlo boli smajliky stale. Ukazem ti priklad:
http://www.strojarina.getwave.net/ukazka.bmp

Nejako takto. Inak ten guestbook by som chcel v takej podobe, aby tam ta moznost napisania spravy (textove pole, kde je "Prezyvka" aj textove pole, kde je "Sprava") bola stale viditelna. Proste aby tam nebolo to tlacidlo na zobrazenie tychto poli, ale aby tam tie polia uz boli napevno. Tym padom by tam nemuselo byt tlacidlo "Zrusit", ale len "Odoslat" a "Vymazat".

Da sa to? Vopred diky za ochotu.

Napísané: St Apr 26, 2006 11:47 am
od používateľa _rasel^
Vsetko sa da... len ten guestbook je (prinajmensom) trocha cudne vyrieseny. Da sa to vyriesit aj bez js. Neskor sa nato pozriem... (vikend). Treba nato viac casu. A rovno to hodim na Texy! syntax.

Napísané: St Apr 26, 2006 1:53 pm
od používateľa Spade
Vela som ti nepochopil, ale hlavne, ze sme zdraví :D
No ja sa tymto veciam velmi nerozumiem... ale ak to pojde, ako potrebujem, nebudem mat ziadne namietky ... btw, musi to byt cez snippet.
Aha, ty asi myslis ten subor gb.js ... no ten je fakt cudny ... ani mne sa nepaci, ze je to tak divno robene...

Napísané: Ne Apr 30, 2006 11:08 pm
od používateľa _rasel^
Uz som nieco vykuzlil. :D Zajtra sem slahnem kod... musim to este otestovat. :P

Tu je vycuc, ktory som pouzil z phpBB (iba toto staci na posielanie smajlov do texterea):

Kód: Vybrať všetko

<script language="JavaScript" type="text/javascript"> function emoticon(text) { var txtarea = document.post.message; text = ' ' + text + ' '; if (txtarea.createTextRange && txtarea.caretPos) { var caretPos = txtarea.caretPos; caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text; txtarea.focus(); } else { txtarea.value  += text; txtarea.focus(); } } </script>
  <form action="" method="post" name="post" onsubmit="return checkForm(this)">
  <a href="javascript:emoticon(':D')"><img src="images/smiles/icon_biggrin.gif" border="0" alt="Very Happy" title="Very Happy" /></a>
  <textarea name="message" rows="10" cols="10"></textarea></form>
... kedze neovladam JavaScript, tak mi chvilu trvalo kym som nato prisiel. :oops: :lol:

Napísané: Po Máj 01, 2006 1:00 am
od používateľa Spade
Paradicka, tak ty si nezabudol ... mno kazdopadne diky moc za snahu. Snad sa to podari :)

Napísané: Ut Máj 02, 2006 12:57 pm
od používateľa _rasel^
Sorry, ze az teraz... ale vcera som musel naformatovat disk. :P

Tu je uz funkcny vysledok (inkriminovana cast kodu):

Kód: Vybrať všetko

    // Display write new message form
    if ($_GET['new_message'] == "TRUE") {
        // Display a Form for submitting a new message
        $output .= "<table width='100%'><tr><td>";
        $output .= "<script language='JavaScript' type='text/javascript'> function emoticon(text) { var txtarea = document.post.message; text = ' ' + text + ' '; if (txtarea.createTextRange && txtarea.caretPos) { var caretPos = txtarea.caretPos; caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text; txtarea.focus(); } else { txtarea.value  += text; txtarea.focus(); } } </script>";
        $output .= "<form action='' method='post' name='post' onsubmit='return checkForm(this)'>";
        $output .= "<input type='hidden' name='id' value='$pageid' />";
        $output .= "<input type='hidden' name='submitted' value='$submitted' /><center>";
        $output .= $_lang_guestbook["name_or_alias"]."<br /><center><input name='subject' size='40' /><br /><br />";
        $output .= "<a href=\"javascript:emoticon(':D')\"><img src='assets/images/wink.gif' alt''></a>";
        $output .= "<br /><br /><center>".$_lang_guestbook["message"]."<br /><center><text"."area rows='8' cols='50' name='message'></"."text"."area>";
        $output .= "<br /><br />  <input type='submit' name='submit' value='".$_lang_guestbook["send"]."' />";
        $output .= "  <input type='reset' name='reset' value='".$_lang_guestbook["reset"]."' />";
        $output .= "  <input type='button' value='".$_lang_guestbook["cancel"]."' onClick=\"window.location.href='$pageurl&new_message=FALSE'\">";
        $output .= "</form>";
        $output .= "</td></tr></table>";
    }
Riadok:

Kód: Vybrať všetko

$output .= "<a href=\"javascript:emoticon(':D')\"><img src='assets/images/wink.gif' alt''></a>";
... uprav podla svojich smajlikov. Syntax (podla funkcie 'smile($text)' v snippete): ': D' je v tomto pripade kod smajlika a 'assets/images/wink.gif' cesta k nemu. Ak chces pridat dalsieho smajlika, tak pridaj riadok.

Subor '../assets/site/gb.js' mozes kludne vymazat - uz sa nepouziva.

btw: Neskor toho poriesim viac. Aby bol formular viditelny vzdy (podla potreby), bezpecnostne overenie podla captcha obrazkoveho kodu (ochrana proti spammu), texy! syntax pisania prispevkov... ale to az na buduce. :D

Napísané: Ut Máj 02, 2006 2:45 pm
od používateľa Spade
Hoho :idea: Si totalny borec :wink: :D Uplne super!! Velmi pekne ti dakujem, presne toto som chcel :idea:

Este jedine co potrebujem (mozno to dokazem aj sam...) osetrit udalost vtedy, ked sa do prezyvky nezada nic - vtedy by sa napisala dialogova sprava "Nezadali ste nick!". A samozrejme este to, aby bol ten formular stale vidiet.

Este raz - diky moc! Mas to u mna!

PS: Ochranu mi vobec netreba :)

Napísané: Ut Máj 02, 2006 3:04 pm
od používateľa Spade
Inak ak by bolo treba, mozem prekladat snippety :) Trocha ma to aj bavi :P