Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > General > Member Archives
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
[RELEASE]Quick Reply(HACKLESS VERSION) Details »»
[RELEASE]Quick Reply(HACKLESS VERSION)
Version: , by Herman Herman is offline
Developer Last Online: Oct 2008 Show Printable Version Email this Page

Version: Unknown Rating:
Released: 01-07-2003 Last Update: Never Installs: 0
 
No support by the author.

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
Now save that template then open the showthread template. Then find -

Code:
<!-- 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 -

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 -->
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

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #2  
Old 01-08-2003, 03:53 AM
Tony G's Avatar
Tony G Tony G is offline
 
Join Date: Nov 2001
Location: Melbourne, Australia
Posts: 8,357
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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!
Reply With Quote
  #3  
Old 01-08-2003, 09:19 AM
Scott MacVicar Scott MacVicar is offline
 
Join Date: Oct 2001
Location: Glasgow, Scotland
Posts: 1,199
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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.
Reply With Quote
  #4  
Old 01-08-2003, 03:52 PM
Dean C's Avatar
Dean C Dean C is offline
 
Join Date: Jan 2002
Location: England
Posts: 9,071
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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
Reply With Quote
  #5  
Old 01-08-2003, 04:44 PM
filburt1 filburt1 is offline
 
Join Date: Feb 2002
Location: Maryland, US
Posts: 6,144
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

And while you're at it maybe you'd like to give me a shred of credit after you ripped all my PHP code.
Reply With Quote
  #6  
Old 01-08-2003, 05:05 PM
Brad Brad is offline
 
Join Date: Nov 2001
Posts: 4,765
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Yea, ripping that code was low dude.

And yes, theres a version at vBt that requires no php code at all.
Reply With Quote
  #7  
Old 01-08-2003, 07:47 PM
Herman Herman is offline
 
Join Date: Apr 2002
Location: I dunno... VB heava?
Posts: 79
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

<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>
Reply With Quote
  #8  
Old 01-09-2003, 03:48 AM
Tony G's Avatar
Tony G Tony G is offline
 
Join Date: Nov 2001
Location: Melbourne, Australia
Posts: 8,357
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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.
Reply With Quote
  #9  
Old 01-09-2003, 08:38 PM
Xanthine Xanthine is offline
 
Join Date: Mar 2002
Posts: 232
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Whats the sense of posting others hacks (or template edits for this matter)?
Reply With Quote
  #10  
Old 01-10-2003, 12:54 PM
Herman Herman is offline
 
Join Date: Apr 2002
Location: I dunno... VB heava?
Posts: 79
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Because, then it makes it easier to add it, no file edits, much easier.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 10:55 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04297 seconds
  • Memory Usage 2,304KB
  • Queries Executed 23 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (3)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (9)postbit
  • (10)postbit_onlinestatus
  • (10)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete