/** * Считывает информацию обо всех плагинах в дирректории PLUGIN_DIR. * @return void */ public static function getPluginsInfo() { //self::checkPluginsUpdate(); if (empty(self::$pluginsInfo)) { $result = array(); $plugins = scandir(PLUGIN_DIR); unset($plugins[1]); foreach ($plugins as $folderName) { if (!is_dir($folderName)) { $plug = self::readInfo($folderName); if ($plug) { $result[] = $plug; } } } $pluginsUpdateInfo = unserialize(stripslashes(MG::getSetting('pluginsVersionInfo'))); $pluginsList = array_keys($pluginsUpdateInfo); //viewData($pluginsUpdateInfo); // Считываем активность плагинов из БД. $res = DB::query("SELECT * FROM `" . PREFIX . "plugins`"); while ($row = DB::fetchArray($res)) { $pluginsActivity[$row['folderName']] = $row['active']; } // Сортировка в порядке по алфавиту. usort($result, array(__CLASS__, "sortByPluginName")); // Дополняем массив найденых плагинов информацие их активности. foreach ($result as $id => $plugin) { $result[$id]['Active'] = isset($pluginsActivity[$plugin['folderName']]) ? $pluginsActivity[$plugin['folderName']] : 0; if (in_array($plugin['folderName'], $pluginsList)) { self::$pluginsFolder[$plugin['folderName']] = $id; $result[$id]['update'] = $pluginsUpdateInfo[$plugin['folderName']]; $result[$id]['update']['description'] = $result[$id]['update']['description']; } } self::$pluginsInfo = $result; } else { $result = self::$pluginsInfo; } return $result; }