Vergleich admin/modules/config/plugins.php - 1.8.1 - 1.8.39

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 44Zeile 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 67Zeile 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 89Zeile 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 99Zeile 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&amp;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&amp;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 126Zeile 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 173Zeile 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?action=browse&category=plugins\" 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?action=browse&category=plugins\" 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&amp;action=browse{$keywords}&amp;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&amp;action=browse{$keywords}&amp;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 207Zeile 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 225Zeile 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 293Zeile 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&amp;action=check",

	$sub_tabs['update_plugins'] = array(
'title' => $lang->plugin_updates,
'link' => "index.php?module=config-plugins&amp;action=check",

Zeile 348Zeile 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 378Zeile 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 404Zeile 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 431Zeile 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 455Zeile 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 481Zeile 501
		'link' => "index.php?module=config-plugins&amp;action=browse",
'description' => $lang->browse_plugins_desc
);

		'link' => "index.php?module=config-plugins&amp;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 511Zeile 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 553Zeile 579
		{
build_plugin_list($i_plugins);
}

		{
build_plugin_list($i_plugins);
}





		$table->output($lang->inactive_plugin);
}
else

		$table->output($lang->inactive_plugin);
}
else

Zeile 572Zeile 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 593Zeile 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>";
}