49 $this->class_loader = include
"Services/GlobalScreen/artifacts/global_screen_providers.php";
54 if (!is_array($this->plugin_provider_collections)) {
55 $this->plugin_provider_collections = [];
56 foreach (ilPluginAdmin::getGlobalScreenProviderCollections() as $collection) {
57 $this->plugin_provider_collections[] = $collection;
70 $this->all_providers[get_class($item)] = $item;
82 $this->
appendCore($providers, StaticMainMenuProvider::class);
86 foreach ($this->plugin_provider_collections as $collection) {
87 $provider = $collection->getMainBarProvider();
89 $providers[] = $provider;
105 $this->
appendCore($providers, StaticMetaBarProvider::class);
109 foreach ($this->plugin_provider_collections as $collection) {
110 $provider = $collection->getMetaBarProvider();
112 $providers[] = $provider;
128 $this->
appendCore($providers, DynamicToolProvider::class);
132 foreach ($this->plugin_provider_collections as $collection) {
133 $provider = $collection->getToolProvider();
135 $providers[] = $provider;
151 $this->
appendCore($providers, ModificationProvider::class);
155 foreach ($this->plugin_provider_collections as $collection) {
156 $provider = $collection->getModificationProvider();
158 $providers[] = $provider;
172 $this->
appendCore($providers, NotificationProvider::class);
176 foreach ($this->plugin_provider_collections as $collection) {
177 $provider = $collection->getNotificationProvider();
179 $providers[] = $provider;
192 private function appendPlugins(array &$array_of_core_providers,
string $interface) : void
195 static $plugin_providers;
199 foreach ($plugin_providers as $provider) {
200 if (is_a($provider, $interface)) {
201 $array_of_core_providers[] = $provider;
210 private function appendCore(array &$array_of_providers,
string $interface) : void
212 foreach ($this->class_loader[$interface] as $class_name) {
215 $array_of_providers[] =
new $class_name($this->dic);
237 throw new \LogicException(
"the GlobalScreen-Provider $class_name is not available");
240 return $this->all_providers[$class_name];
249 return class_exists($class_name) && $class_name !== ilPluginGlobalScreenNullProvider::class;
260 return isset($this->all_providers[$class_name]);
Class ilGSProviderFactory.
$main_menu_item_information
static getAllGlobalScreenProviders()
isRegistered(string $class_name)
$plugin_provider_collections
Customizing of pimple-DIC for ILIAS.
appendPlugins(array &$array_of_core_providers, string $interface)
getNotificationsProvider()
__construct(Container $dic)
Interface ProviderFactory.
registerInternal(array $providers)
isInstanceCreationPossible(string $class_name)
getModificationProvider()
getProviderByClassName(string $class_name)
appendCore(array &$array_of_providers, string $interface)
getMainBarItemInformation()