public static function getHostSelectOptions(\DataContainer $dc)
 {
     $arrItems = array();
     if (!is_array($dc->objModule->cal_calendar) || empty($dc->objModule->cal_calendar)) {
         return $arrItems;
     }
     $strCacheKey = 'host_select_options_' . implode('_', $dc->objModule->cal_calendar);
     if (FileCache::getInstance()->isExisting($strCacheKey)) {
         return FileCache::getInstance()->get($strCacheKey);
     }
     $objHosts = CalendarPlusEventsModel::getUniqueHostsByPids($dc->objModule->cal_calendar);
     $objMemberHosts = CalendarPlusEventsModel::getUniqueMemberHostsByPids($dc->objModule->cal_calendar);
     if ($objHosts !== null) {
         while ($objHosts->next()) {
             $arrOrder['m' . $objMemberHosts->id] = $objHosts->title;
             $arrItems['h' . $objHosts->id] = $objHosts->title;
         }
     }
     $arrOrder = array();
     if ($objMemberHosts !== null) {
         while ($objMemberHosts->next()) {
             $arrTitle = array($objMemberHosts->academicTitle, $objMemberHosts->firstname, $objMemberHosts->lastname);
             if (empty($arrTitle)) {
                 continue;
             }
             $arrOrder['m' . $objMemberHosts->id] = $objMemberHosts->lastname;
             $arrItems['m' . $objMemberHosts->id] = trim(implode(' ', $arrTitle));
         }
     }
     // sort by lastname
     asort($arrOrder);
     $arrItems = array_replace($arrOrder, $arrItems);
     FileCache::getInstance()->set($strCacheKey, $arrItems);
     return $arrItems;
 }