Pimcore\ExtensionManager::getPluginConfigs PHP Method

getPluginConfigs() public static method

public static getPluginConfigs ( ) : Array
return Array $pluginConfigs
    public static function getPluginConfigs()
    {
        $pluginConfigs = [];
        if (is_dir(PIMCORE_PLUGINS_PATH) && is_readable(PIMCORE_PLUGINS_PATH)) {
            $pluginDirs = scandir(PIMCORE_PLUGINS_PATH);
            if (is_array($pluginDirs)) {
                foreach ($pluginDirs as $d) {
                    if ($d != "." and $d != ".." and is_dir(PIMCORE_PLUGINS_PATH . "//" . $d)) {
                        if (file_exists(PIMCORE_PLUGINS_PATH . "/" . $d . "/plugin.xml")) {
                            try {
                                $pluginConf = new \Zend_Config_Xml(PIMCORE_PLUGINS_PATH . "/" . $d . "/plugin.xml");
                                if ($pluginConf != null) {
                                    $pluginConfigs[] = $pluginConf->toArray();
                                }
                            } catch (\Exception $e) {
                                Logger::error("Unable to initialize plugin with ID: " . $d);
                                Logger::error($e);
                            }
                        }
                    }
                }
            }
        }
        return $pluginConfigs;
    }

Usage Example

Example #1
0
 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));
 }
All Usage Examples Of Pimcore\ExtensionManager::getPluginConfigs