vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Member Archives (https://vborg.vbsupport.ru/forumdisplay.php?f=202)
-   -   [RELEASE]Quick Reply(HACKLESS VERSION) (https://vborg.vbsupport.ru/showthread.php?t=47481)

Herman 01-07-2003 09:18 PM

[RELEASE]Quick Reply(HACKLESS VERSION)
 
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

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.


All times are GMT. The time now is 07:06 AM.

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.02284 seconds
  • Memory Usage 1,790KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete