public function onRun() { if (!is_null($this->property('experienceInstance'))) { $instance = ExperienceModel::find($this->property('experienceInstance')); $maxExperiencePts = $instance->total_points; $exComp = new ExperienceComponent(); $exComp->initVariables($this->property('experienceInstance')); $points = $exComp->getUserPoints(); $roots = new Roots(); $standards = $roots->getGradingStandards(); $grading_scheme = $standards[0]->grading_scheme; $letterGrade = $this->getLetterGrade($points, $maxExperiencePts, $grading_scheme); $bonusPenaltiesObj = $exComp->calculateTotalBonusPenalties($this->property('experienceInstance')); $totalBonusPenalties = $bonusPenaltiesObj->bonus + $bonusPenaltiesObj->penalties; //penalties come with negative sign $this->page['XP'] = round($points, 2); $this->page['gradeBonus'] = round($totalBonusPenalties, 2); $this->page['letterGrade'] = $letterGrade; } else { $this->page['XP'] = 0; $this->page['gradeBonus'] = 0; $this->page['letterGrade'] = "F"; } //todo: get the bonus, etc from blade, not from experience $size = $this->property('size'); $this->page['gradeSize'] = $size; $this->addJs("/plugins/delphinium/blossom/assets/javascript/grade.js"); $this->addCss("/plugins/delphinium/blossom/assets/css/animate.css"); $this->addCss("/plugins/delphinium/blossom/assets/css/grade.css"); $this->addCss("/plugins/delphinium/blossom/assets/css/main.css"); }