[MOD] Pomógł
|
slawekneo |
Dodany dnia 31.07.2006 21:20:18
|
Bywalec
Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
Witam
juz z tytulu mozna sie domyslic ze chodzi o punkty nadawane przez autora tematu za pomoc na forum :D (i niech mi nikt nie pisze ze mod jest zplagiatowany z extreme, bo pisalem go wlasnoorecznie!!)
Maly opis co bedzie robione:
A)stopien trudnosci << łatwy >>
B) bedziemy edytowac takie pliki jak:
1.viewthread.php
2.post.php
3.postify.php
C)bedziemy dodawac nowa pozycje w DB o nazwie "help"
D)dodamy nowy plik o nazwie "view_post_helping_user.php"
Mod jest do wersji 6.01.X (najnowsza) || (wszystkie zmiany w plikach zostaly zaznaczone pogrubieniem)
1)zabieramy sie za baze danych; wchodzimy w Panel admina/zarzadzanie strona/zarzadzanie panelami/dodaj nowy
2)w tresci wpisujemy ten kod
$result = dbquery("ALTER TABLE ".$db_prefix."posts ADD post_help SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0'");
$result2 = dbquery("ALTER TABLE ".$db_prefix."users ADD user_help_point SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0'");
[color=orange][b]$result3 = dbquery("ALTER TABLE ".$db_prefix."threads ADD thread_help1 SMALLINT(3) UNSIGNED NOT NULL DEFAULT '0'");[/b][/color]
if ($result) { echo"Pozycja post_help zostala dodana do tabeli posts w bazie danych"; }
if ($result2) { echo"Pozycja user_help_point zostala dodana do tabeli users w bazie danych"; }
[color=orange][b]if ($result3) { echo"Pozycja thread_help zostala dodana do tabeli threads w bazie danych"; }[/b][/color]
i wciskamy podglad jezeli pojawil sie ten napis tabele w bazie danych zaladowane!!! to oznacza iz baza zostala dodana i wszystko jest GIT; nie zapisujemy panelu tylko wychodzimy z PA
3)Zabieramy sie za edycje plikow, zacznijmy od najlatwiejszych czyli od post.php (wstawie caly kod pliku i zaznacze pogrubieniem zmiany w kodzie)<?php
/*---------------------------------------------------+
| PHP-Fusion 6 Content Management System
+----------------------------------------------------+
| Copyright © 2002 - 2006 Nick Jones
| http://www.php-fusion.co.uk/
+----------------------------------------------------+
| Released under the terms & conditions of v2 of the
| GNU General Public License. For details refer to
| the included gpl.txt file or visit http://gnu.org
+----------------------------------------------------*/
require_once "../maincore.php";
require_once BASEDIR."subheader.php";
require_once BASEDIR."side_left.php";
include LOCALE.LOCALESET."forum/post.php";
require_once INCLUDES."forum_functions_include.php";
if (!FUSION_QUERY || !isset($forum_id) || !isNum($forum_id)) fallback("index.php");
$result = dbquery(
"SELECT f.*, f2.forum_name AS forum_cat_name
FROM ".$db_prefix."forums f
LEFT JOIN ".$db_prefix."forums f2 ON f.forum_cat=f2.forum_id
WHERE f.forum_id='".$forum_id."'"
);
if (dbrows($result)) {
$fdata = dbarray($result);
if (!checkgroup($fdata['forum_access']) || !$fdata['forum_cat']) fallback("index.php");
} else {
fallback("index.php");
}
if (!checkgroup($fdata['forum_posting'])) fallback("index.php");
$forum_mods = explode(".", $fdata['forum_moderators']);
if (iMEMBER && in_array($userdata['user_id'], $forum_mods)) { define("iMOD", true); } else { define("iMOD", false); }
$caption = $fdata['forum_cat_name']." | ".$fdata['forum_name'];
if ($action == "newthread") {
include "postnewthread.php";
} elseif ($action == "reply") {
if (!isset($thread_id) || !isNum($thread_id)) fallback("index.php");
$result = dbquery("SELECT * FROM ".$db_prefix."threads WHERE thread_id='".$thread_id."' AND forum_id='".$fdata['forum_id']."'");
if (dbrows($result)) { $tdata = dbarray($result); } else { fallback("index.php"); }
if (!$tdata['thread_locked']) { include "postreply.php"; } else { fallback("index.php"); }
} elseif ($action == "edit") {
if (!isset($thread_id) || !isNum($thread_id) || !isset($post_id) || !isNum($post_id)) { fallback("index.php"); exit; }
$result = dbquery("SELECT * FROM ".$db_prefix."threads WHERE thread_id='".$thread_id."' AND forum_id='".$fdata['forum_id']."'");
if (dbrows($result)) { $tdata = dbarray($result); } else { fallback("index.php"); }
$result = dbquery("SELECT * FROM ".$db_prefix."posts WHERE post_id='".$post_id."' AND thread_id='".$tdata['thread_id']."' AND forum_id='".$fdata['forum_id']."'");
if (dbrows($result)) { $pdata = dbarray($result); } else { fallback("index.php"); }
if ($userdata['user_id'] != $pdata['post_author'] && !iMOD && !iSUPERADMIN) fallback("index.php");
if (!$tdata['thread_locked']) {
include "postedit.php";
} else {
if (iMOD || iSUPERADMIN) { include "postedit.php"; } else { fallback("index.php"); }
}
} [b]elseif ($action == "help") {
if (!isset($thread_id) || !isNum($thread_id) || !isset($post_id) || !isNum($post_id)) { fallback("index.php"); exit; }
$result = dbquery("SELECT * FROM ".$db_prefix."threads WHERE thread_id='".$thread_id."' AND forum_id='".$fdata['forum_id']."'");
if (dbrows($result)) { $tdata = dbarray($result); } else { fallback("index.php"); }
$result = dbquery("SELECT * FROM ".$db_prefix."posts WHERE post_id='".$post_id."' AND thread_id='".$tdata['thread_id']."' AND forum_id='".$fdata['forum_id']."'");
if (dbrows($result)) { $pdata = dbarray($result); } else { fallback("index.php"); }
[color=orange]if ($tdata['thread_author'] == $userdata['user_id'] && $tdata['thread_help'] < 2 && $data['post_author'] != $userdata['user_id'] && $data['post_help'] == 0) {[/color]
$result = dbquery("UPDATE ".$db_prefix."posts SET post_help=post_author WHERE post_id='".$post_id."' AND thread_id='".$tdata['thread_id']."' AND forum_id='".$fdata['forum_id']."' ");
$result = dbquery("UPDATE ".$db_prefix."users SET user_help_point=user_help_point+1 WHERE user_id=".$pdata['post_author']." ");
[color=orange]$result = dbquery("UPDATE ".$db_prefix."threads SET thread_help=thread_help+1 WHERE thread_id=".$tdata['thread_id']." ");[/color]
}
redirect("postify.php?post=help&error=$error&forum_id=$forum_id&thread_id=$thread_id&post_id=$post_id");
}[/b] else {
header("Location: index.php");
}
require_once BASEDIR."side_right.php";
require_once BASEDIR."footer.php";
?>
Zapisujemy i wychodzimy
4)teraz otwieramy plik "postify.php" (zmiany w kodzie jak powyzej podaje w pogrubieniu)
<?php
/*---------------------------------------------------+
| PHP-Fusion 6 Content Management System
+----------------------------------------------------+
| Copyright © 2002 - 2006 Nick Jones
| http://www.php-fusion.co.uk/
+----------------------------------------------------+
| Released under the terms & conditions of v2 of the
| GNU General Public License. For details refer to
| the included gpl.txt file or visit http://gnu.org
+----------------------------------------------------*/
require_once "../maincore.php";
require_once BASEDIR."subheader.php";
require_once BASEDIR."side_left.php";
include LOCALE.LOCALESET."forum/post.php";
if (!FUSION_QUERY || !isset($forum_id) || !isNum($forum_id)) fallback("index.php");
if ($error == 0) { $errorb = ""; }
else if ($error == 1) { $errorb = $locale['440a']; }
else if ($error == 2) { $errorb = $locale['440b']; }
else if ($error == 3) { $errorb = $locale['441']; }
else if ($error == 4) { $errorb = $locale['450']; }
if ($post == "on" || $post == "off") {
if (!isset($thread_id) || !isNum($thread_id)) fallback("index.php");
opentable($locale['451']);
echo "<center><br>\n";
if ($post == "on") {
$result = dbquery("INSERT INTO ".$db_prefix."thread_notify (thread_id, notify_datestamp, notify_user, notify_status) VALUES('$thread_id', '".time()."', '".$userdata['user_id']."', '1')");
echo $locale['452']."<br><br>\n";
} else {
$result = dbquery("DELETE FROM ".$db_prefix."thread_notify WHERE thread_id='$thread_id' AND notify_user='".$userdata['user_id']."'");
echo $locale['453']."<br><br>\n";
}
echo "<a href='viewthread.php?forum_id=$forum_id&thread_id=$thread_id'>".$locale['447']."</a> |
<a href='viewforum.php?forum_id=$forum_id'>".$locale['448']."</a> |
<a href='index.php'>".$locale['449']."</a><br><br>
</center>\n";
closetable();
} else if ($post == "new") {
opentable($locale['401']);
echo "<div align='center'>\n";
if ($errorb) {
echo "<br>$errorb<br><br>\n";
} else {
echo "<br>".$locale['442']."<br><br>\n";
}
if ($error < 3) {
if (!isset($thread_id) || !isNum($thread_id)) fallback("index.php");
echo "<a href='viewthread.php?forum_id=$forum_id&thread_id=$thread_id'>".$locale['447']."</a> |\n";
}
echo "<a href='viewforum.php?forum_id=$forum_id'>".$locale['448']."</a> |
<a href='index.php'>".$locale['449']."</a><br><br></div>\n";
closetable();
} else if ($post == "reply") {
if (!isset($thread_id) || !isNum($thread_id)) fallback("index.php");
opentable($locale['403']);
echo "<center><br>\n";
if ($errorb) {
echo "$errorb<br><br>\n";
} else {
echo $locale['443']."<br><br>\n";
}
if ($error < "2") {
if (!isset($post_id) || !isNum($post_id)) fallback("index.php");
if ($settings['thread_notify']) {
$result = dbquery(
"SELECT tn.*, tu.user_id,user_name,user_email FROM ".$db_prefix."thread_notify tn
LEFT JOIN ".$db_prefix."users tu ON tn.notify_user=tu.user_id
WHERE thread_id='$thread_id' AND notify_user!='".$userdata['user_id']."' AND notify_status='1'
");
if (dbrows($result)) {
require_once INCLUDES."sendmail_include.php";
$data2 = dbarray(dbquery("SELECT thread_subject FROM ".$db_prefix."threads WHERE thread_id='$thread_id'"));
$link = $settings['siteurl']."forum/viewthread.php?forum_id=$forum_id&thread_id=$thread_id&pid=$post_id#post_$post_id";
while ($data = dbarray($result)) {
$message_el1 = array("{USERNAME}", "{THREAD_SUBJECT}", "{THREAD_URL}");
$message_el2 = array($data['user_name'], $data2['thread_subject'], $link);
$message_subject = str_replace("{THREAD_SUBJECT}", $data2['thread_subject'], $locale['550']);
$message_content = str_replace($message_el1, $message_el2, $locale['551']);
sendemail($data['user_name'],$data['user_email'],$settings['siteusername'],$settings['siteemail'],$message_subject,$message_content);
}
$result = dbquery("UPDATE ".$db_prefix."thread_notify SET notify_status='0' WHERE thread_id='$thread_id' AND notify_user!='".$userdata['user_id']."'");
}
}
echo "<a href='viewthread.php?forum_id=$forum_id&thread_id=$thread_id&pid=$post_id#post_$post_id'>".$locale['447']."</a> |\n";
} else {
$data = dbarray(dbquery("SELECT post_id FROM ".$db_prefix."posts WHERE thread_id='".$data['thread_id']."' ORDER BY post_id DESC"));
echo "<a href='viewthread.php?forum_id=$forum_id&thread_id=$thread_id&pid=".$data['post_id']."#post_".$data['post_id']."'>".$locale['447']."</a> |\n";
}
echo "<a href='viewforum.php?forum_id=$forum_id'>".$locale['448']."</a> |
<a href='index.php'>".$locale['449']."</a><br><br>
</center>\n";
closetable();
} else if ($post == "edit") {
if (!isset($thread_id) || !isNum($thread_id)) fallback("index.php");
opentable($locale['409']);
echo "<center><br>\n";
if ($errorb) {
echo "$errorb<br><br>\n";
} else {
echo $locale['446']."<br><br>\n";
}
echo "<a href='viewthread.php?forum_id=$forum_id&thread_id=$thread_id&pid=$post_id#post_$post_id'>".$locale['447']."</a> |
<a href='viewforum.php?forum_id=$forum_id'>".$locale['448']."</a> |
<a href='index.php'>".$locale['449']."</a><br><br>
</center>\n";
closetable();
} [b]else if ($post == "help") {
if (!isset($thread_id) || !isNum($thread_id)) fallback("index.php");
opentable($locale['409']);
echo "<center><br>\n";
echo" Dodano 1punkt za pomoc<br><br>\n";
echo "<a href='viewthread.php?forum_id=$forum_id&thread_id=$thread_id&pid=$post_id#post_$post_id'>".$locale['447']."</a> |
<a href='viewforum.php?forum_id=$forum_id'>".$locale['448']."</a> |
<a href='index.php'>".$locale['449']."</a><br><br>
</center>\n";
closetable();
}[/b]
require_once BASEDIR."side_right.php";
require_once BASEDIR."footer.php";
?>
Zapisujemy i wychodzimy!
5) i ostatni plik "viewthread.php" (zmiany w kodzie zaznaczone pogrubieniem)
<?php
/*---------------------------------------------------+
| PHP-Fusion 6 Content Management System
+----------------------------------------------------+
| Copyright © 2002 - 2006 Nick Jones
| http://www.php-fusion.co.uk/
+----------------------------------------------------+
| Released under the terms & conditions of v2 of the
| GNU General Public License. For details refer to
| the included gpl.txt file or visit http://gnu.org
+----------------------------------------------------*/
require_once "../maincore.php";
require_once INCLUDES."forum_functions_include.php";
require_once BASEDIR."subheader.php";
require_once BASEDIR."side_left.php";
include LOCALE.LOCALESET."forum/main.php";
$posts_per_page = 20;
if (!FUSION_QUERY || !isset($forum_id) || !isNum($forum_id) || !isset($thread_id) || !isNum($thread_id)) fallback("index.php");
$result = dbquery(
"SELECT f.*, f2.forum_name AS forum_cat_name
FROM ".$db_prefix."forums f
LEFT JOIN ".$db_prefix."forums f2 ON f.forum_cat=f2.forum_id
WHERE f.forum_id='".$forum_id."'"
);
if (dbrows($result)) {
$fdata = dbarray($result);
if (!checkgroup($fdata['forum_access']) || !$fdata['forum_cat']) fallback("index.php");
} else {
fallback("index.php");
}
$can_post = checkgroup($fdata['forum_posting']);
$forum_mods = explode(".", $fdata['forum_moderators']);
if (iMEMBER && in_array($userdata['user_id'], $forum_mods)) { define("iMOD", true); } else { define("iMOD", false); }
$result = dbquery("SELECT * FROM ".$db_prefix."threads WHERE thread_id='".$thread_id."' AND forum_id='".$fdata['forum_id']."'");
if (dbrows($result)) { $tdata = dbarray($result); } else { fallback("index.php"); }
$caption = $fdata['forum_cat_name']." | <a href='viewforum.php?forum_id=".$fdata['forum_id']."'>".$fdata['forum_name']."</a>";
$result = dbquery("UPDATE ".$db_prefix."threads SET thread_views=thread_views+1 WHERE thread_id='$thread_id'");
if (iMEMBER && $can_post && isset($_POST['postquickreply'])) {
$flood = false;
$message = stripinput(censorwords($_POST['message']));
if ($message != "") {
$result = dbquery("SELECT MAX(post_datestamp) AS last_post FROM ".$db_prefix."posts WHERE post_author='".$userdata['user_id']."'");
if (dbrows($result) > 0) {
$data = dbarray($result);
if ((time() - $data['last_post']) < $settings['flood_interval']) {
$flood = true;
$result = dbquery("INSERT INTO ".$db_prefix."flood_control (flood_ip, flood_timestamp) VALUES ('".USER_IP."', '".time()."')");
if (dbcount("(flood_ip)", "flood_control", "flood_ip='".USER_IP."'") > 4) {
$result = dbquery("UPDATE ".$db_prefix."users SET user_status='1' WHERE user_id='".$userdata['user_id']."'");
}
fallback("viewforum.php?forum_id=$forum_id");
}
}
if (!$flood) {
$sig = ($userdata['user_sig'] ? '1' :'0');
$smileys = isset($_POST['disable_smileys']) ? "0" : "1";
$subject = "RE: ".$tdata['thread_subject'];
$result = dbquery("UPDATE ".$db_prefix."forums SET forum_lastpost='".time()."', forum_lastuser='".$userdata['user_id']."' WHERE forum_id='$forum_id'");
$result = dbquery("UPDATE ".$db_prefix."threads SET thread_lastpost='".time()."', thread_lastuser='".$userdata['user_id']."' WHERE thread_id='$thread_id'");
$result = dbquery("INSERT INTO ".$db_prefix."posts (forum_id, thread_id, post_subject, post_message, post_showsig, post_smileys, post_author, post_datestamp, post_ip, post_edituser, post_edittime) VALUES ('$forum_id', '$thread_id', '$subject', '$message', '$sig', '$smileys', '".$userdata['user_id']."', '".time()."', '".USER_IP."', '0', '0')");
$newpost_id = mysql_insert_id();
$result = dbquery("UPDATE ".$db_prefix."users SET user_posts=user_posts+1 WHERE user_id='".$userdata['user_id']."'");
redirect("postify.php?post=reply&error=0&forum_id=$forum_id&thread_id=$thread_id&post_id=$newpost_id");
}
}
}
opentable($locale['500']);
echo "<table cellpadding='0' cellspacing='0' width='100%'>
<tr>
<td class='smallalt'><a href='index.php'>".$settings['sitename']."</a> | $caption</td>\n";
if (iMEMBER && $can_post) {
echo "<td align='right'>\n";
if (!$tdata['thread_locked']) {
echo "<a href='post.php?action=reply&forum_id=$forum_id&thread_id=$thread_id'><img src='".THEME."forum/reply.gif' alt='".$locale['565']."' style='border:0px;'></a>\n";
}
echo "<a href='post.php?action=newthread&forum_id=$forum_id'><img src='".THEME."forum/newthread.gif' alt='".$locale['566']."' style='border:0px;'></a></td>\n";
}
echo "</tr>
</table>\n";
$rows = dbcount("(thread_id)", "posts", "thread_id='$thread_id'");
if (isset($pid) && isNum($pid)) {
$reply_count = dbcount("(post_id)", "posts", "thread_id='".$tdata['thread_id']."' AND post_id<='".$pid."'");
if ($reply_count > $posts_per_page) $rowstart = ((ceil($reply_count / $posts_per_page)-1)*$posts_per_page);
}
if (!isset($rowstart) || !isNum($rowstart)) $rowstart = 0;
if ($rows > $posts_per_page) {
echo "<div align='center' style='margin-top:5px;margin-bottom:5px;'>
".makePageNav($rowstart,$posts_per_page,$rows,3,FUSION_SELF."?forum_id=$forum_id&thread_id=$thread_id&")."
</div>\n";
}
echo "<table cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>\n";
if ($rows != 0) {
$result = dbquery(
"SELECT p.*, fa.attach_id, fa.attach_name, fa.attach_ext, fa.attach_size, u.*, u2.user_name AS edit_name FROM ".$db_prefix."posts p
LEFT JOIN ".$db_prefix."forum_attachments fa USING(post_id)
LEFT JOIN ".$db_prefix."users u ON p.post_author = u.user_id
LEFT JOIN ".$db_prefix."users u2 ON p.post_edituser = u2.user_id AND post_edituser > '0'
WHERE p.thread_id='$thread_id' ORDER BY post_datestamp LIMIT $rowstart,$posts_per_page"
);
$numrows = dbrows($result);
while ($data = dbarray($result)) {
$message = $data['post_message'];
if ($data['post_showsig']) { $message = $message."\n\n<hr>".$data['user_sig']; }
if ($data['post_smileys']) { $message = parsesmileys($message); }
$message = parseubb($message);
$message = nl2br($message);
if ($data['post_edittime'] != "0") {
$edituser = "<a href='../profile.php?lookup=".$data['post_edituser']."'>".$data['edit_name']."</a>";
$edittime = showdate("forumdate", $data['post_edittime']);
}
$is_mod = in_array($data['user_id'], $forum_mods) && $data['user_level'] < "102" ? true : false;
echo "<tr>
<td width='145' class='tbl2'>".$locale['501']."</td>
<td class='tbl2'><a name='post_".$data['post_id']."' id='post_".$data['post_id']."'></a>".$data['post_subject']."</td>
</tr>
<tr>
<td valign='top' rowspan='3' width='145' class='tbl1'>
<a href='../profile.php?lookup=".$data['user_id']."'>".$data['user_name']."</a><br>
<span class='alt'>".($is_mod ? $locale['userf1'] : getuserlevel($data['user_level']))."</span><br><br>\n";
if ($data['user_avatar'] != "") {
echo "<img src='".IMAGES."avatars/".$data['user_avatar']."' alt='".$locale['567']."'><br><br>\n";
$height = "185";
} else {
$height = "70";
}
echo "<span class='alt'>".$locale['502']."</span> ".$data['user_posts']."<br>\n";
if ($data['user_location']) echo "<span class='alt'>".$locale['503']."</span> ".$data['user_location']."<br>\n";
[b]echo "<b><a href='view_post_helping_user.php?action=view_help&user_id=".$data['user_id']."'>Pomógł:</a></b> ".$data['user_help_point']." ";[/b]
echo "<span class='alt'>".$locale['504']."</span> ".showdate("%d.%m.%y", $data['user_joined'])."[b]<br><br><b>";
if ($data['post_help'] != 0) {
echo"<span style='font-size:9'><center>Ten post został uznany za pomocny przez autora tematu</center></span>";
}
echo"</b></td>[/b]
<td>
<table cellspacing='0' cellpadding='0' width='100%'>
<tr>
<td class='tbl1'>".$locale['505'].showdate("forumdate", $data['post_datestamp'])."</td>
<td align='right' class='tbl1'>\n";
if (iMEMBER && $can_post) {
if (!$tdata['thread_locked']) {
[b][color=orange]if ($tdata['thread_author'] == $userdata['user_id'] && $tdata['thread_help'] < 2 && $data['post_author'] != $userdata['user_id'] && $data['post_help'] == 0) {[/color]
echo "<a href='post.php?action=help&forum_id=$forum_id&thread_id=".$data['thread_id']."&post_id=".$data['post_id']."'><b>Pomógł mi</b></a>";
}[/b]
if ($userdata['user_id'] == $data['post_author'] || iMOD || iSUPERADMIN) {
echo "<a href='post.php?action=edit&forum_id=$forum_id&thread_id=".$data['thread_id']."&post_id=".$data['post_id']."'><img src='".THEME."forum/edit.gif' alt='".$locale['568']."' style='border:0px;'></a>\n";
}
echo "<a href='post.php?action=reply&forum_id=$forum_id&thread_id=".$data['thread_id']."&post_id=".$data['post_id'].""e=".$data['post_id']."'><img src='".THEME."forum/quote.gif' alt='".$locale['569']."' style='border:0px;'></a>\n";
if (iMOD || iSUPERADMIN && $data['post_ip'] != "0.0.0.0" && file_exists(THEME."forum/ip.gif")) echo "<img src='".THEME."forum/ip.gif' alt='".$locale['570']."' title='".$data['post_ip']."' style='border:0px;'>\n";
} else {
if (iMOD || iSUPERADMIN) {
echo "<a href='post.php?action=edit&forum_id=$forum_id&thread_id=".$data['thread_id']."&post_id=".$data['post_id']."'><img src='".THEME."forum/edit.gif' alt='".$locale['568']."' style='border:0px;'></a>\n";
if ($data['post_ip'] != "0.0.0.0" && file_exists(THEME."forum/ip.gif")) echo "<img src='".THEME."forum/ip.gif' alt='".$locale['570']."' title='".$data['post_ip']."' style='border:0px;'>\n";
}
}
}
DALSZA CZESC KODU........
Zapisujemy i wychodzimy
teraz tworzymy nowy plik o nazwie "view_post_helping_user.php"
wklejamy tam ten kod
[b]<?php
/*---------------------------------------------------+
| PHP-Fusion 6 Content Management System
+----------------------------------------------------+
| Copyright © 2002 - 2006 Nick Jones
| http://www.php-fusion.co.uk/
+----------------------------------------------------+
| Released under the terms & conditions of v2 of the
| GNU General Public License. For details refer to
| the included gpl.txt file or visit http://gnu.org
+----------------------------------------------------*/
require_once "../maincore.php";
require_once BASEDIR."subheader.php";
require_once BASEDIR."side_left.php";
include LOCALE.LOCALESET."forum/main.php";
if ($action == "view_help") {
if (!isset($user_id) || !isNum($user_id)) fallback("index.php");
$result2 = dbquery("SELECT * FROM ".$db_prefix."users WHERE user_id=".$user_id."");
$result = dbquery("SELECT * FROM ".$db_prefix."posts WHERE post_help='".$user_id."' ORDER BY post_help AND post_datestamp");
$udata = dbarray($result2);
opentable("Wykaz postów uzytkownika - ".$udata['user_name']." - które otrzymały punkt za pomoc");
if (dbrows($result)) {
while ($pdata = dbarray($result)) {
echo"<table cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>
<tr>
<td width='145' class='tbl2'>
Autor:
</td>
<td class='tbl2'>
".$pdata['post_subject']."
</td>
</tr>
<tr>
<td class='tbl1' valign='top'>
<span class='alt'><a href='../profile.php?lookup=".$udata['user_id']."'>".$udata['user_name']."</a></span> <br>
<span class='alt'>".($is_mod ? $locale['userf1'] : getuserlevel($udata['user_level']))."
</span><br>";
if ($udata['user_avatar'] != "") {
echo " <img src='".IMAGES."avatars/".$udata['user_avatar']."' alt=''> <br>\n";
$height = "105";
} else {
$height = "70";
}
echo" <span class='alt'>".$locale['502']."</span> ".$udata['user_posts']."<br>";
if ($udata['user_location']) echo "<span class='alt'>".$locale['503']."</span> ".$udata['user_location']."<br>";
echo" <span class='alt'><b>Pomógł:</b></span> ".$udata['user_help_point']." <br>
<span class='alt'>zarejestrowany</span> ".showdate("%d.%m.%y", $udata['user_joined'])."
</td>
<td class='tbl1' valign='top'>
<table cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>
<tr>
<td class='tbl1'>
<span class='alt'>".$locale['505'].showdate("%d.%m.%y - %H:%M", $pdata['post_datestamp'])."</span>
</td>
</tr>
<tr>
<;td class='tbl1' valign='top' height='$height'>";
$mesage = parseubb($pdata['post_message']);
$mesage = nl2br($mesage);
if ($pdata['post_smileys'] == 1) {
$mesage = parsesmileys($pdata['post_message']);
}
echo $mesage;
echo"</td>
</tr>
<tr>
<td class='tbl1'>";
if ($udata['user_aim'] && file_exists(THEME."forum/aim.gif")) {
echo "<a href=';aim:goim?screenname=".str_replace(" ", "+", $udata['user_aim'])."' target='_blank'><img src='".THEME."forum/aim.gif' alt='".$udata['user_aim']."' style='border:0px;'></a> ";
}
if ($udata['user_icq']) {
echo "<a href='http://web.icq.com/wwp?Uin=".$udata['user_icq']."' target='_blank'><img src='".THEME."forum/icq.gif' alt='".$udata['user_icq']."' style='border:0px;'></a> ";
}
if ($udata['user_msn']) {
echo "<a href='mailto:$udata[user_msn]'><img src='".THEME."forum/msn.gif' alt='".$udata['user_msn']."' style='border:0px;'></a> ";
}
if ($udata['user_yahoo']) {
echo "<a href='http://uk.profiles.yahoo.com/$udata[user_yahoo]' target='_blank'><img src='".THEME."forum/yahoo.gif' alt='".$udata['user_yahoo']."' style='border:0px;'></a> ";
}
if ($udata['user_web']) {
if (!strstr($udata['user_web'], "http://")) { $urlprefix = "http://"; } else { $urlprefix = ""; }
echo "<a href='".$urlprefix."".$udata['user_web']."' target='_blank'><img src='".THEME."forum/web.gif' alt='".$udata['user_web']."' style='border:0px;'></a> ";
}
echo "<a href='".BASEDIR."messages.php?msg_send=".$udata['user_id']."'><img src='".THEME."forum/pm.gif' alt='".$locale['571']."' style='border:0px;'></a>
</td>
</tr>
</table>
</td>
</tr>
</table> <br>";
}
}
else { fallback("index.php"); }
closetable();
}
require_once BASEDIR."side_right.php";
require_once BASEDIR."footer.php";
?>[/b]
zapisujemy i wychodzimy
ZAKTUALIZOWANE
i to tyle :D
Pozdro!!
Edytowane przez slawekneo dnia 15.11.2007 22:36:34
|
|
|
|
Wścibski Gość |
Dodany dnia 22.11.2024 02:23:37
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
IP: localhost |
|
|
Pieka |
Dodany dnia 31.07.2006 22:37:06
|
Postów: 19882 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
Brawo Slawku!!
Jestem jaki jestem
|
|
|
|
slawekneo |
Dodany dnia 31.07.2006 23:35:11
|
Bywalec
Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
@Pieka -
he zapomnialem jak zawsze o locale i dodac pare cennych informacji :
-punkty moze dodawac jedynie osoba, ktora zalozyla temat (i sama sobie nie moze dodac pkt )
-kazdy pkt w poszczegolnym poscie jest dodawany jednorazowo!!
i to chyba tyle
Ps. jak bede mial czas wrzuce locale i dodam opcje "gdy user otrzymal juz w danym temacie pkt, to blokuje mozliwosc dodania mu pkt w nastepnym poscie tego samego tematu" (zamieszane ale najwazniejsze ze ja wiem co mam zrobic)
Edytowane przez slawekneo dnia 31.07.2006 23:39:12
|
|
|
|
Grzes |
Dodany dnia 01.08.2006 00:05:23
|
Zaawansowany
Postów: 1656 Pomógł: 42
Data rejestracji: 28.04.2005 20:28
|
Super to wygląda tylko jeśli pozwolisz to mam pytanko. Oczywiście link "pomógł" wyświetli się tylko wybranej osobie i przy odpowiednich postach a co jeśli prosto w przeglądarkę użytkownik klepie np.:
post.php?action=help&forum_id=XX&thread_id=YY&post_id=ZZ
wydaje mi się, że w ten sposób uparty userek byłby w stanie naklepać punktów tyle ile postów sobie upatrzy różnym userkom.
Sorka jeśli się mylę.
Często najmądrzejszą odpowiedzią jest milczenie
|
|
|
|
slawekneo |
Dodany dnia 01.08.2006 00:12:02
|
Bywalec
Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
Grzes napisał:
wydaje mi się, że w ten sposób uparty userek byłby w stanie naklepać punktów tyle ile postów sobie upatrzy różnym userkom.
Sorka jeśli się mylę.
jezeli wpisze adres ktory podawales to i tak sobie nie doda tylko autorowi postu ale tak niebedzie bo jest postawiony warunek ze po pierwsze dodac moze tylko autor calego tematu, a on sam nie moze sobie dodac pkt dodatkowo kazdy post moze miec jednorazowo dodany pkt
Pozdro!!
Edytowane przez slawekneo dnia 01.08.2006 00:27:00
|
|
|
|
Grzes |
Dodany dnia 01.08.2006 00:27:42
|
Zaawansowany
Postów: 1656 Pomógł: 42
Data rejestracji: 28.04.2005 20:28
|
Zrobiłem tak. Napisałem temat, odpowiedziałem sobie sam, wklepałem linka i id mojego userka znalazł się w tym dodatkowym polu przy mojej odpowiedzi
edit:
z innego userka efekt jest podobny, w polu ląduje id autora tematu albo id autora samego posta (tego nie jestem pewny bo to ten sam id w tym przypadku).
Edytowane przez Grzes dnia 01.08.2006 00:29:24
Często najmądrzejszą odpowiedzią jest milczenie
|
|
|
|
slawekneo |
Dodany dnia 01.08.2006 00:32:20
|
Bywalec
Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
nie rozumiem Twojej wypowiedzi
ale sam sobie odpowiedziales ze swojego konta czy jakiegos testowego |
|
|
|
Grzes |
Dodany dnia 01.08.2006 00:37:19
|
Zaawansowany
Postów: 1656 Pomógł: 42
Data rejestracji: 28.04.2005 20:28
|
Mam dwóch userków na stronie. Pan A napisał temat i sam sobie odpowiedział. Będąc zalogowany jako pan A wklepałem linka dla posta-odpowiedzi i id userka wylądował w tym dodatkowym polu.
Teraz wyczyściłem to pole (z phpmyadmina ręcznie). Zalogowałem się jako pan B i powtórzyłem to samo z linkiem. Efekt ten sam. Czyli mogę niebędąc osobą która napisała temat przyznać punkty innej osobie (osobie która załozyła temat - niewiem jak to jest jeśli pan A napisze temat, pan B odpisze a pan C spróbuje dać punkta)
W post.php spróbuj przed przyznaniem punktu sprawdzić czy osoba przydzielająca go to osoba, która napisała pierwszego posta w temacie.
Edytowane przez Grzes dnia 01.08.2006 00:38:40
Często najmądrzejszą odpowiedzią jest milczenie
|
|
|
|
wlodekp |
Dodany dnia 01.08.2006 00:40:14
|
Weteran
Postów: 3101 Pomógł: 29
Data rejestracji: 21.05.2005 22:27
|
Uważam, że taki mod jest zasadny. Pytanie czy Suport ma chęć-to mało go wprowadzić. Bo moim zdaniem ma tylko rację bytu na tego typu forach. A strona techniczna-blokad, jest do zrobienia, właśnie po tego typu dyskusjach i wymianach spojrzeń. Więc Suporcie-jak(bo ten temat-pojawiał się już parę razy) Bez takiego celu-ja nie widzę motywacji dla siebie uczestnictwa nawet w dyskusji.
Edytowane przez wlodekp dnia 01.08.2006 07:13:32
|
|
|
|
slawekneo |
Dodany dnia 01.08.2006 01:32:16
|
Bywalec
Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
Grzes napisał:
W post.php spróbuj przed przyznaniem punktu sprawdzić czy osoba przydzielająca go to osoba, która napisała pierwszego posta w temacie.
dodalem u siebie ten sam warunek co w pliku viewthread.php czyli if ($tdata['thread_author'] == $userdata['user_id'] && $data['post_author'] != $userdata['user_id'] && $data['post_help'] == 0) {
} wszystko jest Git dzieki za znalezienie "babola" :D zaktualizuje caly kod jutro bo teraz ide w kime :D
@wlodekp - fakt mod jest typowo dla serwisow specjalizujacych sie w pomocy innym ale jesli mod nie dotyczy Twojego typu serwisu to nieoznacza ze musisz go "olewac" :P |
|
|
|
m_i_n |
Dodany dnia 01.08.2006 09:10:28
|
Bywalec
Postów: 836 Pomógł: 3
Data rejestracji: 15.02.2006 10:04
|
No to pierwszy exploit zalatany hehe.
A ogolem to bardzo dobra modyfikacja. Sam nie uzyje ale podoba mi sie to.
|
|
|
|
slawekneo |
Dodany dnia 01.08.2006 11:15:06
|
Bywalec
Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
MOD zaktualizowalem teraz jezeli ktos niepozadany wklepie link to wywali go do indexu glownego forum |
|
|
|
Pieka |
Dodany dnia 01.08.2006 11:37:49
|
Postów: 19882 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
slawekneo napisał/a:
MOD zaktualizowalem teraz jezeli ktos niepozadany wklepie link to wywali go do indexu glownego forum
Z finalna wersja zapraszam do Laboratorium
Sceeny oraz, co oczywiste opis mile widziane
Jestem jaki jestem
|
|
|
|
Grzes |
Dodany dnia 01.08.2006 11:40:43
|
Zaawansowany
Postów: 1656 Pomógł: 42
Data rejestracji: 28.04.2005 20:28
|
Niepowiem, że nie skorzystam
Coś podobnego kiedyś już było zrobione (As twierdzi, że ma to odemnie ) tylko, że przyznawało się punkty a posty z tego co widze nie były oznaczane. To Twoje mi się wydaje lepsze bo widać, który post był pomocny.
Jeszcze jak pozwolisz mam propozycję. Przy wyswietlaniu każdego posta za pomocą dbcount zliczasz liczbę punktów userka. Może by tak do tabeli users dodać pole help_count i przy przydzielaniu punktu tylko ++ przez co przy wyświetlaniu tematu wyświetliłoby się tylko tą liczbę.
Druga strona medalu. W tej chwili jeśli moderator usunie posta userkowi znika punkt. Przy zliczaniu punktów oddzielnie liczba ta nie ulegnie zmianie podczas czyszczenia forum ze starych śmieci.
Co o tym myślisz?
Często najmądrzejszą odpowiedzią jest milczenie
|
|
|
|
slawekneo |
Dodany dnia 01.08.2006 14:59:10
|
Bywalec
Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
he widze ze mocno zainteresowal Cie ten mod ;)
mysle ze mozna zrobic dodatkowe zapytanie$result = dbquery("UPDATE ".$db_prefix."users SET user_help_point=user_help_point+1 WHERE user_id=".$pdata['post_author']." ");
i po tym juz pkt za pomoc nigdy nie znikna :D
@Pieka - oczywiscie ze finalna wersje dodam do labu i opisze "łopatologicznie"
EDIT - tak wiec zrobilem to o czym pisal @grzes czyli przy dodaniu pkt mod nie tylko dodaje pkt przy poscie ale i w tabeli users/user_help_point w taki oto sposob po usunieci danego postu(z zapisanym pkt dla "jakiegos" usera) nie odejmie nam ogolnego stanu pkt w pomocy. MOD ZAKTUALIZOWANY w pierwszym poscie |
|
|
|
Grzes |
Dodany dnia 01.08.2006 22:46:33
|
Zaawansowany
Postów: 1656 Pomógł: 42
Data rejestracji: 28.04.2005 20:28
|
Jeszcze jeden mały bajerek :P
W tej postaci modzik pokazuje tylko punkty przy każdym z userków. Może by tak oznaczyć post jako pomocny? Może się to okazać przydatne osobom szukającym odpowiedzi w temacie w którym jest dobrych kilkanaście postów.
Myślałem nad najzwyklejszym pokolorowaniem całej przestrzeni jaką zajmuje post ale z takim modziku przydałoby się uniwersjalne rozwiązanie. Nie każdemu powiedzmy kolor żółty by odpowiadał :P (choć nie wszyscy będą go instalować a większość powinna dać sobie rade z zmianą kolorku)
Sama komórka w tabeli jest jakoś tak stworzona:
<td valign='top' height='$height' class='tbl1'>
pomyślałem o tym:
<td valign='top' height='$height' class='".($data['post_help'] != 0 ? "tbl2" : "tbl1")."'>
ale z drugiej strony nie w każdym themie który dorwałem to daje przyzwoity efekt (w niektórych deklaracje tbl1 i tbl2 są takie same).
Pozatym myślałem jeszcze o jakiejś możliwości usunięcia "pomógł" z danego posta. Teoretycznie może się zdażyć sytuacja, że ktoś przez przypadek oznaczy nie tego posta albo złośliwie oznaczy wszystkie.
EDIT:
i niech mi nikt nie pisze ze mod jest zplagiatowany z extreme, bo pisalem go wlasnoorecznie!!
a co ktoś tak powiedział? daj mi go a mu kark skręce :@
Sam to mam zamiar na extreme zastosować :P tzn pewien czas temu miało takie coś być zastosowane ale jakoś nie doszliśmy do tego a teraz Ty mi spadłeś z nieba :)
Edytowane przez Grzes dnia 01.08.2006 22:58:06
Często najmądrzejszą odpowiedzią jest milczenie
|
|
|
|
slawekneo |
Dodany dnia 01.08.2006 23:00:26
|
Bywalec
Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
he zadbalem i o "to" zrobilem dodatkowo po nacisnieciu linka (np. pomogl:4 jest tym linkiem) i po wejsciu pokazuje on wszystkie posty usera ktore byly pomocne zaraz dodam screena TEGO JESZCZE NIE ZAKTUALIZOWALEM
Edytowane przez slawekneo dnia 01.08.2006 23:14:11
|
|
|
|
Pieka |
Dodany dnia 02.08.2006 00:19:35
|
Postów: 19882 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
Pare postow wyzej @wlodekp pytal, czy zainstalujemy na Supporcie?
Tak, mysle, ze tak, ale musi to byc na 100% sprawne i w pelni funkcjonalne
Jestem jaki jestem
|
|
|
|
slawekneo |
Dodany dnia 02.08.2006 00:53:41
|
Bywalec
Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
Pieka napisał/a:
Pare postow wyzej @ wlodekp pytal, czy zainstalujemy na Supporcie?
Tak, mysle, ze tak, ale musi to byc na 100% sprawne i w pelni funkcjonalne
he no to niestety pare dni potrwa dodawanie funkcjonalnosci modu (mam jeszcze 3 pomysly do zrealizowania odnosnie tego modu + pomysl uzytkownika @grzes)
Ps. "niezmiernię się cieszę" |
|
|
|
wlodekp |
Dodany dnia 02.08.2006 01:20:25
|
Weteran
Postów: 3101 Pomógł: 29
Data rejestracji: 21.05.2005 22:27
|
Ja też się cieszę z deklaracji Pieki , gotów jestem w każdej chwili potestować u siebie-zasymulować Wasze propozycje. Pieka do pełni szczęścia widziałbym własny Supportowy system rang?
PO EDYCJI
"Bo Polacy nie gęsi" i Swój Support-najlepszy mają.
Edytowane przez wlodekp dnia 02.08.2006 08:18:47
|
|
|