/**
  * Enrich the available plugin dependency data
  *
  * @param  array $plugins
  * @return array
  */
 public static function add_known_dependencies($plugins)
 {
     if (method_exists('Plugin_Dependencies', 'data_safe_plugin_merge')) {
         return Plugin_Dependencies::data_safe_plugin_merge($plugins, self::$list);
     } else {
         return self::data_safe_plugin_merge($plugins, self::$list);
     }
 }
 private function generate_dep_list($deps, $unsatisfied = array(), $unsatisfied_network = array())
 {
     $all_plugins = get_plugins();
     $dep_list = '';
     foreach ($deps as $dep) {
         $plugin_ids = Plugin_Dependencies::get_providers($dep);
         if (in_array($dep, $unsatisfied)) {
             $class = 'unsatisfied';
         } elseif (in_array($dep, $unsatisfied_network)) {
             $class = 'unsatisfied_network';
         } else {
             $class = 'satisfied';
         }
         if (empty($plugin_ids)) {
             $name = html('span', esc_html($dep));
         } else {
             $list = array();
             foreach ($plugin_ids as $plugin_id) {
                 $name = isset($all_plugins[$plugin_id]['Name']) ? $all_plugins[$plugin_id]['Name'] : $plugin_id;
                 $list[] = html('a', array('href' => '#' . sanitize_title($name)), $name);
             }
             $name = implode(' or ', $list);
         }
         $dep_list .= html('li', compact('class'), $name);
     }
     return html('ul', array('class' => 'dep-list'), $dep_list);
 }