Added hooks so that blocks can create functions that are run when they are installed and uninstalled. The base implementation does nothing.

This commit is contained in:
sam_marshall 2006-07-14 11:17:46 +00:00
parent a62b843a51
commit 44c55d4662
3 changed files with 19 additions and 1 deletions

View File

@ -89,6 +89,9 @@
exit;
} else {
// Inform block it's about to be deleted
block_instance($block->name)->before_delete();
// Delete block
if (!delete_records('block', 'id', $block->id)) {
notify("Error occurred while deleting the $strblockname record from blocks table");

View File

@ -108,6 +108,20 @@ class block_base {
function __construct() {
$this->block_base();
}
/**
* Function that can be overridden to do extra setup after
* the database install. (Called once per block, not per instance!)
*/
function after_install() {
}
/**
* Function that can be overridden to do extra cleanup before
* the database tables are deleted. (Called once per block, not per instance!)
*/
function before_delete() {
}
/**
* Returns the block name, as present in the class name,

View File

@ -1130,6 +1130,7 @@ function upgrade_blocks_plugins($continueto) {
if (!is_dir($fullblock .'/db/') || modify_database($fullblock .'/db/'. $CFG->dbtype .'.sql')) {
$db->debug = false;
if ($block->id = insert_record('block', $block)) {
$blockobj->after_install();
notify(get_string('blocksuccess', '', $blocktitle), 'notifysuccess');
echo '<hr />';
} else {
@ -1173,4 +1174,4 @@ function upgrade_blocks_plugins($continueto) {
}
}
?>
?>