public static void Reload(this PluginScriptRegistry registry, IPluginEngine pluginEngine)
        {
            registry.Clear();

            foreach (PluginContainer pluginContainer in pluginEngine.GetInstalledAndEnabledPlugins())
                pluginContainer.RegisterScripts(registry);
        }
Example #2
0
        public static void RegisterScripts(this PluginContainer pluginContainer, PluginScriptRegistry registry)
        {
            ScriptList scripts = new ScriptList();

            pluginContainer.ExecuteMethod("RegisterScripts", scripts);

            scripts.ForEach(s => registry.Add(pluginContainer.Tag as Plugin, s.Url, psc => s.PageCondition(new ScriptContext(psc))));
        }
Example #3
0
 public PluginService(IPluginRepository repository, IValidationService validator, IPluginEngine pluginEngine, IModulesLoaded modules, PluginTemplateRegistry pluginTemplateRegistry, PluginStyleRegistry pluginStyleRegistry, PluginScriptRegistry pluginScriptRegistry, OxiteContext context)
 {
     this.repository             = repository;
     this.validator              = validator;
     this.pluginEngine           = pluginEngine;
     this.cache                  = modules.GetModules <IOxiteCacheModule>().Reverse().First();
     this.modules                = modules;
     this.pluginTemplateRegistry = pluginTemplateRegistry;
     this.pluginStyleRegistry    = pluginStyleRegistry;
     this.pluginScriptRegistry   = pluginScriptRegistry;
     this.context                = context;
 }
Example #4
0
        public void Initialize()
        {
            ISiteService           siteService            = container.Resolve <ISiteService>();
            IPluginEngine          pluginEngine           = container.Resolve <IPluginEngine>();
            PluginTemplateRegistry pluginTemplateRegistry = container.Resolve <PluginTemplateRegistry>();
            RouteCollection        routes = container.Resolve <RouteCollection>();
            PluginScriptRegistry   pluginScriptRegistry = container.Resolve <PluginScriptRegistry>();
            PluginStyleRegistry    pluginStyleRegistry  = container.Resolve <PluginStyleRegistry>();

            pluginEngine.AutoInitializePlugins = false;

            // load dynamically compiled assemblies
            pluginEngine.LoadAssembliesFromCodeFiles("~" + siteService.GetSite().PluginsPath);

            // load plugins that are in assemblies
            pluginEngine.LoadPlugins();

            // initialize plugins that are installed
            foreach (Plugin plugin in container.Resolve <IPluginService>().GetPlugins())
            {
                PluginContainer pluginContainer = pluginEngine.GetPlugin(plugin);

                if (pluginContainer != null)
                {
                    plugin.Container    = pluginContainer;
                    pluginContainer.Tag = plugin;

                    if (pluginContainer.IsLoaded)
                    {
                        pluginContainer.ApplyProperties(plugin.ExtendedProperties);
                        pluginContainer.Initialize();

                        if (plugin.Enabled)
                        {
                            pluginContainer.RegisterTemplates(pluginTemplateRegistry);
                            pluginContainer.RegisterRoutes(routes);
                            pluginContainer.RegisterScripts(pluginScriptRegistry);
                            pluginContainer.RegisterStyles(pluginStyleRegistry);
                        }
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(plugin.VirtualPath))
                    {
                        pluginContainer = new PluginContainer(new PluginAssemblyContainer(plugin.VirtualPath, (Assembly)null), new PluginFileNotFoundException(plugin.VirtualPath));
                    }

                    if (pluginContainer != null)
                    {
                        plugin.Container    = pluginContainer;
                        pluginContainer.Tag = plugin;

                        pluginEngine.AddPlugin(pluginContainer);
                    }
                }
            }

            container.RegisterInstance(pluginStyleRegistry);
            container.RegisterInstance(pluginScriptRegistry);
            container.RegisterInstance(pluginTemplateRegistry);
            container.RegisterInstance(pluginEngine);
        }
 public PluginTemplateFilter(PluginTemplateRegistry pluginTemplateRegistry, PluginScriptRegistry pluginScriptRegistry, PluginStyleRegistry pluginStyleRegistry)
 {
     this.pluginTemplateRegistry = pluginTemplateRegistry;
     this.pluginScriptRegistry   = pluginScriptRegistry;
     this.pluginStyleRegistry    = pluginStyleRegistry;
 }