/**
  * Loads the menu items from modules and plugins
  * @return void
  */
 protected function loadItems()
 {
     /*
      * Load module items
      */
     foreach ($this->callbacks as $callback) {
         $callback($this);
     }
     /*
      * Load plugin items
      */
     $plugins = $this->pluginManager->getPlugins();
     foreach ($plugins as $id => $plugin) {
         $items = $plugin->registerNavigation();
         if (!is_array($items)) {
             continue;
         }
         $this->registerMenuItems($id, $items);
     }
     /*
      * Extensibility
      */
     Event::fire('backend.menu.extendItems', [$this]);
     /*
      * Sort menu items
      */
     uasort($this->items, function ($a, $b) {
         return $a->order - $b->order;
     });
     /*
      * Filter items user lacks permission for
      */
     $user = BackendAuth::getUser();
     $this->items = $this->filterItemPermissions($user, $this->items);
     foreach ($this->items as $item) {
         if (!$item->sideMenu || !count($item->sideMenu)) {
             continue;
         }
         /*
          * Apply incremental default orders
          */
         $orderCount = 0;
         foreach ($item->sideMenu as $sideMenuItem) {
             if ($sideMenuItem->order !== -1) {
                 continue;
             }
             $sideMenuItem->order = $orderCount += 100;
         }
         /*
          * Sort side menu items
          */
         uasort($item->sideMenu, function ($a, $b) {
             return $a->order - $b->order;
         });
         /*
          * Filter items user lacks permission for
          */
         $item->sideMenu = $this->filterItemPermissions($user, $item->sideMenu);
     }
 }
 protected function loadExtensions()
 {
     /*
      * Load module items
      */
     foreach ($this->callbacks as $callback) {
         $callback($this);
     }
     /*
      * Load plugin items
      */
     $plugins = $this->pluginManager->getPlugins();
     foreach ($plugins as $id => $plugin) {
         $items = $plugin->registerMarkupTags();
         if (!is_array($items)) {
             continue;
         }
         foreach ($items as $type => $definitions) {
             if (!is_array($definitions)) {
                 continue;
             }
             $this->registerExtensions($type, $definitions);
         }
     }
 }
 public function boot()
 {
     $this->manager = PluginManager::instance();
     // Get paths we need
     $theme = Theme::getActiveTheme();
     $themePath = $theme->getPath();
     $pluginPath = dirname(__FILE__);
     $providerPath = $themePath . '/Plugin.php';
     // Load your theme's Theme.php file as a service provider
     if (File::exists($providerPath)) {
         // Use reflection to find out info about Plugin.php
         $info = new Classes\ClassInfo($providerPath);
         if (ltrim($info->extends, '\\') == "NSRosenqvist\\ThemesPlus\\Classes\\ThemesPlusBase") {
             // Activate the theme plugin
             $plugin = $this->manager->loadPlugin($info->namespace, $themePath);
             $identifier = $this->manager->getIdentifier($plugin);
             $definitionsFile = $pluginPath . '/composer/definitions.php';
             $this->manager->registerPlugin($plugin);
             $this->manager->bootPlugin($plugin);
             // See if we need to generate a new composer psr-4 definitions file
             if (Settings::get('definitions_generated_for') != $identifier || !File::exists($definitionsFile)) {
                 File::put($definitionsFile, $this->makeDefinitionFile($info->namespace, $themePath));
                 Settings::set('definitions_generated_for', $identifier);
             }
             // Add theme to autoload through our definitions file
             ComposerManager::instance()->autoload($pluginPath);
         }
     }
     // dd(\Composer\Autoload\ClassLoader::findFile('MyCompany\\MyTheme\\Classes\\Radical'));
     // dd(ComposerManager::instance());
 }
Exemple #4
0
 /**
  * Returns a list of registered report widgets.
  * @return array Array keys are class names.
  */
 public function listReportWidgets()
 {
     if ($this->reportWidgets === null) {
         $this->reportWidgets = [];
         /*
          * Load module widgets
          */
         foreach ($this->reportWidgetCallbacks as $callback) {
             $callback($this);
         }
         /*
          * Load plugin widgets
          */
         $plugins = $this->pluginManager->getPlugins();
         foreach ($plugins as $plugin) {
             if (!is_array($widgets = $plugin->registerReportWidgets())) {
                 continue;
             }
             foreach ($widgets as $className => $widgetInfo) {
                 $this->registerReportWidget($className, $widgetInfo);
             }
         }
     }
     return $this->reportWidgets;
 }
Exemple #5
0
 public function boot()
 {
     Event::listen('backend.form.extendFields', function ($form) {
         if ($form->model instanceof Backend\Models\BackendPreferences) {
             $form->addFields(['focus_searchfield' => ['label' => 'indikator.backend::lang.settings.search_label', 'type' => 'switch', 'span' => 'left', 'default' => 'false', 'comment' => 'indikator.backend::lang.settings.search_comment'], 'sidebar_description' => ['label' => 'indikator.backend::lang.settings.sidebar_label', 'type' => 'switch', 'span' => 'right', 'default' => 'false', 'comment' => 'indikator.backend::lang.settings.sidebar_comment'], 'rounded_avatar' => ['label' => 'indikator.backend::lang.settings.avatar_label', 'type' => 'switch', 'span' => 'left', 'default' => 'false', 'comment' => 'indikator.backend::lang.settings.avatar_comment'], 'virtual_keyboard' => ['label' => 'indikator.backend::lang.settings.keyboard_label', 'type' => 'switch', 'span' => 'right', 'default' => 'false', 'comment' => 'indikator.backend::lang.settings.keyboard_comment'], 'media_menu' => ['label' => 'indikator.backend::lang.settings.media_label', 'type' => 'switch', 'span' => 'left', 'default' => 'false', 'comment' => 'indikator.backend::lang.settings.media_comment'], 'more_themes' => ['label' => 'indikator.backend::lang.settings.themes_label', 'type' => 'switch', 'span' => 'right', 'default' => 'false', 'comment' => 'indikator.backend::lang.settings.themes_comment']]);
         }
     });
     BackendController::extend(function ($controller) {
         if (BackendAuth::check()) {
             $preferences = UserPreferences::forUser()->get('backend::backend.preferences');
             if (isset($preferences['focus_searchfield']) && $preferences['focus_searchfield']) {
                 $controller->addJs('/plugins/indikator/backend/assets/js/setting-search.js');
             }
             if (isset($preferences['rounded_avatar']) && $preferences['rounded_avatar']) {
                 $controller->addCss('/plugins/indikator/backend/assets/css/rounded-avatar.css');
             }
             if (isset($preferences['virtual_keyboard']) && $preferences['virtual_keyboard']) {
                 $controller->addCss('/plugins/indikator/backend/assets/css/ml-keyboard.css');
                 $controller->addJs('/plugins/indikator/backend/assets/js/ml-keyboard.js');
             }
             if (isset($preferences['media_menu']) && $preferences['media_menu']) {
                 if (PluginManager::instance()->exists('RainLab.Pages')) {
                     $controller->addCss('/plugins/indikator/backend/assets/css/media-menu-pages.css');
                 } else {
                     $controller->addCss('/plugins/indikator/backend/assets/css/media-menu.css');
                 }
             }
             if (isset($preferences['more_themes']) && $preferences['more_themes']) {
                 $controller->addJs('/plugins/indikator/backend/assets/js/setting-theme.js');
             }
         }
     });
     BackendMenu::registerContextSidenavPartial('October.System', 'system', '~/plugins/indikator/backend/partials/_system_sidebar.htm');
 }
Exemple #6
0
 /**
  * Execute the console command.
  * @return void
  */
 public function fire()
 {
     $pluginManager = PluginManager::instance();
     $pluginName = $this->argument('name');
     $pluginName = $pluginManager->normalizeIdentifier($pluginName);
     if (!$pluginManager->hasPlugin($pluginName)) {
         return $this->error(sprintf('Unable to find a registered plugin called "%s"', $pluginName));
     }
     if (!$this->confirmToProceed(sprintf('This will DELETE "%s" from the filesystem and database.', $pluginName))) {
         return;
     }
     /*
      * Rollback plugin
      */
     $manager = UpdateManager::instance()->resetNotes();
     $manager->rollbackPlugin($pluginName);
     foreach ($manager->getNotes() as $note) {
         $this->output->writeln($note);
     }
     /*
      * Delete from file system
      */
     if ($pluginPath = $pluginManager->getPluginPath($pluginName)) {
         File::deleteDirectory($pluginPath);
         $this->output->writeln(sprintf('<info>Deleted: %s</info>', $pluginName));
     }
 }
