Plugin Settings


Here is how to add settings to your plugins.


Adding Settings on Install

Below is an example of how to add settings.

function myplugin_install()
{
	global $db;
  $setting_group = array(
		'gid'			=> 'NULL',
		'name'			=> 'myplugin',
		'title'			=> 'MyPlugin Settings',
		'description'	=> 'Settings for MyPlugin.',
		'disporder'		=> "1",
		'isdefault'		=> 'no',
	);
	$db->insert_query('settinggroups', $setting_group);
	$gid = $db->insert_id();

	$myplugin_setting = array(
		'name'			=> 'myplugin_setting1',
		'title'			=> 'A random setting for MyPlugin',
		'description'	=> 'What this setting will do',
		'optionscode'	=> 'yesno', //this will be a yes/no select box
		'value'			=> '1', //default value is yes, use 0 for no
		'disporder'		=> 1,
		'gid'			=> intval($gid),
	);

	$db->insert_query('settings', $myplugin_setting);



	$myplugin_setting = array(
		'name'			=> 'myplugin_setting2',
		'title'			=> 'Another random setting for MyPlugin',
		'description'	=> 'This is a textbox.',
		'optionscode'	=> 'text', //this will be a textbox, for a big textbox use textarea
		'value'			=> 'defauly value, yay!',
		'disporder'		=> 2, //increment this
		'gid'			=> intval($gid),
	);

	$db->insert_query('settings', $myplugin_setting);


	rebuild_settings();
}

Deleting Settings on Uninstall

Here is how to delete settings.

function myplugin_uninstall()
{
	global $db;
	$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN ('myplugin_setting1','myplugin_setting2')");
	$db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE name='myplugin'");
	rebuild_settings(); 
}


Using Settings

Here is an example of how you can use the above settings.

function myplugin_functionname()
{
	global $mybb;
	if($mybb->settings['myplugin_setting1'] == '1') {
		$randomvar = "<table><tr><td>{$mybb->settings['myplugin_setting2']}</td></tr></table>";
	}
}
This page was last modified on 9 December 2011, at 00:35.