Skip to content
Code-Schnipsel Gruppen Projekte
getPluginData.php 1,15 KiB
Newer Older
  • Learn to ignore specific revisions
  • /**
     * Retrieves data about the active plugins
     *
     * Returnformat:
     * array(
     *  'plugins' => array('plugin1','plugin2','plugin3'...),
     *  'pluginpath' => 'path/to/plugins'
     * )
     */
    
    
    Henning Leutz's avatar
    Henning Leutz committed
    use QUI\Cache\Manager;
    
    
    QUI::$Ajax->registerFunction(
        'package_quiqqer_ckeditor4_ajax_getPluginData',
        function () {
    
    Florian Bogner's avatar
    Florian Bogner committed
            if (QUI::getUserBySession()->getId() === 0) {
    
                throw new \QUI\Exception("Invalid external function call. Caller must be logged in!");
            }
    
    
    Henning Leutz's avatar
    Henning Leutz committed
                return Manager::get("quiqqer/ckeditor/plugins/data");
            } catch (Exception) {
    
            $Manager = new \QUI\Ckeditor\Plugins\Manager();
    
            // Build the web reachable path for the plugin directory
            $pluginPath = QUI::getPackage("quiqqer/ckeditor4")->getVarDir() . "plugins";
    
    Henning Leutz's avatar
    Henning Leutz committed
            $varParent = dirname(VAR_DIR);
    
    
            # Parse the URL directory
            $pluginUrlPath = str_replace($varParent, "", $pluginPath);
    
    Henning Leutz's avatar
    Henning Leutz committed
            $data = [
                'plugins' => $Manager->getActivePlugins(),
    
                'pluginPath' => $pluginUrlPath
    
    Henning Leutz's avatar
    Henning Leutz committed
            ];
    
    Henning Leutz's avatar
    Henning Leutz committed
            Manager::set("quiqqer/ckeditor/plugins/data", $data);
    
            return $data;