vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.5 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=113)
-   -   vBSupport v2.0.0 Beta 2 (https://vborg.vbsupport.ru/showthread.php?t=94023)

Cajun 08-22-2006 02:54 PM

I have installed this mod 3 times on my test site with a fresh install of vB 3.6 and it worked every time. I only get this problem on a upgrade to vB3.6.

Quarterbore 08-22-2006 04:48 PM

OK, I have installed it in a fresh install of 3.6 and it works good but I did find one rather significant bug. If an Admin deletes a classified, when one of the other staff clicks the link in the PM or E-mail they will get an ugly MYSQL error:

Quote:


Database error in vBulletin 3.6.0:

Invalid SQL:

SELECT postid
FROM PREFIXvbs_ticket_post AS post
WHERE threadid =
AND visible = 1
ORDER BY dateline
LIMIT 0, 10;

MySQL Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND visible = 1
ORDER BY dateline
LIMIT 0, 10' at line 4
Error Number : 1064
Date : Tuesday, August 22nd 2006 @ 12:41:53 PM
Script : http://www.MYDOMAIN.com/forums/vbsup...ewthread&tid=5
Referrer : http://www.MYDOMAIN.com/forums/priva...wpm&pmid=10490
IP Address : my ip address
Username : Quarterbore
Classname : vb_database

EDIT - HERE IS THE FIX FOR THE ABOVE ERROR (at least this works for me)

Open vbsupport.php

Find:

Code:

                // get the postids for this thread
                $getpostids = $vbulletin->db->query_read("
                        SELECT postid
                        FROM " . TABLE_PREFIX . "vbs_ticket_post AS post
                        WHERE threadid = $threadid
                                AND visible = 1
                        ORDER BY dateline
                        LIMIT $limitlower, $perpage
                ");

Before Add:

Code:

        if(empty($threadid)){
        eval(standard_error(fetch_error('vbsupport_thread_notexists')));
        }

Next, create phrase in vBulletin:

type: Error
Product: vBSupport
varName: vbsupport_thread_notexists
text: The requested ticket does not exist in the system. It is possible that the ticket has been deleted by an Admin.

Solves this issue on my site!

Quarterbore 08-22-2006 05:09 PM

OK, I found one more issue... Unregistered or People not logged in are not able to use this system on my board...

I have set the vBSupport for Unregistered to "Yes" and I have the given Unregistered group the appropriate permissions but I get a "No Permissions" error still...

EDIT FOR UPDATE:

When I set the Admin setting to "No" for allowing Unregistered users with the usergroup setting to "YES" to "Can Create Tickets", unregisteerd people can access the trouble Ticket System BUT on my board it is allowing them to see tickets entered by other members (or at least a test ticket I listed by my Admin account). So, I am confused but this looks like two seperate bugs affecting unregistered users in 3.6

RMS-Chef 08-23-2006 08:28 PM

I am hoping it is just a hook location change with v3.6 or something easy. Not sure how to replace this hack.

By not requiring a category seems to allow new tickets to be created even with the "foreach()" error.

CypherSTL 08-24-2006 11:47 PM

There is an error when installing on vB3.6.0, the error is when doing the navbar templete edit, other than that it does install, but and unable to access the ticket system.

This is the error I get when editing the navbar:

Code:

The following error occurred when attempting to evaluate this template:

Parse error: syntax error, unexpected T_CHARACTER, expecting ']' in /home/excalibu/public_html/testforum/includes/adminfunctions_template.php(3593) : eval()'d code on line 101

This is likely caused by a malformed conditional statement. It is highly recommended that you fix this error before continuing, but you may continue as-is if you wish.

Fixed where I could access the ticket system but get error when creating a ticket:

Code:

Database error in vBulletin 3.6.0:

Invalid SQL:

                SELECT
                        post.*, post.username AS postusername, post.ipaddress AS ip, IF(post.visible = 2, 1, 0) AS isdeleted,
                        user.*, userfield.*, usertextfield.*,
                       
                        avatar.avatarpath, NOT ISNULL(customavatar.userid) AS hascustomavatar, customavatar.dateline AS avatardateline,customavatar.width AS avwidth,customavatar.height AS avheight,
                        level,
                        IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid
                       
                FROM vbs_ticket_post AS post
                LEFT JOIN user AS user ON(user.userid = post.userid)
                LEFT JOIN userfield AS userfield ON(userfield.userid = user.userid)
                LEFT JOIN usertextfield AS usertextfield ON(usertextfield.userid = user.userid)
               
                LEFT JOIN avatar AS avatar ON(avatar.avatarid = user.avatarid) LEFT JOIN customavatar AS customavatar ON(customavatar.userid = user.userid) LEFT JOIN reputationlevel AS reputationlevel ON(user.reputationlevelid = reputationlevel.reputationlevelid)
                WHERE post.postid IN (0,14)
                       
                ORDER BY post.dateline;

MySQL Error  : Unknown column 'level' in 'field list'
Error Number : 1054
Date        : Thursday, August 24th 2006 @ 08:21:52 PM
Script      : http://www.excalibursystems.net/testforum/vbsupport.php?do=viewthread&tid=6
Referrer    : http://www.excalibursystems.net/testforum/vbsupport.php?do=newthread
IP Address  : xxx.xxx.xxx.xxx
Username    : Perry
Classname    : vb_database

although when I go back into the ticket system the ticket is there, and get another error when I click on the ticket itself:

Code:

Database error in vBulletin 3.6.0:

Invalid SQL:

                SELECT
                        post.*, post.username AS postusername, post.ipaddress AS ip, IF(post.visible = 2, 1, 0) AS isdeleted,
                        user.*, userfield.*, usertextfield.*,
                       
                        avatar.avatarpath, NOT ISNULL(customavatar.userid) AS hascustomavatar, customavatar.dateline AS avatardateline,customavatar.width AS avwidth,customavatar.height AS avheight,
                        level,
                        IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid
                       
                FROM vbs_ticket_post AS post
                LEFT JOIN user AS user ON(user.userid = post.userid)
                LEFT JOIN userfield AS userfield ON(userfield.userid = user.userid)
                LEFT JOIN usertextfield AS usertextfield ON(usertextfield.userid = user.userid)
               
                LEFT JOIN avatar AS avatar ON(avatar.avatarid = user.avatarid) LEFT JOIN customavatar AS customavatar ON(customavatar.userid = user.userid) LEFT JOIN reputationlevel AS reputationlevel ON(user.reputationlevelid = reputationlevel.reputationlevelid)
                WHERE post.postid IN (0,13)
                       
                ORDER BY post.dateline;

MySQL Error  : Unknown column 'level' in 'field list'
Error Number : 1054
Date        : Thursday, August 24th 2006 @ 08:23:44 PM
Script      : http://www.excalibursystems.net/testforum/vbsupport.php?do=viewthread&tid=5
Referrer    : http://www.excalibursystems.net/testforum/vbsupport.php
IP Address  : xxx.xxx.xxx.xxx
Username    : Perry
Classname    : vb_database

the excact same applies to upgrade from 1.1 and even a fresh install of 3.6.0. and version 2.0

CypherSTL 08-25-2006 05:19 AM

I fixed my issue, what I did was ignore the part of the instructions that mentioned to edit the "navbar" template, instead of useing the edit in version 2.0 I used the "navbar" edit in 1.1, this stopped the error I was getting when doing the edit and also stopped all other errors.

To get this plugin to work:
1. Upload all the from 2.0
2. import the product
3. use the following template edits:


Template Edits:

A) In Template navbar

Find:
Code:

                <if condition="$show['member']">
                        <td class="vbmenu_control"><a href="usercp.php$session[sessionurl_q]">$vbphrase[user_cp]</a></td>
                </if>

Replace With:
Code:

                <if condition="$show['member']">
                        <td class="vbmenu_control"><a href="usercp.php$session[sessionurl_q]">$vbphrase[user_cp]</a></td>
                        <td class="vbmenu_control"><a href="vbsupport.php$session[sessionurl_q]">vBSupport</a></td>
                </if>

B) Template 'postbit_legacy':

