/** * {@inheritdoc} */ public function updateScore(Bundle $bundle) { $bundle->addScoreDetail('recommenders', 5 * $bundle->getNbRecommenders()); }
/** * Generate Badge images * * @param Bundle $bundle */ public function generate(Bundle $bundle) { // Open bg badge image $image = $this->imagine->open($this->getResourceDir() . '/images/' . $this->type[self::LONG]); $imageShort = $this->imagine->open($this->getResourceDir() . '/images/' . $this->type[self::SHORT]); // Bundle Title $bundleName = $this->shorten($bundle->getName(), 16); $image->draw()->text($bundleName, $this->setFont($this->imagine, $this->font, 14, '085066'), new Point(75, 10)); // Score points $score = $bundle->getScore() ?: 'N/A'; $image->draw()->text($score, $this->setFont($this->imagine, $this->font, 18), $this->getPositionByType($score, self::LONG)); $imageShort->draw()->text($score, $this->setFont($this->imagine, $this->font, 16), $this->getPositionByType($score, self::SHORT)); // Recommend $recommenders = $bundle->getNbRecommenders(); if ($recommenders) { $recommendationsText = $recommenders . ' recommendations'; } else { $recommendationsText = 'No recommendations'; } $image->draw()->text($recommendationsText, $this->setFont($this->imagine, $this->font, 9), new Point(92, 33)); // Check or create dir for generated badges $this->createBadgesDir(); // Remove existing badge $this->filesystem->remove($this->getBadgeFile($bundle)); $this->filesystem->remove($this->getBadgeFile($bundle, self::SHORT)); // Save badge $image->save($this->getBadgeFile($bundle)); $imageShort->save($this->getBadgeFile($bundle, self::SHORT)); // Set write permission for father files update chmod($this->getBadgeFile($bundle), 0777); chmod($this->getBadgeFile($bundle, self::SHORT), 0777); }