本文整理汇总了PHP中install_plugin函数的典型用法代码示例。如果您正苦于以下问题:PHP install_plugin函数的具体用法?PHP install_plugin怎么用?PHP install_plugin使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了install_plugin函数的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: admin_page_plugins
/**
* Plugins admin page
*
* @param App $a
* @return string
*/
function admin_page_plugins(&$a)
{
/**
* Single plugin
*/
if ($a->argc == 3) {
$plugin = $a->argv[2];
if (!is_file("addon/{$plugin}/{$plugin}.php")) {
notice(t("Item not found."));
return '';
}
if (x($_GET, "a") && $_GET['a'] == "t") {
check_form_security_token_redirectOnErr('/admin/plugins', 'admin_themes', 't');
// Toggle plugin status
$idx = array_search($plugin, $a->plugins);
if ($idx !== false) {
unset($a->plugins[$idx]);
uninstall_plugin($plugin);
info(sprintf(t("Plugin %s disabled."), $plugin));
} else {
$a->plugins[] = $plugin;
install_plugin($plugin);
info(sprintf(t("Plugin %s enabled."), $plugin));
}
set_config("system", "addon", implode(", ", $a->plugins));
goaway($a->get_baseurl(true) . '/admin/plugins');
return '';
// NOTREACHED
}
// display plugin details
require_once 'library/markdown.php';
if (in_array($plugin, $a->plugins)) {
$status = "on";
$action = t("Disable");
} else {
$status = "off";
$action = t("Enable");
}
$readme = Null;
if (is_file("addon/{$plugin}/README.md")) {
$readme = file_get_contents("addon/{$plugin}/README.md");
$readme = Markdown($readme);
} else {
if (is_file("addon/{$plugin}/README")) {
$readme = "<pre>" . file_get_contents("addon/{$plugin}/README") . "</pre>";
}
}
$admin_form = "";
if (is_array($a->plugins_admin) && in_array($plugin, $a->plugins_admin)) {
@(require_once "addon/{$plugin}/{$plugin}.php");
$func = $plugin . '_plugin_admin';
$func($a, $admin_form);
}
$t = get_markup_template("admin_plugins_details.tpl");
return replace_macros($t, array('$title' => t('Administration'), '$page' => t('Plugins'), '$toggle' => t('Toggle'), '$settings' => t('Settings'), '$baseurl' => $a->get_baseurl(true), '$plugin' => $plugin, '$status' => $status, '$action' => $action, '$info' => get_plugin_info($plugin), '$str_author' => t('Author: '), '$str_maintainer' => t('Maintainer: '), '$admin_form' => $admin_form, '$function' => 'plugins', '$screenshot' => '', '$readme' => $readme, '$form_security_token' => get_form_security_token("admin_themes")));
}
/**
* List plugins
*/
$plugins = array();
$files = glob("addon/*/");
/* */
if ($files) {
foreach ($files as $file) {
if (is_dir($file)) {
list($tmp, $id) = array_map("trim", explode("/", $file));
$info = get_plugin_info($id);
$show_plugin = true;
// If the addon is unsupported, then only show it, when it is enabled
if (strtolower($info["status"]) == "unsupported" and !in_array($id, $a->plugins)) {
$show_plugin = false;
}
// Override the above szenario, when the admin really wants to see outdated stuff
if (get_config("system", "show_unsupported_addons")) {
$show_plugin = true;
}
if ($show_plugin) {
$plugins[] = array($id, in_array($id, $a->plugins) ? "on" : "off", $info);
}
}
}
}
$t = get_markup_template("admin_plugins.tpl");
return replace_macros($t, array('$title' => t('Administration'), '$page' => t('Plugins'), '$submit' => t('Save Settings'), '$baseurl' => $a->get_baseurl(true), '$function' => 'plugins', '$plugins' => $plugins, '$form_security_token' => get_form_security_token("admin_themes")));
}
示例2: trim
break;
case 'inactive':
$plugin_name = trim(gpc('plugin_name', 'G', ''));
if ($plugin_name) {
$ins = array('plugin_name' => $plugin_name, 'active' => 0);
$sqls = "('{$ins[plugin_name]}','{$ins[active]}')";
$db->query("replace into {$tpf}plugins(plugin_name,actived) values {$sqls} ;");
}
$sysmsg[] = __('plugins_inactived_success');
redirect($_SERVER['HTTP_REFERER'], $sysmsg);
break;
case 'install':
$plugin_name = trim(gpc('plugin_name', 'G', ''));
if ($plugin_name) {
include_once PD_PLUGINS_DIR . "{$plugin_name}/install.inc.php";
install_plugin();
write_file(PD_PLUGINS_DIR . "{$plugin_name}/install.lock", "PHPDISK {$plugin_name} plugin installed!");
}
$sysmsg[] = __('plugin_install_success');
redirect($_SERVER['HTTP_REFERER'], $sysmsg);
break;
case 'uninstall':
$plugin_name = trim(gpc('plugin_name', 'G', ''));
if ($plugin_name) {
include_once PD_PLUGINS_DIR . "{$plugin_name}/install.inc.php";
uninstall_plugin();
@unlink(PD_PLUGINS_DIR . "{$plugin_name}/install.lock");
$ins = array('plugin_name' => $plugin_name, 'active' => 0);
$sqls = "('{$ins[plugin_name]}','{$ins[active]}')";
$db->query("replace into {$tpf}plugins(plugin_name,actived) values {$sqls} ;");
}
示例3: check_plugins
function check_plugins(&$a)
{
/**
*
* Synchronise plugins:
*
* $a->config['system']['addon'] contains a comma-separated list of names
* of plugins/addons which are used on this system.
* 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
* 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,
* call the install procedure and add it to the database.
*
*/
$r = q("SELECT * FROM `addon` WHERE `installed` = 1");
if (count($r)) {
$installed = $r;
} else {
$installed = array();
}
$plugins = get_config('system', 'addon');
$plugins_arr = array();
if ($plugins) {
$plugins_arr = explode(',', str_replace(' ', '', $plugins));
}
$a->plugins = $plugins_arr;
$installed_arr = array();
if (count($installed)) {
foreach ($installed as $i) {
if (!in_array($i['name'], $plugins_arr)) {
uninstall_plugin($i['name']);
} else {
$installed_arr[] = $i['name'];
}
}
}
if (count($plugins_arr)) {
foreach ($plugins_arr as $p) {
if (!in_array($p, $installed_arr)) {
install_plugin($p);
}
}
}
load_hooks();
return;
}
示例4: admin_page_plugins
/**
* Plugins admin page
*
* @param App $a
* @return string
*/
function admin_page_plugins(&$a)
{
/*
* Single plugin
*/
if (\App::$argc == 3) {
$plugin = \App::$argv[2];
if (!is_file("addon/{$plugin}/{$plugin}.php")) {
notice(t("Item not found."));
return '';
}
$enabled = in_array($plugin, \App::$plugins);
$info = get_plugin_info($plugin);
$x = check_plugin_versions($info);
// disable plugins which are installed but incompatible versions
if ($enabled && !$x) {
$enabled = false;
$idz = array_search($plugin, \App::$plugins);
if ($idz !== false) {
unset(\App::$plugins[$idz]);
uninstall_plugin($plugin);
set_config("system", "addon", implode(", ", \App::$plugins));
}
}
$info['disabled'] = 1 - intval($x);
if (x($_GET, "a") && $_GET['a'] == "t") {
check_form_security_token_redirectOnErr('/admin/plugins', 'admin_plugins', 't');
// Toggle plugin status
$idx = array_search($plugin, \App::$plugins);
if ($idx !== false) {
unset(\App::$plugins[$idx]);
uninstall_plugin($plugin);
info(sprintf(t("Plugin %s disabled."), $plugin));
} else {
\App::$plugins[] = $plugin;
install_plugin($plugin);
info(sprintf(t("Plugin %s enabled."), $plugin));
}
set_config("system", "addon", implode(", ", \App::$plugins));
goaway(z_root() . '/admin/plugins');
}
// display plugin details
require_once 'library/markdown.php';
if (in_array($plugin, \App::$plugins)) {
$status = 'on';
$action = t('Disable');
} else {
$status = 'off';
$action = t('Enable');
}
$readme = null;
if (is_file("addon/{$plugin}/README.md")) {
$readme = file_get_contents("addon/{$plugin}/README.md");
$readme = Markdown($readme);
} else {
if (is_file("addon/{$plugin}/README")) {
$readme = "<pre>" . file_get_contents("addon/{$plugin}/README") . "</pre>";
}
}
$admin_form = '';
$r = q("select * from addon where plugin_admin = 1 and name = '%s' limit 1", dbesc($plugin));
if ($r) {
@(require_once "addon/{$plugin}/{$plugin}.php");
if (function_exists($plugin . '_plugin_admin')) {
$func = $plugin . '_plugin_admin';
$func($a, $admin_form);
}
}
$t = get_markup_template('admin_plugins_details.tpl');
return replace_macros($t, array('$title' => t('Administration'), '$page' => t('Plugins'), '$toggle' => t('Toggle'), '$settings' => t('Settings'), '$baseurl' => z_root(), '$plugin' => $plugin, '$status' => $status, '$action' => $action, '$info' => $info, '$str_author' => t('Author: '), '$str_maintainer' => t('Maintainer: '), '$str_minversion' => t('Minimum project version: '), '$str_maxversion' => t('Maximum project version: '), '$str_minphpversion' => t('Minimum PHP version: '), '$str_requires' => t('Requires: '), '$disabled' => t('Disabled - version incompatibility'), '$admin_form' => $admin_form, '$function' => 'plugins', '$screenshot' => '', '$readme' => $readme, '$form_security_token' => get_form_security_token('admin_plugins')));
}
/*
* List plugins
*/
$plugins = array();
$files = glob('addon/*/');
if ($files) {
foreach ($files as $file) {
if (is_dir($file)) {
list($tmp, $id) = array_map('trim', explode('/', $file));
$info = get_plugin_info($id);
$enabled = in_array($id, \App::$plugins);
$x = check_plugin_versions($info);
// disable plugins which are installed but incompatible versions
if ($enabled && !$x) {
$enabled = false;
$idz = array_search($id, \App::$plugins);
if ($idz !== false) {
unset(\App::$plugins[$idz]);
uninstall_plugin($id);
set_config("system", "addon", implode(", ", \App::$plugins));
}
}
$info['disabled'] = 1 - intval($x);
//.........这里部分代码省略.........
示例5: check_config
function check_config(&$a)
{
$build = get_config('system', 'build');
if (!x($build)) {
$build = set_config('system', 'build', DB_UPDATE_VERSION);
}
$url = get_config('system', 'url');
// if the url isn't set or the stored url is radically different
// than the currently visited url, store the current value accordingly.
// "Radically different" ignores common variations such as http vs https
// and www.example.com vs example.com.
if (!x($url) || !link_compare($url, $a->get_baseurl())) {
$url = set_config('system', 'url', $a->get_baseurl());
}
if ($build != DB_UPDATE_VERSION) {
$stored = intval($build);
$current = intval(DB_UPDATE_VERSION);
if ($stored < $current && file_exists('update.php')) {
load_config('database');
// We're reporting a different version than what is currently installed.
// Run any existing update scripts to bring the database up to current.
require_once 'update.php';
// make sure that boot.php and update.php are the same release, we might be
// updating right this very second and the correct version of the update.php
// file may not be here yet. This can happen on a very busy site.
if (DB_UPDATE_VERSION == UPDATE_VERSION) {
for ($x = $stored; $x < $current; $x++) {
if (function_exists('update_' . $x)) {
// There could be a lot of processes running or about to run.
// We want exactly one process to run the update command.
// So store the fact that we're taking responsibility
// after first checking to see if somebody else already has.
// If the update fails or times-out completely you may need to
// delete the config entry to try again.
if (get_config('database', 'update_' . $x)) {
break;
}
set_config('database', 'update_' . $x, '1');
// call the specific update
$func = 'update_' . $x;
$retval = $func();
if ($retval) {
//send the administrator an e-mail
$email_tpl = get_intltext_template("update_fail_eml.tpl");
$email_msg = replace_macros($email_tpl, array('$sitename' => $a->config['sitename'], '$siteurl' => $a->get_baseurl(), '$update' => $x, '$error' => sprintf(t('Update %s failed. See error logs.'), $x)));
$subject = sprintf(t('Update Error at %s'), $a->get_baseurl());
mail($a->config['admin_email'], $subject, $email_msg, 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n" . 'Content-type: text/plain; charset=UTF-8' . "\n" . 'Content-transfer-encoding: 8bit');
//try the logger
logger('CRITICAL: Update Failed: ' . $x);
} else {
set_config('database', 'update_' . $x, 'success');
}
}
}
set_config('system', 'build', DB_UPDATE_VERSION);
}
}
}
/**
*
* Synchronise plugins:
*
* $a->config['system']['addon'] contains a comma-separated list of names
* of plugins/addons which are used on this system.
* 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
* 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,
* call the install procedure and add it to the database.
*
*/
$r = q("SELECT * FROM `addon` WHERE `installed` = 1");
if (count($r)) {
$installed = $r;
} else {
$installed = array();
}
$plugins = get_config('system', 'addon');
$plugins_arr = array();
if ($plugins) {
$plugins_arr = explode(',', str_replace(' ', '', $plugins));
}
$a->plugins = $plugins_arr;
$installed_arr = array();
if (count($installed)) {
foreach ($installed as $i) {
if (!in_array($i['name'], $plugins_arr)) {
uninstall_plugin($i['name']);
} else {
$installed_arr[] = $i['name'];
}
}
}
if (count($plugins_arr)) {
foreach ($plugins_arr as $p) {
if (!in_array($p, $installed_arr)) {
install_plugin($p);
}
}
}
//.........这里部分代码省略.........
示例6: admin_page_plugins
/**
* Plugins admin page
*
* @param App $a
* @return string
*/
function admin_page_plugins(&$a)
{
/*
* Single plugin
*/
if ($a->argc == 3) {
$plugin = $a->argv[2];
if (!is_file("addon/{$plugin}/{$plugin}.php")) {
notice(t("Item not found."));
return '';
}
if (x($_GET, "a") && $_GET['a'] == "t") {
check_form_security_token_redirectOnErr('/admin/plugins', 'admin_plugins', 't');
// Toggle plugin status
$idx = array_search($plugin, $a->plugins);
if ($idx !== false) {
unset($a->plugins[$idx]);
uninstall_plugin($plugin);
info(sprintf(t("Plugin %s disabled."), $plugin));
} else {
$a->plugins[] = $plugin;
install_plugin($plugin);
info(sprintf(t("Plugin %s enabled."), $plugin));
}
set_config("system", "addon", implode(", ", $a->plugins));
goaway($a->get_baseurl(true) . '/admin/plugins');
}
// display plugin details
require_once 'library/markdown.php';
if (in_array($plugin, $a->plugins)) {
$status = 'on';
$action = t('Disable');
} else {
$status = 'off';
$action = t('Enable');
}
$readme = null;
if (is_file("addon/{$plugin}/README.md")) {
$readme = file_get_contents("addon/{$plugin}/README.md");
$readme = Markdown($readme);
} else {
if (is_file("addon/{$plugin}/README")) {
$readme = "<pre>" . file_get_contents("addon/{$plugin}/README") . "</pre>";
}
}
$admin_form = '';
if (is_array($a->plugins_admin) && in_array($plugin, $a->plugins_admin)) {
@(require_once "addon/{$plugin}/{$plugin}.php");
if (function_exists($plugin . '_plugin_admin')) {
$func = $plugin . '_plugin_admin';
$func($a, $admin_form);
}
}
$t = get_markup_template('admin_plugins_details.tpl');
return replace_macros($t, array('$title' => t('Administration'), '$page' => t('Plugins'), '$toggle' => t('Toggle'), '$settings' => t('Settings'), '$baseurl' => $a->get_baseurl(true), '$plugin' => $plugin, '$status' => $status, '$action' => $action, '$info' => get_plugin_info($plugin), '$str_author' => t('Author: '), '$str_maintainer' => t('Maintainer: '), '$admin_form' => $admin_form, '$function' => 'plugins', '$screenshot' => '', '$readme' => $readme, '$form_security_token' => get_form_security_token('admin_plugins')));
}
/*
* List plugins
*/
$plugins = array();
$files = glob('addon/*/');
if ($files) {
foreach ($files as $file) {
if (is_dir($file)) {
list($tmp, $id) = array_map('trim', explode('/', $file));
$info = get_plugin_info($id);
$plugins[] = array($id, in_array($id, $a->plugins) ? "on" : "off", $info);
}
}
}
$t = get_markup_template('admin_plugins.tpl');
return replace_macros($t, array('$title' => t('Administration'), '$page' => t('Plugins'), '$submit' => t('Submit'), '$baseurl' => $a->get_baseurl(true), '$function' => 'plugins', '$plugins' => $plugins, '$form_security_token' => get_form_security_token('admin_plugins')));
}
示例7: commit_saisie
public static function commit_saisie(&$tab_new_values, $session)
{
$PHP_SELF = $_SERVER['PHP_SELF'];
$return = '';
if ($session == "") {
$URL = "{$PHP_SELF}";
} else {
$URL = "{$PHP_SELF}?session={$session}";
}
$timeout = 2;
// temps d'attente pour rafraichir l'écran après l'update !
foreach ($tab_new_values as $key => $value) {
// CONTROLE gestion_conges_exceptionnels
// si désactivation les conges exceptionnels, on verif s'il y a des conges exceptionnels enregistres ! si oui : changement impossible !
if ($key == "gestion_conges_exceptionnels" && $value == "FALSE") {
$sql_abs = "SELECT ta_id, ta_libelle FROM conges_type_absence WHERE ta_type='conges_exceptionnels' ";
$ReqLog_abs = \includes\SQL::query($sql_abs);
if ($ReqLog_abs->num_rows != 0) {
$return .= '<b>' . _('config_abs_desactive_cong_excep_impossible') . '</b><br>';
$value = "TRUE";
$timeout = 5;
}
}
// CONTROLE jour_mois_limite_reliquats
// si modif de jour_mois_limite_reliquats, on verifie le format ( 0 ou jj-mm) , sinon : changement impossible !
if ($key == "jour_mois_limite_reliquats" && $value != "0") {
$t = explode("-", $value);
if (checkdate($t[1], $t[0], date("Y")) == FALSE) {
$return .= '<b>' . _('config_jour_mois_limite_reliquats_modif_impossible') . '</b><br>';
$sql_date = "SELECT conf_valeur FROM conges_config WHERE conf_nom='jour_mois_limite_reliquats' ";
$ReqLog_date = \includes\SQL::query($sql_date);
$data = $ReqLog_date->fetch_row();
$value = $data[0];
$timeout = 5;
}
}
if (preg_match("/_installed\$/", $key) && $value == "1") {
$plugin = explode("_", $key);
$plugin = $plugin[0];
install_plugin($plugin);
} elseif (preg_match("/_installed\$/", $key) && $value == "0") {
$plugin = explode("_", $key);
$plugin = $plugin[0];
uninstall_plugin($plugin);
}
if (preg_match("/_activated\$/", $key) && $value == "1") {
$plugin = explode("_", $key);
$plugin = $plugin[0];
activate_plugin($plugin);
} elseif (preg_match("/_activated\$/", $key) && $value == "0") {
$plugin = explode("_", $key);
$plugin = $plugin[0];
disable_plugin($plugin);
}
// Mise à jour
$sql2 = 'UPDATE conges_config SET conf_valeur = \'' . addslashes($value) . '\' WHERE conf_nom ="' . \includes\SQL::quote($key) . '" ';
$ReqLog2 = \includes\SQL::query($sql2);
}
$_SESSION['config'] = init_config_tab();
// on re-initialise le tableau des variables de config
// enregistrement dans les logs
$comment_log = "nouvelle configuration de php_conges ";
log_action(0, "", "", $comment_log);
$return .= '<span class="messages">' . _('form_modif_ok') . '</span><br>';
$return .= '<META HTTP-EQUIV=REFRESH CONTENT="' . $timeout . '; URL=' . $URL . '">';
return $return;
}
示例8: admin_page_plugins
function admin_page_plugins(&$a)
{
/**
* Single plugin
*/
if ($a->argc == 3) {
$plugin = $a->argv[2];
if (!is_file("addon/{$plugin}/{$plugin}.php")) {
notice(t("Item not found."));
return;
}
if (x($_GET, "a") && $_GET['a'] == "t") {
// Toggle plugin status
$idx = array_search($plugin, $a->plugins);
if ($idx !== false) {
unset($a->plugins[$idx]);
uninstall_plugin($plugin);
info(sprintf(t("Plugin %s disabled."), $plugin));
} else {
$a->plugins[] = $plugin;
install_plugin($plugin);
info(sprintf(t("Plugin %s enabled."), $plugin));
}
set_config("system", "addon", implode(", ", $a->plugins));
goaway($a->get_baseurl() . '/admin/plugins');
return;
// NOTREACHED
}
// display plugin details
require_once 'library/markdown.php';
if (in_array($plugin, $a->plugins)) {
$status = "on";
$action = t("Disable");
} else {
$status = "off";
$action = t("Enable");
}
$readme = Null;
if (is_file("addon/{$plugin}/README.md")) {
$readme = file_get_contents("addon/{$plugin}/README.md");
$readme = Markdown($readme);
} else {
if (is_file("addon/{$plugin}/README")) {
$readme = "<pre>" . file_get_contents("addon/{$plugin}/README") . "</pre>";
}
}
$admin_form = "";
if (is_array($a->plugins_admin) && in_array($plugin, $a->plugins_admin)) {
@(require_once "addon/{$plugin}/{$plugin}.php");
$func = $plugin . '_plugin_admin';
$func($a, $admin_form);
}
$t = get_markup_template("admin_plugins_details.tpl");
return replace_macros($t, array('$title' => t('Administration'), '$page' => t('Plugins'), '$toggle' => t('Toggle'), '$settings' => t('Settings'), '$baseurl' => $a->get_baseurl(), '$plugin' => $plugin, '$status' => $status, '$action' => $action, '$info' => get_plugin_info($plugin), '$admin_form' => $admin_form, '$readme' => $readme));
}
/**
* List plugins
*/
$plugins = array();
$files = glob("addon/*/");
if ($files) {
foreach ($files as $file) {
if (is_dir($file)) {
list($tmp, $id) = array_map("trim", explode("/", $file));
$info = get_plugin_info($id);
$plugins[] = array($id, in_array($id, $a->plugins) ? "on" : "off", $info);
}
}
}
$t = get_markup_template("admin_plugins.tpl");
return replace_macros($t, array('$title' => t('Administration'), '$page' => t('Plugins'), '$submit' => t('Submit'), '$baseurl' => $a->get_baseurl(), '$plugins' => $plugins));
}
示例9: hs_s2installurl
function hs_s2installurl()
{
if ($_POST['wpfresh_installplugin'] == 'checked') {
$url = $_POST['s2_url'];
$newurls = explode(',', $url);
//echo ABSPATH.'wp-admin/includes/class-wp-upgrader.php';
/** Load WordPress Bootstrap
require_once( dirname( dirname( __FILE__ ) ) . '/wp-load.php' );*/
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
/*require_once( ABSPATH . 'wp-includes/wp-db.php' );*/
for ($i = 0; $i < count($newurls); $i++) {
install_plugin($newurls[$i]);
}
echo "done14";
}
die;
}
示例10: install_basic_plugins
/**
* Install basic plugins.
*
* This gets called separately on fresh installs.
*
* {@internal
* NOTE: this won't call the "AfterInstall" method on the plugin nor install its DB schema.
* This get done in the plugins controller, on manually installing a plugin.
*
* If you change the plugins here, please also adjust {@link InstallUnitTestCase::basic_plugins}.
* }}
*
* @param integer Old DB version, so that only new plugins gets installed
*/
function install_basic_plugins($old_db_version = 0)
{
/**
* @var Plugins_admin
*/
global $Plugins_admin, $test_install_all_features;
$Plugins_admin =& get_Plugins_admin();
// Create global $Plugins instance, which is required during installation of basic plugins,
// not only for the ones getting installed, but also during e.g. count_regs(), which instantiates
// each plugin (which may then use (User)Settings in PluginInit (through Plugin::__get)).
$GLOBALS['Plugins'] =& $Plugins_admin;
if ($old_db_version < 9100) {
// Toolbars:
install_plugin('quicktags_plugin');
// Renderers:
install_plugin('auto_p_plugin');
install_plugin('autolinks_plugin');
install_plugin('texturize_plugin');
// SkinTags:
install_plugin('calendar_plugin');
install_plugin('archives_plugin');
}
if ($old_db_version < 9290) {
if ($test_install_all_features) {
install_plugin('smilies_plugin');
}
install_plugin('videoplug_plugin');
}
if ($old_db_version < 9330) {
// Upgrade to 1.9-beta
install_plugin('ping_b2evonet_plugin');
install_plugin('ping_pingomatic_plugin');
}
if ($old_db_version < 9930) {
// Upgrade to 3.1.0
install_plugin('tinymce_plugin');
}
if ($old_db_version < 9940) {
// Upgrade to 3.2.0
install_plugin('twitter_plugin');
}
if ($old_db_version < 10300) {
// Upgrade to 5.0.0
install_plugin('flowplayer_plugin');
if ($test_install_all_features) {
install_plugin('google_maps_plugin');
}
}
if ($old_db_version < 11000) {
// Upgrade to 5.0.0-alpha-4
if ($test_install_all_features) {
$captcha_qstn_plugin_settings = array('questions' => T_('What is the color of the sky? blue|grey|gray|dark') . "\r\n" . T_('What animal is Bugs Bunny? rabbit|a rabbit') . "\r\n" . T_('What color is a carrot? orange|yellow') . "\r\n" . T_('What color is a tomato? red'));
} else {
$captcha_qstn_plugin_settings = array();
}
install_plugin('captcha_qstn_plugin', true, $captcha_qstn_plugin_settings);
}
if ($old_db_version < 11100) {
// Upgrade to 5.0.0-alpha-5
// antispam
install_plugin('basic_antispam_plugin');
install_plugin('geoip_plugin');
// files
install_plugin('html5_mediaelementjs_plugin');
install_plugin('html5_videojs_plugin');
install_plugin('watermark_plugin', $test_install_all_features);
// ping
install_plugin('generic_ping_plugin');
// rendering
install_plugin('escapecode_plugin');
install_plugin('bbcode_plugin', $test_install_all_features);
install_plugin('star_plugin', $test_install_all_features);
install_plugin('prism_plugin', $test_install_all_features);
install_plugin('code_highlight_plugin', $test_install_all_features);
install_plugin('gmcode_plugin');
install_plugin('wacko_plugin');
install_plugin('wikilinks_plugin');
install_plugin('wikitables_plugin');
install_plugin('markdown_plugin');
install_plugin('infodots_plugin', $test_install_all_features);
install_plugin('widescroll_plugin');
// widget
install_plugin('facebook_plugin');
install_plugin('whosonline_plugin');
// Unclassified
install_plugin('bookmarklet_plugin');
//.........这里部分代码省略.........
示例11: admin_page_plugins
/**
* Plugins admin page
*
* @param App $a
* @return string
*/
function admin_page_plugins(&$a)
{
/*
* Single plugin
*/
if (App::$argc == 3) {
$plugin = App::$argv[2];
if (!is_file("addon/{$plugin}/{$plugin}.php")) {
notice(t("Item not found."));
return '';
}
$enabled = in_array($plugin, App::$plugins);
$info = get_plugin_info($plugin);
$x = check_plugin_versions($info);
// disable plugins which are installed but incompatible versions
if ($enabled && !$x) {
$enabled = false;
$idz = array_search($plugin, App::$plugins);
if ($idz !== false) {
unset(App::$plugins[$idz]);
uninstall_plugin($plugin);
set_config("system", "addon", implode(", ", App::$plugins));
}
}
$info['disabled'] = 1 - intval($x);
if (x($_GET, "a") && $_GET['a'] == "t") {
check_form_security_token_redirectOnErr('/admin/plugins', 'admin_plugins', 't');
// Toggle plugin status
$idx = array_search($plugin, App::$plugins);
if ($idx !== false) {
unset(App::$plugins[$idx]);
uninstall_plugin($plugin);
info(sprintf(t("Plugin %s disabled."), $plugin));
} else {
App::$plugins[] = $plugin;
install_plugin($plugin);
info(sprintf(t("Plugin %s enabled."), $plugin));
}
set_config("system", "addon", implode(", ", App::$plugins));
goaway(z_root() . '/admin/plugins');
}
// display plugin details
require_once 'library/markdown.php';
if (in_array($plugin, App::$plugins)) {
$status = 'on';
$action = t('Disable');
} else {
$status = 'off';
$action = t('Enable');
}
$readme = null;
if (is_file("addon/{$plugin}/README.md")) {
$readme = file_get_contents("addon/{$plugin}/README.md");
$readme = Markdown($readme);
} else {
if (is_file("addon/{$plugin}/README")) {
$readme = "<pre>" . file_get_contents("addon/{$plugin}/README") . "</pre>";
}
}
$admin_form = '';
$r = q("select * from addon where plugin_admin = 1 and name = '%s' limit 1", dbesc($plugin));
if ($r) {
@(require_once "addon/{$plugin}/{$plugin}.php");
if (function_exists($plugin . '_plugin_admin')) {
$func = $plugin . '_plugin_admin';
$func($a, $admin_form);
}
}
$t = get_markup_template('admin_plugins_details.tpl');
return replace_macros($t, array('$title' => t('Administration'), '$page' => t('Plugins'), '$toggle' => t('Toggle'), '$settings' => t('Settings'), '$baseurl' => z_root(), '$plugin' => $plugin, '$status' => $status, '$action' => $action, '$info' => $info, '$str_author' => t('Author: '), '$str_maintainer' => t('Maintainer: '), '$str_minversion' => t('Minimum project version: '), '$str_maxversion' => t('Maximum project version: '), '$str_minphpversion' => t('Minimum PHP version: '), '$str_requires' => t('Requires: '), '$disabled' => t('Disabled - version incompatibility'), '$admin_form' => $admin_form, '$function' => 'plugins', '$screenshot' => '', '$readme' => $readme, '$form_security_token' => get_form_security_token('admin_plugins')));
}
/*
* List plugins
*/
$plugins = array();
$files = glob('addon/*/');
if ($files) {
foreach ($files as $file) {
if (is_dir($file)) {
list($tmp, $id) = array_map('trim', explode('/', $file));
$info = get_plugin_info($id);
$enabled = in_array($id, App::$plugins);
$x = check_plugin_versions($info);
// disable plugins which are installed but incompatible versions
if ($enabled && !$x) {
$enabled = false;
$idz = array_search($id, App::$plugins);
if ($idz !== false) {
unset(App::$plugins[$idz]);
uninstall_plugin($id);
set_config("system", "addon", implode(", ", App::$plugins));
}
}
$info['disabled'] = 1 - intval($x);
//.........这里部分代码省略.........