예제 #1
0
파일: project.php 프로젝트: kenjs/Goteo
 public static function getMedium($id, $lang = \LANG)
 {
     try {
         // metemos los datos del proyecto en la instancia
         $query = self::query("SELECT * FROM project WHERE id = ?", array($id));
         $project = $query->fetchObject(__CLASS__);
         // primero, que no lo grabe
         $project->dontsave = true;
         // si recibimos lang y no es el idioma original del proyecto, ponemos la traducción y mantenemos para el resto de contenido
         if ($lang == $project->lang) {
             $lang = null;
         } elseif (!empty($lang)) {
             $sql = "\n                        SELECT\n                            IFNULL(project_lang.description, project.description) as description,\n                            IFNULL(project_lang.subtitle, project.subtitle) as subtitle\n                        FROM project\n                        LEFT JOIN project_lang\n                            ON  project_lang.id = project.id\n                            AND project_lang.lang = :lang\n                        WHERE project.id = :id\n                        ";
             $query = self::query($sql, array(':id' => $id, ':lang' => $lang));
             foreach ($query->fetch(\PDO::FETCH_ASSOC) as $field => $value) {
                 $project->{$field} = $value;
             }
         }
         // owner
         $project->user = User::getMini($project->owner);
         // imagen
         $project->image = Project\Image::getFirst($project->id);
         // categorias
         $project->categories = Project\Category::getNames($id, 2);
         // skills
         $project->skills = Project\Skill::getNames($id, 2);
         // retornos colectivos
         $project->social_rewards = Project\Reward::getAll($id, 'social', $lang);
         // retornos individuales
         $project->individual_rewards = Project\Reward::getAll($id, 'individual', $lang);
         $amount = Invest::invested($id);
         $project->invested = $amount;
         $project->amount = $amount;
         $project->num_investors = Invest::numInvestors($id);
         $project->num_messegers = Message::numMessegers($id);
         // sacamos rapidamente el presupuesto mínimo y óptimo
         $costs = self::calcCosts($id);
         $project->mincost = $costs->mincost;
         $project->maxcost = $costs->maxcost;
         $project->setDays();
         $project->setTagmark();
         return $project;
     } catch (\PDOException $e) {
         throw new \Goteo\Core\Exception($e->getMessage());
     }
 }