* @version $Revision: 847 $ */ class CalendarModule extends GalleryModule { function CalendarModule() { global $gallery; $this->setId('calendar'); $this->setName($gallery->i18n('Calendar')); $this->setVersion('0.0.2'); $this->setDescription($gallery->i18n('FIXME An Ajax Calendar')); $this->setGroup('misc', $gallery->i18n('Miscellaneous')); $this->setCallbacks('getSiteAdminViews|getUserAdminViews'); $this->setRequiredCoreApi(array(7, 2)); $this->setRequiredModuleApi(array(3, 0)); } /** * @see GalleryModule::getSiteAdminViews */ function getSiteAdminViews() { return array(null, array(array('name' => $this->getName(), 'view' => 'calendar.CalendarSiteAdmin'))); } /** * @see GalleryModule::getUserAdminViews */ function getUserAdminViews($user) { if (GalleryCapabilities::can('login')) { list ($ret, $anonymousUserId) = GalleryCoreApi::getAnonymousUserId(); if ($ret) { return array($ret, null); } if ($user->getId() != $anonymousUserId) { return array(null, array(array('name' => $this->translate('Calendar Settings'), 'view' => 'calendar.CalendarUserAdmin'))); } } } /** * @see GalleryModule::performFactoryRegistrations */ function performFactoryRegistrations() { $ret = GalleryCoreApi::registerFactoryImplementation('GalleryEntity', 'CalendarEvent', 'CalendarEvent', 'modules/calendar/classes/CalendarEvent.class', $this->getId(), null); if ($ret) { return $ret; } } /** * @see GalleryModule::upgrade */ function upgrade($currentVersion) { switch ($currentVersion) { case null: /* Initial install */ case '0.0.1': /* FIXME Added CalendarEvent */ case 'end of upgrade path': break; default: return GalleryCoreApi::error(ERROR_BAD_PLUGIN, __FILE__, __LINE__, sprintf('Unknown module version %s', $currentVersion)); } } } ?>