67 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * Takes care of creating, updating and deleting database tables.
 | 
						|
 */
 | 
						|
class scbTable {
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The table name.
 | 
						|
	 * @var string
 | 
						|
	 */
 | 
						|
	protected $name;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The table columns.
 | 
						|
	 * @var string
 | 
						|
	 */
 | 
						|
	protected $columns;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The upgrade method.
 | 
						|
	 * @var string
 | 
						|
	 */
 | 
						|
	protected $upgrade_method;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Sets up table.
 | 
						|
	 *
 | 
						|
	 * @param string $name Table name.
 | 
						|
	 * @param string $file Reference to main plugin file.
 | 
						|
	 * @param string $columns The SQL columns for the CREATE TABLE statement.
 | 
						|
	 * @param array $upgrade_method (optional)
 | 
						|
	 *
 | 
						|
	 * @return void
 | 
						|
	 */
 | 
						|
	public function __construct( $name, $file, $columns, $upgrade_method = 'dbDelta' ) {
 | 
						|
		$this->name = $name;
 | 
						|
		$this->columns = $columns;
 | 
						|
		$this->upgrade_method = $upgrade_method;
 | 
						|
 | 
						|
		scb_register_table( $name );
 | 
						|
 | 
						|
		if ( $file ) {
 | 
						|
			scbUtil::add_activation_hook( $file, array( $this, 'install' ) );
 | 
						|
			scbUtil::add_uninstall_hook( $file, array( $this, 'uninstall' ) );
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Installs table.
 | 
						|
	 *
 | 
						|
	 * @return void
 | 
						|
	 */
 | 
						|
	public function install() {
 | 
						|
		scb_install_table( $this->name, $this->columns, $this->upgrade_method );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Uninstalls table.
 | 
						|
	 *
 | 
						|
	 * @return void
 | 
						|
	 */
 | 
						|
	public function uninstall() {
 | 
						|
		scb_uninstall_table( $this->name );
 | 
						|
	}
 | 
						|
}
 | 
						|
 |