Find:
Code:

                        <if condition="$show['postcount']">#<a href="showpost.php?$session[sessionurl]p=$post[postid]&amp;postcount=$post[postcount]" target="new" rel="nofollow" id="postcount$post[postid]" name="$post[postcount]"><strong>$post[postcount]</strong></a></if>
Add Above:
Code:

<!-- vbSupport start -->
                        <if condition="$show['ticketcount']">#<a href="vbsupport.php?$session[sessionurl]do=viewpost&amp;pid=$post[postid]&amp;postcount=$post[postcount]" target="new" rel="nofollow" id="postcount$post[postid]" name="$post[postcount]"><strong>$post[postcount]</strong></a></if>
<!-- vbSupport end -->

C) Template 'postbit':

Find:
Code:

                        <if condition="$show['postcount']">#<a href="showpost.php?$session[sessionurl]p=$post[postid]&amp;postcount=$post[postcount]" target="new" rel="nofollow" id="postcount$post[postid]" name="$post[postcount]"><strong>$post[postcount]</strong></a> &nbsp;</if>
Add Above
Code:

<!-- vbSupport start -->
                        <if condition="$show['ticketcount']">#<a href="vbsupport.php?$session[sessionurl]do=viewpost&amp;pid=$post[postid]&amp;postcount=$post[postcount]" target="new" rel="nofollow" id="postcount$post[postid]" name="$post[postcount]"><strong>$post[postcount]</strong></a> &nbsp;</if>
