/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) 2002 - 2008 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: jquery_shoutbox.js
| Author: bartek124
| E-Mail: bartek124@php-fusion.pl
| Web: http://bartek124.php-fusion.pl
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licenses/agpl.html. Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
var autorefresh;
var flood_control;
var refresh_control;
$(function() {
$("textarea[name='shout_message']").keyup(function() {
var count_chars = $(this).val().length;
if (count_chars > 200) {
var new_value = $(this).val().substring(0, 200);
$(this).val(new_value)
}
$("div#shout_count").html(""+(200 - $(this).val().length)+"");
});
$("input[name=\'refresh_shout\']").css("display", "inline");
prepare_shoutbox();
autorefresh = setInterval("update_messages();", 10000);
$("div#shout_preloader").css({"height": $("form[name='shout_form']").height()});
$("img#sshout_preloader").css("margin-top", (($("form[name='shout_form']").height()/2)-32));
$("input[name='edit_shout']").click(function() {
if($("textarea[name='shout_message']").val() == "") { alert(locale['jsp_003']); return false; }
$("form[name='shout_form']").fadeOut("fast", function() {
$("div#shout_preloader").fadeIn("fast", function() {
$.post(basedir+"infusions/jquery_shoutbox_panel/jquery_shoutbox.php", {
get_shouts: 1,
action: "sedit",
shoutid: $("input[name='edited_id']").val(),
message: $("textarea[name='shout_message']").val()
}, function(data) {
$("div#shout_preloader").fadeOut("slow", function() {
$("div#shout_count").html("200");
$("textarea[name='shout_message']").val("");
$("input[name='post_shout']").css("display", "inline");
$("input[name='edit_shout']").css("display", "none");
$("form[name='shout_form']").fadeIn("slow", function() {
$("div#shout_messages").empty();
prepare_messages(data);
parsesmileys();
delete data;
});
});
}, "xml");
});
});
return false;
});
$("input[name='post_shout']").click( function() {
if($("input[name='shout_name']").val() == "") { alert(locale['jsp_002']); return false; }
if($("textarea[name='shout_message']").val() == "") { alert(locale['jsp_003']); return false; }
clearInterval(flood_control);
$.post(basedir+"infusions/jquery_shoutbox_panel/jquery_shoutbox.php",{
action: "captcha",
sb_captcha: $("input[name='sb_captcha_code']").val()
}, function(data) {
if(imember == true || data == "ok") {
$("input[name='post_shout']").attr("disabled", "disabled");
$("form[name='shout_form']").fadeOut("fast", function() {
$("div#shout_preloader").fadeIn("fast", function() {
$.post(basedir+"infusions/jquery_shoutbox_panel/jquery_shoutbox.php", {
get_shouts: 1,
action: "add",
name: $("input[name='shout_name']").val(),
message: $("textarea[name='shout_message']").val()
}, function(data) {
$("div#shout_preloader").fadeOut("slow", function() {
$("div#shout_count").html("200");
$("textarea[name='shout_message']").val("");
if($("input[name='shout_name']").attr("type") == "text") {
$("input[name='shout_name']").val("");
}
$("form[name='shout_form']").fadeIn("slow", function() {
flood_control = setInterval("unlock_button('post_shout', '"+flood_control+"');", floodinterval+"000");
$("div#shout_messages").empty();
prepare_messages(data);
parsesmileys();
delete data;
if(imember == false) {
document.getElementById('sb_captcha').src = 'includes/securimage/securimage_show.php?sid=' + Math.random();
}
});
});
});
});
});
} else {
alert(locale['jsp_004']);
document.getElementById('sb_captcha').src = 'includes/securimage/securimage_show.php?sid=' + Math.random();
return false;
}
});
return false;
});
$("input[name='refresh_shout']").click( function() {
clearInterval(refresh_control);
$("input[name='refresh_shout']").attr("disabled", "disabled");
$("div#shout_messages").fadeTo("fast", 0.3, function() {
$.post(basedir+"infusions/jquery_shoutbox_panel/jquery_shoutbox.php", {
get_shouts: 1
}, function(data) {
refresh_control = setInterval("unlock_button('refresh_shout', '"+refresh_control+"');", 2500);
$("div#shout_messages").empty();
prepare_messages(data);
parsesmileys();
delete data;
$("div#shout_messages").fadeTo("fast", 1.0);
}, "xml");
});
});
});
function unlock_button(button, intervalid) {
$("input[name='"+button+"']").removeAttr("disabled");
clearInterval(intervalid);
}
function prepare_shoutbox() {
var delete_links = $("a.delete_shoutbox_message");
delete_links.each(function(i) {
$(delete_links[i]).attr({href: "javascript:delete_message("+$(delete_links[i]).attr("id")+");"});
});
delete delete_links;
var edit_links = $("a.edit_shoutbox_message");
edit_links.each(function(i) {
$(edit_links[i]).attr({href: "javascript:edit_message("+$(edit_links[i]).attr("id")+");"});
});
delete edit_links;
}
function update_messages() {
$.post(basedir+"infusions/jquery_shoutbox_panel/jquery_shoutbox.php", {
get_shouts: 1
}, function(data) {
$("div#shout_messages").empty();
prepare_messages(data);
parsesmileys();
delete data;
}, "xml");
}
function prepare_messages(data) {
var i = 0;
$("shout",data).each(function(id) {
var shout = $("shout",data).get(id);
if($("authoruname",shout).text() == "") {
var author = $("authorname",shout).text();
} else {
var author = "<a href='"+basedir+"profile.php?lookup="+$("authorname",shout).text()+"' class='side'>"+$("authoruname",shout).text()+"</a>";
}
if($("access",shout).text() == 1) {
var actions = "[<a href='javascript:edit_message("+$("shoutid",shout).text()+");' class='side'>"+locale['global_076']+"</a>] [<a href='javascript:delete_message("+$("shoutid",shout).text()+");' class='side'>"+locale['global_157']+"</a>]<br />";
} else {
var actions = "";
}
if(i == 0) { var br = ""; var br2 = "<br />"; } else if(i == 1) { var br = ""; var br2 = "";} else { var br = "<br />"; var br2 = ""; }
$("#shout_messages").append("<div id='shout_"+$("shoutid",shout).text()+"'>"+br+"<div class='shoutboxname'>"+author+"</div>"
+"<div class='shoutboxdate'>"+$("datestamp",shout).text()+"</div>"
+"<div class='shoutbox'>"+$("message",shout).text()+"</div>"+actions+br2+"</div>");
i++;
});
delete data;
}
function parsesmileys() {
var smileys = $("img.smiley");
$("img.smiley").each(function(i) {
var img = $(smileys[i]).attr("alt");
$(smileys[i]).attr({ "src": basedir+"images/smiley/"+img });
$(smileys[i]).removeClass("smiley");
});
delete smileys;
}
function delete_message(shout_id) {
$("div#shout_"+shout_id).fadeTo("fast", 0.3, function() {
$.post(basedir+"infusions/jquery_shoutbox_panel/jquery_shoutbox.php", {
get_shouts: 1,
action: "delete",
shoutid: shout_id
}, function(data) {
$("div#shout_"+shout_id).slideUp("slow", function() {
$("div#shout_messages").empty();
prepare_messages(data);
parsesmileys();
delete data;
});
}, "xml");
});
}
function edit_message(shout_id) {
$("form[name='shout_form']").fadeOut("fast", function() {
$("div#shout_preloader").fadeIn("fast", function() {
$.post(basedir+"infusions/jquery_shoutbox_panel/jquery_shoutbox.php", {
action: "ledit",
shoutid: shout_id
}, function(shout) {
$("input[name='edited_id']").val(shout_id);
$("div#shout_preloader").fadeOut("slow", function() {
$("textarea[name='shout_message']").val(shout);
$("div#shout_count").html(""+(200 - $("textarea[name='shout_message']").val().length)+"");
$("input[name='post_shout']").css("display", "none");
$("input[name='edit_shout']").css("display", "inline");
$("form[name='shout_form']").fadeIn("slow");
});
});
});
});
}
Jest on odpowiedzialny za odświeżanie skryptu shoutboxa. I teraz problem. Po odświeżeniu, lub jakimkolwiek ruchu np. dodaniu wiadomości, css się resetuje do ustawień globalnych. Plik PHP odpowiedzialny za wyświetlanie shoutboxa to:
<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) 2002 - 2008 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: jquery_shoutbox_panel.php
| Author: bartek124
| E-Mail: bartek124@php-fusion.pl
| Web: http://bartek124.php-fusion.pl
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licenses/agpl.html. Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
if (!defined("IN_FUSION")) { die("Access Denied"); }
if (file_exists(INFUSIONS."jquery_shoutbox_panel/locale/".$settings['locale'].".php")) {
include INFUSIONS."jquery_shoutbox_panel/locale/".$settings['locale'].".php";
} else {
include INFUSIONS."jquery_shoutbox_panel/locale/English.php";
}
require_once INFUSIONS."jquery_shoutbox_panel/jquery_shoutbox_functions.php";
$link = FUSION_SELF.(FUSION_QUERY ? "?".FUSION_QUERY : "");
$link = preg_replace("^(&|\?)s_action=(edit|delete)&shout_id=\d*^", "", $link);
$sep = stristr($link, "?") ? "&" : "?";
if (iMEMBER && (isset($_GET['s_action']) && $_GET['s_action'] == "delete") && (isset($_GET['shout_id']) && isnum($_GET['shout_id']))) {
if ((iADMIN && checkrights("S")) || (iMEMBER && dbcount("(shout_id)", DB_SHOUTBOX, "shout_id='".$_GET['shout_id']."' AND shout_name='".$userdata['user_id']."'"))) {
$result = dbquery("DELETE FROM ".DB_SHOUTBOX." WHERE shout_id='".$_GET['shout_id']."'".(iADMIN ? "" : " AND shout_name='".$userdata['user_id']."'"));
}
redirect($link);
}
openshoutbox("Shoutbox");
?>
<script type="text/javascript" id="sourcecode">
$(function()
{
$('.con_shoutbox_container').jScrollPane();
});
</script>
<?php
echo "<div class='con_shoutbox_container'>\n";
if (iMEMBER || $settings['guestposts'] == "1") {
include_once INCLUDES."bbcode_include.php";
if (isset($_POST['post_shout'])) {
$flood = false;
if (iMEMBER) {
$shout_name = $userdata['user_id'];
} elseif ($settings['guestposts'] == "1") {
$shout_name = trim(stripinput($_POST['shout_name']));
$shout_name = preg_replace("(^[0-9]*)", "", $shout_name);
if (isnum($shout_name)) { $shout_name = ""; }
include_once INCLUDES."securimage/securimage.php";
$securimage = new Securimage();
if (!isset($_POST['sb_captcha_code']) || $securimage->check($_POST['sb_captcha_code']) == false) { redirect($link); }
}
$shout_message = str_replace("\n", " ", $_POST['shout_message']);
$shout_message = preg_replace("/^(.{255}).*$/", "$1", $shout_message);
$shout_message = trim(stripinput(censorwords($shout_message)));
if (iMEMBER && (isset($_GET['s_action']) && $_GET['s_action'] == "edit") && (isset($_GET['shout_id']) && isnum($_GET['shout_id']))) {
$comment_updated = false;
if ((iADMIN && checkrights("S")) || (iMEMBER && dbcount("(shout_id)", DB_SHOUTBOX, "shout_id='".$_GET['shout_id']."' AND shout_name='".$userdata['user_id']."'"))) {
if ($shout_message) {
$result = dbquery("UPDATE ".DB_SHOUTBOX." SET shout_message='$shout_message' WHERE shout_id='".$_GET['shout_id']."'".(iADMIN ? "" : " AND shout_name='".$userdata['user_id']."'"));
}
}
redirect($link);
} elseif ($shout_name && $shout_message) {
require_once INCLUDES."flood_include.php";
if (!flood_control("shout_datestamp", DB_SHOUTBOX, "shout_ip='".USER_IP."'")) {
$result = dbquery("INSERT INTO ".DB_SHOUTBOX." (shout_name, shout_message, shout_datestamp, shout_ip) VALUES ('$shout_name', '$shout_message', '".time()."', '".USER_IP."')");
}
}
redirect($link);
}
if (iMEMBER && (isset($_GET['s_action']) && $_GET['s_action'] == "edit") && (isset($_GET['shout_id']) && isnum($_GET['shout_id']))) {
$esresult = dbquery(
"SELECT ts.*, tu.user_id, tu.user_name FROM ".DB_SHOUTBOX." ts
LEFT JOIN ".DB_USERS." tu ON ts.shout_name=tu.user_id
WHERE ts.shout_id='".$_GET['shout_id']."'"
);
if (dbrows($esresult)) {
$esdata = dbarray($esresult);
if ((iADMIN && checkrights("S")) || (iMEMBER && $esdata['shout_name'] == $userdata['user_id'] && isset($esdata['user_name']))) {
if ((isset($_GET['s_action']) && $_GET['s_action'] == "edit") && (isset($_GET['shout_id']) && isnum($_GET['shout_id']))) {
$edit_url = $sep."s_action=edit&shout_id=".$esdata['shout_id'];
} else {
$edit_url = "";
}
$shout_link = $link.$edit_url;
$shout_message = $esdata['shout_message'];
}
} else {
$shout_link = $link;
$shout_message = "";
}
} else {
$shout_link = $link;
$shout_message = "";
}
add_to_head("<script type='text/javascript' charset='".$locale['charset']."'>\n".
"\tvar basedir = '".BASEDIR."';\n".
"\tvar imember = ".(iMEMBER ? "true" : "false").";\n".
"\tvar floodinterval = ".$settings['flood_interval'].";\n".
"\tvar locale = new Array();\n".
"\tlocale['global_076'] = '".$locale['global_076']."';\n".
"\tlocale['global_157'] = '".$locale['global_157']."';\n".
"\tlocale['jsp_002'] = '".$locale['jsp_002']."';\n".
"\tlocale['jsp_003'] = '".$locale['jsp_003']."';\n".
"\tlocale['jsp_004'] = '".$locale['jsp_004']."';\n".
"</script>\n
");
add_to_head("<script type='text/javascript' src='".INFUSIONS."jquery_shoutbox_panel/jquery_shoutbox.js' charset='".$locale['charset']."'></script>");
}
$numrows = dbcount("(shout_id)", DB_SHOUTBOX);
$result = dbquery(
"SELECT ts.*, tu.user_id, tu.user_name FROM ".DB_SHOUTBOX." ts
LEFT JOIN ".DB_USERS." tu ON ts.shout_name=tu.user_id
ORDER BY ts.shout_datestamp DESC LIMIT 0,".$settings['numofshouts']
);
echo "<div id='shout_messages' class='con_shoutbox_box'>";
if (dbrows($result)) {
$i = 0;
while ($data = dbarray($result)) {
echo "<div id='shout_".$data['shout_id']."'><div class='shoutboxname'>";
if ($data['user_name']) {
echo "<div class='con_shoutbox_avatar'><img src='".THEME."images/con_shoutbox_defaultavatar.png' align='left'></div><div class='con_shoutbox_top_1' id='shoutbox_user_name'><a href='".BASEDIR."profile.php?lookup=".$data['shout_name']."' class='con_shoutbox_top_link'>".$data['user_name']."</a> ".date("d.m.Y H:i", $data['shout_datestamp'])."</div>\n";
} else {
echo "<img src='".THEME."images/con_shoutbox_defaultavatar.png' align='left'>";
echo $data['shout_name']."\n";
}
echo "</div>\n";
echo "<div class='con_shoutbox_con'>".sbwrap(parseubb(parsesmileys($data['shout_message']), "b|i|u|url|color"))."</div>\n";
echo "<br />\n";
$i++;
if ($i != $numrows) { echo "<br />\n"; }
echo "</div>";
}
} else {
echo "<div>".$locale['global_156']."</div>\n";
}
echo "</div>";
if ($numrows > $settings['numofshouts']) {
echo "<br /><div style='text-align:center'>\n<a href='".INFUSIONS."jquery_shoutbox_panel/jquery_shoutbox_archive.php' class='side'>".$locale['global_155']."</a>\n</div>\n";
}
echo "</div></div>\n";
if(iMEMBER){
echo "<div class='con_shoutbox_footer' valign='bottom'>\n";
echo "<a id='edit_shout' name='edit_shout'></a>\n";
echo "<form name='shout_form' method='post' action='".$shout_link."'>\n";
echo "<input type='hidden' name='shout_name' value='".$userdata['user_id']."' />\n";
echo "<input type='hidden' name='sb_captcha_code' value='' />\n";
echo "<input type='hidden' name='edited_id' value='' />\n";
echo "<div style='float: left;'><textarea name='shout_message' class='con_shoutbox_textarea'>".$shout_message."</textarea></div>\n";
echo "<div style='float: right;margin-right: 23px;'><input type='submit' name='post_shout' value='Dodaj shouta' class='con_shoutbox_button' /></div> ";
echo "</form>\n";
echo "<div id='shout_preloader' style='display:none;text-align:center;'><img id='sshout_preloader' src='".INFUSIONS."jquery_shoutbox_panel/loading.gif' alt='' style='border:0;' /></div>\n";
} else{
echo "<br/><br/><div class='con_panel_con' style='margin: 0px 0px 0px 45px;'>".$locale['global_154']."</div><br />\n";
}
echo "</div>\n";
closeshoutbox();
?>
Widać jakie tam są klasy. Jakieś naprowadzenia?

Logowanie
Rejestracja
Pomoc

Cytuj