protected function _upload($name, $opts = array()) { $type = isset($opts["type"]) ? $opts["type"] : "images"; /*** Create Directory if not present ***/ $path = APP_PATH . "/public/assets/uploads/{$type}"; exec("mkdir -p {$path}"); $path .= "/"; $filename = Shared\Markup::uniqueString(); // For normal file upload via browser if (isset($_FILES[$name])) { $file = $_FILES[$name]; $extension = pathinfo($file["name"], PATHINFO_EXTENSION); if (empty($extension)) { return false; } $filename .= ".{$extension}"; /*** Check mime type before moving ***/ if (isset($opts["mimes"])) { if (!preg_match("/^{$opts['mimes']}\$/", $extension)) { return false; } } if (move_uploaded_file($file["tmp_name"], $path . $filename)) { return $filename; } else { return FALSE; } // for app upload } elseif ($f = RequestMethods::post($name)) { if (file_put_contents($filename, base64_decode($f))) { return $filename; } } else { return false; } }
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; }