Esempio n. 1
0
    /**
     * Internal setup.
     *
     * @throws LogicException If plugin is not named correctly.
     *
     * @return void
     */
    private function _setup()
    {
        $this->className = get_class($this);
        $this->serviceId = PluginUtil::getServiceId($this->className);
        $this->baseDir = dirname($this->getReflection()->getFileName());

        // Split class name into parts - commented in if statement below.
        $p = explode('_', $this->className);

        if (strpos($this->serviceId, 'moduleplugin') === 0) {
            // ModulePlugin_{ModuleName}_{PluginName}_Plugin
            // $p[1] = ModuleName, $p[2] = PluginName
            $this->moduleName = $p[1];
            $this->pluginName = $p[2];
            $this->pluginType = self::TYPE_MODULE;
            $this->domain = ZLanguage::getModulePluginDomain($this->moduleName, $this->pluginName);
            ZLanguage::bindModulePluginDomain($this->moduleName, $this->pluginName);
        } elseif (strpos($this->serviceId, 'systemplugin') === 0) {
            // SystemPlugin_{PluginName}_Plugin
            // $p[1] = ModuleName
            $this->moduleName = 'zikula';
            $this->pluginName = $p[1];
            $this->pluginType = self::TYPE_SYSTEM;
            $this->domain = ZLanguage::getSystemPluginDomain($this->moduleName, $this->pluginName);
            ZLanguage::bindSystemPluginDomain($this->pluginName);
        } else {
            throw new LogicException(sprintf('This class %s does not appear to be named correctly.  System plugins should be named {SystemPlugin}_{Name}_Plugin, module plugins should be named {ModulePlugin}_{ModuleName}_{PluginName}_Plugin.', $this->className));
        }

        $this->meta = $this->getMeta();
    }