pisanie kolorowym tekstem w shoutboxie

Forum poświęcone skryptom, językom programowania, serwerom i hostingowi, domenom itp.
Darom
Posty: 92
Rejestracja: 25 sierpnia 2008, 07:07

pisanie kolorowym tekstem w shoutboxie

Post autor: Darom » 24 kwietnia 2013, 14:42

Na mojej stronce http://www.history.is.net.pl mam shoutboxa w juery . Jak zrobić w nim możliwość pisania kolorem ? chodzi mi o to, że jak już wybiorę sobie jakiś kolor z listy np. czerwony to żebym mógł pisać cały czas tym kolorem w shoutboxie. Żeby zapamiętywało mi wybrany kolor. Tak samo jeśli wybiorę sobie pogrubienie to żebym mógł cały czas pisać pogrubionym tekstem. Jak takie coś zrobić ? Bardzo Was proszę o pomoc w tej sprawie.
czat.php

Kod: Zaznacz cały

<div id="daddy-shoutbox">
    <script type="text/javascript" src="/bbcode.js"></script>
    <script type="text/javascript" src="/adds.js"></script>
	<script language="Javascript" src="editor.js"></script>
    <div id="daddy-shoutbox-list"></div>
    <br />
    <form id="daddy-shoutbox-form" action="/shoutbox/daddy-shoutbox.php?action=add" method="post">
        <fieldset>
            <div>
                <div class="bbcode">
                    <button type="button" onclick="Format('bold')">B</button>
                    <button type="button" onclick="Format('italic')">I</button>
                    <button type="button" onclick="Format('underline')">U</button>
                    <select onchange="if (this.selectedIndex > 0) Colour(this.options[this.selectedIndex].value)"> 
                        <option>Kolor</option>
                        <option value="darkred" style="color:darkred">Ciemnoczerwony</option>
                        <option value="red" style="color:red">Czerwony</option>
                        <option value="orange" style="color:orange">Pomarańczowy</option>
                        <option value="brown" style="color:brown">Brązowy</option>
                        <option value="yellow" style="color:yellow">Żółty</option>
                        <option value="green" style="color:green">Zielony</option>
                        <option value="olive" style="color:olive">Oliwkowy</option>
                        <option value="cyan" style="color:cyan">Błękitny</option>
                        <option value="blue" style="color:blue">Niebieski</option>
                        <option value="darkblue" style="color:darkblue">Ciemnoniebieski</option>
                        <option value="indigo" style="color:indigo">Purpurowy</option>
                        <option value="violet" style="color:violet">Fioletowy</option>
                        <option value="white" style="color:white">Biały</option>
                        <option value="black" style="color:black">Czarny</option>
                    </select>
                    <button type="button" onclick="return pokazPasekEmotek();">Emotki</button>
                </div>
                <div id="lista-emotek" style="display: none">
<?php
$listaEmotek=array();
$listaEmotek['graph']=array('biggrin','confused','cool','cry','curve','eek','evil','exclaim','idea','lol','mad','mrgreen','neutral','razz','eusathink','redface','rolleyes','sad','smile','smile2','square','surprised','wink','question','arrow');
$listaEmotek['text']=array(':-D',':-?','8-)',':cry:',':-/',':shock:',':evil:',':!:',':idea:',':lol:',':-x',':mrgreen:',':-}',':-P',':-k',':oops:',':roll:',':-(',':-)',':->',':-]',':-o',';-)',':?:',':arrow:');

for ($i=0;$i<count($listaEmotek['graph']);$i++)
  echo '<img class="emotka" src="/shoutbox/images/emotki/icon_'. $listaEmotek['graph'][$i] .'.gif" onclick="InsertImage(\''. $listaEmotek['graph'][$i] .'\');" title=" '.$listaEmotek['text'][$i].' ">';
?>
</div>
            <iframe id="message" scrolling="no"></iframe>
			<input type="hidden" name="message" value="">
            <input type="hidden" name="nickname" value="<?php echo _e($_SESSION['username']); ?>">
            <span id="daddy-shoutbox-response"></span>
			<input type="submit" value="Wyślij" />
        </fieldset>
    </form>
