Zeile 44 | Zeile 44 |
---|
$page->output_nav_tabs($sub_tabs, 'browse_plugins');
// Process search requests
|
$page->output_nav_tabs($sub_tabs, 'browse_plugins');
// Process search requests
|
require_once MYBB_ROOT."inc/class_xml.php";
| |
$keywords = "";
|
$keywords = "";
|
if($mybb->input['keywords'])
| if($mybb->get_input('keywords'))
|
{ $keywords = "&keywords=".urlencode($mybb->input['keywords']); }
|
{ $keywords = "&keywords=".urlencode($mybb->input['keywords']); }
|
if($mybb->input['page'])
| if($mybb->get_input('page'))
|
{
|
{
|
$url_page = "&page=".$mybb->get_input('page', 1);
| $url_page = "&page=".$mybb->get_input('page', MyBB::INPUT_INT);
|
} else {
| } else {
|
Zeile 67 | Zeile 65 |
---|
// Convert to mods site version codes $search_version = ($major_version_code/100).'x';
|
// Convert to mods site version codes $search_version = ($major_version_code/100).'x';
|
$contents = fetch_remote_file("http://community.mybb.com/xmlbrowse.php?type=plugins&version={$search_version}{$keywords}{$url_page}", $post_data);
| $contents = fetch_remote_file("https://community.mybb.com/xmlbrowse.php?api=2&type=plugins&version={$search_version}{$keywords}{$url_page}");
|
if(!$contents)
|
if(!$contents)
|
{ $page->output_inline_error($lang->error_communication_problem); $page->output_footer();
| { $page->output_inline_error($lang->error_communication_problem); $page->output_footer();
|
exit; }
$table = new Table; $table->construct_header($lang->plugin); $table->construct_header($lang->latest_version, array("class" => "align_center", 'width' => 125));
|
exit; }
$table = new Table; $table->construct_header($lang->plugin); $table->construct_header($lang->latest_version, array("class" => "align_center", 'width' => 125));
|
$table->construct_header($lang->controls, array("class" => "align_center", 'width' => 125));
$parser = new XMLParser($contents);
| $table->construct_header($lang->controls, array("class" => "align_center", 'width' => 125));
$parser = create_xml_parser($contents);
|
$tree = $parser->get_tree();
if(!is_array($tree) || !isset($tree['results']))
| $tree = $parser->get_tree();
if(!is_array($tree) || !isset($tree['results']))
|
Zeile 89 | Zeile 87 |
---|
$page->output_inline_error($lang->error_communication_problem); $page->output_footer(); exit;
|
$page->output_inline_error($lang->error_communication_problem); $page->output_footer(); exit;
|
}
| }
|
if(!empty($tree['results']['result'])) {
| if(!empty($tree['results']['result'])) {
|
Zeile 99 | Zeile 97 |
---|
unset($tree['results']['result']); $tree['results']['result'][0] = $only_plugin; }
|
unset($tree['results']['result']); $tree['results']['result'][0] = $only_plugin; }
|
| require_once MYBB_ROOT . '/inc/class_parser.php'; $post_parser = new postParser();
|
foreach($tree['results']['result'] as $result) {
|
foreach($tree['results']['result'] as $result) {
|
$table->construct_cell("<strong>{$result['name']['value']}</strong><br /><small>{$result['description']['value']}</small><br /><i><small>{$lang->created_by} {$result['author']['value']}</small></i>");
| $result['name']['value'] = htmlspecialchars_uni($result['name']['value']); $result['description']['value'] = htmlspecialchars_uni($result['description']['value']); $result['author']['url']['value'] = htmlspecialchars_uni($result['author']['url']['value']); $result['author']['name']['value'] = htmlspecialchars_uni($result['author']['name']['value']); $result['version']['value'] = htmlspecialchars_uni($result['version']['value']); $result['download_url']['value'] = htmlspecialchars_uni(html_entity_decode($result['download_url']['value']));
$table->construct_cell("<strong>{$result['name']['value']}</strong><br /><small>{$result['description']['value']}</small><br /><i><small>{$lang->created_by} <a href=\"{$result['author']['url']['value']}\" target=\"_blank\" rel=\"noopener\">{$result['author']['name']['value']}</a></small></i>");
|
$table->construct_cell($result['version']['value'], array("class" => "align_center"));
|
$table->construct_cell($result['version']['value'], array("class" => "align_center"));
|
$table->construct_cell("<strong><a href=\"http://community.mybb.com/{$result['download_url']['value']}\" target=\"_blank\">{$lang->download}</a></strong>", array("class" => "align_center"));
| $table->construct_cell("<strong><a href=\"https://community.mybb.com/{$result['download_url']['value']}\" target=\"_blank\" rel=\"noopener\">{$lang->download}</a></strong>", array("class" => "align_center"));
|
$table->construct_row(); } }
|
$table->construct_row(); } }
|
| $no_results = false;
|
if($table->num_rows() == 0) { $table->construct_cell($lang->error_no_results_found, array("colspan" => 3));
|
if($table->num_rows() == 0) { $table->construct_cell($lang->error_no_results_found, array("colspan" => 3));
|
$table->construct_row(); }
| $table->construct_row(); $no_results = true; }
|
$search = new Form("index.php?module=config-plugins&action=browse", 'post', 'search_form'); echo "<div style=\"padding-bottom: 3px; margin-top: -9px; text-align: right;\">";
|
$search = new Form("index.php?module=config-plugins&action=browse", 'post', 'search_form'); echo "<div style=\"padding-bottom: 3px; margin-top: -9px; text-align: right;\">";
|
if($mybb->input['keywords'])
| if($mybb->get_input('keywords'))
|
{ $default_class = ''; $value = htmlspecialchars_uni($mybb->input['keywords']);
| { $default_class = ''; $value = htmlspecialchars_uni($mybb->input['keywords']);
|
Zeile 126 | Zeile 136 |
---|
{ $default_class = "search_default"; $value = $lang->search_for_plugins;
|
{ $default_class = "search_default"; $value = $lang->search_for_plugins;
|
}
| }
|
echo $search->generate_text_box('keywords', $value, array('id' => 'search_keywords', 'class' => "{$default_class} field150 field_small"))."\n"; echo "<input type=\"submit\" class=\"search_button\" value=\"{$lang->search}\" />\n"; echo "<script type=\"text/javascript\"> var form = $(\"#search_form\");
|
echo $search->generate_text_box('keywords', $value, array('id' => 'search_keywords', 'class' => "{$default_class} field150 field_small"))."\n"; echo "<input type=\"submit\" class=\"search_button\" value=\"{$lang->search}\" />\n"; echo "<script type=\"text/javascript\"> var form = $(\"#search_form\");
|
form.submit(function()
| form.on('submit', function()
|
{ var search = $(\"#search_keywords\"); if(search.val() == '' || search.val() == '{$lang->search_for_plugins}') {
|
{ var search = $(\"#search_keywords\"); if(search.val() == '' || search.val() == '{$lang->search_for_plugins}') {
|
search.focus();
| search.trigger('focus');
|
return false; } });
var search = $(\"#search_keywords\");
|
return false; } });
var search = $(\"#search_keywords\");
|
search.focus(function()
| search.on('focus', function()
|
{ var searched_focus = $(this); if(searched_focus.val() == '{$lang->search_for_plugins}') { searched_focus.removeClass(\"search_default\"); searched_focus.val(\"\");
|
{ var searched_focus = $(this); if(searched_focus.val() == '{$lang->search_for_plugins}') { searched_focus.removeClass(\"search_default\"); searched_focus.val(\"\");
|
} });
search.blur(function()
| } }).on('blur', function()
|
{ var searched_blur = $(this); if(searched_blur.val() == \"\")
| { var searched_blur = $(this); if(searched_blur.val() == \"\")
|
Zeile 173 | Zeile 181 |
---|
// Recommended plugins = Default; Otherwise search results & pagination if($mybb->request_method == "post")
|
// Recommended plugins = Default; Otherwise search results & pagination if($mybb->request_method == "post")
|
{ $table->output("<span style=\"float: right;\"><small><a href=\"http://community.mybb.com/mods.php\" target=\"_blank\">{$lang->browse_all_plugins}</a></small></span>".$lang->sprintf($lang->browse_results_for_mybb, $mybb->version)); } else { $table->output("<span style=\"float: right;\"><small><a href=\"http://community.mybb.com/mods.php\" target=\"_blank\">{$lang->browse_all_plugins}</a></small></span>".$lang->sprintf($lang->recommended_plugins_for_mybb, $mybb->version)); }
echo "<br />".draw_admin_pagination($mybb->input['page'], 15, $tree['results']['attributes']['total'], "index.php?module=config-plugins&action=browse{$keywords}&page={page}");
$page->output_footer(); }
| { $table->output("<span style=\"float: right;\"><small><a href=\"https://community.mybb.com/mods.php?action=browse&category=plugins\" target=\"_blank\" rel=\"noopener\">{$lang->browse_all_plugins}</a></small></span>".$lang->sprintf($lang->browse_results_for_mybb, $mybb->version)); } else { $table->output("<span style=\"float: right;\"><small><a href=\"https://community.mybb.com/mods.php?action=browse&category=plugins\" target=\"_blank\" rel=\"noopener\">{$lang->browse_all_plugins}</a></small></span>".$lang->sprintf($lang->recommended_plugins_for_mybb, $mybb->version)); }
if(!$no_results) { echo "<br />".draw_admin_pagination($mybb->input['page'], 15, $tree['results']['attributes']['total'], "index.php?module=config-plugins&action=browse{$keywords}&page={page}"); }
$page->output_footer(); }
|
if($mybb->input['action'] == "check") { $plugins_list = get_plugins_list();
| if($mybb->input['action'] == "check") { $plugins_list = get_plugins_list();
|
Zeile 207 | Zeile 218 |
---|
continue; } $plugininfo = $infofunc();
|
continue; } $plugininfo = $infofunc();
|
$plugininfo['guid'] = trim($plugininfo['guid']); $plugininfo['codename'] = trim($plugininfo['codename']);
| $plugininfo['guid'] = isset($plugininfo['guid']) ? trim($plugininfo['guid']) : null; $plugininfo['codename'] = isset($plugininfo['codename']) ? trim($plugininfo['codename']) : null;
|
if($plugininfo['codename'] != "") {
| if($plugininfo['codename'] != "") {
|
Zeile 225 | Zeile 236 |
---|
}
if(empty($info))
|
}
if(empty($info))
|
{
| {
|
flash_message($lang->error_vcheck_no_supported_plugins, 'error'); admin_redirect("index.php?module=config-plugins"); }
|
flash_message($lang->error_vcheck_no_supported_plugins, 'error'); admin_redirect("index.php?module=config-plugins"); }
|
$url = "http://community.mybb.com/version_check.php?";
| $url = "https://community.mybb.com/version_check.php?";
|
$url .= http_build_query(array("info" => $info))."&";
|
$url .= http_build_query(array("info" => $info))."&";
|
require_once MYBB_ROOT."inc/class_xml.php"; $contents = fetch_remote_file($url);
| $contents = fetch_remote_file($url);
|
if(!$contents) { flash_message($lang->error_vcheck_communications_problem, 'error'); admin_redirect("index.php?module=config-plugins"); }
|
if(!$contents) { flash_message($lang->error_vcheck_communications_problem, 'error'); admin_redirect("index.php?module=config-plugins"); }
|
$parser = new XMLParser($contents);
| $contents = trim($contents);
$parser = create_xml_parser($contents);
|
$tree = $parser->get_tree();
if(!is_array($tree) || !isset($tree['plugins']))
| $tree = $parser->get_tree();
if(!is_array($tree) || !isset($tree['plugins']))
|
Zeile 293 | Zeile 305 |
---|
if(version_compare($names[$plugin['attributes'][$compare_by]]['version'], $plugin['version']['value'], "<")) {
|
if(version_compare($names[$plugin['attributes'][$compare_by]]['version'], $plugin['version']['value'], "<")) {
|
if($is_vulnerable)
| $plugin['download_url']['value'] = htmlspecialchars_uni($plugin['download_url']['value']); $plugin['version']['value'] = htmlspecialchars_uni($plugin['version']['value']);
if(isset($plugin['vulnerable']['value'])) { $plugin['vulnerable']['value'] = htmlspecialchars_uni($plugin['vulnerable']['value']); }
if($is_vulnerable)
|
{ $table->construct_cell("<div class=\"error\" id=\"flash_message\"> {$lang->error_vcheck_vulnerable} {$names[$plugin['attributes'][$compare_by]]['name']} </div> <p> <b>{$lang->error_vcheck_vulnerable_notes}</b> <br /><br /> {$plugin['vulnerable']['value']}</p>");
|
{ $table->construct_cell("<div class=\"error\" id=\"flash_message\"> {$lang->error_vcheck_vulnerable} {$names[$plugin['attributes'][$compare_by]]['name']} </div> <p> <b>{$lang->error_vcheck_vulnerable_notes}</b> <br /><br /> {$plugin['vulnerable']['value']}</p>");
|
} else { $table->construct_cell("<strong>{$names[$plugin['attributes'][$compare_by]]['name']}</strong>");
| } else { $table->construct_cell("<strong>{$names[$plugin['attributes'][$compare_by]]['name']}</strong>");
|
} $table->construct_cell("{$names[$plugin['attributes'][$compare_by]]['version']}", array("class" => "align_center")); $table->construct_cell("<strong><span style=\"color: #C00\">{$plugin['version']['value']}</span></strong>", array("class" => "align_center")); if($is_vulnerable) { $table->construct_cell("<a href=\"index.php?module=config-plugins\"><b>{$lang->deactivate}</b></a>", array("class" => "align_center", "width" => 150));
|
} $table->construct_cell("{$names[$plugin['attributes'][$compare_by]]['version']}", array("class" => "align_center")); $table->construct_cell("<strong><span style=\"color: #C00\">{$plugin['version']['value']}</span></strong>", array("class" => "align_center")); if($is_vulnerable) { $table->construct_cell("<a href=\"index.php?module=config-plugins\"><b>{$lang->deactivate}</b></a>", array("class" => "align_center", "width" => 150));
|
} else { $table->construct_cell("<strong><a href=\"http://community.mybb.com/{$plugin['download_url']['value']}\" target=\"_blank\">{$lang->download}</a></strong>", array("class" => "align_center")); } $table->construct_row(); } }
| } else { $table->construct_cell("<strong><a href=\"https://community.mybb.com/{$plugin['download_url']['value']}\" target=\"_blank\" rel=\"noopener\">{$lang->download}</a></strong>", array("class" => "align_center")); } $table->construct_row(); } }
|
if($table->num_rows() == 0) { flash_message($lang->success_plugins_up_to_date, 'success');
|
if($table->num_rows() == 0) { flash_message($lang->success_plugins_up_to_date, 'success');
|
admin_redirect("index.php?module=config-plugins"); }
$page->add_breadcrumb_item($lang->plugin_updates);
| admin_redirect("index.php?module=config-plugins"); }
$page->add_breadcrumb_item($lang->plugin_updates);
|
$page->output_header($lang->plugin_updates);
$sub_tabs['plugins'] = array( 'title' => $lang->plugins, 'link' => "index.php?module=config-plugins",
|
$page->output_header($lang->plugin_updates);
$sub_tabs['plugins'] = array( 'title' => $lang->plugins, 'link' => "index.php?module=config-plugins",
|
);
| );
|
$sub_tabs['update_plugins'] = array( 'title' => $lang->plugin_updates, 'link' => "index.php?module=config-plugins&action=check",
| $sub_tabs['update_plugins'] = array( 'title' => $lang->plugin_updates, 'link' => "index.php?module=config-plugins&action=check",
|
Zeile 348 | Zeile 368 |
---|
$page->output_nav_tabs($sub_tabs, 'update_plugins');
$table->output($lang->plugin_updates);
|
$page->output_nav_tabs($sub_tabs, 'update_plugins');
$table->output($lang->plugin_updates);
|
|
|
$page->output_footer(); }
// Activates or deactivates a specific plugin if($mybb->input['action'] == "activate" || $mybb->input['action'] == "deactivate") {
|
$page->output_footer(); }
// Activates or deactivates a specific plugin if($mybb->input['action'] == "activate" || $mybb->input['action'] == "deactivate") {
|
if(!verify_post_check($mybb->input['my_post_key']))
| if(!verify_post_check($mybb->get_input('my_post_key')))
|
{ flash_message($lang->invalid_post_verify_key2, 'error'); admin_redirect("index.php?module=config-plugins");
| { flash_message($lang->invalid_post_verify_key2, 'error'); admin_redirect("index.php?module=config-plugins");
|
Zeile 378 | Zeile 398 |
---|
if(!file_exists(MYBB_ROOT."inc/plugins/$file")) { flash_message($lang->error_invalid_plugin, 'error');
|
if(!file_exists(MYBB_ROOT."inc/plugins/$file")) { flash_message($lang->error_invalid_plugin, 'error');
|
admin_redirect("index.php?module=config-plugins"); }
| admin_redirect("index.php?module=config-plugins"); }
|
$plugins_cache = $cache->read("plugins");
|
$plugins_cache = $cache->read("plugins");
|
$active_plugins = $plugins_cache['active'];
| $active_plugins = isset($plugins_cache['active']) ? $plugins_cache['active'] : array();
|
require_once MYBB_ROOT."inc/plugins/$file";
$installed_func = "{$codename}_is_installed"; $installed = true; if(function_exists($installed_func) && $installed_func() != true)
|
require_once MYBB_ROOT."inc/plugins/$file";
$installed_func = "{$codename}_is_installed"; $installed = true; if(function_exists($installed_func) && $installed_func() != true)
|
{
| {
|
$installed = false; }
| $installed = false; }
|
Zeile 404 | Zeile 424 |
---|
{ flash_message($lang->sprintf($lang->plugin_incompatible, $mybb->version), 'error'); admin_redirect("index.php?module=config-plugins");
|
{ flash_message($lang->sprintf($lang->plugin_incompatible, $mybb->version), 'error'); admin_redirect("index.php?module=config-plugins");
|
}
| }
|
// If not installed and there is a custom installation function if($installed == false && function_exists("{$codename}_install")) { call_user_func("{$codename}_install"); $message = $lang->success_plugin_installed;
|
// If not installed and there is a custom installation function if($installed == false && function_exists("{$codename}_install")) { call_user_func("{$codename}_install"); $message = $lang->success_plugin_installed;
|
$install_uninstall = true; }
| $install_uninstall = true; }
|
if(function_exists("{$codename}_activate")) {
| if(function_exists("{$codename}_activate")) {
|
Zeile 431 | Zeile 451 |
---|
call_user_func("{$codename}_deactivate"); }
|
call_user_func("{$codename}_deactivate"); }
|
if($mybb->input['uninstall'] == 1 && function_exists("{$codename}_uninstall"))
| if($mybb->get_input('uninstall') == 1 && function_exists("{$codename}_uninstall"))
|
{ call_user_func("{$codename}_uninstall"); $message = $lang->success_plugin_uninstalled; $install_uninstall = true; }
|
{ call_user_func("{$codename}_uninstall"); $message = $lang->success_plugin_uninstalled; $install_uninstall = true; }
|
|
|
unset($active_plugins[$codename]); }
// Update plugin cache $plugins_cache['active'] = $active_plugins; $cache->update("plugins", $plugins_cache);
|
unset($active_plugins[$codename]); }
// Update plugin cache $plugins_cache['active'] = $active_plugins; $cache->update("plugins", $plugins_cache);
|
|
|
// Log admin action log_admin_action($codename, $install_uninstall);
| // Log admin action log_admin_action($codename, $install_uninstall);
|
Zeile 455 | Zeile 475 |
---|
else { $plugins->run_hooks("admin_config_plugins_deactivate_commit");
|
else { $plugins->run_hooks("admin_config_plugins_deactivate_commit");
|
}
| }
|
flash_message($message, 'success'); admin_redirect("index.php?module=config-plugins"); }
|
flash_message($message, 'success'); admin_redirect("index.php?module=config-plugins"); }
|
|
|
if(!$mybb->input['action']) { $page->output_header($lang->plugins);
| if(!$mybb->input['action']) { $page->output_header($lang->plugins);
|
Zeile 481 | Zeile 501 |
---|
'link' => "index.php?module=config-plugins&action=browse", 'description' => $lang->browse_plugins_desc );
|
'link' => "index.php?module=config-plugins&action=browse", 'description' => $lang->browse_plugins_desc );
|
|
|
$page->output_nav_tabs($sub_tabs, 'plugins');
// Let's make things easier for our user - show them active // and inactive plugins in different lists $plugins_cache = $cache->read("plugins");
|
$page->output_nav_tabs($sub_tabs, 'plugins');
// Let's make things easier for our user - show them active // and inactive plugins in different lists $plugins_cache = $cache->read("plugins");
|
$active_plugins = $plugins_cache['active'];
| $active_plugins = array(); if(!empty($plugins_cache['active'])) { $active_plugins = $plugins_cache['active']; }
|
$plugins_list = get_plugins_list();
| $plugins_list = get_plugins_list();
|
Zeile 511 | Zeile 535 |
---|
$plugininfo = $infofunc(); $plugininfo['codename'] = $codename;
|
$plugininfo = $infofunc(); $plugininfo['codename'] = $codename;
|
if($active_plugins[$codename])
| if(isset($active_plugins[$codename]))
|
{ // This is an active plugin $plugininfo['is_active'] = 1;
$a_plugins[] = $plugininfo;
|
{ // This is an active plugin $plugininfo['is_active'] = 1;
$a_plugins[] = $plugininfo;
|
continue;
| |
}
|
}
|
// Either installed and not active or completely inactive $i_plugins[] = $plugininfo; }
$table = new Table; $table->construct_header($lang->plugin);
| else { // Either installed and not active or completely inactive $plugininfo['is_active'] = 0; $i_plugins[] = $plugininfo; } }
$table = new Table; $table->construct_header($lang->plugin);
|
$table->construct_header($lang->controls, array("colspan" => 2, "class" => "align_center", "width" => 300));
if(empty($a_plugins)) { $table->construct_cell($lang->no_active_plugins, array('colspan' => 3));
|
$table->construct_header($lang->controls, array("colspan" => 2, "class" => "align_center", "width" => 300));
if(empty($a_plugins)) { $table->construct_cell($lang->no_active_plugins, array('colspan' => 3));
|
$table->construct_row(); }
| $table->construct_row(); }
|
else { build_plugin_list($a_plugins);
|
else { build_plugin_list($a_plugins);
|
}
$table->output($lang->active_plugin);
| }
$table->output($lang->active_plugin);
|
$table = new Table; $table->construct_header($lang->plugin); $table->construct_header($lang->controls, array("colspan" => 2, "class" => "align_center", "width" => 300));
| $table = new Table; $table->construct_header($lang->plugin); $table->construct_header($lang->controls, array("colspan" => 2, "class" => "align_center", "width" => 300));
|
Zeile 553 | Zeile 579 |
---|
{ build_plugin_list($i_plugins); }
|
{ build_plugin_list($i_plugins); }
|
|
|
$table->output($lang->inactive_plugin); } else
| $table->output($lang->inactive_plugin); } else
|
Zeile 572 | Zeile 598 |
---|
$page->output_footer(); }
|
$page->output_footer(); }
|
| /** * @return array */
|
function get_plugins_list() {
|
function get_plugins_list() {
|
| $plugins_list = array();
|
// Get a list of the plugin files which exist in the plugins directory $dir = @opendir(MYBB_ROOT."inc/plugins/"); if($dir)
| // Get a list of the plugin files which exist in the plugins directory $dir = @opendir(MYBB_ROOT."inc/plugins/"); if($dir)
|
Zeile 593 | Zeile 624 |
---|
return $plugins_list; }
|
return $plugins_list; }
|
| /** * @param array $plugin_list */
|
function build_plugin_list($plugin_list) { global $lang, $mybb, $plugins, $table;
foreach($plugin_list as $plugininfo) {
|
function build_plugin_list($plugin_list) { global $lang, $mybb, $plugins, $table;
foreach($plugin_list as $plugininfo) {
|
if($plugininfo['website'])
| if(!empty($plugininfo['website']))
|
{ $plugininfo['name'] = "<a href=\"".$plugininfo['website']."\">".$plugininfo['name']."</a>"; }
|
{ $plugininfo['name'] = "<a href=\"".$plugininfo['website']."\">".$plugininfo['name']."</a>"; }
|
if($plugininfo['authorsite'])
| if(!empty($plugininfo['authorsite']))
|
{ $plugininfo['author'] = "<a href=\"".$plugininfo['authorsite']."\">".$plugininfo['author']."</a>"; }
| { $plugininfo['author'] = "<a href=\"".$plugininfo['authorsite']."\">".$plugininfo['author']."</a>"; }
|