*/ /** * The self-registration module * * @package SelfRegistration */ class RegisterModule extends GalleryModule { function RegisterModule() { global $gallery; $this->setId('register'); $this->setName($gallery->i18n('Registration')); $this->setDescription($gallery->i18n('New User Registration')); $this->setVersion('1.0.0'); $this->setGroup('gallery', $this->translate('Gallery')); $this->setCallbacks('getSystemLinks|getUserAdminViews|getSiteAdminViews'); $this->setRequiredCoreApi(array(6, 0)); $this->setRequiredModuleApi(array(2, 0)); } /** * @see GalleryModule::upgrade() */ function upgrade($currentVersion) { if (!isset($currentVersion)) { foreach (array('confirmation' => 'admin', 'emailadmins' => 1, 'subject' => $this->translate('Account activation'), 'adminsubject' => $this->translate('New user registration'), 'from' => 'webmaster@' . GalleryUtilities::getServerVar('SERVER_NAME')) as $key => $value) { $ret = $this->setParameter($key, $value); if ($ret->isError()) { return $ret->wrap(__FILE__, __LINE__); } } } return GalleryStatus::success(); } /** * @see GalleryModule::performFactoryRegistrations() */ function performFactoryRegistrations() { $ret = GalleryCoreApi::registerFactoryImplementation( 'GalleryEntity', 'GalleryPendingUser', 'GalleryPendingUser', 'modules/register/classes/GalleryPendingUser.class', 'register', null); if ($ret->isError()) { return $ret->wrap(__FILE__, __LINE__); } return GalleryStatus::success(); } /** * @see GalleryModule::autoConfigure */ function autoConfigure() { /* We don't require any special configuration */ return array(GalleryStatus::success(), true); } /** * @see GalleryModule::getSystemLinks */ function getSystemLinks() { global $gallery; $links = array(); list ($ret, $anonymousUserId) = GalleryCoreApi::getPluginParameter('module', 'core', 'id.anonymousUser'); if ($ret->isError()) { return array($ret->wrap(__FILE__, __LINE__), null); } /* Only anonymous users will see the register link */ if ($gallery->getActiveUserId() == $anonymousUserId) { $links['Register'] = array( 'text' => $this->translate('Register'), 'params' => array('view' => 'core.UserAdmin', 'subView' => 'register.UserSelfRegistration', 'return' => 1)); } return array(GalleryStatus::success(), $links); } /** * @see GalleryModule::getUserAdminViews(); */ function getUserAdminViews($user) { global $gallery; $views = array(); list ($ret, $anonymousUserId) = GalleryCoreApi::getPluginParameter('module', 'core', 'id.anonymousUser'); if ($ret->isError()) { return array($ret->wrap(__FILE__, __LINE__), null); } /* Only anonymous users will see the register link */ if ($gallery->getActiveUserId() == $anonymousUserId) { $views[] = array('name' => $this->translate('Register'), 'view' => 'register.UserSelfRegistration'); } return array(GalleryStatus::success(), $views); } /** * @see GalleryModule::getSiteAdminViews */ function getSiteAdminViews() { return array(GalleryStatus::success(), array(array('name' => $this->translate('Registration'), 'view' => 'register.AdminSelfRegistration'))); } } ?>