/** * Load shortcodes already provided by this plugin. */ protected function loadShortcodes() { $iterator = new \FilesystemIterator(__DIR__ . '/Shortcodes'); foreach ($iterator as $fileinfo) { $name = $fileinfo->getBasename('.php'); // Load shortcodes in directory "Shortcodes" $class = __NAMESPACE__ . "\\Shortcodes\\{$name}"; $defaults = $this->config->get('plugins.shortcodes.shortcodes.' . strtolower($name), []); if (empty($defaults) || $defaults['enabled']) { $options = isset($defaults['options']) ? $defaults['options'] : []; $shortcode = new $class($options); $this->register($shortcode); } } // Fire event self::getGrav()->fireEvent('onShortcodesInitialized', new Event(['shortcodes' => $this])); $this->shortcodes = $this->twig->getShortcodes(); return array_keys($this->shortcodes); }