Esempio n. 1
0
 /**
  *	@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);
 }
Esempio n. 2
0
 /**
  *	@fn releasenotes
  *	@short Action method that shows the changes in the last release of the requested software.
  *	@note This action is designed to be called by Sparkle application updater.
  */
 public function releasenotes()
 {
     if (!empty($_REQUEST['id'])) {
         $release_factory = new SoftwareRelease();
         $releases = $release_factory->find_by_query('SELECT * FROM `software_releases` ' . 'WHERE `software_id` = \'' . $_REQUEST['id'] . '\' ' . 'AND `released` = 1 ' . 'ORDER BY `date` DESC ' . 'LIMIT 1');
         if (count($releases) < 1) {
             HTTP::error(404);
         }
         $this->release = $releases[0];
         $this->release->belongs_to('softwares');
         $this->render(array('layout' => 'software_releasenotes'));
     } else {
         $this->redirect_to(array('action' => 'index'));
     }
 }