コード例 #1
0
ファイル: content.php プロジェクト: nemein/com_meego_ocs
 /**
  * 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);
 }