Exemple #7
0
 /**
  * Register our data source and renderer
  */
 public function register()
 {
     /**
      * Set up the data source for the feed
      */
     $this->app->bind('KoderHut\\RssFeedster\\DataSource', function ($app) {
         $config['page'] = Settings::get('post_page');
         $config['comments_anchor'] = Settings::get('comments_anchor');
         $config['controller'] = new Controller();
         return new PostsSource($config);
     });
     /**
      * Set up the adapter interface between the XML renderer and
      * the blog posts data
      */
     $this->app->bind(IAdapter::DI_NAMESPACE, function () {
         return new BlogPostXmlAdapter();
     });
     /**
      * Set up the feed renderer
      */
     $this->app->bind('KoderHut\\RssFeedster\\Renderer', function ($app) {
         $config = ['description' => Settings::get('feed_description'), 'title' => Settings::get('feed_title'), 'category' => Settings::get('feed_category'), 'copyright' => Settings::get('feed_copyright'), 'language' => Settings::get('feed_language'), 'link' => Url::action('KoderHut\\RssFeedster\\Controllers\\Rss@buildRssFeed')];
         $pluginPath = PluginManager::instance()->getPluginPath(Plugin::KODERHUT_RSSFEEDSTER_NS);
         $xmlTemplate = $pluginPath . DIRECTORY_SEPARATOR . 'resources' . DIRECTORY_SEPARATOR . 'feed-template.xml';
         return new XmlRenderer($config, file_get_contents($xmlTemplate), $this->app->make(IAdapter::DI_NAMESPACE));
     });
     return;
 }
Exemple #8
0
 /**
  * After the model is populated
  */
 public function afterFetch()
 {
     /*
      * Override the database columns with the plugin details
      * found in the plugin registration file.
      */
     $manager = PluginManager::instance();
     $pluginObj = $manager->findByIdentifier($this->code);
     if ($pluginObj) {
         $pluginInfo = $pluginObj->pluginDetails();
         foreach ($pluginInfo as $attribute => $info) {
             $this->{$attribute} = Lang::get($info);
         }
         if ($this->is_disabled) {
             $manager->disablePlugin($this->code, true);
         } else {
             $manager->enablePlugin($this->code, true);
         }
         $this->disabledBySystem = $pluginObj->disabled;
         if (($configDisabled = Config::get('cms.disablePlugins')) && is_array($configDisabled)) {
             $this->disabledByConfig = in_array($this->code, $configDisabled);
         }
     } else {
         $this->name = $this->code;
         $this->description = Lang::get('system::lang.plugins.unknown_plugin');
         $this->orphaned = true;
     }
 }
 /**
  * Load the available activities that are defined by plugins
  */
 protected function loadActivities()
 {
     /*  
      * Load module activities
      */
     foreach ($this->callbacks as $callback) {
         $callback($this);
     }
     /*  
      * Load plugin activities
      */
     $pluginManager = PluginManager::instance();
     $plugins = $pluginManager->getPlugins();
     foreach ($plugins as $plugin) {
         if (method_exists($plugin, 'registerFriendsActivities')) {
             $activities = $plugin->registerFriendsActivities();
             if (!is_array($activities)) {
                 continue;
             }
             foreach ($activities as $className => $code) {
                 $this->registerActivity($className, $code, $plugin);
             }
         }
     }
 }
 public function down()
 {
     if (PluginManager::instance()->hasPlugin('RainLab.Blog')) {
         Schema::dropIfExists('bedard_blogtags_post_tag');
         Schema::dropIfExists('bedard_blogtags_tags');
     }
 }
 /**
  * After the model is populated
  */
 public function afterFetch()
 {
     /*
      * Override the database columns with the plugin details
      * found in the plugin registration file.
      */
     $manager = PluginManager::instance();
     $pluginObj = $manager->findByIdentifier($this->code);
     if ($pluginObj) {
         $pluginInfo = $pluginObj->pluginDetails();
         foreach ($pluginInfo as $attribute => $info) {
             $this->{$attribute} = $info;
         }
         if ($this->is_disabled) {
             $manager->disablePlugin($this->code, true);
         } else {
             $manager->enablePlugin($this->code, true);
         }
         $this->disabledBySystem = $pluginObj->disabled;
         $this->disabledByConfig = in_array($this->code, Config::get('cms.disablePlugins'));
     } else {
         $this->name = $this->code;
         $this->description = 'Plugin has been removed from the file system.';
         $this->orphaned = true;
     }
 }
 public function loadResources()
 {
     /*
      * Load plugin items
      */
     $plugins = $this->pluginManager->getPlugins();
     foreach ($plugins as $id => $plugin) {
         if (!method_exists($plugin, 'registerAPIResources')) {
             continue;
         }
         $resources = $plugin->registerAPIResources();
         if (!is_array($resources)) {
             continue;
         }
         $this->registerResources($resources);
     }
 }
 public function down()
 {
     if (PluginManager::instance()->hasPlugin('RainLab.Blog')) {
         Schema::table('rainlab_blog_posts', function ($table) {
             $table->dropColumn('view');
         });
     }
 }
