reload plugins if they change
This commit is contained in:
parent
5f54503780
commit
32e96d2647
56
boot.php
56
boot.php
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
set_time_limit(0);
|
set_time_limit(0);
|
||||||
|
|
||||||
define ( 'BUILD_ID', 1039 );
|
define ( 'BUILD_ID', 1040 );
|
||||||
define ( 'FRIENDIKA_VERSION', '2.10.0910' );
|
define ( 'FRIENDIKA_VERSION', '2.10.0912' );
|
||||||
define ( 'DFRN_PROTOCOL_VERSION', '2.1' );
|
define ( 'DFRN_PROTOCOL_VERSION', '2.1' );
|
||||||
|
|
||||||
define ( 'EOL', "<br />\r\n" );
|
define ( 'EOL', "<br />\r\n" );
|
||||||
|
@ -512,22 +512,70 @@ function check_config(&$a) {
|
||||||
foreach($plugins_arr as $p) {
|
foreach($plugins_arr as $p) {
|
||||||
if(! in_array($p,$installed_arr)) {
|
if(! in_array($p,$installed_arr)) {
|
||||||
logger("Addons: installing " . $p);
|
logger("Addons: installing " . $p);
|
||||||
|
$t = filemtime('addon/' . $p . '/' . $p . '.php');
|
||||||
@include_once('addon/' . $p . '/' . $p . '.php');
|
@include_once('addon/' . $p . '/' . $p . '.php');
|
||||||
if(function_exists($p . '_install')) {
|
if(function_exists($p . '_install')) {
|
||||||
$func = $p . '_install';
|
$func = $p . '_install';
|
||||||
$func();
|
$func();
|
||||||
$r = q("INSERT INTO `addon` (`name`, `installed`) VALUES ( '%s', 1 ) ",
|
$r = q("INSERT INTO `addon` (`name`, `installed`, `timestamp`) VALUES ( '%s', 1, %d ) ",
|
||||||
dbesc($p)
|
dbesc($p),
|
||||||
|
intval($t)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
load_hooks();
|
load_hooks();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
// reload all updated plugins
|
||||||
|
|
||||||
|
if(! function_exists('reload_plugins')) {
|
||||||
|
function reload_plugins() {
|
||||||
|
$plugins = get_config('system','addon');
|
||||||
|
if(strlen($plugins)) {
|
||||||
|
|
||||||
|
$r = q("SELECT * FROM `addon` WHERE `installed` = 1");
|
||||||
|
if(count($r))
|
||||||
|
$installed = $r;
|
||||||
|
else
|
||||||
|
$installed = array();
|
||||||
|
|
||||||
|
$parr = explode(',',$plugins);
|
||||||
|
if(count($parr)) {
|
||||||
|
foreach($parr as $pl) {
|
||||||
|
$pl = trim($pl);
|
||||||
|
|
||||||
|
$t = filemtime('addon/' . $pl . '/' . $pl . '.php');
|
||||||
|
foreach($installed as $i) {
|
||||||
|
if(($i['name'] == $pl) && ($i['timestamp'] != $t)) {
|
||||||
|
logger('Reloading plugin: ' . $i['name']);
|
||||||
|
@include_once('addon/' . $pl . '/' . $pl . '.php');
|
||||||
|
|
||||||
|
if(function_exists($pl . '_uninstall')) {
|
||||||
|
$func = $pl . '_uninstall';
|
||||||
|
$func();
|
||||||
|
}
|
||||||
|
if(function_exists($pl . '_install')) {
|
||||||
|
$func = $pl . '_install';
|
||||||
|
$func();
|
||||||
|
}
|
||||||
|
q("UPDATE `addon` SET `timestamp` = %d WHERE `id` = %d LIMIT 1",
|
||||||
|
intval($t),
|
||||||
|
intval($i['id'])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// This is our template processor.
|
// This is our template processor.
|
||||||
// $s is the string requiring macro substitution.
|
// $s is the string requiring macro substitution.
|
||||||
|
|
|
@ -451,7 +451,8 @@ CREATE TABLE IF NOT EXISTS `addon` (
|
||||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
||||||
`name` CHAR( 255 ) NOT NULL ,
|
`name` CHAR( 255 ) NOT NULL ,
|
||||||
`version` CHAR( 255 ) NOT NULL ,
|
`version` CHAR( 255 ) NOT NULL ,
|
||||||
`installed` TINYINT( 1 ) NOT NULL DEFAULT '0'
|
`installed` TINYINT( 1 ) NOT NULL DEFAULT '0' ,
|
||||||
|
`timestamp` BIGINT NOT NULL DEFAULT '0'
|
||||||
) ENGINE = MYISAM DEFAULT CHARSET=utf8;
|
) ENGINE = MYISAM DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,11 @@ function poller_run($argv, $argc){
|
||||||
|
|
||||||
$sql_extra = (($manual_id) ? " AND `id` = $manual_id " : "");
|
$sql_extra = (($manual_id) ? " AND `id` = $manual_id " : "");
|
||||||
|
|
||||||
|
$d = datetime_convert();
|
||||||
|
call_hooks('cron', $d);
|
||||||
|
|
||||||
|
reload_plugins();
|
||||||
|
|
||||||
$contacts = q("SELECT `id` FROM `contact`
|
$contacts = q("SELECT `id` FROM `contact`
|
||||||
WHERE ( `rel` = %d OR `rel` = %d ) AND `poll` != ''
|
WHERE ( `rel` = %d OR `rel` = %d ) AND `poll` != ''
|
||||||
$sql_extra
|
$sql_extra
|
||||||
|
|
|
@ -374,3 +374,6 @@ function update_1038() {
|
||||||
q("ALTER TABLE `item` ADD `plink` CHAR( 255 ) NOT NULL AFTER `target` ");
|
q("ALTER TABLE `item` ADD `plink` CHAR( 255 ) NOT NULL AFTER `target` ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function update_1039() {
|
||||||
|
q("ALTER TABLE `addon` ADD `timestamp` BIGINT NOT NULL DEFAULT '0'");
|
||||||
|
}
|
Loading…
Reference in a new issue