Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: Ajax šaukyklos imontavimas.

Parašė Mandello· 2010 Lap. 4 12:11:17
#1

Sveiki. Nežinau ar suprasit mane, bet turiu klausimą. Kaip reikėtų tvarkingai sukurti Ajax šaukyklą kurios kodas yra visiškai kitoks nei įprastai, kadangi naudojam unikalų dizainą kuriame yra unikali šaukykla. Man reikėtų, kad ji būtų AJAX. T.Y: Auto refreshinasi, kad nereikėtų perkraudinėti tinklapio.

Kodas:

<?php
/*-------------------------------------------------------+
| <span style="border-bottom: 1px dotted black;">PHP</span>-Fusion Content Management System
| Copyright (C) 2002 - 2010 Nick Jones
| <a href='http://www.php-fusion.co.uk/' target='_blank'><span style='color:005C5B'>http://www.php-fusion.co.uk/</span></a>
+--------------------------------------------------------+
| Filename: shoutbox_panel.php
| Author: Nick Jones (Digitanium)
+--------------------------------------------------------+
| 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 <a href='http://www.gnu.org/licenses/agpl.html.' target='_blank'><span style='color:005C5B'>www.gnu.org/licenses/agpl.html.</span></a> Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
if (!defined("IN_FUSION")) { die("Access Denied"); }
 
$link = FUSION_SELF.(FUSION_QUERY ? "?".FUSION_QUERY : "");
$link = preg_replace("^(&amp;|\?)s_action=(edit|delete)&amp;shout_id=\d*^", "", $link);
$sep = stristr($link, "?") ? "&amp;" : "?";
 
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);
}
 
function sbwrap($text) {
	global $locale;
 
	$i = 0; $tags = 0; $chars = 0; $res = "";
 
	$str_len = strlen($text);
 
	for ($i = 0; $i < $str_len; $i++) {
		$chr = mb_substr($text, $i, 1, $locale['charset']);
		if ($chr == "<") {
			if (mb_substr($text, ($i + 1), 6, $locale['charset']) == "a href" || mb_substr($text, ($i + 1), 3, $locale['charset']) == "img") {
				$chr = " ".$chr;
				$chars = 0;
			}
			$tags++;
		} elseif ($chr == "&") {
			if (mb_substr($text, ($i + 1), 5, $locale['charset']) == "quot;") {
				$chars = $chars - 5;
			} elseif (mb_substr($text, ($i + 1), 4, $locale['charset']) == "amp;" || mb_substr($text, ($i + 1), 4, $locale['charset']) == "#39;" || mb_substr($text, ($i + 1), 4, $locale['charset']) == "#92;") {
				$chars = $chars - 4;
			} elseif (mb_substr($text, ($i + 1), 3, $locale['charset']) == "lt;" || mb_substr($text, ($i + 1), 3, $locale['charset']) == "gt;") {
				$chars = $chars - 3;
			}
		} elseif ($chr == ">") {
			$tags--;
		} elseif ($chr == " ") {
			$chars = 0;
		} elseif (!$tags) {
			$chars++;
		}
 
		if (!$tags && $chars == 18) {
			$chr .= "<br />";
			$chars = 0;
		}
		$res .= $chr;
	}
 
	return $res;
}
 
shoutbox($locale['global_150']);
echo "<div>
	<div style='float: left;'><img src='".THEME."images/saukiamasis.png' class='toFix' style='padding: 5px;' /></div>
	<div class='archyvas'><a href='".INFUSIONS."shoutbox_panel/shoutbox_archive.php'>Šaukiamojo archyvas</a></div>
	<div class='clear'></div>	
</div>";
 
if (iMEMBER) {
	include_once INCLUDES."bbcode_include.php";
	if (isset($_POST['post_shout'])) {
		$flood = false;
		$shout_name = $userdata['user_id'];
		$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, shout_hidden) VALUES ('$shout_name', '$shout_message', '".time()."', '".USER_IP."', '0')");
			}
		}
		redirect($link);
	}
	if (iMEMBER && (isset($_GET['s_action']) && $_GET['s_action'] == "edit") && (isset($_GET['shout_id']) && isnum($_GET['shout_id']))) {
		$esresult = dbquery(
			"SELECT ts.shout_id, ts.shout_name, ts.shout_message, 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&amp;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 = "";
	}
 
} else {
	echo "<div style='text-align:center'>".$locale['global_154']."</div><br />\n";
}
$numrows = dbcount("(shout_id)", DB_SHOUTBOX, "shout_hidden='0'");
$result = dbquery(
	"SELECT ts.shout_id, ts.shout_name, ts.shout_message, ts.shout_datestamp, tu.user_id, tu.user_name, tu.user_avatar, tu.user_status
	FROM ".DB_SHOUTBOX." ts
	LEFT JOIN ".DB_USERS." tu ON ts.shout_name=tu.user_id
	WHERE shout_hidden='0'
	ORDER BY ts.shout_datestamp DESC LIMIT 0,4");
if (dbrows($result)) {
	$i = 0;
	while ($data = dbarray($result)) {
 
		if($data['user_avatar'] != '') {
			$avatar = IMAGES."avatars/".$data['user_avatar'];
		} else {
			$avatar = THEME."images/noavatar.gif";
		}
 
		if($i % 2 == 0) { $bg_spalva = "#93e016"; } else { $bg_spalva = "#63a202"; }
		echo "<div class='shoutbox-area' style='background: $bg_spalva;'>
			<div class='clear'></div>
			<div class='avatar-area'><img src='$avatar'/></div>
			<div class='shout-info'>".date("[Y-m-d, H:m]", $data['shout_datestamp'])." ".profile_link($data['shout_name'], $data['user_name'], $data['user_status'])."</div>
			<div class='shout-msg'>".sbwrap(parseubb(parsesmileys($data['shout_message']), "b|i|u|url|color"))."</div>
			<div class='clear'></div>
		</div>";
		$i++;
	}
} else {
	echo "<div>".$locale['global_156']."</div>\n";
}
 
if(iMEMBER) {
	echo "<a id='edit_shout' name='edit_shout'></a>\n";
	echo "<form name='shout_form' method='post' action='".$shout_link."'>\n";
	echo "<div style='margin-top: 10px;'>\n<input type='submit' name='post_shout' value='&nbsp;' class='saukti' />\n";
	echo "<textarea name='shout_message' rows='4' cols='20' class='saukti-bg'>".$shout_message."</textarea><br />\n";
	echo "</div>\n</form>\n<br />\n";
}
shoutbox_c();
?>