/** * Generic factory for first order media subcomponents * @param string $name * @return mixed */ public function createComponent($name) { $nsClassName = 'Bubo\\Media\\Components\\' . ucfirst($name); if (class_exists($nsClassName)) { return new $nsClassName($this, $name); } return parent::createComponent($name); }
/** * Generic factory for popup forms * @param string $name * @return mixed */ public function createComponent($name) { if (preg_match('([a-zA-Z0-9]+Form)', $name)) { // detect section $classname = "Bubo\\Media\\Components\\Content\\PopUp\\" . ucfirst($name); if (class_exists($classname)) { $form = new $classname($this, $name); //$section->setTranslator($this->presenter->context->translator); return $form; } } return parent::createComponent($name); }
/** * Factory method for all context menus * * @param type $name * @return classname */ public function createComponent($name) { if (preg_match('#([a-zA-Z0-9]+ContextMenu)_([^_]+)_([^_]+)#', $name, $matches)) { $className = $matches[1]; $menuSelector = $matches[2]; $snippetName = $matches[3]; $classname = "ContextMenu\\" . ucfirst($className); if (class_exists($classname)) { $contextMenu = new $classname($this, $name, $menuSelector, $snippetName); return $contextMenu; } } else { return parent::createComponent($name); } }