Exemple #14
0
 public function register_flynsarmy_menu_item_types()
 {
     $types = ['Flynsarmy\\Menu\\MenuItemTypes\\Page' => ['label' => 'Page', 'alias' => 'page', 'description' => 'A link to a CMS Page'], 'Flynsarmy\\Menu\\MenuItemTypes\\Partial' => ['label' => 'Partial', 'alias' => 'partial', 'description' => 'Render a CMS Partial'], 'Flynsarmy\\Menu\\MenuItemTypes\\Link' => ['label' => 'Link', 'alias' => 'link', 'description' => 'A given URL']];
     if (PluginManager::instance()->hasPlugin('RainLab.Blog')) {
         $types['Flynsarmy\\Menu\\MenuItemTypes\\BlogPost'] = ['label' => 'Blog Post', 'alias' => 'blog_post', 'description' => 'A link to a Blog Post'];
         $types['Flynsarmy\\Menu\\MenuItemTypes\\BlogCategory'] = ['label' => 'Blog Category', 'alias' => 'blog_category', 'description' => 'A link to a Blog Category'];
     }
     return $types;
 }
Exemple #15
0
 protected function loadItems()
 {
     /*
      * Load module items
      */
     foreach ($this->callbacks as $callback) {
         $callback($this);
     }
     /*
      * Load plugin items
      */
     $plugins = $this->pluginManager->getPlugins();
     foreach ($plugins as $id => $plugin) {
         $items = $plugin->registerSettings();
         if (!is_array($items)) {
             continue;
         }
         $this->registerSettingItems($id, $items);
     }
     /*
      * Sort settings items
      */
     usort($this->items, function ($a, $b) {
         return $a->order - $b->order;
     });
     /*
      * Filter items user lacks permission for
      */
     $user = BackendAuth::getUser();
     $this->items = $this->filterItemPermissions($user, $this->items);
     /*
      * Process each item in to a category array
      */
     $catItems = [];
     foreach ($this->items as $item) {
         $category = $item->category ?: 'Misc';
         if (!isset($catItems[$category])) {
             $catItems[$category] = [];
         }
         $catItems[$category][] = $item;
     }
     $this->allItems = $this->items;
     $this->items = $catItems;
 }
Exemple #16
0
 /**
  * Returns the logged in user, if available
  */
 public function user()
 {
     if (!PluginManager::instance()->exists('RainLab.User')) {
         return null;
     }
     if (!Auth::check()) {
         return null;
     }
     return Auth::getUser();
 }
 /**
  * Load and return the feed_language dropdown options
  *
  * @return array
  */
 public function getFeedLanguageOptions()
 {
     $pluginPath = PluginManager::instance()->getPluginPath(Plugin::KODERHUT_RSSFEEDSTER_NS);
     $path = $pluginPath . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'language_codes.yaml';
     if (!File::exists($path)) {
         return [];
     }
     $languages = YamlParser::parseFile($path);
     $languages = is_array($languages) ? array_flip($languages) : [];
     return $languages;
 }
 public static function createFromPluginCode($pluginCode)
 {
     $pluginCodeObj = new PluginCode($pluginCode);
     $plugins = PluginManager::instance()->getPlugins();
     foreach ($plugins as $code => $plugin) {
         if ($code == $pluginCode) {
             return new PluginVector($plugin, $pluginCodeObj);
         }
     }
     return null;
 }