</div>
<script type="text/javascript" src="/shoutbox/javascript/jquery.js"></script>
<script type="text/javascript" src="/shoutbox/javascript/jquery.form.js"></script>

<script type="text/javascript">
var adminNickName = 'NorthAngel';
var count = 0;
var files = '/shoutbox/';
var lastTime = 0;
var Editor;
 
function Format(action)
{
	Editor.execCommand(action, false, null);
}
 
function Colour(colour)
{		
	Editor.execCommand("forecolor",false, colour);
}

function InsertImage(image)
{
    image = '/shoutbox/images/emotki/icon_'+image+'.gif';
    if (!Editor.execCommand('insertImage',false, image))
    {
      Editor.body.focus();
      range = Editor.selection.createRange();
      range.pasteHTML('<img src="'+image+'">');
    }
}

function pokazPasekEmotek()
{
  if (document.getElementById('lista-emotek').style.display=='none')
    document.getElementById('lista-emotek').style.display='block';
  else
    document.getElementById('lista-emotek').style.display='none';
  return false;
}

function konwertujEmotki(text)
{
  text=text.replace(/&nbsp;/gi,'&nbsp;');
<?php
for ($i=0;$i<count($listaEmotek['graph']);$i++)
  echo '  text=text.replace(/'. preg_replace('/([\/\\\?\:\(\)\|\-])/mi','\\\\$1',$listaEmotek['text'][$i]) .'/gi,\'<img class="emotka" src="/shoutbox/images/emotki/icon_'. $listaEmotek['graph'][$i] .'.gif" title=" '.$listaEmotek['text'][$i].' ">\');'  ."\n";
?>
  text=text.replace(/\:\-&gt;/gi,'<img class="emotka" src="/shoutbox/images/emotki/icon_smile2.gif" title=" :-> ">');
  return text;
}

function html2bbcode(text)
{
  for (var i=0;i<9;i++)
  {
    text=text.replace(/<br>/gi,'');
    text=text.replace(/<p>/gi,'');
    text=text.replace(/<\/p>/gi,'');
    text=text.replace(/<span>/gi,'');
    text=text.replace(/<\/span>/gi,'');
    text=text.replace(/<div>/gi,'');
    text=text.replace(/<\/div>/gi,'');
    text=text.replace(/<b>(.*?)<\/b>/gi,'[b]$1[/b]');
    text=text.replace(/<i>(.*?)<\/i>/gi,'[i]$1[/i]');
    text=text.replace(/<u>(.*?)<\/u>/gi,'[u]$1[/u]');
    text=text.replace(/<strong>(.*?)<\/strong>/gi,'[b]$1[/b]');
    text=text.replace(/<em>(.*?)<\/em>/gi,'[i]$1[/i]');
    text=text.replace(/<font color="(.*?)">(.*?)<\/font>/gi,'[color=$1]$2[/color]');
    text=text.replace(/<b style="color:\s*(.*?);*">(.*?)<\/b>/gi,'[b][color=$1]$2[/color][/b]');
    text=text.replace(/<i style="color:\s*(.*?);*">(.*?)<\/i>/gi,'[i][color=$1]$2[/color][/i]');
    text=text.replace(/<u style="color:\s*(.*?);*">(.*?)<\/u>/gi,'[u][color=$1]$2[/color][/u]');
    text=text.replace(/<u style="font-weight:\s*bold;\s*color:\s*(.*?);*">(.*?)<\/u>/gi,'[u][b][color=$1]$2[/color][b][/u]');
    text=text.replace(/<i style="font-weight:\s*bold;\s*color:\s*(.*?);*">(.*?)<\/i>/gi,'[i][b][color=$1]$2[/color][b][/i]');
    text=text.replace(/<span style="color:\s*(.*?)(;[^"]*?)">(.*?)<\/u>/gi,'[color=$1]$3[/color]');
    text=text.replace(/<span[^>]*?>/gi,'$1');
  }
