/** * 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(); }