Ip\Internal\Plugins\Model::getAllPluginNames PHP Method

getAllPluginNames() public static method

public static getAllPluginNames ( )
    public static function getAllPluginNames()
    {
        $answer = array();
        $pluginDir = ipFile('Plugin/');
        $files = scandir($pluginDir);
        if (!$files) {
            return array();
        }
        foreach ($files as $file) {
            if (in_array($file, array('.', '..')) || !is_dir($pluginDir . $file) || !empty($file[0]) && $file[0] == '.') {
                continue;
            }
            $answer[] = $file;
        }
        $fileOverrides = ipConfig()->get('fileOverrides');
        if (!is_array($fileOverrides)) {
            $fileOverrides = array();
        }
        $overrideKeys = array_keys($fileOverrides);
        if (!is_array($overrideKeys)) {
            $overrideKeys = array();
        }
        foreach ($overrideKeys as $overriddenDir) {
            $matches = null;
            if (preg_match('%^Plugin\\/(.+)/$%', $overriddenDir, $matches)) {
                $answer[] = $matches[1];
            }
        }
        //TODO add filter for plugins in other directories
        return $answer;
    }

Usage Example

Example #1
0
 public function index()
 {
     ipAddJs('Ip/Internal/Core/assets/js/angular.js');
     ipAddJs('Ip/Internal/Plugins/assets/plugins.js');
     ipAddJs('Ip/Internal/Plugins/assets/jquery.pluginProperties.js');
     ipAddJs('Ip/Internal/Plugins/assets/pluginsLayout.js');
     $allPlugins = Model::getAllPluginNames();
     $plugins = array();
     foreach ($allPlugins as $pluginName) {
         $plugin = Helper::getPluginData($pluginName);
         $plugin['icon'] = $this->pluginIcon($pluginName);
         $plugins[] = $plugin;
     }
     ipAddJsVariable('pluginList', $plugins);
     ipAddJsVariable('ipTranslationAreYouSure', __('This action will remove plugin\'s files and database records. Do you want to proceed.?', 'Ip-admin', false));
     $data = array();
     $view = ipView('view/layout.php', $data);
     ipResponse()->setLayoutVariable('removeAdminContentWrapper', true);
     return $view->render();
 }
All Usage Examples Of Ip\Internal\Plugins\Model::getAllPluginNames