<?php
for ($i=0;$i<count($listaEmotek['graph']);$i++)
  echo '  text=text.replace(/<img src="\/shoutbox\/images\/emotki\/icon_'.$listaEmotek['graph'][$i].'\.gif">/gi,\''.preg_replace('/>/mi','>',$listaEmotek['text'][$i]).'\');'."\n";
?>
  return text;
}

function pressedEnter(e)
{
  var code = (e.keyCode ? e.keyCode : e.which);
  if (code == 13)
  {
    e.preventDefault();
    e.stopPropagation();
    $('#daddy-shoutbox-form').submit();
  }
}

function prepare(response, pozycja) {
    var d = new Date();
    count++;
    d.setTime(response.time*1000);
    var godzina = d.getHours();
    var minuta = d.getMinutes();
    var mytime = ['(', godzina > 9 ? '' : '0', godzina, ':', minuta > 9 ? '' : '0', minuta, ')'].join('');
    var string = '<div class="shoutbox-list' + (pozycja % 2 ? ' co_drugi_wpis' : '') + '" id="list-'+count+'">'
        + '<span class="shoutbox-list-time">'+mytime+'</span>'
        + '<span class="shoutbox-list-nick'+(response.nickname==adminNickName?' admin':(response.nickname=='<?php echo _e($_SESSION['username']); ?>'?' thisuser':''))+'">'+response.nickname+':</span>'
        + '<span class="shoutbox-list-message">'+konwertujEmotki(response.message)+'</span>'
        +'</div>';

    return string;
}

function success(response, status)  { 
    if(status == 'success') {
        lastTime = response.time;
        $('#daddy-shoutbox-response').html('<img src="'+files+'images/accept.png" />');
        $('#daddy-shoutbox-list').append(prepare(response, $('#daddy-shoutbox-list').children().length));
        $('input[@name=message]').attr('value', '').focus();
		Editor.body.innerHTML='';
        $('#list-'+count).fadeIn('slow');

    var a = document.getElementById('daddy-shoutbox-list');
        a.scrollTop = a.scrollHeight;

        timeoutID = setTimeout(refresh, 3000);
    }
}

function validate(formData, jqForm, options) {
    formData[0].value=html2bbcode(Editor.body.innerHTML);
    $('input[@name=message]').val('');
    for (var i=0; i < formData.length; i++) { 
        if (!formData[i].value) {
            alert('Please fill in all the fields'); 
            $('input[@name='+formData[i].name+']').css('background', 'red');
            return false;
        } 
    } 
    $('#daddy-shoutbox-response').html('<img src="'+files+'images/loader.gif" />');
    clearTimeout(timeoutID);
}

function refresh() {
    $.getJSON(files+"daddy-shoutbox.php?action=view&time="+lastTime, function(json) {
        if(json.length) {
            for(i=0; i < json.length; i++) {
                $('#daddy-shoutbox-list').append(prepare(json[i],  $('#daddy-shoutbox-list').children().length));
                $('#list-' + count).fadeIn('slow');
            }
            var j = i-1;
            lastTime = json[j].time;
        }
        //alert(lastTime);
    });
        var a = document.getElementById('daddy-shoutbox-list');
            a.scrollTop = a.scrollHeight;
    timeoutID = setTimeout(refresh, 3000);
}

// wait for the DOM to be loaded
$(document).ready(function() {
    var options = {
        dataType:       'json',
        beforeSubmit:   validate,
        success:        success
    };
    $('#daddy-shoutbox-form').ajaxForm(options);
   var a = document.getElementById('daddy-shoutbox-list');
        a.scrollTop = a.scrollHeight;
    timeoutID = setTimeout(refresh, 100);
    Editor = document.getElementById('message').contentWindow.document;
    Editor.body.contentEditable = true;
    Editor.body.onkeypress=pressedEnter;
    Editor.parentNode.onkeydown=pressedEnter;
    Editor.designMode = "on";
});
</script>
Można to u mnie na czacie przetestować.
Login: Test
hasło: lkjuio7

Darom
Posty: 92
Rejestracja: 25 sierpnia 2008, 07:07

Re: pisanie kolorowym tekstem w shoutboxie

