/** * Returns "distributions", ie. various OS releases, ie. meego 1.2 * * @param array HTTP GET args */ public function get_distributions(array $args) { $q = new midgard_query_select(new midgard_query_storage('com_meego_os')); $q->add_order(new midgard_query_property('name'), SORT_ASC); $q->execute(); $total = $q->get_results_count(); $query = $this->request->get_query(); if (array_key_exists('pagesize', $query) && strlen($query['pagesize'])) { $this->pagesize = $query['pagesize']; } $q->set_limit($this->pagesize); $page = 0; if (array_key_exists('page', $query) && strlen($query['page'])) { $page = $query['page']; } $offset = $page * $this->pagesize; $q->set_offset($offset); if ($offset > $total) { $offset = $total - $this->pagesize; } // 2nd execute to limit pagesize $q->execute(); $ocs = new com_meego_ocs_OCSWriter(); $ocs->writeMeta($total, $this->pagesize); $ocs->writeDistributions($q->list_objects()); $ocs->endDocument(); self::output_xml($ocs); }