Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\search\Plugin;
|
Chris@0
|
4
|
Chris@0
|
5 use Drupal\Core\Plugin\DefaultSingleLazyPluginCollection;
|
Chris@0
|
6 use Drupal\Component\Plugin\PluginManagerInterface;
|
Chris@0
|
7
|
Chris@0
|
8 /**
|
Chris@0
|
9 * Provides a container for lazily loading search plugins.
|
Chris@0
|
10 */
|
Chris@0
|
11 class SearchPluginCollection extends DefaultSingleLazyPluginCollection {
|
Chris@0
|
12
|
Chris@0
|
13 /**
|
Chris@0
|
14 * The unique ID for the search page using this plugin collection.
|
Chris@0
|
15 *
|
Chris@0
|
16 * @var string
|
Chris@0
|
17 */
|
Chris@0
|
18 protected $searchPageId;
|
Chris@0
|
19
|
Chris@0
|
20 /**
|
Chris@0
|
21 * Constructs a new SearchPluginCollection.
|
Chris@0
|
22 *
|
Chris@0
|
23 * @param \Drupal\Component\Plugin\PluginManagerInterface $manager
|
Chris@0
|
24 * The manager to be used for instantiating plugins.
|
Chris@0
|
25 * @param string $instance_id
|
Chris@0
|
26 * The ID of the plugin instance.
|
Chris@0
|
27 * @param array $configuration
|
Chris@0
|
28 * An array of configuration.
|
Chris@0
|
29 * @param string $search_page_id
|
Chris@0
|
30 * The unique ID of the search page using this plugin.
|
Chris@0
|
31 */
|
Chris@0
|
32 public function __construct(PluginManagerInterface $manager, $instance_id, array $configuration, $search_page_id) {
|
Chris@0
|
33 parent::__construct($manager, $instance_id, $configuration);
|
Chris@0
|
34
|
Chris@0
|
35 $this->searchPageId = $search_page_id;
|
Chris@0
|
36 }
|
Chris@0
|
37
|
Chris@0
|
38 /**
|
Chris@0
|
39 * {@inheritdoc}
|
Chris@0
|
40 *
|
Chris@0
|
41 * @return \Drupal\search\Plugin\SearchInterface
|
Chris@0
|
42 */
|
Chris@0
|
43 public function &get($instance_id) {
|
Chris@0
|
44 return parent::get($instance_id);
|
Chris@0
|
45 }
|
Chris@0
|
46
|
Chris@0
|
47 /**
|
Chris@0
|
48 * {@inheritdoc}
|
Chris@0
|
49 */
|
Chris@0
|
50 protected function initializePlugin($instance_id) {
|
Chris@0
|
51 parent::initializePlugin($instance_id);
|
Chris@0
|
52
|
Chris@0
|
53 $plugin_instance = $this->pluginInstances[$instance_id];
|
Chris@0
|
54 if ($plugin_instance instanceof ConfigurableSearchPluginInterface) {
|
Chris@0
|
55 $plugin_instance->setSearchPageId($this->searchPageId);
|
Chris@0
|
56 }
|
Chris@0
|
57 }
|
Chris@0
|
58
|
Chris@0
|
59 }
|