Exemple #19
0
 public function boot()
 {
     Event::listen('backend.form.extendFields', function ($form) {
         $editors = ['richeditor', 'codeeditor', 'Eein\\Wysiwyg\\FormWidgets\\Trumbowyg'];
         if ($form->model instanceof \ShahiemSeymor\Ckeditor\Models\Settings) {
             if (PluginManager::instance()->hasPlugin('Radiantweb.Problog')) {
                 $form->addFields(['show_radiantweb_problog_as_wysiwyg' => ['label' => 'shahiemseymor.ckeditor::lang.show.radiantweb_problog', 'type' => 'switch', 'span' => 'auto', 'default' => 'false', 'comment' => 'shahiemseymor.ckeditor::lang.plugins.comment', 'tab' => 'shahiemseymor.ckeditor::lang.plugins.tab']], 'primary');
             }
             if (PluginManager::instance()->hasPlugin('Radiantweb.Proevents')) {
                 $form->addFields(['show_radiantweb_proevents_as_wysiwyg' => ['label' => 'shahiemseymor.ckeditor::lang.show.radiantweb_proevents', 'type' => 'switch', 'span' => 'auto', 'default' => 'false', 'comment' => 'shahiemseymor.ckeditor::lang.plugins.comment', 'tab' => 'shahiemseymor.ckeditor::lang.plugins.tab']], 'primary');
             }
             if (PluginManager::instance()->hasPlugin('RainLab.Pages')) {
                 $form->addFields(['show_rainlab_pages_as_wysiwyg' => ['label' => 'shahiemseymor.ckeditor::lang.show.rainlab_static_pages', 'type' => 'switch', 'span' => 'auto', 'default' => 'false', 'comment' => 'shahiemseymor.ckeditor::lang.plugins.comment', 'tab' => 'shahiemseymor.ckeditor::lang.plugins.tab']], 'primary');
             }
             if (PluginManager::instance()->hasPlugin('RainLab.Editable')) {
                 $form->addFields(['show_rainlab_editable_as_wysiwyg' => ['label' => 'shahiemseymor.ckeditor::lang.show.rainlab_editable', 'type' => 'switch', 'span' => 'auto', 'default' => 'false', 'comment' => 'shahiemseymor.ckeditor::lang.plugins.comment', 'tab' => 'shahiemseymor.ckeditor::lang.plugins.tab']], 'primary');
             }
             if (PluginManager::instance()->hasPlugin('RainLab.Blog')) {
                 $form->addFields(['show_rainlab_blog_as_wysiwyg' => ['label' => 'shahiemseymor.ckeditor::lang.show.rainlab_blog', 'type' => 'switch', 'span' => 'auto', 'default' => 'false', 'comment' => 'shahiemseymor.ckeditor::lang.plugins.comment', 'tab' => 'shahiemseymor.ckeditor::lang.plugins.tab']], 'primary');
             }
             if (PluginManager::instance()->hasPlugin('ShahiemSeymor.Maintenance')) {
                 $form->addFields(['show_shahiem_maintenance_as_wysiwyg' => ['label' => 'shahiemseymor.ckeditor::lang.show.shahiemseymor_maintenance', 'type' => 'switch', 'span' => 'auto', 'default' => 'false', 'comment' => 'shahiemseymor.ckeditor::lang.plugins.comment', 'tab' => 'shahiemseymor.ckeditor::lang.plugins.tab']], 'primary');
             }
         }
         if (Settings::get('show_cms_pages_as_wysiwyg', false) && get_class($form->config->model) == 'Cms\\Classes\\Page') {
             return static::useEditor($form, $editors);
         }
         if (Settings::get('show_cms_content_as_wysiwyg', false) && get_class($form->config->model) == 'Cms\\Classes\\Content') {
             return static::useEditor($form, $editors);
         }
         if (Settings::get('show_cms_partial_as_wysiwyg', false) && get_class($form->config->model) == 'Cms\\Classes\\Partial') {
             return static::useEditor($form, $editors);
         }
         if (Settings::get('show_cms_layouts_as_wysiwyg', false) && get_class($form->config->model) == 'Cms\\Classes\\Layout') {
             return static::useEditor($form, $editors);
         }
         if (Settings::get('show_rainlab_blog_as_wysiwyg', false) && $form->model instanceof \RainLab\Blog\Models\Post) {
             return static::useEditor($form, $editors);
         }
         if (Settings::get('show_shahiem_maintenance_as_wysiwyg', false) && $form->model instanceof \ShahiemSeymor\Maintenance\Models\Settings) {
             return static::useEditor($form, ['richeditor', 'Eein\\Wysiwyg\\FormWidgets\\Trumbowyg']);
         }
         if (Settings::get('show_rainlab_pages_as_wysiwyg', false) && get_class($form->config->model) == 'RainLab\\Pages\\Classes\\Page') {
             return static::useEditor($form, $editors);
         }
         if (Settings::get('show_radiantweb_problog_as_wysiwyg', false) && $form->model instanceof \Radiantweb\Problog\Models\Post) {
             return static::useEditor($form, $editors);
         }
         if (Settings::get('show_radiantweb_proevents_as_wysiwyg', false) && $form->model instanceof \Radiantweb\Proevents\Models\Event) {
             return static::useEditor($form, $editors);
         }
     });
 }
 public function run()
 {
     $manager = PluginManager::instance();
     if ($manager->exists('shahiemseymor.roles')) {
         if (!\ShahiemSeymor\Roles\Models\UserPermission::where('name', '=', 'calendar_public')->first()) {
             \ShahiemSeymor\Roles\Models\UserPermission::create(['name' => 'calendar_public']);
         }
         if (!\ShahiemSeymor\Roles\Models\UserPermission::where('name', '=', 'calendar_deny_all')->first()) {
             \ShahiemSeymor\Roles\Models\UserPermission::create(['name' => 'calendar_deny_all']);
         }
     }
 }
