vBulletin Mods

The Official vBulletin Modifications Site
https://www.vbulletin.org/forum/showthread.php?t=322081

[HELP] Removing row from table plugin query
by Dr.CustUmz
10 Mar 2016 22:06

so ive got my plugin at showthread_complete, its working pretty good =)

but im trying to add a query to it that reverses something done in showthread.php

This is the code straight from showthread.php

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

So I would think to reverse that my plugin would have to be

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

This doesnt give me an error, but it's not working, and threadviews table still continues to grow.

i have also tried

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.


Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

both resulting in database errors.

The goal:
if vb options are not set to update view counts immediately, each view is stored in the threadviews table. this happens with that first block of code from showthread.php

so when you view a thread that query runs, i want my query to just delete the row that first query added.

i have got this all worked out if admins update threads immediately, but i don't want to dictate their having to choose that option.

--------------- Added 11 Mar 2016 at 00:17 ---------------

this is working

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

is it proper?

MarkFL 11 Mar 2016 00:19

You need something like:


Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.


Paul M 11 Mar 2016 01:05

Quote:

Originally Posted by Dr.CustUmz (Post 2566971)
so ive got my plugin at showthread_complete, its working pretty good =)

but im trying to add a query to it that reverses something done in showthread.php

This is the code straight from showthread.php

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

So I would think to reverse that my plugin would have to be

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

This doesnt give me an error, but it's not working, and threadviews table still continues to grow.

i have also tried

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.


Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

both resulting in database errors.

The goal:
if vb options are not set to update view counts immediately, each view is stored in the threadviews table. this happens with that first block of code from showthread.php

so when you view a thread that query runs, i want my query to just delete the row that first query added.

i have got this all worked out if admins update threads immediately, but i don't want to dictate their having to choose that option.

--------------- Added 11 Mar 2016 at 00:17 ---------------

this is working

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

is it proper?

The original code will throw a database error, you just wont see it because its being run as a shutdown query.

You final code is fine, but you dont actually need the LIMIT 1.

Dr.CustUmz 11 Mar 2016 03:53

1 Attachment(s)
Quote:

Originally Posted by Paul M (Post 2566981)
The original code will throw a database error, you just wont see it because its being run as a shutdown query.

You final code is fine, but you dont actually need the LIMIT 1.

without the limit 1 it erases every entry of that that thread id

thread views table looks like

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

if i remove limit 1 and view thread 8, all of its instances get removed and when the cron runs to update thread view its not accurate.


update****

the problem with the method im using

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

is if there is no row with that threadID in the threadviews table it adds the original view to the table.

http://www.vbulletin.org/forum/attac...1&d=1457669996

Paul M 11 Mar 2016 17:49

Quote:

Originally Posted by Dr.CustUmz (Post 2566987)
without the limit 1 it erases every entry of that that thread id

Is that not what you are trying to do ?
I guess I dont understand your actual objective then.

Quote:

Originally Posted by Dr.CustUmz (Post 2566987)
the problem with the method im using

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

is if there is no row with that threadID in the threadviews table it adds the original view to the table.

A delete query cannot add anything, ever.

You are using shutdown queries, which quite possibly get run backwards to how you define them (there isnt any guarantee what order they will run). So more likely the delete is running first, then the insert. You wont notice this if there is at least one existing record, but you will if there are none.

Dr.CustUmz 11 Mar 2016 18:45

the goal is to remove the insert that showthread.php adds through a plugin

this is the query in showthread.php

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

i can make it do what i want by editing the showthread.php using if conditions, but im trying make it so there are no file edits.

so i have my plugin set to

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

this is saying if thread viewer is thread starter remove the view that the showthread query added.

BUT

if the thread has no views in the time the cron keeps them in the threadviews table (before placing them in thread table >views column) on the hour for most forums. it will add a view to the threadviews table even if it is thread starter viewing.

Paul M 11 Mar 2016 22:27

I still dont understand the objective, why do you want to remove that record ?

Two things ;

1. Dont use db->query_first() on the delete, thats for table reads. I believe its db->query_write() you need, but Im unable to check that where I am located atm.

2. What you are doing atm isnt going to work properly, because you are running the delete before the insert.

You need to remember that shutdown queries are run when all the page processing has completed - just before vb sends the actual html back to the client (and shuts down).

Dr.CustUmz 12 Mar 2016 03:40

Quote:

Originally Posted by Paul M (Post 2567032)
I still dont understand the objective, why do you want to remove that record ?

Two things ;

1. Dont use db->query_first() on the delete, thats for table reads. I believe its db->query_write() you need, but Im unable to check that where I am located atm.

2. What you are doing atm isnt going to work properly, because you are running the delete before the insert.

You need to remember that shutdown queries are run when all the page processing has completed - just before vb sends the actual html back to the client (and shuts down).

the recored is being removed, so if thread starter views his own thread the view counter does not go up

this is how i came up with this, i edited showthread.php (search for // update views counter)
and came up with this.

Block Disabled:      (Update License Status)  
Suspended or Unlicensed Members Cannot View Code.

works 100%

im trying to do the same exact thing only without having to edit the showthread.php


All times are GMT. The time now is 07:45.

Powered by vBulletin® Version 3.8.14
Copyright © 2021, MH Sub I, LLC dba vBulletin. All Rights Reserved. vBulletin® is a registered trademark of MH Sub I, LLC
Copyright ©2001 - , vbulletin.org. All rights reserved.