/** * @fn software * @short Action method that generates the feed of software releases. */ public function software() { $conn = Db::get_connection(); $release_factory = new SoftwareRelease(); if (isset($_GET['id']) && is_numeric($_GET['id'])) { $this->releases = $release_factory->find_all(array('where_clause' => '`released` = 1 ' . 'AND `software_id` = \'' . $conn->escape($_GET['id']) . '\' ', 'order_by' => '`date` DESC ')); } else { $this->releases = $release_factory->find_by_query('SELECT MAX(`software_releases`.`id`) AS `id`, `software_releases`.`software_id`, MAX(`software_releases`.`version`) AS `version`, MAX(`software_releases`.`date`) AS `date` ' . 'FROM `softwares` ' . 'LEFT JOIN `software_releases` ON `softwares`.`id` = `software_releases`.`software_id` ' . 'WHERE `software_releases`.`released` = 1 ' . 'GROUP BY `softwares`.`id` ' . 'ORDER BY `date` DESC '); } Db::close_connection($conn); }
/** * @fn software_release_list * @short Action method to show a list of software releases. */ public function software_release_list() { $conn = Db::get_connection(); if (!isset($_REQUEST['id'])) { $this->redirect_to(array('action' => 'software_list')); } $release_factory = new SoftwareRelease(); $this->releases = $release_factory->find_all(array('where_clause' => "`software_id` = '{$conn->escape($_REQUEST['id'])}'", 'order_by' => '`date` DESC')); Db::close_connection($conn); }