Exemple #21
0
 public function getDropdownOptions($fieldName = null, $keyValue = null)
 {
     $options = [];
     $manager = PluginManager::instance();
     if ($manager->exists('shahiemseymor.roles')) {
         $permissions = \ShahiemSeymor\Roles\Models\UserPermission::get();
         foreach ($permissions as $permission) {
             $options[$permission->id] = $permission->name;
         }
     }
     return $options;
 }
Exemple #22
0
 public function getUserIdOptions($keyValue = null)
 {
     $manager = PluginManager::instance();
     if ($manager->exists('rainlab.user')) {
         $Users = array();
         foreach (UserModel::orderBy('surname')->orderBy('name')->get() as $user) {
             $Users[$user->id] = $user->surname . ', ' . $user->name;
         }
         return $Users;
     }
     return [0 => 'Rainlab User Model Not Installed'];
 }
 /**
  * Index action.
  * @return null
  */
 public function index()
 {
     $this->pageTitle = trans('axc.datamanagement::lang.settings.label');
     $this->addJs('/plugins/axc/datamanagement/assets/dist/home.js', 'core');
     $this->addCss('/plugins/axc/datamanagement/assets/dist/home.css', 'core');
     $navigation = \System\Classes\PluginManager::instance()->findByIdentifier('AxC.DataManagement')->registerNavigation();
     array_shift($navigation['data-management']['sideMenu']);
     $this->vars['tile_bg'] = ['', 'cyan', 'darkRed', 'green', 'orange', 'darkPink', 'amber', 'darkCobalt', 'lightGreen', 'darkCyan'];
     $this->vars['tile_size'] = ['', 'double-vertical', 'quadro', 'double', '', 'double', '', 'double', '', ''];
     $this->vars['parts'] = $navigation['data-management']['sideMenu'];
     $this->vars['index'] = 1;
 }
 /**
  * Loads the menu items from modules and plugins
  * @return void
  */
 protected function loadItems()
 {
     /*
      * Load module items
      */
     foreach ($this->callbacks as $callback) {
         $callback($this);
     }
     /*
      * Load plugin items
      */
     $plugins = $this->pluginManager->getPlugins();
     foreach ($plugins as $id => $plugin) {
         $items = $plugin->registerNavigation();
         if (!is_array($items)) {
             continue;
         }
         $this->registerMenuItems($id, $items);
     }
     /*
      * Sort menu items
      */
     usort($this->items, function ($a, $b) {
         if ($a->order == $b->order) {
             return 0;
         }
         return $a->order > $b->order ? 1 : -1;
     });
     /*
      * Filter items user lacks permission for
      */
     $user = BackendAuth::getUser();
     $this->items = $this->filterItemPermissions($user, $this->items);
     foreach ($this->items as $item) {
         if (!$item->sideMenu || !count($item->sideMenu)) {
             continue;
         }
         $item->sideMenu = $this->filterItemPermissions($user, $item->sideMenu);
     }
 }