<!-- vbSupport end -->


Quarterbore 08-25-2006 07:48 PM

Sorry, I forgot to post that I had the same issue as above with my 3.6 install...

Now, can I make a suggestion for an addition to this sript?

I have two big additions I would love to see:

One: If the person entering the trouble ticket is UNREGISTERED or perhaps not logged in, I would love to have a manditory field for them to add their e-mail address. The e-mail address could then be merged into the "POST" but too often we don't have a way to contact a person that enters a trouble ticket if we don't force them to give us a way.

Two: Add a option for users to receive an e-mail or PM or both or none (their choice) when an update is added to their trouble ticket. This way they will know when it has been updated. The notice should also likely include when the ticket is closed or deleted.

Lastly, I still have not figured out how to let unregistered users use this... I have not had a lot of time to work through all the code however...

lovejoy 08-26-2006 09:17 PM

Quote:

Originally Posted by Cajun
I am having the same problem. I had someone look at the problem and could not fix. Looks like this happens when up upgrade to vb 3.6. I know this mod works on a fresh install for vb 3.6 but not on a upgrade.

Same problem in here. The only solution for it to work until somebody can fix it is setting the "Categories Required for New Tickets?" field to no :(

At least you can use the VBSupport.

::LoVejoY::

Quarterbore 08-27-2006 10:13 AM

I was working on the code a little and I think there might be a couple bugs still...

When a new Ticket is entered by one of my members, I get a PM that says:

Quote:

Support Ticket Updated: Another test

--------------------------------------------------------------------------------

The support ticket has been replied to by testaccount.

Please click here to view the ticket

All the best,
Timeshare Forums
Shouldn't this PM have a subject or "NEW Support Ticket" with the text inside the PM saying "A new support ticket has been entered by ..."

I looked and there are no such phrases! I also checked the vBsupport.php file and in fact in the notify staff area it does use these "Update" phrases as opposed to a "New"!

So, I created two new phrases:

Phrase 1:
Phrase Type: vb_Support Phrases
Product: vbSupport
Varname: vbsupport_pm_new_message
Text (Note spacing matters below - ask me how I found out:

PHP Code:

new support ticket has been submitted by {1}. 
[
url={2}]Please click here to view the ticket[/url

All the best
{
3

Phrase 2:
Phrase Type: vb_Support Phrases
Product: vbSupport
Varname: vbsupport_pm_new_title
Text: New {1} {2} Added: {3}

Next, find:

PHP Code:

                {
                    
// send a private message to the user
                    
$pmtitle construct_phrase($vbphrase['vbsupport_pm_update_title'], $vbphrase['vbsupport_title'], $vbphrase['vbsupport_ticket'], $newpost['title']);
                    
$pmtext construct_phrase($vbphrase['vbsupport_pm_update_message'], $vbulletin->userinfo['username'], $vbulletin->options['bburl'] . $linkurl$vbulletin->options['bbtitle']);
                    
vbsupport_send_pm(0$touser$pmtitle$pmtext);
                } 

Replace with:

PHP Code:


                
// check if it should send a pm
                
if (in_array($userid$pmids))
                {
                    
// send a private message to the Site Staff
                    
$pmtitle construct_phrase($vbphrase['vbsupport_pm_new_title'], $vbphrase['vbsupport_title'], $vbphrase['vbsupport_ticket'], $newpost['title']);
                    
$pmtext construct_phrase($vbphrase['vbsupport_pm_new_message'], $vbulletin->userinfo['username'], $vbulletin->options['bburl'] . $linkurl$vbulletin->options['bbtitle']);
                    
vbsupport_send_pm(0$touser$pmtitle$pmtext);
                } 

This is what the above generated for me!!!

New Support Ticket Added: Another trouble ticket test

--------------------------------------------------------------------------------

A new support ticket has been submitted by Site Staff.

Please click here to view the ticket

All the best,
Quarterbore



-------------------------------------------------------------------------------------------------
//////////// Next Issue \\\\\\\\\
-------------------------------------------------------------------------------------------------

Also, when an Admin or Mod does reply to a ticket the member that started the ticket is not getting a PM. I looked at the code and it looks like the code is written to do this...

See following in vbsupport.php:

PHP Code:

// check if it should send a private message
        
if (($threadinfo['postuserid'] != $vbulletin->userinfo['userid']) && $threadinfo['replynotice'])
        {
            
// fetch the $userinfo for this user
            
$touser fetch_userinfo($threadinfo['postuserid']);

            
// build the $linkurl
            
$touser['repliedby'] = $vbulletin->userinfo['username'];
            
$linkurl "/vbsupport.php?do=viewthread&tid=" $threadinfo['threadid'];

            
// check if it should send a pm
            
if ($threadinfo['replynotice'] & 1)
            {
                
// send a private message to the user
                
$pmtitle construct_phrase($vbphrase['vbsupport_pm_update_title'], $vbphrase['vbsupport_title'], $vbphrase['vbsupport_ticket'], $threadinfo['title']);
                
$pmtext construct_phrase($vbphrase['vbsupport_pm_update_message'], $vbulletin->userinfo['username'], $vbulletin->options['bburl'] . $linkurl$vbulletin->options['bbtitle']);
                
vbsupport_send_pm(0$touser$pmtitle$pmtext);
             }

            
// check if it should send an email
            
if ($threadinfo['replynotice'] & 2)
            {
                
// set the $title used in the email subject
                
$emailtitle $threadinfo['title'];

                
// send an email to the user
                
eval(fetch_email_phrases('ticketreplied'$touser['languageid']));
                
vbmail($touser['email'], $subject$messagetrue);
            }
        } 

Now, when I change the above to as follows, the person that posts the trouble ticket gets a PM when a reply is posted!

PHP Code:

        // check if it should send a private message
        
if ($threadinfo['postuserid'] != $vbulletin->userinfo['userid'])
        
// if (($threadinfo['postuserid'] != $vbulletin->userinfo['userid']) && $threadinfo['replynotice'])
        
{
            
// fetch the $userinfo for this user
            
$touser fetch_userinfo($threadinfo['postuserid']);

            
// build the $linkurl
            
$touser['repliedby'] = $vbulletin->userinfo['username'];
            
$linkurl "/vbsupport.php?do=viewthread&tid=" $threadinfo['threadid'];

            
// check if it should send a pm
            // if ($threadinfo['replynotice'] & 1)
            // {
                // send a private message to the user
                
$pmtitle construct_phrase($vbphrase['vbsupport_pm_update_title'], $vbphrase['vbsupport_title'], $vbphrase['vbsupport_ticket'], $threadinfo['title']);
                
$pmtext construct_phrase($vbphrase['vbsupport_pm_update_message'], $vbulletin->userinfo['username'], $vbulletin->options['bburl'] . $linkurl$vbulletin->options['bbtitle']);
                
vbsupport_send_pm(0$touser$pmtitle$pmtext);
            
// }

            // check if it should send an email
            
if ($threadinfo['replynotice'] & 2)
            {
                
// set the $title used in the email subject
                
$emailtitle $threadinfo['title'];

                
// send an email to the user
                
eval(fetch_email_phrases('ticketreplied'$touser['languageid']));
                
vbmail($touser['email'], $subject$messagetrue);
            }
        } 

So, this tells me that in vB 3.6 that the value of $threadinfo['replynotice'] is not "1" but I have no idea where that is set.... I want members to get a PM when their ticket is updated anyways so this works but I guess I should conditional out unregistered guests "userid = "0"" as I am not sure what that will cause... But, given unregistereds can not use the system yet I will waite on an update...

-------------------------------------------------------------------------------------------------
//////////// Next Issue \\\\\\\\\
-------------------------------------------------------------------------------------------------

There is no code in the script that will notify the staff when a member comes back and updates their ticket (or if it is there it doesn't work on my site and I don't see the code to do this).

EDIT - I did the code as in the following post!


Thanks!

Quarterbore 08-27-2006 11:24 AM

Following is the code needed to allow a PM to the appropriate members of the staff when the member comes back and replies to their trouble ticket! It is working on my site!

Before:

Code:

                // ### NOT PREVIEW - ACTUAL POST ###
                if ($vbulletin->GPC['ajax'])
                {


Add:

PHP Code:



        
// check if it should send a private message to staff
        
if ($threadinfo['postuserid'] == $vbulletin->userinfo['userid'])
        {

            
// build the $linkurl
            
$touser['repliedby'] = $vbulletin->userinfo['username'];
            
$linkurl "/vbsupport.php?do=viewthread&tid=" $threadinfo['threadid'];


    
$threadid $threadinfo['threadid'];


    
$getthreadids $vbulletin->db->query_read("
        SELECT categoryid
        FROM " 
TABLE_PREFIX "vbs_ticket_thread AS thread
        WHERE threadid = 
$threadid
        LIMIT 1
    "
);


    while (
$thread $vbulletin->db->fetch_array($getthreadids))
    {
        
$categoryid $thread['categoryid'];
    }


        
// build the $emailids
        
$pmids explode(','$vbulletin->vbs_category["$categoryid"]['adminpmusers']);
        
$emailids explode(','$vbulletin->vbs_category["$categoryid"]['adminemailusers']);




            
// check for PM notifications
            
if (is_array($pmids))
            {
                
// process add admins
                
foreach($vbulletin->vbs_admin AS $userid => $user)
                {
                    
// fetch the $userinfo for this user
                    
$touser fetch_userinfo($userid);
    
                    
// build the $linkurl
                    
$touser['repliedby'] = $vbulletin->userinfo['username'];
                    
$linkurl "/vbsupport.php?do=viewthread&tid=" $threadid;
    
                    
// check if it should send a pm
                    
if (in_array($userid$pmids))
                    {
                    
// send a private message to the staff
                    
$pmtitle construct_phrase($vbphrase['vbsupport_pm_update_title'], $vbphrase['vbsupport_title'], $vbphrase['vbsupport_ticket'], $threadinfo['title']);
                    
$pmtext construct_phrase($vbphrase['vbsupport_pm_update_message'], $vbulletin->userinfo['username'], $vbulletin->options['bburl'] . $linkurl$vbulletin->options['bbtitle']);
                    
vbsupport_send_pm(0$touser$pmtitle$pmtext);
                    }

                }
            }
        } 

There may well be a better way to code this but it works on my site now... This took a lot of time for me to figure out... WOW! Also note I ONLY coded PMs as that is all I am using on my site!


All times are GMT. The time now is 04:24 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.03287 seconds
  • Memory Usage 1,898KB
  • 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
  • (12)bbcode_code_printable
  • (6)bbcode_php_printable
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (2)pagenav_pagelinkrel
  • (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