Post autor: Darom » 18 maja 2013, 23:30

i wszyscy mają mnie w dupie :cry: :(

Magdas
Posty: 1
Rejestracja: 24 maja 2013, 07:14
Kontakt:

Re: pisanie kolorowym tekstem w shoutboxie

Post autor: Magdas » 24 maja 2013, 07:33

Nie mają w d... Sprawa nie jest taka prosta, wymaga wprowadzenia zmiennej identyfikującej kolor do użytkownika. Na twoim miejscu pogodziłbym się z ciągłym wybieraniem koloru.

Darom
Posty: 92
Rejestracja: 25 sierpnia 2008, 07:07

Re: pisanie kolorowym tekstem w shoutboxie

Post autor: Darom » 24 maja 2013, 22:25

No tak, dla Ciebie może łatwiej jest iść po najniższej linii oporu i nie robić nic dlatego proponujesz pogodzenie się z ciągłym wybieraniem koloru.
Bądź też nie wiesz zabardzo jak to zrobić i dlatego tak radzisz. Mi jednak zależy na tym, żeby mieć to zrobione tak jak być powinno.
Jeśli Ty wiesz jak to możesz mi pomóc. Proszę Was o pomoc w tej sprawie :cry:

Darom
Posty: 92
Rejestracja: 25 sierpnia 2008, 07:07

Re: pisanie kolorowym tekstem w shoutboxie

Post autor: Darom » 05 lipca 2013, 14:31

I wszyscy mają mnie głęboko w dupie :| :| :|

Darom
Posty: 92
Rejestracja: 25 sierpnia 2008, 07:07

Re: pisanie kolorowym tekstem w shoutboxie

Post autor: Darom » 05 lipca 2013, 19:20

Nikt mi nie odpisuje i niechce pomóc :( :( :(

Aviator
Administrator
Posty: 2089
Rejestracja: 07 czerwca 2011, 22:14
Lokalizacja: ZS

Re: pisanie kolorowym tekstem w shoutboxie

Post autor: Aviator » 05 lipca 2013, 22:42

A co samemu od kwietnia zdołałeś zdziałać? Czy liczysz tylko na to, że odwalimy robotę za Ciebie?

I radzę się trochę uspokoić bo łamiesz netykietę, a to się nie długo skończy odpowiednimi krokami.
-=Jeżeli w moim poście brakuje znaków diakrytycznych, oznacza to, że posta wyklepałem przez telefon=-

Darom
Posty: 92
Rejestracja: 25 sierpnia 2008, 07:07

Re: pisanie kolorowym tekstem w shoutboxie

Post autor: Darom » 06 lipca 2013, 11:01

Ja zrobiłem tak że jak się zaznaczy tekst to kolor się zmieni, jednak nie tak ma to działać i dlatego tutaj proszę Was o pomoc w tej sprawie bo jeszcze nikt ani trochę mi tutaj w niczym nie pomógł. Nawet nikt palcem nie kiwnął żeby mi pomóc.

jaroslw
Zasłużony
Posty: 4524
Rejestracja: 10 grudnia 2005, 18:48
Kontakt:

Re: pisanie kolorowym tekstem w shoutboxie

Post autor: jaroslw » 06 lipca 2013, 15:10

Nikt nie ma obowiązku tutaj pomagać. To tylko nasza dobra wola. Twoje problemy są już bardziej złożone, często nie da się ich rozwiązać w kilka/kilkanaście minut. Dlatego też nie ma chętnych, którzy odwalą za Ciebie całą robotę.
Pobierz styl: we_universalwe_clearblue
Nowości i aktualizacje: FacebookGoogle+Twitter

Darom
Posty: 92
Rejestracja: 25 sierpnia 2008, 07:07

Re: pisanie kolorowym tekstem w shoutboxie

Post autor: Darom » 06 lipca 2013, 22:37

Jeśli ktoś mi zrobi to tak jak chcę mieć to zrobione w wolnej chwili to mogę nawet zapłacić za to. Tylko kwestia, kto mi chce pomóc ? :(

ODPOWIEDZ

Wróć do „Webmastering”