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 );
 | |
| 	}
 | |
| }
 | |
| 
 |