The Arcive of vBulletin Modifications Site. |
|
[RELEASE]Quick Reply(HACKLESS VERSION) Details »»
|
|||||||||||||||||||||||||
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: Code:
//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
Code:
<!-- first unread and next/prev --> <table cellpadding="2" cellspacing="0" border="0" width="100%" align="center"> <tr> <td><smallfont>$pagenav </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> <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 --> Code:
<!-- 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 -->
[b]SCREENSHOT ATTACHED JUST IMAGINE IT WITHOUT THE SMILIES[b] -Shift Show Your Support
|
|||||||||||||||||||||||||
| Comments |
|
#2
|
||||
|
||||
|
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!
|
|
#3
|
|||
|
|||
|
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.
|
|
#4
|
||||
|
||||
|
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 |
|
#5
|
|||
|
|||
|
And while you're at it maybe you'd like to give me a shred of credit after you ripped all my PHP code.
|
|
#6
|
|||
|
|||
|
Yea, ripping that code was low dude.
And yes, theres a version at vBt that requires no php code at all. |
|
#7
|
|||
|
|||
|
<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> |
|
#8
|
||||
|
||||
|
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.
|
|
#9
|
|||
|
|||
|
Whats the sense of posting others hacks (or template edits for this matter)?
|
|
#10
|
|||
|
|||
|
Because, then it makes it easier to add it, no file edits, much easier.
|
![]() |
|
|
| X vBulletin 3.8.12 by vBS Debug Information | |
|---|---|
|
|
More Information |
|
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|