Пример #1
0
 public function index()
 {
     $period_id = $this->input->post('period_id');
     $filter = $this->inject_stored_filter();
     $this->_initialize_student_menu();
     $this->_select_student_menu_pagetag('courses');
     $this->parser->add_css_file('frontend_courses.css');
     $this->parser->add_js_file('courses/selection.js');
     $cache_id = $this->usermanager->get_student_cache_id('period_' . ($period_id ? $period_id : @$filter['period_id']));
     if (!$this->_is_cache_enabled() || !$this->parser->isCached($this->parser->find_view('frontend/courses/index.tpl'), $cache_id)) {
         $periods = new Period();
         if (intval($period_id) == 0) {
             if (isset($filter['period_id'])) {
                 $periods->where('id', $filter['period_id']);
             } else {
                 $periods->limit(1);
             }
         } else {
             $periods->where('id', $period_id);
         }
         $periods->order_by('sorting', 'asc')->get();
         $filter['period_id'] = $periods->id;
         $this->store_filter($filter);
         $this->inject_period_options();
         $this->parser->assign(array('periods' => $periods));
     }
     $this->parser->parse('frontend/courses/index.tpl', array(), FALSE, $this->_is_cache_enabled(), $cache_id);
 }
Пример #2
0
 /**
  * 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);
 }
Пример #3
0
 public function _is_unique_name_not_in($str, $id)
 {
     $period = new Period();
     $period->where('name', $str);
     $period->where('id !=', intval($id));
     $period->get();
     return (bool) (!$period->exists());
 }