/** * Populate details url for calendar items. * @param array $items * @return array */ public static function populateDetailsUrlForCalendarItems($items) { assert('is_array($items)'); $moduleClassNames = CalendarUtil::getAvailableModulesForCalendar(); foreach ($items as $index => $item) { foreach ($moduleClassNames as $moduleClassName => $label) { if ($moduleClassName::getPrimaryModelName() == $item['modelClass']) { $moduleId = $moduleClassName::getDirectoryName(); $item['detailsUrl'] = Yii::app()->createUrl($moduleId . '/default/details', array('id' => $item['modelId'])); $items[$index] = $item; } } } return $items; }
/** * Get modules available to be used with calendar. * @return array */ protected function getAvailableModulesForCalendar() { $moduleClassNames = CalendarUtil::getAvailableModulesForCalendar(); asort($moduleClassNames); return $moduleClassNames; }
/** * @covers CalendarModuleClassNameDropDownElement::getAvailableModulesForCalendar */ public function testGetAvailableModulesForCalendar() { $availableModuleClassNames = CalendarUtil::getAvailableModulesForCalendar(); $this->assertGreaterThan(2, count($availableModuleClassNames)); $this->assertTrue(in_array('Meetings', $availableModuleClassNames)); $this->assertTrue(in_array('Tasks', $availableModuleClassNames)); }