Рейтинг: 2.0453  
На голосовании
Предложил Пользователь 71426 08.06.2014 23:14:48

Поиск, свой модуль в списке модулей

файл: /bitrix/modules/search/classes/general/comp_parameters.php
класс: "CSearchParameters"
метод: "GetModulesList"
содержание:
   function GetModulesList()
   {
      $result = array();
      foreach(GetModuleEvents("search", "OnReindex", true) as $arEvent)
      {
         if(!array_key_exists($arEvent["TO_MODULE_ID"], $result))
         {
            $module = $arEvent["TO_MODULE_ID"];

            if(IsModuleInstalled($module))
            {
               if(!class_exists($module))
               {
                  $install = $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".$module."/install/index.php";
                  if(file_exists($install) && is_file($install))
                     include_once($install);
               }

               if(class_exists($module))
               {
                  $obModule = new $module;
                  $result[$module] = "[".$module."] ".$obModule->MODULE_NAME;
               }
            }
         }
      }

      ksort($result);
      return $result;
   }


предложение:
исправить функцию чтобы можно было добавить свои модули
использовать getLocalPath
сделать замену с "." на "_" для имени класса модуля