[wp-hackers] Plugin Questions
Scott Merrill
skippy at skippy.net
Thu May 12 14:50:59 GMT 2005
Bill Smith wrote:
> 1) I'm working on a small plugin that requires an additional database
> table. Currently I'm using a query like
>
> SHOW TABLES LIKE 'wp_mytable'
>
> to check to see if my table already exists and create it if it doesn't.
> That seems expensive to me to do everytime my plugin is loaded so I was
> thinking about socking somthing away in wp_options that would let me
> know that I've already created it. I'm assuming that by the time an
> plugin code is executed that the options will have already been queried
> and cached.
>
> What are others doing to accomplish this?
Here's what I do in my subscribe2 plugin, which uses a custom table:
///////////////////////
function s2_install() {
// include upgrade-functions for maybe_create_table;
if (! function_exists('maybe_create_table')) {
require_once(ABSPATH . '/wp-admin/upgrade-functions.php');
}
global $table_prefix;
$s2_table = $table_prefix . "subscribe2";
$s2_table_sql = "CREATE TABLE " . $s2_table .
"( id int(11) NOT NULL auto_increment,
email varchar(64) NOT NULL default '',
active tinyint(1) default 0,
PRIMARY KEY (id) )";
// create the table, as needed
maybe_create_table($s2_table, $s2_table_sql);
s2_reset();
} // s2_install
////////////////////
function s2_options() {
global $wpdb, $table_prefix, $cache_categories;
$s2_table = $table_prefix . "subscribe2";
// check if we need to install the table
$sql = "SELECT COUNT(id) FROM " . $s2_table;
// turn errors off, for the momemnt
$errors = $wpdb->hide_errors();
$foo = $wpdb->get_var($sql);
// turn errors back on
$errors = $wpdb->show_errors();
if ('' == $foo) { s2_install(); }
.... more stuff here....
> 3) Last one... for the moment. :) In certain parts of my plugin, I'd
> like to restrict access to either the admin or users of a certain level.
> Is there a call that can tell me the users credentials so I can
> determine what they are allowed to do?
get_currentuserinfo() usually works; though there might be some
complication now with the "pluggable functions" recently introduced.
Be sure to read these:
http://codex.wordpress.org/Plugin_API
http://codex.wordpress.org/Writing_a_Plugin
--
skippy at skippy.net | http://skippy.net/
gpg --keyserver pgp.mit.edu --recv-keys 9CFA4B35
506C F8BB 17AE 8A05 0B49 3544 476A 7DEC 9CFA 4B35
More information about the wp-hackers
mailing list