manager = $manager; $this->addInstanceId($instance_id, $configuration); } /** * {@inheritdoc} */ protected function initializePlugin($instance_id) { $this->set($instance_id, $this->manager->createInstance($instance_id, $this->configuration)); } /** * {@inheritdoc} */ public function getConfiguration() { $plugin = $this->get($this->instanceId); if (PluginHelper::isConfigurable($plugin)) { return $plugin->getConfiguration(); } else { return $this->configuration; } } /** * {@inheritdoc} */ public function setConfiguration($configuration) { $this->configuration = $configuration; $plugin = $this->get($this->instanceId); if (PluginHelper::isConfigurable($plugin)) { $plugin->setConfiguration($configuration); } return $this; } /** * {@inheritdoc} */ public function addInstanceId($id, $configuration = NULL) { $this->instanceId = $id; // Reset the list of instance IDs since there can be only one. $this->instanceIds = []; parent::addInstanceId($id, $configuration); if ($configuration !== NULL) { $this->setConfiguration($configuration); } } }