public function ajax_periods_list() { $fields_config = array(array('name' => 'created', 'caption' => 'lang:common_table_header_created'), array('name' => 'updated', 'caption' => 'lang:common_table_header_updated'), array('name' => 'name', 'caption' => 'lang:admin_periods_table_header_name'), array('name' => 'related_courses', 'caption' => 'lang:admin_periods_table_header_relations_courses')); $filter = $this->input->post('filter'); $this->store_filter($filter); $this->inject_stored_filter(); $periods = new Period(); $periods->order_by('sorting', 'asc'); $periods->include_related_count('course'); $periods->get_iterated(); $this->parser->parse('backend/periods/ajax_periods_list.tpl', array('periods' => $periods, 'fields_config' => $fields_config)); }
/** * Delete this period or related object. * If no parameters are set, this method deletes current period and re-sort all other periods. * @param DataMapper|string $object related object to delete from relation. * @param string $related_field relation internal name. */ public function delete($object = '', $related_field = '') { if (empty($object) && !is_array($object) && !empty($this->id)) { $lower_periods = new Period(); $lower_periods->order_by('sorting', 'asc'); $lower_periods->where('sorting > ', $this->sorting); $lower_periods->get_iterated(); $ids = array(); foreach ($lower_periods as $lower_period) { $ids[] = $lower_period->id; } if (count($ids) > 0) { $this->db->set('sorting', 'sorting-1', FALSE); $this->db->where_in('id', $ids); $this->db->update('periods'); } } parent::delete($object, $related_field); }
private function inject_courses() { $periods = new Period(); $periods->order_by('sorting', 'asc'); $periods->get_iterated(); $data = array(NULL => ''); if ($periods->exists()) { foreach ($periods as $period) { $period->course->order_by_with_constant('name', 'asc')->get_iterated(); if ($period->course->exists() > 0) { foreach ($period->course as $course) { $data[$period->name][$course->id] = $course->name; } } } } $this->parser->assign('courses', $data); }
private function inject_periods() { $periods = new Period(); $periods->order_by('sorting', 'asc'); $query = $periods->get_raw(); $data = array(NULL => ''); if ($query->num_rows() > 0) { foreach ($query->result() as $row) { $data[(int) $row->id] = $row->name; } } $this->parser->assign('periods', $data); $query->free_result(); }
private function inject_period_options() { $periods = new Period(); $periods->order_by('sorting', 'asc')->get_iterated(); $data = array(); foreach ($periods as $period) { $data[$period->id] = $period->name; } $this->parser->assign('period_options', $data); }