$pkg_cache_file_time) { $pkg_info = get_pkg_info('all', array("noembedded", "name", "category", "website", "version", "status", "descr", "maintainer", "required_version", "maximum_version", "pkginfolink", "config_file")); //create cache file after get_pkg_info if($pkg_info) { $fout = fopen("{$g['tmp_path']}/pkg_info.cache", "w"); fwrite($fout, serialize($pkg_info)); fclose($fout); //$pkg_sizes = get_pkg_sizes(); } else { $using_cache = true; if(file_exists("{$g['tmp_path']}/pkg_info.cache")) { $savemsg = sprintf(gettext("Unable to retrieve package info from %s. Cached data will be used."), $xmlrpc_base_url); $pkg_info = unserialize(@file_get_contents("{$g['tmp_path']}/pkg_info.cache")); } else { $savemsg = sprintf(gettext('Unable to communicate with %1$s. Please verify DNS and interface configuration, and that %2$s has functional Internet connectivity.'), $xmlrpc_base_url, $g['product_name']); } } } else { $pkg_info = unserialize(@file_get_contents("{$g['tmp_path']}/pkg_info.cache")); } if (! empty($_GET)) if (isset($_GET['ver'])) $requested_version = htmlspecialchars($_GET['ver']); $pgtitle = array(gettext("System"),gettext("Package Manager")); include("head.inc"); /* Print package server mismatch warning. See https://redmine.pfsense.org/issues/484 */ if (!verify_all_package_servers()) print_info_box(package_server_mismatch_message()); /* Print package server SSL warning. See https://redmine.pfsense.org/issues/484 */ if (check_package_server_ssl() === false) print_info_box(package_server_ssl_failure_message()); if ($savemsg) print_info_box($savemsg); $version = rtrim(file_get_contents("/etc/version")); $tab_array = array(); $tab_array[] = array(gettext("Available Packages"), $requested_version <> "" ? false : true, "pkg_mgr.php"); $tab_array[] = array(gettext("Installed Packages"), false, "pkg_mgr_installed.php"); display_top_tabs($tab_array); $version = rtrim(file_get_contents("/etc/version")); if($pkg_info) { $pkg_keys = array_keys($pkg_info); natcasesort($pkg_keys); //Check categories $categories=array(); if(is_array($pkg_keys)) { foreach($pkg_keys as $key) { $categories[$pkg_info[$key]['category']]++; } } ksort($categories); $cm_count=0; $tab_array = array(); $visible_categories=array(); $categories_min_count=($g['pkg_categories_min_count'] ? $g['pkg_categories_min_count'] : 3); $categories_max_display=($g['pkg_categories_max_display'] ? $g['pkg_categories_max_display'] : 6); /* check selected category or define default category to show */ if (isset($_REQUEST['category'])) $menu_category = $_REQUEST['category']; else if (isset($g['pkg_default_category'])) $menu_category = $g['pkg_default_category']; else $menu_category = "All"; $menu_category = (isset($_REQUEST['category']) ? $_REQUEST['category'] : "All"); $show_category = ($menu_category == "Other" || $menu_category == "All"); $tab_array[] = array(gettext("All"), $menu_category=="All" ? true : false, "pkg_mgr.php?category=All"); foreach ($categories as $category => $c_count) { if ($c_count >= $categories_min_count && $cm_count <= $categories_max_display) { $tab_array[] = array(gettext($category) , $menu_category==$category ? true : false, "pkg_mgr.php?category={$category}"); $visible_categories[]=$category; $cm_count++; } } $tab_array[] = array(gettext("Other Categories"), $menu_category=="Other" ? true : false, "pkg_mgr.php?category=Other"); if (count($categories) > 1) display_top_tabs($tab_array); } if(!$pkg_info || !is_array($pkg_keys)):?>
= 0 ) continue; continue; /* get history/changelog git dir */ $commit_dir=explode("/",$index['config_file']); $changeloglink = "https://github.com/pfsense/pfsense-packages/commits/master/config/"; if ($commit_dir[(count($commit_dir)-2)] == "config") $changeloglink .= $commit_dir[(count($commit_dir)-1)]; else $changeloglink .= $commit_dir[(count($commit_dir)-2)]; if ($menu_category != "All" && $index['category'] != $menu_category && !($menu_category == "Other" && !in_array($index['category'], $visible_categories))) continue; ?>
" target="_blank" href=""> " href=""> " href="pkg_mgr_install.php?id=" class="btn btn-success">install " href="" class="btn btn-default">info