/**
* returns available plugins
*
* @service plugin read
* @param $fields
*/
public function load(Gpf_Rpc_Params $params)
{
$availablePlugins = Gpf_Plugins_Engine::getInstance()->getAvailablePlugins();
if ($params->exists("type")) {
$type = $params->get("type");
} else {
$type = Gpf_Plugins_Definition::PLUGIN_TYPE_NORMAL;
}
$response = new Gpf_Data_RecordSet();
$response->addColumn(Gpf_Plugins_Definition::CODE);
$response->addColumn(Gpf_Plugins_Definition::NAME);
$response->addColumn(Gpf_Plugins_Definition::URL);
$response->addColumn(Gpf_Plugins_Definition::DESCRIPTION);
$response->addColumn(Gpf_Plugins_Definition::VERSION);
$response->addColumn(Gpf_Plugins_Definition::AUTHOR);
$response->addColumn(Gpf_Plugins_Definition::AUTHOR_URL);
$response->addColumn(Gpf_Plugins_Definition::ACTIVE);
$response->addColumn(Gpf_Plugins_Definition::HELP);
$response->addColumn(Gpf_Plugins_Definition::CONFIG_CLASS_NAME);
foreach ($availablePlugins as $plugin) {
if ($plugin->getPluginType() == $type) {
$response->addRecord($plugin->toRecord($response));
}
}
$response = $this->setActivePlugins($response);
return $response;
}