change plugin_install to plugin_load, etc.

This commit is contained in:
friendica 2013-05-01 02:23:40 -07:00
parent 72a770ae36
commit d517b4fdf5
3 changed files with 80 additions and 45 deletions

View File

@ -1118,7 +1118,7 @@ function check_config(&$a) {
* $a->config['system']['addon'] contains a comma-separated list of names * $a->config['system']['addon'] contains a comma-separated list of names
* of plugins/addons which are used on this system. * of plugins/addons which are used on this system.
* Go through the database list of already installed addons, and if we have * Go through the database list of already installed addons, and if we have
* an entry, but it isn't in the config list, call the uninstall procedure * an entry, but it isn't in the config list, call the unload procedure
* and mark it uninstalled in the database (for now we'll remove it). * and mark it uninstalled in the database (for now we'll remove it).
* Then go through the config list and if we have a plugin that isn't installed, * Then go through the config list and if we have a plugin that isn't installed,
* call the install procedure and add it to the database. * call the install procedure and add it to the database.
@ -1144,7 +1144,7 @@ function check_config(&$a) {
if(count($installed)) { if(count($installed)) {
foreach($installed as $i) { foreach($installed as $i) {
if(! in_array($i['name'],$plugins_arr)) { if(! in_array($i['name'],$plugins_arr)) {
uninstall_plugin($i['name']); unload_plugin($i['name']);
} }
else { else {
$installed_arr[] = $i['name']; $installed_arr[] = $i['name'];
@ -1155,7 +1155,7 @@ function check_config(&$a) {
if(count($plugins_arr)) { if(count($plugins_arr)) {
foreach($plugins_arr as $p) { foreach($plugins_arr as $p) {
if(! in_array($p,$installed_arr)) { if(! in_array($p,$installed_arr)) {
install_plugin($p); load_plugin($p);
} }
} }
} }

View File

@ -3,24 +3,41 @@
require_once("include/friendica_smarty.php"); require_once("include/friendica_smarty.php");
// install and uninstall plugin // install and uninstall plugin
if (! function_exists('uninstall_plugin')){
function uninstall_plugin($plugin){ function unload_plugin($plugin){
logger("Addons: uninstalling " . $plugin, LOGGER_DEBUG); logger("Addons: unloading " . $plugin, LOGGER_DEBUG);
q("DELETE FROM `addon` WHERE `name` = '%s' ",
dbesc($plugin)
);
@include_once('addon/' . $plugin . '/' . $plugin . '.php');
if(function_exists($plugin . '_unload')) {
$func = $plugin . '_unload';
$func();
}
}
function uninstall_plugin($plugin) {
unload_plugin($plugin);
if(! file_exists('addon/' . $plugin . '/' . $plugin . '.php'))
return false;
logger("Addons: uninstalling " . $plugin);
$t = @filemtime('addon/' . $plugin . '/' . $plugin . '.php');
@include_once('addon/' . $plugin . '/' . $plugin . '.php'); @include_once('addon/' . $plugin . '/' . $plugin . '.php');
if(function_exists($plugin . '_uninstall')) { if(function_exists($plugin . '_uninstall')) {
$func = $plugin . '_uninstall'; $func = $plugin . '_uninstall';
$func(); $func();
} }
}}
if (! function_exists('install_plugin')){ q("DELETE FROM `addon` WHERE `name` = '%s' ",
dbesc($plugin)
);
}
function install_plugin($plugin) { function install_plugin($plugin) {
// silently fail if plugin was removed
if(! file_exists('addon/' . $plugin . '/' . $plugin . '.php')) if(! file_exists('addon/' . $plugin . '/' . $plugin . '.php'))
return false; return false;
@ -30,14 +47,34 @@ function install_plugin($plugin) {
if(function_exists($plugin . '_install')) { if(function_exists($plugin . '_install')) {
$func = $plugin . '_install'; $func = $plugin . '_install';
$func(); $func();
}
$plugin_admin = (function_exists($plugin . "_plugin_admin") ? 1 : 0);
$plugin_admin = (function_exists($plugin . "_plugin_admin") ? 1 : 0); $r = q("INSERT INTO `addon` (`name`, `installed`, `timestamp`, `plugin_admin`) VALUES ( '%s', 1, %d , %d ) ",
dbesc($plugin),
intval($t),
$plugin_admin
);
load_plugin($plugin);
}
function load_plugin($plugin) {
// silently fail if plugin was removed
if(! file_exists('addon/' . $plugin . '/' . $plugin . '.php'))
return false;
logger("Addons: loading " . $plugin);
$t = @filemtime('addon/' . $plugin . '/' . $plugin . '.php');
@include_once('addon/' . $plugin . '/' . $plugin . '.php');
if(function_exists($plugin . '_load')) {
$func = $plugin . '_load';
$func();
$r = q("INSERT INTO `addon` (`name`, `installed`, `timestamp`, `plugin_admin`) VALUES ( '%s', 1, %d , %d ) ",
dbesc($plugin),
intval($t),
$plugin_admin
);
// we can add the following with the previous SQL // we can add the following with the previous SQL
// once most site tables have been updated. // once most site tables have been updated.
@ -51,15 +88,14 @@ function install_plugin($plugin) {
return true; return true;
} }
else { else {
logger("Addons: FAILED installing " . $plugin); logger("Addons: FAILED loading " . $plugin);
return false; return false;
} }
}} }
// reload all updated plugins // reload all updated plugins
if(! function_exists('reload_plugins')) {
function reload_plugins() { function reload_plugins() {
$plugins = get_config('system','addon'); $plugins = get_config('system','addon');
if(strlen($plugins)) { if(strlen($plugins)) {
@ -86,12 +122,12 @@ function reload_plugins() {
logger('Reloading plugin: ' . $i['name']); logger('Reloading plugin: ' . $i['name']);
@include_once($fname); @include_once($fname);
if(function_exists($pl . '_uninstall')) { if(function_exists($pl . '_unload')) {
$func = $pl . '_uninstall'; $func = $pl . '_unload';
$func(); $func();
} }
if(function_exists($pl . '_install')) { if(function_exists($pl . '_load')) {
$func = $pl . '_install'; $func = $pl . '_load';
$func(); $func();
} }
q("UPDATE `addon` SET `timestamp` = %d WHERE `id` = %d LIMIT 1", q("UPDATE `addon` SET `timestamp` = %d WHERE `id` = %d LIMIT 1",
@ -104,14 +140,13 @@ function reload_plugins() {
} }
} }
} }
}
}}
if(! function_exists('register_hook')) {
function register_hook($hook,$file,$function,$priority=0) { function register_hook($hook,$file,$function,$priority=0) {
$r = q("SELECT * FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s' LIMIT 1", $r = q("SELECT * FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s' LIMIT 1",
@ -129,9 +164,9 @@ function register_hook($hook,$file,$function,$priority=0) {
dbesc($priority) dbesc($priority)
); );
return $r; return $r;
}} }
if(! function_exists('unregister_hook')) {
function unregister_hook($hook,$file,$function) { function unregister_hook($hook,$file,$function) {
$r = q("DELETE FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s' LIMIT 1", $r = q("DELETE FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s' LIMIT 1",
@ -140,7 +175,7 @@ function unregister_hook($hook,$file,$function) {
dbesc($function) dbesc($function)
); );
return $r; return $r;
}} }
// //
@ -148,7 +183,7 @@ function unregister_hook($hook,$file,$function) {
// array in their theme_init() and use this to customise the app behaviour. // array in their theme_init() and use this to customise the app behaviour.
// //
if(! function_exists('load_hooks')) {
function load_hooks() { function load_hooks() {
$a = get_app(); $a = get_app();
$a->hooks = array(); $a->hooks = array();
@ -160,10 +195,10 @@ function load_hooks() {
$a->hooks[$rr['hook']][] = array($rr['file'],$rr['function']); $a->hooks[$rr['hook']][] = array($rr['file'],$rr['function']);
} }
} }
}} }
if(! function_exists('call_hooks')) {
function call_hooks($name, &$data = null) { function call_hooks($name, &$data = null) {
$a = get_app(); $a = get_app();
@ -185,7 +220,7 @@ function call_hooks($name, &$data = null) {
} }
} }
}} }
/* /*
@ -201,7 +236,7 @@ function call_hooks($name, &$data = null) {
* * * *
*/ */
if (! function_exists('get_plugin_info')){
function get_plugin_info($plugin){ function get_plugin_info($plugin){
$info=Array( $info=Array(
'name' => $plugin, 'name' => $plugin,
@ -241,7 +276,7 @@ function get_plugin_info($plugin){
} }
return $info; return $info;
}} }
/* /*
@ -257,7 +292,7 @@ function get_plugin_info($plugin){
* * * *
*/ */
if (! function_exists('get_theme_info')){
function get_theme_info($theme){ function get_theme_info($theme){
$info=Array( $info=Array(
'name' => $theme, 'name' => $theme,
@ -316,7 +351,7 @@ function get_theme_info($theme){
} }
return $info; return $info;
}} }
function get_theme_screenshot($theme) { function get_theme_screenshot($theme) {
@ -503,7 +538,7 @@ function theme_include($file, $root = '') {
if(! function_exists('get_intltext_template')) {
function get_intltext_template($s) { function get_intltext_template($s) {
global $a; global $a;
@ -530,9 +565,9 @@ function get_intltext_template($s) {
else else
return file_get_contents($file); return file_get_contents($file);
}} }
if(! function_exists('get_markup_template')) {
function get_markup_template($s, $root = '') { function get_markup_template($s, $root = '') {
$a = get_app(); $a = get_app();
@ -553,5 +588,5 @@ function get_markup_template($s, $root = '') {
return $template; return $template;
} }
} }
}} }

View File

@ -1 +1 @@
2013-04-30.299 2013-05-01.300