public function actionShow() { // handle space visibility changes if (isset($_POST['reputationUsers'])) { $user = $this->getUser(); $userSpace = Yii::app()->request->getParam('reputationUsers'); foreach ($userSpace as $space) { if (isset($_POST['reputationUser_' . $space])) { $userSettings = Yii::app()->request->getParam('reputationUser_' . $space); $reputationUser = ReputationUser::model()->findByAttributes(array('space_id' => $space, 'user_id' => $user->id)); if ($reputationUser != null) { $reputationUser->visibility = isset($userSettings['visibility']) && $userSettings['visibility'] == 1 ? 1 : 0; $reputationUser->save(); } } } Yii::app()->user->setFlash('data-saved', Yii::t('SpaceModule.controllers_AdminController', 'Saved')); } $user = $this->getUser(); $criteria = new CDbCriteria(); $criteria->condition = 'user_id=:userId'; $criteria->order = 'space_id ASC'; $criteria->params = array(':userId' => $user->id); $itemCount = ReputationUser::model()->count($criteria); $pages = new CPagination($itemCount); $pages->pageSize = 10; $pages->applyLimit($criteria); $reputations = ReputationUser::model()->findAll($criteria); $this->render('userReputation', array('user' => $user, 'reputations' => $reputations, 'pages' => $pages)); }
/** * Initialize configuration view * Allows the user to set a bunch of parameters for reputation settings inside this space * * @throws CException */ public function actionConfiguration() { Yii::import('reputation.forms.*'); $form = new ConfigureForm(); $space = Yii::app()->getController()->getSpace(); $spaceId = $space->id; if (isset($_POST['ajax']) && $_POST['ajax'] === 'configure-form') { echo CActiveForm::validate($form); Yii::app()->end(); } if (isset($_POST['ConfigureForm'])) { $_POST['ConfigureForm'] = Yii::app()->input->stripClean($_POST['ConfigureForm']); $form->attributes = $_POST['ConfigureForm']; if ($form->validate()) { $form->functions = SpaceSetting::Set($spaceId, 'functions', $form->functions, 'reputation'); $form->logarithmBase = SpaceSetting::Set($spaceId, 'logarithm_base', $form->logarithmBase, 'reputation'); $form->create_content = SpaceSetting::Set($spaceId, 'create_content', $form->create_content, 'reputation'); $form->smb_likes_content = SpaceSetting::Set($spaceId, 'smb_likes_content', $form->smb_likes_content, 'reputation'); $form->smb_favorites_content = SpaceSetting::Set($spaceId, 'smb_favorites_content', $form->smb_favorites_content, 'reputation'); $form->smb_comments_content = SpaceSetting::Set($spaceId, 'smb_comments_content', $form->smb_comments_content, 'reputation'); $form->daily_limit = SpaceSetting::Set($spaceId, 'daily_limit', $form->daily_limit, 'reputation'); $form->decrease_weighting = SpaceSetting::Set($spaceId, 'decrease_weighting', $form->decrease_weighting, 'reputation'); $form->cron_job = SpaceSetting::Set($spaceId, 'cron_job', $form->cron_job, 'reputation'); $form->lambda_short = SpaceSetting::Set($spaceId, 'lambda_short', $form->lambda_short, 'reputation'); $form->lambda_long = SpaceSetting::Set($spaceId, 'lambda_long', $form->lambda_long, 'reputation'); ReputationUser::model()->updateUserReputation($space, true); ReputationContent::model()->updateContentReputation($space, true); $this->redirect($this->createContainerUrl('//reputation/adminReputation/configuration')); } } else { $form->functions = SpaceSetting::Get($spaceId, 'functions', 'reputation', ReputationBase::DEFAULT_FUNCTION); $form->logarithmBase = SpaceSetting::Get($spaceId, 'logarithm_base', 'reputation', ReputationBase::DEFAULT_LOGARITHM_BASE); $form->create_content = SpaceSetting::Get($spaceId, 'create_content', 'reputation', ReputationBase::DEFAULT_CREATE_CONTENT); $form->smb_likes_content = SpaceSetting::Get($spaceId, 'smb_likes_content', 'reputation', ReputationBase::DEFAULT_SMB_LIKES_CONTENT); $form->smb_favorites_content = SpaceSetting::Get($spaceId, 'smb_favorites_content', 'reputation', ReputationBase::DEFAULT_SMB_FAVORITES_CONTENT); $form->smb_comments_content = SpaceSetting::Get($spaceId, 'smb_comments_content', 'reputation', ReputationBase::DEFAULT_SMB_COMMENTS_CONTENT); $form->daily_limit = SpaceSetting::Get($spaceId, 'daily_limit', 'reputation', ReputationBase::DEFAULT_DAILY_LIMIT); $form->decrease_weighting = SpaceSetting::Get($spaceId, 'decrease_weighting', 'reputation', ReputationBase::DEFAULT_DECREASE_WEIGHTING); $form->cron_job = SpaceSetting::Get($spaceId, 'cron_job', 'reputation', ReputationBase::DEFAULT_CRON_JOB); $form->lambda_short = SpaceSetting::Get($spaceId, 'lambda_short', 'reputation', ReputationBase::DEFAULT_LAMBDA_SHORT); $form->lambda_long = SpaceSetting::Get($spaceId, 'lambda_long', 'reputation', ReputationBase::DEFAULT_LAMBDA_LONG); } $this->render('adminReputationSettings', array('model' => $form, 'space' => $space)); }
/** * Delete users that are not space members anymore * * @param $spaceId * @throws CDbException */ private function deleteMissingUsers($spaceId) { $attributes = array('space_id' => $spaceId); $reputationUsers = ReputationUser::model()->findAllByAttributes($attributes); foreach ($reputationUsers as $user) { $criteria = new CDbCriteria(); $criteria->condition = 'space_id=:spaceId AND user_id=:userId'; $criteria->params = array(':spaceId' => $spaceId, ':userId' => $user->user_id); if (SpaceMembership::model()->count($criteria) <= 0) { $user->delete(); } } }
/** * On run of integrity check command, validate all module data * * @param type $event */ public static function onIntegrityCheck($event) { $integrityChecker = $event->sender; $integrityChecker->showTestHeadline("Validating Reputation Content (" . ReputationContent::model()->count() . " entries)"); $integrityChecker->showTestHeadline("Validating Reputation User (" . ReputationUser::model()->count() . " entries)"); }