Example #1
0
 /**
  * @before _secure
  */
 public function play()
 {
     $this->seo(array("title" => "Play Game", "view" => $this->getLayoutView()));
     $view = $this->getActionView();
     $session = Registry::get("session");
     $campaign = $session->get('Game\\Authorize:$campaign');
     if (!$campaign) {
         $this->redirect("/index.html");
     }
     $session->erase('Game\\Authorize:$campaign');
     $model = $campaign->type;
     $game = $model::first(array("id = ?" => $campaign->type_id));
     switch ($model) {
         case 'imagetext':
             $img = $this->_imagetextprocess($game, $campaign);
             break;
         case 'image':
             $img = $this->_imageprocess($game, $campaign);
             break;
         case 'text':
             $img = $this->_textprocess($game, $campaign);
             break;
         case 'shuffle':
             $img = $this->_shuffleprocess($game, $campaign);
             break;
     }
     $participant = Participant::first(array("user_id = ?" => $this->user->id, "campaign_id = ?" => $campaign->id));
     $facebook = new Curl();
     $facebook->post('https://graph.facebook.com/?id=' . "http://" . $_SERVER["HTTP_HOST"] . "/game/result/" . $participant->id . '&scrape=true');
     $facebook->close();
     $domain = Meta::first(array("property = ?" => "domain", "live = ?" => true));
     $items = Participant::all(array(), array("DISTINCT campaign_id"), "created", "desc", 3, 1);
     $view->set("items", $items);
     $view->set("img", $img);
     $view->set("participant", $participant);
     $view->set("campaign", $campaign)->set("domain", $domain);
 }
Example #2
0
 protected function _shuffleprocess($game, $campaign, $play_again = true)
 {
     $participant = Participant::first(array("user_id = ?" => $this->user->id, "campaign_id = ?" => $campaign->id));
     if ($participant && !$play_again) {
         return $participant->image;
     }
     $items = ShuffleItem::all(array("shuffle_id = ?" => $game->id, "meta_key = ?" => "gender", "meta_value = ?" => strtolower($this->user->gender)));
     $key = rand(0, count($items) - 1);
     $item = $items[$key];
     $vars = array();
     $user = $this->user;
     $path = APP_PATH . '/public/assets/uploads/images/';
     $user_img = "{$path}user-" . $user->fbid . ".jpg";
     if (!file_exists($user_img)) {
         if (!copy('http://graph.facebook.com/' . $user->fbid . '/picture?width=' . $item->usr_w . '&height=' . $item->usr_h, $user_img)) {
             die('Could not copy image');
         }
     }
     $src_file = $path . $item->base_im;
     $extension = pathinfo($src_file, PATHINFO_EXTENSION);
     if ($participant) {
         $filename = $participant->image;
     } else {
         $filename = Shared\Markup::uniqueString() . ".{$extension}";
     }
     $final_img = $path . $filename;
     copy($src_file, $final_img);
     $dest = Shared\Image::resource($final_img);
     $vars['file'] = $final_img;
     $vars['filename'] = $filename;
     $img = Shared\Image::resize($user_img, $item->usr_w, $item->usr_h);
     $vars['usr'] = Shared\Image::resource($img);
     imagecopymerge($dest, $vars['usr'], $item->usr_x, $item->usr_y, 0, 0, $item->usr_w, $item->usr_h, 100);
     // add text
     $tt_color = $this->_makeColor($dest, $item->txt_color);
     $font = APP_PATH . '/public/assets/fonts/monaco.ttf';
     imagettftext($dest, $item->txt_size, 0, $item->txt_x, $item->txt_y, $tt_color, $font, $user->name);
     Shared\Image::create($dest, $vars['file']);
     $this->_saveParticipant($participant, $campaign, $vars);
     return $participant->image;
 }