View Full Version : Plugin How To - How to add custom field to existing Vbulletin table
vb_mp
09-04-2008, 09:39 PM
Hi,
I am working on a plugin that requires an extra field in the 'paymentinfo' vbulletin table.
Could someone point me to an example (perhaps a plugin that add a custom field to an existing vbulletin table ) that I can follow to create the plugin xml for this?
Thank you,
John
--------------- Added 1220609903 at 1220609903 ---------------
Anyone?
Dismounted
09-05-2008, 10:08 AM
You can just run SQL to create a new column in the table.
vb_mp
09-05-2008, 10:12 AM
Sorry, what I meant was: Is there an example of an xml product installation file... that creates a new column.
I want to make a proper plugin/product with an xml installation file.
Delphiprogrammi
09-05-2008, 10:46 AM
hi,
turn on debug mode on a testboard (remember you are requirerd to htaccess this and call it testvb).open includes/config.php and righter after the "<?php"
$config['Misc']['debug'] = 1;
adding a custom field into a existing vBulletin table is done through MySQL.You need to put code for the SQL query in your product install code.You also need to put code to delete the added field in your product uninstall code and so on ...
vb_mp
09-05-2008, 11:11 AM
Aha so the adding of a field (when giving instructions to people to install), would have to be done manually? Anyone installing the product would have to manually do this?
I thought there was a way to do it automatically - provide sql code in xml for vb to execute when product xml is imported, provide sql code in xml for vb to execute when product is being uninstalled?
Opserty
09-05-2008, 11:40 AM
See how it is done in this article Custom Administrator Permissions (https://vborg.vbsupport.ru/showthread.php?t=95918&highlight=dbalter) (its right towards the end)
Just modify it to use the table and stuff that you want.
vb_mp
09-05-2008, 12:17 PM
These two:
Install:
require_once(DIR . '/includes/class_dbalter.php');
$dbalter = new vB_Database_Alter_MySQL($db);
$dbalter->fetch_table_info('administrator');
if (!$dbalter->fetch_field_info('customadminperms'))
{
$dbalter->add_field(array('name' => 'customadminperms', 'type' => 'INT', 'length' => '10', 'attributes' => 'UNSIGNED', 'null' => false, 'default' => '0'));
}
}
And uninstall:
unset($vbulletin->bf_misc_customadminperms['canadminmyhack']);
if (empty($vbulletin->bf_misc_customadminperms))
{
require_once(DIR . '/includes/class_dbalter.php');
$dbalter = new vB_Database_Alter_MySQL($db);
// Using 3.5.1+ calls
$dbalter->fetch_table_info('administrator');
if ($dbalter->fetch_field_info('customadminperms'))
{
$dbalter->drop_field('customadminperms');
}
}
Thank you Opserty!
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.