Ejemplo n.º 1
0
/**
 * set the achievement image file to be generated again
 * @param Achievement $achievement  achievement
 * @access public
 * @return void
 */
function must_regenerate_achievement($achievement)
{
    $path = achievement_path($achievement);
    if (file_exists($path)) {
        unlink($path);
    }
}
 /**
  * generate the achievement image, put it in the public achievements folder and return it
  * @access public
  * @return void
  */
 public function generate_image()
 {
     $filename = $this->params['filename'];
     $id = basename($filename, '.png');
     $achievement = Achievement::$objects->get_or_404($id);
     $path = achievement_path($achievement);
     $image = generate_achievement($achievement, $path);
     $this->render_image($image->image);
     $image->destroy();
 }
Ejemplo n.º 3
0
 /**
  * The new achievement notification
  * body is loaded by the create method, from the template
  * @param User $user
  * @access public
  * @return void
  */
 protected function achievement_created_notification($achievement)
 {
     $image_path = achievement_path($achievement);
     if (!file_exists($image_path)) {
         generate_achievement($achievement, $image_path);
     }
     $image_name = "achievement-{$achievement->id}.png";
     $image_cid = md5($image_name);
     $this->subject = "[ACHIEVEMENTS] New challenge created by {$achievement->creator->target()}";
     $this->body = array('achievement' => $achievement, 'image_cid' => $image_cid);
     $this->images = array(array('content' => file_get_contents($image_path), 'content_id' => $image_cid, 'filename' => $image_name, 'content_type' => 'image/png'));
     $this->from = DEFAULT_MAIL_FROM;
     $this->recipients = array();
     foreach (User::$objects->all()->values('email', 'login') as $user) {
         $this->recipients[] = array($user['email'], $user['login']);
     }
 }