public function getExtensionsAction()
{
$configurations = array();
// plugins
$pluginConfigs = ExtensionManager::getPluginConfigs();
foreach ($pluginConfigs as $config) {
$className = $config["plugin"]["pluginClassName"];
$updateable = false;
$revisionFile = PIMCORE_PLUGINS_PATH . "/" . $config["plugin"]["pluginName"] . "/.pimcore_extension_revision";
if (is_file($revisionFile)) {
$updateable = true;
}
if (!empty($className)) {
$isEnabled = ExtensionManager::isEnabled("plugin", $config["plugin"]["pluginName"]);
$plugin = array("id" => $config["plugin"]["pluginName"], "type" => "plugin", "name" => $config["plugin"]["pluginNiceName"], "description" => $config["plugin"]["pluginDescription"], "installed" => $isEnabled ? $className::isInstalled() : null, "active" => $isEnabled, "configuration" => $config["plugin"]["pluginIframeSrc"], "updateable" => $updateable, "version" => $config["plugin"]["pluginVersion"]);
if ($config["plugin"]["pluginXmlEditorFile"] && is_readable(PIMCORE_DOCUMENT_ROOT . $config["plugin"]["pluginXmlEditorFile"])) {
$plugin['xmlEditorFile'] = $config["plugin"]["pluginXmlEditorFile"];
}
$configurations[] = $plugin;
}
}
// bricks
$brickConfigs = ExtensionManager::getBrickConfigs();
// get repo state of bricks
foreach ($brickConfigs as $id => $config) {
$updateable = false;
$revisionFile = PIMCORE_WEBSITE_VAR . "/areas/" . $id . "/.pimcore_extension_revision";
if (is_file($revisionFile)) {
$updateable = true;
}
$isEnabled = ExtensionManager::isEnabled("brick", $id);
$brick = array("id" => $id, "type" => "brick", "name" => $config->name, "description" => $config->description, "installed" => true, "active" => $isEnabled, "updateable" => $updateable, "version" => $config->version);
$configurations[] = $brick;
}
$this->_helper->json(array("extensions" => $configurations));
}