Skip to content
Code-Schnipsel Gruppen Projekte
getPluginData.php 1,15 KiB
Newer Older
/**
 * 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;
Henning Leutz's avatar
Henning Leutz committed
    }