Exemple #25
0
 public function Retrieve()
 {
     $serviceUrls = [];
     $manager = PluginManager::instance();
     $plugins = $manager->getPlugins();
     foreach ($plugins as $authPlug => $plugin) {
         if (method_exists($plugin, 'messageURL')) {
             $serviceUrls[$authPlug] = $plugin->messageURL();
         }
     }
     $this->doRequests($serviceUrls);
     return null;
 }
 public function down()
 {
     if (PluginManager::instance()->hasPlugin('RainLab.Blog')) {
         Schema::table('rainlab_blog_posts', function ($table) {
             $table->dropColumn('seo_title');
             $table->dropColumn('seo_description');
             $table->dropColumn('seo_keywords');
             $table->dropColumn('canonical_url');
             $table->dropColumn('redirect_url');
             $table->dropColumn('robot_index');
             $table->dropColumn('robot_follow');
         });
     }
 }
 /**
  * Loads the menu items from modules and plugins
  * @return void
  */
 protected function loadConverters()
 {
     /*
      * Load module items
      */
     foreach ($this->callbacks as $callback) {
         $callback($this);
     }
     /*
      * Load plugin items
      */
     $plugins = $this->pluginManager->getPlugins();
     foreach ($plugins as $id => $plugin) {
         if (!method_exists($plugin, 'registerCurrencyConverters')) {
             continue;
         }
         $converters = $plugin->registerCurrencyConverters();
         if (!is_array($converters)) {
             continue;
         }
         $this->registerConverters($id, $converters);
     }
 }
 /**
  * Loads the notifications from modules and plugins
  *
  * @return void
  */
 protected function loadNotifications()
 {
     /*
      * Load module items
      */
     foreach ($this->callbacks as $callback) {
         $callback($this);
     }
     /*
      * Load plugin items
      */
     $plugins = $this->pluginManager->getPlugins();
     foreach ($plugins as $id => $plugin) {
         if (!method_exists($plugin, 'registerNotifications')) {
             continue;
         }
         $notifications = $plugin->registerNotifications();
         if (!is_array($notifications)) {
             continue;
         }
         $this->registerNotifications($id, $notifications);
     }
 }
 /**
  * Loads the menu items from modules and plugins
  * @return void
  */
 protected function loadGateways()
 {
     /*
      * Load module items
      */
     foreach ($this->callbacks as $callback) {
         $callback($this);
     }
     /*
      * Load plugin items
      */
     $plugins = $this->pluginManager->getPlugins();
     foreach ($plugins as $id => $plugin) {
         if (!method_exists($plugin, 'registerPaymentGateways')) {
             continue;
         }
         $gateways = $plugin->registerPaymentGateways();
         if (!is_array($gateways)) {
             continue;
         }
         $this->registerGateways($id, $gateways);
     }
 }
 /**
  * Initialize this singleton.
  */
 protected function init()
 {
     $this->pluginManager = PluginManager::instance();
     $this->versionManager = VersionManager::instance();
     $this->tempDirectory = temp_path();
     $this->baseDirectory = base_path();
     $this->disableCoreUpdates = Config::get('cms.disableCoreUpdates', false);
     $this->bindContainerObjects();
     /*
      * Ensure temp directory exists
      */
     if (!File::isDirectory($this->tempDirectory)) {
         File::makeDirectory($this->tempDirectory, 0777, true);
     }
 }