PDA

View Full Version : [RELEASE]Quick Reply(HACKLESS VERSION)


Herman
01-07-2003, 09:18 PM
Template Quick Reply! v1.1
By - Shift
Original Hack by - FireFly(Chen)

First go to [b]AdminCP-> Templates -> phpInclude->

Add this to the bottom of your template:


//Sticky/Close
if (strpos($_SERVER['PHP_SELF'], 'newreply.php') != false)
{
// These numbers are usergroupids for usergroups that will always
// have permission to close/stick the thread, regardless of what
// permission they already have. To add a usergroup, just follow
// the format (i.e., array(5, 6, 7) allows smods, admins, and any
// mods to close/stick the thread).
// If a usergroupid is not specified then the permissions will
// be automatically derived. It is recommended that you do not
// change this behavior.
$alwaysallowugids = array(5, 6);

$modperms = array();
if (in_array($bbuserinfo['usergroupid'], $alwaysallowugids))
{
// emulate a call to getmodpermissions
$modperms['canopenclose'] = 1;
$modperms['canmanagethreads'] = 1;
}
else
{
$modperms = getmodpermissions($thread['forumid']);
}

// ---------------------------------------------------------------

if ($_POST['action'] == 'postreply') // newreply redirect page
{
$querybits = array();
if ($modperms['canopenclose'])
{
array_push($querybits, "open = " .
($_POST['closeonreply'] == 1 ? 0 : 1));
}
if ($modperms['canmanagethreads'])
{
array_push($querybits, "sticky = " .
($_POST['stickonreply'] == 1 ? 1 : 0));
}

if (!empty($querybits)) // perm to do at least one of the two
{
$threadid = intval($_POST['threadid']);
$querybits = implode(", ", $querybits);

$DB_site->query("UPDATE thread SET $querybits
WHERE threadid = $threadid"); //<
}
}

// ---------------------------------------------------------------

else // just assume this is the reply form
{
// eval the extra option templates as needed

$closebox = '';
$stickbox = '';
if ($modperms['canopenclose'])
{
$checked = ($thread['open'] ? "" : " checked");
eval("\$closebox = \"" . gettemplate("newreply_closebox") . "\";");
}
if ($modperms['canmanagethreads']) // perm for sticky
{
$checked = ($thread['sticky'] ? " checked" : "");
eval("\$stickbox = \"" . gettemplate("newreply_stickbox") . "\";");
}
}
}







if (strpos($_SERVER['PHP_SELF'], 'showthread.php') != false)
{
// These numbers are usergroupids for usergroups that will always
// have permission to close/stick the thread, regardless of what
// permission they already have. To add a usergroup, just follow
// the format (i.e., array(5, 6, 7) allows smods, admins, and any
// mods to close/stick the thread).
// If a usergroupid is not specified then the permissions will
// be automatically derived. It is recommended that you do not
// change this behavior.
$alwaysallowugids = array(5, 6);

$modperms = array();
if (in_array($bbuserinfo['usergroupid'], $alwaysallowugids))
{
// emulate a call to getmodpermissions
$modperms['canopenclose'] = 1;
$modperms['canmanagethreads'] = 1;
}
else
{
$modperms = getmodpermissions($thread['forumid']);
}

// ---------------------------------------------------------------

if ($_POST['action'] == 'postreply') // newreply redirect page
{
$querybits = array();
if ($modperms['canopenclose'])
{
array_push($querybits, "open = " .
($_POST['closeonreply'] == 1 ? 0 : 1));
}
if ($modperms['canmanagethreads'])
{
array_push($querybits, "sticky = " .
($_POST['stickonreply'] == 1 ? 1 : 0));
}

if (!empty($querybits)) // perm to do at least one of the two
{
$threadid = intval($_POST['threadid']);
$querybits = implode(", ", $querybits);

$DB_site->query("UPDATE thread SET $querybits
WHERE threadid = $threadid"); //<
}
}

// ---------------------------------------------------------------

else // just assume this is the reply form
{
// eval the extra option templates as needed

$closebox = '';
$stickbox = '';
if ($modperms['canopenclose'])
{
$checked = ($thread['open'] ? "" : " checked");
eval("\$closebox = \"" . gettemplate("newreply_closebox") . "\";");
}
if ($modperms['canmanagethreads']) // perm for sticky
{
$checked = ($thread['sticky'] ? " checked" : "");
eval("\$stickbox = \"" . gettemplate("newreply_stickbox") . "\";");
}
}
}
//end Sticky/Close


Now save that template then open the showthread template. Then find -


<!-- first unread and next/prev -->
<table cellpadding="2" cellspacing="0" border="0" width="100%" align="center">
<tr>
<td><smallfont>$pagenav&nbsp;</smallfont></td>
<td align="right"><smallfont>
<img src="https://vborg.vbsupport.ru/vbimages/prev.gif" alt="" border="0">
<a href="showthread.php?s=$session[sessionhash]&threadid=$threadid&goto=nextoldest">Last Thread</a>
&nbsp;
<a href="showthread.php?s=$session[sessionhash]&threadid=$threadid&goto=nextnewest">Next Thread</a>
<img src="https://vborg.vbsupport.ru/vbimages/next.gif" alt="" border="0">
</smallfont></td>
</tr>
</table>
<!-- first unread and next/prev -->


[b]AFTER[b] it add -


<!-- qr -->
<script language="javascript">
<!--
var postmaxchars = $postmaxchars;
function validate(theform) {
if (theform.message.value=="") {
alert("Please complete the message field.");
return false; }
if (postmaxchars != 0) {
if (theform.message.value.length > $postmaxchars) {
alert("Your message is too long.\n\nReduce your message to $postmaxchars characters.\nIt is currently "+theform.message.value.length+" characters long.");
return false; }
else { return true; }
} else { return true; }
}
function checklength(theform) {
if (postmaxchars != 0) { message = "\nThe maximum permitted length is $postmaxchars characters."; }
else { message = ""; }
alert("Your message is "+theform.message.value.length+" characters long."+message);
}
//-->
</script>

<form enctype="multipart/form-data" action="newreply.php" name="vbform" method="post" onSubmit="return validate(this)">
<script language="Javascript" src="vbcode.js"></script>
<script language="Javascript" src="vbcode_language.js"></script>
<input type="hidden" name="s" value="$session[sessionhash]">
<input type="hidden" name="action" value="postreply">
<input type="hidden" name="threadid" value="$threadid">
<input type="hidden" name="title" value="">
<input type="hidden" name="iconid" value="0">
<input type="hidden" name="parseurl" value="yes">
<input type="hidden" name="email" value="">
<input type="hidden" name="disablesmilies" value="">
<input type="hidden" name="closethread" value="">
<input type="hidden" name="hiddenreply" value="">
<input type="hidden" name="signature" value="yes">
<input type="hidden" name="rating" value="0">

<table cellpadding="0" cellspacing="0" border="0" bgcolor="#555576" width="100%" align="center"><tr><td>
<table cellpadding="4" cellspacing="1" border="0" width="100%">
<tr>
<td bgcolor="#8080A6" colspan="2"><normalfont color="#EEEEFF" class="thtcolor"><b>Post Reply</b></normalfont></td>
</tr>
<tr>
<td bgcolor="#DFDFDF" valign="top" nowrap><normalfont><b>Your Reply:</b></normalfont></td>
<td bgcolor="#DFDFDF">
<table cellpadding="0" cellspacing="0" border="0">
<script language="Javascript" src="vbcode.js"></script>
<script language="Javascript" src="vbcode_language.js"></script>

<tr valign="top">
<td><textarea name="message" rows="7" cols="75" wrap="virtual" tabindex="1"></textarea><br>
<smallfont><a href="javascript:checklength(document.vbform);">[check message length]</a><br><br><input type="checkbox" name="closeonreply" value="1"$checked> <b>Close on Reply:</b> Closes the thread to new replies (moderators only)$stickbox

</smallfont></td>
</tr>
</table>
<tr>
<td bgcolor="#DFDFDF" valign="top" nowrap><normalfont><b>Attach file:</b></normalfont><br>
<smallfont>Size Limit: $maxattachsize bytes</smallfont></td>
<td bgcolor="#DFDFDF" valign="top"><smallfont><input type="hidden" name="MAX_FILE_SIZE" value="$maxattachsize_temp">
<input type="file" class="bginput" name="attachment"><br>
Valid file extensions: $attachextensions</smallfont></td>
</tr>
</td>
</tr>
</table>
</td></tr></table>

<br>

<table cellpadding="2" cellspacing="0" border="0" width="100%" align="center">
<tr>
<td align="center"><normalfont>
<input type="submit" class="bginput" name="submit" value="Submit Reply" accesskey="s" tabindex="2">
<input type="reset" class="bginput" name="reset" value="Reset Form" accesskey="r" tabindex="3">
</normalfont></td>
</tr>
</table>

</form>
<!-- /endQR -->


That should do it! BTW for those of you that have the Shinra Points hack with the addon for points for every post, this works the same way as a normal reply, you should get normal posts with this! ^__^ ALL PHP CODE COPYRIGHT FILBURT1

[b]SCREENSHOT ATTACHED JUST IMAGINE IT WITHOUT THE SMILIES[b]

-Shift

Tony G
01-08-2003, 03:53 AM
Hmm, an idea make a custom template for it like FireFly's does. Bit more organised maybe? I'm sure it's possible through phpinclude.

But nice mod! :D

Scott MacVicar
01-08-2003, 09:19 AM
Not advisable, as you'll end up evalutating that large piece of code everytime you run a vB page, which is a relatively large overhead.

Dean C
01-08-2003, 03:52 PM
Exactly and this can actually be done without ANY php code at all - the mod was released over at vbulletintemplates.com a while back :)

- miSt

filburt1
01-08-2003, 04:44 PM
And while you're at it maybe you'd like to give me a shred of credit after you ripped all my PHP code.

Brad
01-08-2003, 05:05 PM
Yea, ripping that code was low dude.

And yes, theres a version at vBt that requires no php code at all.

Herman
01-08-2003, 07:47 PM
<font size="1">Sorry, I meant to, I'll edit the post and add you to it, I really did mean to, I just had alot of things going on when I added the post. And mine would require no php code if the close thread and sticky thread weren't their.

-Shift</font>

Tony G
01-09-2003, 03:48 AM
Yeah the 'Sticky/Close' hack code I saw was very similar, I didn't want to make any accusations or anything though unless I was very sure. :)

Xanthine
01-09-2003, 08:38 PM
Whats the sense of posting others hacks (or template edits for this matter)?

Herman
01-10-2003, 12:54 PM
Because, then it makes it easier to add it, no file edits, much easier.

Tony G
01-11-2003, 10:00 AM
Also works for easier upgrades etc. because you haven't touched any PHP Files.

Big business now. :)