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