/**
  * Process plugin data for table row
  * 
  * @param strng $a_type
  * @param ilPluginSlot $a_slot
  * @param string $a_slot_subdir
  * @param array $a_plugin
  * @return array
  */
 protected function gatherPluginData($a_type, ilPluginSlot $a_slot, $a_slot_subdir, array $a_plugin)
 {
     global $ilCtrl;
     $conf = false;
     if (ilPlugin::hasConfigureClass($a_slot->getPluginsDirectory(), $a_plugin["name"]) && $ilCtrl->checkTargetClass(ilPlugin::getConfigureClassName($a_plugin["name"]))) {
         $conf = true;
     }
     return array("slot_name" => $a_slot->getSlotName(), "component_type" => $a_type, "component_name" => $a_slot_subdir, "slot_id" => $a_slot->getSlotId(), "plugin_id" => $a_plugin["id"], "plugin_name" => $a_plugin["name"], "plugin_active" => $a_plugin["is_active"], "activation_possible" => $a_plugin["activation_possible"], "needs_update" => $a_plugin["needs_update"], "has_conf" => $conf, "has_lang" => (bool) sizeof(ilPlugin::getAvailableLangFiles($a_slot->getPluginsDirectory() . "/" . $a_plugin["name"] . "/lang")));
 }
 /**
  * Get pages for list.
  */
 function getComponents()
 {
     include_once "./Services/Component/classes/class.ilModule.php";
     $modules = ilModule::getAvailableCoreModules();
     $slots = array();
     foreach ($modules as $m) {
         $plugin_slots = ilComponent::lookupPluginSlots(IL_COMP_MODULE, $m["subdir"]);
         foreach ($plugin_slots as $ps) {
             $plugins = array();
             include_once "./Services/Component/classes/class.ilPluginSlot.php";
             $slot = new ilPluginSlot(IL_COMP_MODULE, $m["subdir"], $ps["id"]);
             foreach ($slot->getPluginsInformation() as $p) {
                 $plugins[] = $p;
             }
             if (count($plugins) > 0) {
                 $slots[] = array("slot_name" => $slot->getSlotName(), "component_type" => IL_COMP_MODULE, "component_name" => $m["subdir"], "slot_id" => $ps["id"], "plugins" => $plugins);
             }
         }
     }
     include_once "./Services/Component/classes/class.ilService.php";
     $services = ilService::getAvailableCoreServices();
     foreach ($services as $s) {
         $plugin_slots = ilComponent::lookupPluginSlots(IL_COMP_SERVICE, $s["subdir"]);
         foreach ($plugin_slots as $ps) {
             $plugins = array();
             $slot = new ilPluginSlot(IL_COMP_SERVICE, $s["subdir"], $ps["id"]);
             foreach ($slot->getPluginsInformation() as $p) {
                 $plugins[] = $p;
             }
             if (count($plugins) > 0) {
                 $slots[] = array("slot_name" => $slot->getSlotName(), "component_type" => IL_COMP_SERVICE, "component_name" => $s["subdir"], "slot_id" => $ps["id"], "plugins" => $plugins);
             }
         }
     }
     $this->setData($slots);
     //include_once("./Services/Component/classes/class.ilService.php");
     //$services = ilService::getAvailableCoreServices();
 }