コード例 #1
0
ファイル: pm.php プロジェクト: kostiukoleg/all4web.loc
 /**
  *  Считывает информацию обо всех плагинах в дирректории 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;
 }