public static function get_paginated_list($name, $page, $results_per_page, $deep = false, $where = array(), $order_by = null, $order_by_dir = 'ASC', $limit_offset = null, $limit = null) { $num_results = Bamboo::get_count($name, $where); $first_result = ($page - 1) * $results_per_page; if ($first_result >= $num_results) { throw new Bamboo_Exception('Can\'t go to a non-existent page'); } return array('num_results' => $num_results, 'num_pages' => ceil($num_results / $results_per_page), 'current_page' => $page, 'first_result' => $first_result + 1, 'last_result' => min(array($num_results, $first_result + $results_per_page)), 'results' => Bamboo::get_list($name, $deep, $where, $order_by, $order_by_dir, $first_result, $results_per_page)); }
public function input($name, array $attr = NULL) { // TODO: cache? $relatedItems = Bamboo::get_list($this->model); $options = array(); foreach ($relatedItems as $relatedItem) { $options[$relatedItem->{$relatedItem->__id_field}->raw()] = $relatedItem->{$relatedItem->__name_field}->raw(); } return Form::select($name, $options, $this->value, $attr); }